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

книги / Основы информационной безопасности

..pdf
Скачиваний:
7
Добавлен:
12.11.2023
Размер:
11.15 Mб
Скачать

Z = (Yt + Yt + 1)mod32, t = 1,.., n

(13.2)

вычисляется псевдослучайная последовательность Z1,…, Zn, используемая вместо случайной гаммы. Как и в предыдущем примере, шифрование заключается в сложении по модулю 32 элементов гаммы с порядковыми номерами символов шифруемого текста.

Зашифруем на ключе К = (04, 31, 15) сообщение «ПРИКАЗЫВАЮФНАСТУПАТЬ».

Рекуррентная последовательность Y1,…, Yn + 1 в данном случае будет иметьвид«04 31 15 19 18 01 20 06 07 27 01 08 03 04 12 15 19 31 14 01 00».

Сложим по модулю 32 порядковые номера символов нашего сообщения с элементами псевдослучайной последовательности (гаммы), полученной по формуле (13.2):

15 16 08 10 00 07 27 02 00 30 20 13 00 17 18 19 15 00 18 28 – сооб-

щение; 03 14 02 05 19 21 26 13 02 28 09 11 07 16 27 02 18 13 15 01 – гамма;

18 30 10 15 19 28 21 15 02 26 29 24 07 01 13 2101 13 01 29 – зашиф-

рованное сообщение.

Общеечисловозможныхтекстовиз20 символовсоставляет3220, аколичество различных ключей в данном случае 323 = 32 768. Следовательно, количество возможных вариантов расшифрования при неизвестном ключе не превосходит 32 768, и, имея перехваченную криптограмму, а также зная алгоритм шифрования, криптоаналитик может отбросить большую часть текстов как недопустимых (в частности, будет отброшено сообщение «ПРИКАЗЫВАЮ ОТСТУПАТЬ»).

Таким образом, криптоаналитик имеет 32 768 вариантов сообщения, из которых он должен выбрать единственный правильный. Возникает вопрос – можно ли вообще отличить настоящее сообщение от ошибочных вариантов? Если сообщение представляет собой осмысленный текст на русском языке, то его наверняка удастся отличить от ложных, так как из 3220 слов из рассматриваемого алфавита осмысленными текстами является только малая часть. Согласно исследованиям, проведенным еще К. Шенноном [47], осмысленных текстов из 20 букв на английском языке порядка 106. Приблизительно такая же оценка справедлива и для русского языка.

411

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

зом текст не окажется осмысленным, равна приблизительно

3220

106

.

3220

 

 

Следовательно, вероятность появления среди 32 767 случайных текстов осмысленного текста оценивается следующим образом:

 

32

20

10

6 32767

 

32767·10

6

1

 

 

<

< 2,6·1020 .

 

 

3220

 

 

3220

 

Для сравнения: вероятность угадать 6 чисел, выбранных случайно из 36, больше чем 10–10.

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

555 ч.

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

412

В современных алгоритмах шифрования используются гораздо более длинные ключи, чем в нашем примере. В частности, широко используемый алгоритм шифрования DES имеет ключ длиной 56 бит. Если мы захотим просмотреть все варианты дешифрования сообщения, зашифрованного с помощью алгоритма DES (количество ключей в этом случае 256 7,2·1016), то для этого понадобится более 2 млрд лет при скорости один вариант в секунду. Метод дешифрования перебором ключей становится действительно опасным, если имеется алгоритм, позволяющий автоматизировать отбраковку ошибочных вариантов с помощью ЭВМ. Для этого может использоваться несколько способов.

Во-первых, если для проверки правильности сообщения используется контрольная сумма, то она же может послужить и для отбраковки опробуемых вариантов.

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

Может, однако, оказаться, что проверку указанных типов пройдет большое количество сообщений. Например, если контрольная сумма содержит 32 бита, а ключ – 56 бит, то мы получим приблизительно 224 = 8 388 608 сообщений, имеющих правильную контрольную сумму, среди которых нужно найти единственное подлинное. В таких случаях, а также если контрольная сумма отсутствует и неизвестна даже часть зашифрованного текста, при отбраковке ложных сообщений не обойтись без так называемых «критериев на открытый текст». Такие критерии предназначеныдлявыявлениятехпоследовательностейсимволовзаданного алфавита, которые допустимы в качестве открытых сообщений.

Построим критерий на открытый текст для отбраковки ложных вариантов в рассматриваемом нами примере.

Проанализировав частоты встречаемости различных пар соседних букв в текстах русского языка, можно сделать вывод, что вероятность появления317 изнихпрактическиравнанулю. Длянашегослучая, когда вместо пробела используется буква «Ф», столбец, соответствующий букве«Ф», объединяется состолбцом, соответствующимпробелу, ианалогичная операция проводится со строками. Поэтому в рассматриваемом

413

алфавите из 32 букв число невозможных сочетаний соседних символов составляет 287. Данная особенность позволяет сформулировать критерий на открытый текст: если в тексте имеется хотя бы одна запретная биграмма, то он не является открытым сообщением.

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

 

287

 

19

1

322

 

0,002 .

 

 

 

 

Следовательно, среди

32 768

вариантов сообщения лишь око-

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

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

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

414

Для генерации одного символа опробуемого сообщениянеобходимодвеоперациисложенияпомодулюинесколько обращений к памяти. Проверка того, является ли сгенерированное сообщение текстом на русском языке, реализуется с помощью п обращений к памяти и сравнений, где п – длина текста (на самом деле несколько меньше, так как если в тексте уже найдена запретная биграмма, то проверять оставшиеся биграммы нет смысла). Таким образом, трудоемкость метода тотального опробования ключей можно выразить формулой Т= Сп|К|, где С – некоторая константа, не зависящая от размерности задачи. В нашем случае Т = С·20·32 768 = С·655 360, то есть трудоемкость опробования всех ключей нашего алгоритма шифрования составляет несколько миллионов операций (современная персональная ЭВМ проделает эти вычисления практически мгновенно).

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

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

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

415

мерами «15», «16», «08». Следовательно, выполняются соотноше-

ния: (15 + Z1)mod 32 = 18, (16 + Z2)mod 32 = 30, (8 + Z3)mod 32 = 10,

согласно которым первые три знака гаммы принимают значения Z1 = 3,

Z2 = 14, Z3 = 2. Исходяизэтойинформации, криптоаналитик противника

может составить систему уравнений:

 

(Y1 + Y2)mod 32 = 3;

 

 

(Y2+ Y3)mod 32 = 14;

 

 

(Y3+ Y4)mod 32 = 2.

для Y4

рекуррентным соотношением

Воспользовавшись

Yt = (Yt – 1+Yt – 3)mod 32,

получаем систему из трех уравнений с тре-

мя неизвестными:

 

 

(Y1+ Y2)mod 32 = 3;

(Y2+ Y3)mod 32 = 14;

(Y3+ 2 Y3)mod 32 = 2.

Выразим Y1 и Y3 через Y2, используя первое и второе уравнения: Y1= (3 – Y2)mod 32, Y3= (14 – Y2)mod 32. Затем, подставив результат в последнее уравнение, получим

(3 – Y2 + 28 – 2 Y2)mod 32 = 2. Отсюда (3 Y2)mod 32 = 29.

Несложно убедиться, что последнее уравнение имеет единственное решение Y2 = 31. В итоге находим ключ Y1 = 4, Y2 = 31, Y3 = 15, воспользовавшись которым можно расшифровать наше сообщение.

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

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

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

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

416

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

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

13.2.Цифровая подпись и системы шифрования

соткрытым ключом

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

417

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

Все эти проблемы позволяет решить криптография с открытым ключом.

Предположим, что имеется пара преобразований Е и D, удовлетворяющих условиям:

1. Для любого сообщения х выполняется равенство D (E (x)) = x. 2. Е и D легко вычисляются для любых исходных данных.

3. Преобразования Е и D сложно обратить, то есть, зная Е и значение Е (х), трудно определить х, а, зная D и x, трудно найти у такое, что

D (y) = x.

В данном случае преобразование Е обеспечивает шифрование информации, a D – расшифрование. Для того чтобы обеспечить секретную связьмеждуабонентамиАиВ, нужночтобыкаждыйизнихсоздалсвою пару преобразований: Е1, D1 и Е2, D2, и передал своему корреспонденту преобразование для шифрования.

Зашифрованное абонентом А сообщение Е2 (х) сможет расшифровать только владелец ключа расшифрования D2 – абонент В. В свою очередь, абонент В шифрует свои сообщения с помощью открытого ключа Е1, принадлежащего А.

Недостатком систем шифрования с открытым ключом является их относительно низкая производительность. По этой причине такие системы, как правило, используют совместно с обычными симметричными системами шифрования для передачи секретного ключа. В этом случае передача сообщения х от абонента А к абоненту В производится следующим образом. Абонент А генерирует секретный ключ К симметричного алгоритма шифрования F и шифрует на нем сообщение х, а затем шифрует К на открытом ключе пользователя В. По каналу связи зашифрованное сообщение FК (x) передается вместе с зашифрованным ключомЕ2 (К). АбонентВсначаларасшифровываетключсимметричной системы шифрования К = D2 (E2 (К)), а затем расшифровывает само сообщение x = FК1FК (x) . Такая система обмена сообщениями позволяет избежать необходимости передачи секретного ключа по защищенному каналу связи и в то же время воспользоваться быстродействием систем шифрования с симметричным ключом.

418

Еслинеобходимоорганизоватьобменшифрованнымисообщениями междунесколькимиабонентами,томожновоспользоватьсяспециальными протоколами открытого распределения ключей. С классической системой открытого распределения ключей Диффи и Хэллмана, а также с ее модификациями можно ознакомиться в работе [40].

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

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

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

2.Она является неотъемлемой частью документа и не может быть перенесена на другой документ.

3.После того, как документ подписан, его невозможно изменить.

4.От подписи нельзя отказаться, то есть подписавший не сможет впоследствии утверждать, что документ подписан без его ведома.

Изложим основные идеи, на которых основан механизм цифровой подписи.

Пусть по-прежнему преобразования Е и D обладают перечисленными ранее свойствами и, кроме того, преобразование D сложно обратить, то есть, зная D и x, трудно найти у такое, что D (y) = x.

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

Чтобы подтвердить подлинность сообщения х абонент А должен

отправить вместе с ним значение Е1 (х), полученное в результате шифрования сообщения на своем секретном ключе. Это значение и являет-

ся цифровой подписью х. Абонент В, получив пару х, Е1 (х), применяет преобразованиеD1 иубеждаетсявтом, чтоD1 (E1 (x)) = x. ЕслиАдержит преобразование Е1 в секрете, то никто, кроме него, не сможет подобрать такое у, чтобы D1 (y) совпадало с х.

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

419

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

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

Рассмотрим теперь некоторые особенности реализации алгоритмов цифровой подписи.

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

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

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

420