Лабораторная работа №3

I.  «Абсолютно стойкий шифр. Применение режима однократного гаммирования»

Цель работы

Освоить на практике применение режима однократного гаммирования.

Требуемое время: 4 часа

Оборудование:

1.  Персональный компьютер

2.  ОС Windows 2000 и выше, либо ХР

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

Рис.1 Схема однократного использования Вернама

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

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

Допустим, в тайной деловой переписке используется метод однократного наложения гаммы на открытый текст. Напомним, что "наложение" гаммы не что иное, как выполнение операции сложения по модулю 2 (xor), которая в языке программирование С обозначается знаком ^, а в математике – знаком Å, её элементов с элементами открытого текста.

НЕ нашли? Не то? Что вы ищете?

Стандартные операции над битами: 0 Å 0 = 0, 0 Å 1 = 1, 1 Å 0 = 1, 1 Å 1= 0

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

Режим шифрования однократного гаммирования реализуется следующим образом:

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

, (1)

где

i-тый символ получившегося зашифрованного послания,

i-тый символ открытого текста,

i-тый символ ключа,

i=1,m

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

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

, (2)

. (3)

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

Тогда уже будут возможны операции (1), (3), необходимые для решения поставленных задач.

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

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

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

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

·  полная случайность ключа;

·  равенство длин ключа и открытого текста;

·  однократное использование ключа.

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

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

2)Применение детерминированного алгоритма генерации псевдослучайных чисел с помощью функции Random, хеш-функций или рекуррентных формул. При этом следует помнить, что никакой детерминированный алгоритм не может генерировать полностью случайные числа. Как сказал Джон фон Нейман, «всякий, кто питает слабость к арифметическим методам получения случайных чисел, грешен вне всяких сомнений». Любой ГПСЧ с ограниченными ресурсами рано или поздно зацикливается - начинает повторять одну и ту же последовательность чисел

Примером такого алгоритма является печально известный алгоритм RANDU (один из вариантов линейного конгруэнтного генератора псевдослучайных чисел), десятилетиями использовавшийся на мейнфреймах. Он определяется рекуррентным соотношением:

Vi+1 = (65539 Vi) mod 231, где V0 нечётное.

Псевдослучайные числа вычисляются следующим образом: Xi = Vi / 231.

Рассмотрим пример:

Ключ Центра:

05 0C 17 7F 0E 4E 37 D2 94 10 09 2E 22 57 FF C8 0B B2 70 54

Сообщение Центра:

Штирлиц – Вы Герой!!

D8 F2 E8 F0 EB E8 F6 20 2D 20 C2 FB 20 C3 E5 F0 EE E9 21 21

Зашифрованный текст, находящийся у Мюллера:

DD FE FF 8F E5 A6 C1 F2 B9 30 CB D5 02 94 1A 38 E5 5B 51 75

Дешифровальщики попробовали ключ:

05 0C 17 7F 0E 4E 37 D2 94 10 09 2E 22 55 F4 D3 07 BB BC 54

и получили текст:

D8 F2 E8 F0 EB E8 F6 20 2D 20 C2 FB 20 C1 EE EB E2 E0 ED 21

Штирлиц - Вы Болван!

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

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

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

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

порядок выполнения работы

1. Изучить теоретическую часть по приведенным выше данным и дополнительной литературе.

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

·  Определить вид шифротекста при известном ключе и известном открытом тексте.

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

3. Привести пример работы программы.

Порядок оформления результатов

Оформите отчет по выполненной работе в редакторе WORD. После номера и названия задания дайте ответ в следующем порядке: 

1.  Укажите название и цель работы.

2.  Условие задания (алгоритм).

3.  Приведите исходный текст составленной программы.

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

Контрольные вопросы

1.  В чём заключается смысл однократного гаммирования?

2.  Назовите недостатки однократного гаммирования.

3.  Назовите преимущества однократного гаммирования.

4.  Как по открытому тексту и ключу получить шифртекст?

5.  Как по открытому тексту и шифротексту получить ключ?

Литература

, , - Введение в криптографию, 1999г.