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

Инф. безопасность

.pdf
Скачиваний:
39
Добавлен:
18.03.2015
Размер:
2.7 Mб
Скачать

ключу k1. Шифртекст образуется при считывании из этой матрицы по ключу k2.

Пример 8. Открытый текст: «ШИФРОВАНИЕ ПЕРЕСТАНОВКОЙ»

Ключи: k1 : 5-3-1-2-4-6; k2 : 4-2-3-1.

1ИЕ # П

2 Е Р Е С

3 0 ВАН

4 Т АН 0

5ШИФР

6 В К 0 Й

К1

К2 1 2 3 4

Запись по строкам в соответствии с ключом К1. Чтение по столбцам в соответствии с ключом К2.

Шифртекст: «ПСНОРЙЕРВАИК#ЕАНФОИЕОТШВ»

Перейдем к вопросу о методах вскрытия шифров перестановки. Проблема, возникающая при восстановлении сообщения, зашифрованного шифром перестановки, состоит не только в том, что число возможных ключей велико даже при небольших длинах текста. Если и удастся перебрать все допустимые варианты перестановок, не всегда ясно, какой из этих вариантов истинный. Например, пусть требуется восстановить исходный текст по криптограмме АОГР, и нам ничего не известно, кроме того, что применялся шифр перестановки. Какой вариант «осмысленного» исходного текста признать истинным: ГОРА или РОГА? А может быть АРГО? Приведем пример еще более запутанной ситуации. Пусть требуется восстановить сообщение по криптограмме

ААНИНК-ТЕОМЛ,З.ЬЬЗИВТЛП-ЬЯО

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

КАЗНИТЬ,-НЕЛЬЗЯ-ПОМИЛОВАТЬ. и КАЗНИТЬ-НЕЛЬЗЯ,-ПОМИЛОВАТЬ.

31

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

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

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

Пусть имеется решетка размера m×r, и зашифрованное с ее помощью сообщение длины mr-k, не содержащее пробелов. Незаполненные k мест в решетке при условии, что k ≤ mr/4, соответствуют вырезам в четвертом положении решетки. На основе такой информации, происходит резкое уменьшение числа допустимых решеток (их будет 4mr/4-k).

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

Будем подбирать порядок следования столбцов друг за другом так, чтобы во всех строках этих столбцов получались «читаемые» отрезки текста. Восстановление текста начинается с подбора цепочки из столбцов, содержащей в последней строке сочетание ТЧК, так как естественно предположить, что сообщение заканчивается точкой. Далее подбираются столбцы, продолжающие участки текста в других строках, и т.д.

Сочетание лингвистического метода с учетом

32

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

3.8Упражнения

1.Попробуйте расшифровать сообщение ИЧЕУНК,

полученное в результате преобразования с помощью

1

2

3

4

5

6

 

 

 

 

 

 

 

 

подстановки:

5

2

3

1

4

6

 

 

 

2.Расшифровать: НДВГИАРО. Ключ перестановки 3-8-1-5-2-7-6-4.

3.Шифртекст: «ФНШОИАВРСИЕЕЕРПНЙТВАОКО», ключ перестановки 3-8-1-5-2-7-6-4

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

5.Ключом шифра, называемого «поворотная решетка», является трафарет, изготовленный из квадратного листа клетчатой бумаги размера n×n (n — четно). Некоторые из клеток вырезаются. Одна из сторон трафарета помечена. При наложении этого трафарета на чистый лист бумаги четырьмя возможными способами (помеченной стороной вверх, вправо, вниз, влево) его вырезы полностью покрывают всю площадь квадрата, причем каждая клетка оказывается под вырезом ровно один раз. Буквы сообщения,

33

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

6.Расшифровать шифр ОНМТЛСИ.ДРН#ПОЕОЕЬ, полученный при маршрутной перестановке с помощью ключей:

К1=4-1-6-3-5-2 К2=1-3-2

7.Прочесть зашифрованное квадратной решеткой Кардано сообщение: «вавочс муноти мыжрое ьухсой мдосто яаснтв»

3.9Комбинированные методы

Наиболее часто применяются такие комбинации, как подстановка и гамма, перестановка и гамма, подстановка и перестановка, гамма и гамма.

В качестве примера рассмотрим шифр, предложенный Д.Френдбергом [6], который комбинирует многоалфавитную подстановку с генератором псевдослучайных чисел. Суть алгоритма поясняется схемой, представленной на рисунке 7.

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

34

Рисунок 4 — Схема алгоритма Д.Френдберга

Пример 15.Открытый текст: «АБРАКАДАБРА» Используем одноалфавитную замену согласно таблице

А Б ДК Р Х V N R S

Последовательность чисел, вырабатываемая датчиком: 31412543125.

1.у1 = X. После перестановки символов исходного алфавита получаем (γ 1 = 3).

Д Б АК Р

X V N R S

2. у2 = V. Таблица после перестановки (21) принимает вид: Б ДАК Р

35

Х V N R S

Осуществляя дальнейшие преобразования в соответствии с алгоритмом Френдберга, получаем шифртекст: «XVSNSXXSSSN»

3.10Упражнения

1. При шифровании методом Френдберга был получен шифр: PXOOOPP Первые значения датчика: 02 03 01 04 03 05. Расшифровать исходное сообщение если одноалфавитная замена выглядит следующим образом:

A Е К Л П

X T P K O

2. Расшифровать сообщение, полученное методом Френдберга

C#B#NPPZHCBB Значения датчика ПСЧ 02 03 04 01 02 03 04 01 02 03 04, таблица подстановки:

А В Е К Н О П Р С Т

I J # J Z H C B N P

3. Расшифровать сообщение, полученное методом Френдберга

EEKVEPVVALEAYWFLT Значения датчика 4 4 4 1 4 3 4 4 1 4 3, таблица подстановки:

# А Е И М Н О Р Т Ф Ц

О W T D Y A K V E L F

4 Общие сведения о блочных шифрах

Характерной особенностью блочных криптоалгоритмов является тот факт, что в ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z=EnCrypt(X,Key) и X=DeCrypt(Z,Key)

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

Все действия, производимые над данными блочным криптоалгоритмом, основаны на том факте, что преобразуемый

36

блок может быть представлен в виде целого неотрицательного числа из диапазона, соответствующего его разрядности. Так, например, 32-битный блок данных можно интерпретировать как число из диапазона 0..4'294'967'295. Кроме того, блок, разрядность которого обычно является «степенью двойки», можно трактовать как несколько независимых неотрицательных чисел из меньшего диапазона (рассмотренный выше 32-битный блок можно также представить в виде 2 независимых чисел из диапазона 0..65535 или в виде 4 независимых чисел из диапазона

0..255). [7]

В шифрах этого типа результат шифрования каждого блока зависит только от его значения, естественно, не считая секретного ключа:

Как следствие, при шифровании двух одинаковых блоков данных получатся идентичные блоки шифротекста:

Из указанной особенности блочных шифров следует очевидный способ их анализа - статистический. Если известен закон распределения блоков открытого текста, то проанализировав статистику блоков шифротекста, можно установить соответствие между ними. Для того, чтобы исключить подобную возможность, размер блока должен быть выбран достаточно большим. Например, при размере блока в один байт анализ шифра осуществим вручную, без использования вычислительной техники; при размере блока в 16 бит этот анализ элементарно реализуется на персональной ЭВМ и занимает несколько секунд; при размере блока в 32 бита компьютерный анализ также осуществим, хотя требует больше времени и большего необходимого объема зашифрованных данных. При дальнейшем увеличении размера блока статистический анализ становится все менее осуществимым на практике. Для большинства современных шифров выбрана величина блока в 64 бита, для нее исчерпывающий анализ практически исключен прежде всего из-за невозможности набрать соответствующую статистику шифротекстов. При еще больших размерах блока усложняется не только криптоанализ, усложняется и сам алгоритм шифрования - вот почему неразумно увеличивать его сверх необходимого.

37

Каким же условиям должен удовлетворять стойкий блочный шифр? Эти условия сформулировал Шеннон в ряде своих основополагающих работ по теории шифрования: такой шифр должен обладать свойствами перемешивания и рассеивания:

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

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

-опять же, для стороннего наблюдателя, обладающего лишь ограниченными вычислительными ресурсами.

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

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

38

условия обратимости функции относительно величины X сделать функцию необратимой относительно ключа Key.

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

Криптоалгоритм именуется идеально стойким, если прочесть зашифрованный блок данных можно, только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью 1/2 после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2N-1 проверок. Таким образом, в общем случае стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом. Даже предположив, что перебор ключей производится на специально созданной многопроцессорной системе, в которой благодаря диагональному параллелизму на проверку 1 ключа уходит только 1 такт, то на взлом 128 битного ключа современной технике потребуется не менее 10210лет. Естественно, все сказанное относится только к идеально стойким шифрам, которыми, например, с большой долей уверенности являются приведенные в таблице выше алгоритмы.

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

39

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

Таким образом, на функцию стойкого блочного шифра Z=EnCrypt(X,Key) накладываются следующие условия:

1.Функция EnCrypt должна быть обратимой.

2.Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей Key.

3.Не должно существовать иных методов определения каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.

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

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

Биективные математические функции

Сложение X'=X+V

 

Исключающее ИЛИ

X'=X XOR V

 

 

 

 

Умножение по модулю 2N+1

X'=(X*V) mod (2N+1)

 

Умножение по модулю 2N

X'=(X*V) mod (2N)

 

 

 

 

Битовые сдвиги

 

 

 

 

 

Арифметический сдвиг влево

X'=X SHL V

 

 

 

40