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

Garbage / Информатика / 2.2.1.1 - Криптосистемы использующие секретные ключи шифрования

.pdf
Скачиваний:
32
Добавлен:
21.05.2015
Размер:
138.77 Кб
Скачать

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

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

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

а б в г д е ж з и й к л м н о п р с

щ ъ ы ь э ю я

-

а б в г

 

д е

 

ж з и й

0

1

2

3

4

5

6

7

8

9

10

11

 

12

13

14

15

16

17

т у ф х ц ч ш щ ъ ы ь э

 

ю я

-

к л м н о п р с

т

 

у ф х

 

ц

ч

ш

18

19

20

 

21

22

23

24

25

26

27

28

29

 

30

31

32

Обратим внимание, что символы, вышедшие в результате сдвига за рамки алфавита (в приведенной выше подстановке эти символы подчеркнуты), занимают освободившиеся 8 позиций в начальной части алфавита. Естественно, что число таких символов равно постоянной сдвига (в нашем случае оно равно восьми). Если буквы алфавита пронумеровать в порядке возрастания занимаемых ими позиций в алфавите ('а' = 0, 'б' = 1, 'в' = 2, ..., 'я' = 31, '-' = 32), то очередная буква исходного текста, которая в алфавите занимает i-ю позицию, будет заменена буквой, занимающей j-ю позицию алфавита, где

j = (i-k) mod (N)

(5.1)

k - постоянная сдвига, равная в нашем примере восьми, а N - число различных символов, равное в нашем примере тридцати трем. Например, в результате такого шифрования исходный текст "встреча у букиниста" примет форму шифрограммы "ыйкиюпщшлшълвае айкщ". Чтобы расшифровать такую шифрограмму, необходимо очередную букву шифрограммы, занимающую i-ю позицию алфавита, заменить буквой, занимающей в алфавите j-ю позицию, где

j = (i + k) mod (N)

(5.2)

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

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

а б в г д е ж з и й к л м н о п р й - а б э ю я ъ ы ь т у ф х ц ч ш

X =

с т у ф х ц ч ш щ ъ ы ь э ю я - c в г д е ж з и й к л м н о п р

Для расшифрования текстов, зашифрованных согласно некоторой подстановке X, используется обратная ей подстановка Y = X -1, т.е. такая, чтобы имело место X Y = E , где E - единичный элемент, представляющий тождественную подстановку:

а б в г д е ж з и й к л м н о п р а б в г д е ж з и й к л м н о п р

E =

с т у ф х ц ч ш щ ъ ы ь э ю я - с т у ф х ц ч ш щ ъ ы ь э ю я -

Подстановочные алгоритмы шифрования в классическом варианте их использования оказались легко взламываемыми. Основным "виновником" этого является присущая естественным языкам избыточность, в данном случае выражающаяся в том, что различные буквы алфавита имеют различную вероятность встречаемости в текстах естественных языков. Применительно к русским текстам, например, на основе результатов статистической обработки свыше 0,5 млн. символов можно утверждать, что если какая-то буква имеет наименьшую встречаемость в шифрограмме, то скорее всего эта буква - результат преобразования какой-либо одной из букв 'ъ', 'ф', 'э' или 'щ'. И, наоборот, если какая-то буква имеет наивысшую встречаемость в шифрограммах, то скорее всего эта буква - результат преобразования какой-либо одной из букв 'о', 'е', 'и' или 'п'. Руководствуясь аналогичными соображениями, методом проб и ошибок удается сравнительно легко взламывать подстановочные алгоритмы. Если же учесть, что для анализа могут быть использованы огромные возможности современных

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

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

(значение k принято здесь равным трем).

 

 

 

 

в

р

а

к

и

 

а

с

е

-

б

и

с

-

т

ч

у

у

н

т

-

и в качестве шифрограммы принимается последовательность букв "вра – киасе - бис - тчуунт -". Иными словами, используется правило "запись по столбцам - шифрограмма по строкам". Расшифровка шифрограммы осуществляется в обратном порядке "запись по строкам - исходный текст по столбцам", а именно, буквами шифрограммы поочередно заполняются клетки прямоугольника из т = M/k столбцов (М - число букв в шифрограмме), а исходный текст формируется поочередным чтением букв по столбцам.

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

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

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

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

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

Принято считать, что во всех рассмотренных выше криптосистемах при шифровании и расшифровании конфиденциальных текстов используется один и тот же секретный ключ. В принципиальном же плане такое утверждение не совсем верно. Вернемся, например, к рассмотрению простейшего подстановочного алгоритма, реализованного путем постоянного сдвига всех букв алфавита на 8 позиций вправо (см. выше). В рамках этой системы при шифровании исходных текстов буква 'а' заменяется буквой 'щ', тогда как при расшифровании криптограмм та же буква 'а' заменяется буквой 'и'. Иными словами, ключи шифрования и расшифрования в общем-то различны, но переход от ключа шифрования к ключу расшифрования настолько прост, что эти ключи практически отождествляют. Для человека, владеющего ключом шифрования, никакого труда не представляет расшифрование шифрограмм. Иными словами, если у = f(x) - функция шифрования, то нахождение функции х = f -1(y) настолько просто, что функции f(x) и х = f -1(y) практически отождествляют и говорят, что имеют дело с одним и тем же секретным ключом.

Существенно по-иному обстоит дело в криптосистемах открытого шифрования, где определение значения функции f -1(y) на основе значения функции f(x) чрезвычайно затруднено. В следующем разделе мы проанализируем принцип построения алгоритмов открытого шифрования, где ключи шифрования и расшифрования различны настолько, что знание ключа шифрования вовсе не является достаточным для расшифрования криптограмм.