Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_Ч1

.pdf
Скачиваний:
11
Добавлен:
17.05.2015
Размер:
2.59 Mб
Скачать

Окончание табл. 3

Элемент

ФИО

Адрес

Рег.

Квалифи-

Оклад

Личное

данных

 

 

номер

кация

 

транспортное

Терминал

 

 

 

 

 

средство

Исследователь-

01

00

01

00

00

00

ский отдел

 

 

 

 

 

 

Стоянка

01

00

00

00

00

11

автомобилей

 

 

 

 

 

 

Здесь «01» означает право читать элемент данных; «10» – записывать; «11» – читать и записывать; «00» – доступ запрещен.

Элементы матрицы установления полномочий обычно содержат биты, соответствующие действиям, которые могут быть выполнены с терминала при обращении к элементу данных. Однако, если это требуется, элементы матрицы могут содержать указатели на процедуры. Эти процедуры исполняются при каждой попытке доступа с данного терминала к заданному элементу данных и могут принимать те решения о доступе, которые зависят от информации, представленной не столь очевидно, как в простой матице доступа, приведенной выше. Приведем следующие примеры.

Разрешение о доступе основывается на истории доступов других ресурсов. Пользователь А может записывать данные в файл F только в том случае, если он не читал файл G.

Решение о доступе основывается на динамическом состоянии системы. Пользователь В может открыть файл H только в то время, когда база данных, в которой размещен файл, открыта.

Решение о доступе принимается на основе предписанного использования ресурса.

Решение о доступе основывается на текущем значении ресурса. Решение о доступе основывается на значении определенных си-

стемных переменных (например, времени дня или даты).

Матрица установления полномочий является в действительности «сердцем» системы обеспечения безопасности. За счет включения большего или меньшего количества информации в матрицу можно варьировать сложность контрольных проверок.

Обычно матрица установления полномочий хранится как отдельный зашифрованный файл, и его строки помещаются в оперативную память только в случае необходимости. В качестве строк матрицы установления полномочий могут фигурировать пользователи или группы пользователей, а также программы или подсистемы. Колонками могут быть типы запросов.

121

Уровни полномочий

То, что было описано выше, представляет собой процедуру установления полномочий, основанную на категориях ресурсов: пользователей, терминалов, операций и элементов данных. Но установление полномочий может также основываться на уровнях полномочий, связанных с этими ресурсами. Запросы на доступ отвергаются во всех случаях, когда уровень полномочий терминала или пользователя, запрашивающего разрешение на доступ, ниже уровня полномочий операции и/или запрашиваемых данных.

Можно комбинировать подходы по уровню полномочий и по категориям. Например, пусть существуют три уровня с последовательно возрастающими полномочиями: «конфиденциально», «секретно» и «совершенно секретно». Допустим также, что существуют 16 различных по категориям групп данных: С1, С2, …С16. Если правом пользователя является полномочие «совершенно секретно» и разрешен доступ к группам ресурсов С1, С3, С4, С7, С13, С14, а правом используемого терминала является полномочие «секретно» и группы С11, С14, то пользователю с данного терминала будет разрешен доступ только к данным с грифом «конфиденциально» и «секретно» в группе С14. Если правом терминала является «секретно» и разрешен доступ к группам С11 и С15, а пользователь имеет описанные выше полномочия, то пользователь с этого терминала не будет иметь доступа ни к какой из 16 групп, так как пересечение прав пользователя и терминала является пустым.

Аналогично могут быть скомбинированы права прикладной программы и пользователя.

При необходимости управление доступом может быть осуществлено вне уровня файлов, т.е. на уровне каталогов. С помощью каталогов могут быть установлены иерархии последовательно более ограниченных доступов.

Регистрация

Регистрация является одним из эффективных методов увеличения безопасности вычислительных систем. Без ведения точного регистрационного журнала невозможно проследить за тем, что происходило в прошлом, и соответственно, перекрыть каналы утечки информации. Осуществить ведение точных журналов довольно просто, поскольку современные вычислительные системы способны записывать все осуществленные или неосуществленные попытки доступа к

122

данным или программам. Регистрационный журнал, управляющий вычислительной системой, может анализироваться как периодически, так и непрерывно.

В регистрационных журналах ведется список всех запросов, осуществляемых пользователями. Для каждого запроса фиксируется выделяемое системой время, элементы данных, использование терминалом, предоставляемые задания или программы, а также информация, был ли разрешен доступ или нет.

Журналы регистрации должны позволять администратору системы определять:

профили полномочий, связанных с любым защищаемым ресурсом;

учет всех изменений в профилях полномочий;

сами изменения, сделанные в профилях полномочий;

все доступы, осуществленные к любому защищаемому ресурсу;

все отказы в доступе;

любые случаи, когда доступ к защищаемым данным был разрешен системой, но пользователь или терминал его не использовал;

любые перестановки «стрелок» системных часов или другие изменения в содержании памяти.

Для ведения таких журналов в современных ОС предусмотрены служебные программы учета.

7.3. Преобразование секретной информации (криптография)

Использование криптографии (в переводе с греческого «тайнопись») является одним из методов, значительно повышающих безопасность передачи данных в сетях ЭВМ и данных, хранящихся в удаленных устройствах памяти.

Преобразование секретной информации – это кодирование данных, которое используется для маскировки информации. Эти преобразования изменяют данные, представленные в явной форме, так что они становятся нераспознаваемыми (с определенной степенью надежности) неавторизованными людьми. Шифрование является особенно эффективным средством против прослушивания сообщений, передаваемых по канала связи, и неавторизованных доступов к данным, хранящихся в файлах.

123

Введем несколько понятий.

Криптография – наука о том, как обеспечить секретность сообщения.

Криптоанализ – наука о том, как вскрыть шифрованное сообщение, т. е. извлечь открытый текст, не зная ключа.

Криптология – раздел математики, изучающий математические основы криптографических методов.

Основной схемой классификации всех криптоалгоритмов является следующая схема.

Тайнопись – отправитель и получатель производят над сообщением преобразование, известное только им двоим. Сторонним лицам неизвестен сам алгоритм шифрования.

Криптография с ключом – алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра – «ключа», которым обладают только отправитель и получатель.

Симметричный криптоалгоритм – для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ).

Ассиметричный криптоалгоритм – для зашифровки сообщения используется один ключ, а для расшифровки – другой. При этом один ключ является доступным для всех («открытый ключ»), другой («секретный ключ») имеется только у одного человека (получателя или отправителя).

Симметричные криптосистемы

Под симметричными криптосистемами понимаются такие системы, в которых для шифрования и расшифровки сообщений используется один и тот же ключ (рис. 35).

Исходное

Отправитель

Получатель

Х = f -1(K, Y)

сообщение

 

Y = f (K, X)

 

X

Шифратор

Шифратор

 

 

 

 

 

Ключ (К)

Ключ (К)

 

Рис. 35. Схема симметричного шифрования

124

Все многообразие симметричных систем основывается на следующих базовых классах:

моно- и многоалфавитные подстановки;

перестановки;

блочные шифры;

гаммирование.

Подстановки

В прямых подстановках каждый знак исходного текста заменяется одним или несколькими знаками. Одним из важных подклассов прямых подстановок являются моноалфавитные подстановки, в которых устанавливается взаимнооднозначное соответствие между знаком ei исходного алфавита и соответствующим знаком сj зашифрованного текста. Все методы моноалфавитной подстановки можно представить как числовые преобразования букв исходного текста, рассматриваемых как числа, по следующей формуле:

c ≡ (a*e + s) mod K ,

(7.2)

где a – десятичный коэффициент; s – коэффициент сдвига; e – код буквы исходного текста; c – код зашифрованной буквы; K – длина алфавита; mod – операция вычисления остатка от деления выражения в скобках на модуль К.

Пример. Шифр Цезаря

Рассмотрим шифрование на алфавите, состоящим и 26 латинских букв и знака пробела (пробел будем изображать знаком #). Знаку # присвоим код 0, букве A – код 1, B – код 2,… букве Z – код 26.

Исходное сообщение: WE#NEED#SNOW Возьмем следующие параметры: a = 1, s = 2, K = 27 Формула для шифрования примет вид

c ≡ (e + 2) mod 27

(7.3)

Входной алфавит:

# A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Выходной алфавит

B C D E F G H I J K L M N O P Q R S T U V W X Y Z # A (Буквы сдвигаются на две позиции: A-C B-D и т. д.)

125

Тогда исходное сообщение в зашифрованном виде будет выглядеть так:

YGBPGGFBUPQY

Для расшифровки (для случая, когда a=1) используется следующая формула

e ≡ (K+ c – s) mod K

(7.4)

Простая многоалфавитная подстановка последовательно и циклически меняет используемые алфавиты (в предыдущем случае для шифрования использовался один алфавит). При m-алфавитной подстановке знак a1 из исходного сообщения заменяется знаком из алфавита B1; знак a2 – знаком из алфавита B2; … знак am – знаком из алфавита Bm; знак am+1 – знаком из алфавита B1 и т. д. Эффект использования многоалфавитной подстановки состоит в том, что обеспечивается маскировка частотной статистики исходного языка, так как конкретный знак из алфавита А преобразуется в несколько различных знаков шифровального алфавита В.

Пример

Исходное сообщение: WE#NEED#SNOW

Ключ: SECURITYSECU

В качестве ключа выбрано слово SECURITY. Слово записывается под исходным сообщением, когда буквы ключа исчерпываются, начинаем повторять слово, пока не закончатся буквы исходного сообщения. Каждая буква ключа (точнее ее код) будет задавать сдвижку в исходном алфавите для получения зашифрованного символа. В качестве алфавита используем латинские буквы и знак # вместо

пробела.

 

 

 

 

 

Исходный

ключ

 

 

Шифр

Текст

 

 

 

 

 

(W

+

S) mod 27

= (23 + 19) mod 27 = 15→ O

(E

+

E) mod 27

= (5 + 5) mod 27

= 10

J

(#

+

C) mod 27

= (0 + 3) mod 27

= 3

C

 

 

 

 

 

Задание

Предлагаем в качестве упражнения составить шифровку до конца.

126

Перестановки

Знаки исходного текста можно переставлять в соответствии с определенным правилом.

Пример 1. Линейная перестановка Пусть необходимо зашифровать следующий текст: ГРУЗИТЕ#АПЕЛЬСИНЫ#БОЧКАХ

Разобьем текст на группы длиной, например по 4 символа: ГРУЗ ИТЕ# АПЕЛ ЬСИН Ы#БО ЧКАХ Зададим следующее правило перестановки: «переставить группиров-

ки из четырех букв, находящихся в порядке 1-2-3-4 в порядок 3-1-4-2». Получим следующий зашифрованный текст:

УГРЗ ЕИ#Т ЕАЛП ИЬНС БЫО# АЧХК Замечание

Если длина сообщения не кратна длине группы, то последнюю группу дополняем символами (например, пробелами) до нужной длины.

Запись исходного текста и последующее считывание шифротекста можно производить по разным путям некоторой геометрической фигуры, например, квадрата или прямоугольника.

Пример 2. Решетка Кардано Решетка Кардано – это прямоугольная карточка с отверстиями,

чаще квадратная, которая при наложении на лист бумаги оставляет открытыми лишь некоторые его части. Число строк и столбцов четно. Карточка сделана так, что при ее последовательном повороте каждая клетка лежащего под ним листа будет занятой. Если решетка квадратная, то можно последовательно поворачивать ее вокруг центра квадрата на 90° (рис. 35).

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 35. Последовательные состояния решетки Кардано

127

Задание

Пусть имеется следующая решетка Кардано.

Шифровка выглядит так: ВАВОЧСМУНОТИМЫЖРОЕЬУХСОЙМДОСТОЯАСНТВ Расшифровать сообщение, вращая решетку по часовой стрелке

на 90°. Сообщение впишите в квадрат по строкам и, последовательно вращая решетку, считывайте очередные буквы исходного текста. Вы прочитаете известную поговорку.

Методы подстановок и перестановок по отдельности не обеспечивают необходимую криптостойкость. Поэтому их используют совместно, а также аддитивным методом. При шифровании аддитивным методом в начале исходный текст шифруют методом подстановки, преобразуя каждую букву в число, а затем к каждому числу добавляют секретную гамму (см. далее) – псевдослучайную числовую последовательность.

Блочные шифры

Блочные шифры представляют собой семейство обратимых преобразований блоков (частей фиксированной длины) исходного текста.

Под N-разрядным блоком будем понимать последовательность из нулей и единиц длины N:

x = (x0 , x1 , …xN-1) Z2, N .

(7.5)

x в Z2, N можно интерпретировать как вектор и как двоичное представление целого числа

|| x ||=N−1 xi 2N i −1

(7.6)

i =0

Под блочным шифром будем понимать элемент

128

π SYM (Z 2,N ) : x y =π(x),

где x = (x0 , x1 , …xN-1), y = (y0 , y1 , …yN-1).

Хотя блочные шифры являются частным случаем подстановок, их следует рассматривать особо, поскольку, во-первых, большинство симметричных шифров, используемых в системах передачи данных, являются блочными, и, во-вторых, блочные шифры удобнее описывать в алгоритмическом виде, а не как обычные подстановки.

Потоковые шифры

Потоковые шифры представляют собой разновидность гаммирования и преобразуют открытый текст в шифрованный последовательно по одному биту. Генератор ключевой последовательности, иногда называемый генератором бегущего ключа, выдает последовательность бит k1, k2 , … kN. Эта ключевая последовательность складывается по модулю 2 («исключающее или») с последовательностью бит исходного текста e1, e2 , …, eN:

ci =ei ki .

(7.7)

На приемной стороне шифрованный текст складывается по модулю 2 с идентичной ключевой последовательностью для получения исходного текста:

ei =ci ki .

(7.8)

Стойкость системы целиком зависит от внутренней структуры генератора ключевой последовательности. Если генератор выдает последовательность с небольшим периодом, то стойкость системы невелика. Напротив, если генератор будет выдавать бесконечную последовательность истинно случайных бит, то получим одноразовый блокнот с идеальной стойкостью.

Потоковые шифры наиболее пригодны для шифрования непрерывных потоков данных, например, в сетях передачи данных.

Ассимметричные криптосистемы

Еще одним обширным классом криптосистем являются так называемые ассиметричные, или двухключевые криптосистемы (рис. 36).

129

Исходное

Отправитель

Получатель

сообщение

 

Х = f -1(K2, Y )

 

Y =f (K1 , X )

 

Шифратор

Шифратор

X

 

 

 

Ключ K1

Ключ К2

Рис. 36. Схема ассиметричного шифрования

Эти системы характеризуются тем, что для шифрования и расшифрования используются разные ключи, связанные между собой некоторой зависимостью. При этом данная зависимость такова, что установить один ключ, зная другой, с вычислительной точки очень трудно.

Один из ключей, например, ключ шифрования, можно сделать общедоступным (открытым). Тогда любой пользователь может послать зашифрованное сообщение данному абоненту, которое он расшифрует с помощью второго (секретного) ключа. Если сделать общедоступным ключ расшифрования, то на базе полученной системы можно построить систему аутентификации передаваемых сообщений, так как любой абонент, получивший послание, может проверить его подпись с помощью ключа расшифрования. Поскольку один из пары ключей общедоступен, то такие системы получили название криптосистем с открытым ключом.

Криптосистема с открытым ключом определяется тремя алгоритмами: генерации ключей, шифрования и расшифрования. Алгоритм генерации ключей открыт, всякий может подать на вход генератора ключей случайную строку и получить пару ключей (k1, k2). Один из ключей публикуется, он называется открытым, а второй, называемый секретным, хранится в тайне.

Односторонние функции и функции ловушки

Центральным понятием в теории ассиметричных криптосистем является понятие односторонней функции.

Неформально под односторонней функцией понимается эффективно вычислимая функция, для обращения которой (т. е. нахождения хотя бы одного значения аргумента по известному значению

130