страница 1
|
||||||||||||||||||||||||
Похожие работы
|
Лабораторная работа №1 по курсу "Информационная безопасность" Лабораторная работа - страница №1/1
Лабораторная работа №1 по курсу “Информационная безопасность” Лабораторная работа №1Абсолютно стойкий шифр. Применение режима однократного гаммирования.Цель работы Освоить на практике применение режима однократного гаммирования. Указание к работе Простейшей и в то же время наиболее надежной из всех схем шифрования является так называемая схема однократного использования (рис. 1.1), изобретение, которое чаще всего связывают с именем Г.С. Вернама. Гаммирование – это наложение (снятие) на открытые (зашифрованные) данные криптографической гаммы, то есть последовательности элементов данных, вырабатываемых с помощью некоторого криптографического алгоритма, для получения зашифрованных (открытых) данных. С точки зрения теории криптоанализа метод шифрования случайной однократной равновероятной гаммой той же длины, что и открытый текст, является невскрываемым (далее для краткости будем употреблять термин "однократное гаммирования", держа в уме все вышесказанное). Кроме того, даже раскрыв часть сообщения, дешифровщик не сможет хоть сколько-нибудь поправить положение - информация о вскрытом участке гаммы не дает информации об остальных ее частях. Допустим, в тайной деловой переписке используется метод однократного наложения гаммы на открытый текст. Напомним, что "наложение" гаммы не что иное, как выполнение операции сложения по модулю 2 (xor), которая в языке программирование С обозначается знаком ^, а в математике – знаком , её элементов с элементами открытого текста. Этот алгоритм шифрования является симметричным. Поскольку двойное прибавление одной и той же величины по модулю 2 восстанавливает исходное значение, шифрование и расшифрование выполняется одной и той же программой. Р Ключ Key Рис.1.1 Схема однократного использования Вернама Задача нахождения шифротекста при известном ключе и открытом тексте состоит в применение следующего правила к каждому символу открытого текста: , (1) где i-тый символ получившегося зашифрованного послания, i-тый символ открытого текста, i-тый символ ключа, где i=1,m Размерности открытого текста и ключа должны совпадать, и полученный шифртекст будет идентичной длины. Задача нахождения ключа по известному шифротексту и открытому тексту может быть решена, исходя из (1). Обе части равенства сложим по модулю 2 с Mi. Таким образом, получили формулы для решения обеих поставленных задач. Так как открытый текст представлен в символьном виде, а ключ - в своём шестнадцатеричном представлении, то в соответствие с таблицей ASCII-кодов можно представить ключ в символьном виде. Тогда уже будут возможны операции (1), (3), необходимые для решения поставленных задач. К. Шенноном доказано, что если ключ является фрагментом истинно случайной двоичной последовательностью с равномерным законом распределением, причем его длина равна длине исходного сообщения и используется этот ключ только один раз, после чего уничтожается, такой шифр является абсолютно стойким, даже если Криптоаналитик располагает неограниченным ресурсом времени и неограниченным набором вычислительных ресурсов. Действительно, противнику известно только зашифрованное сообщение C, при этом все различные ключевые последовательности Key возможны и равновероятны, а значит, возможны и любые сообщения M, т.е. криптоалгоритм не дает никакой информации об открытом тексте.
Рассмотрим пример: Ключ Центра: 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 Штирлиц - Вы Болван! Пробуя новые ключи, они будут видеть все новые и новые фразы, пословицы, стихотворные строфы, словом, всевозможные тексты заданной длины. Задание Вопрос: Какой нужно подобрать ключ Мюллеру, чтобы получить сообщение: «СНовымГодом, друзья!». Реализовать приложение, позволяющее шифровать и дешифровать данные в режиме однократного гаммирования. Его задачи состоят в следующем:
Контрольные вопросы
Использование однократного гаммирования.Шифрование (кодирование) различных исходных текстов одним ключом.Цель работы Освоить на практике применение режима однократного гаммирования на примере кодирования различных исходных текстов одним ключом. Указание к работе Исходные данные: Две телеграммы Центра: T1 = "НаВашисходящийот1204" T2 = "ВСеверныйфилиалБанка" Ключ Центра длиной 20 байт: K = 05 0C 17 7F 0E 4E 37 D2 94 10 09 2E 22 57 FF C8 OB B2 70 54 Режим шифрования однократного гаммирования одним ключом двух видов открытого текста реализуется следующим образом: Рис.2.1 Общая схема шифрования двух различных текстов одним ключом С помощью формул режима однократного гаммирования получим шифротексты обеих телеграмм: , (1) . Задача нахождения открытого текста по известному шифротексту двух телеграмм, зашифрованных одним ключом, может быть решена, исходя из (1). Сложим по модулю 2 оба равенства (1). Учитывая такое свойство операции xor (), что 1 1= 0, 1 0 = 1 (2) получаем: . (3) Предположим, что одна из телеграмм является "рыбой" - то есть имеет фиксированный формат, в который вписываются значения полей, и злоумышленнику доподлинно этот формат известен. Тогда он получает достаточно много пар (известен вид обеих шифровок) и, предположим, . Тогда, учитывая (2), имеем: . (4) Таким образом, злоумышленник получает возможность определить те символы сообщения , которые находятся на позициях известной "рыбы" сообщения . Догадываясь по логике сообщения , злоумышленник имеет реальный шанс узнать ещё некоторое количество символов сообщения . Затем используем (4), вместо подставляя новоузнанные символы сообщения . И так далее. Действуя подобным образом, злоумышленник если даже не прочитает оба сообщения, то значительно уменьшит пространство их поиска. Задание Обе телеграммы кодируются одним ключом (однократное гаммирование). Мюллер перехватывает обе шифрованные телеграммы. Вопрос: Каким образом, не зная ключа и не стремясь его определить, Мюллер прочитает обе телеграммы? Реализовать приложение, позволяющее шифровать и дешифровать телеграммы и в режиме однократного гаммирования. Его задача состоит в следующем:
Контрольные вопросы
Моделирование работы разрядного скремблераЦель работы Исследовать побитное непрерывное шифрование данных. Ознакомиться с кодированием информации при помощи скремблера. Указание к работе Ознакомиться с лекционным материалом, литературой [8], [10], [13], [14] (список литературы к лекциям по курсу “Информационная безопасность”), а так же приведенные ниже методические указания. Скремблером называется программная или аппаратная реализация алгоритма, позволяющего шифровать побитно непрерывные потоки информации. Рассмотрим сдвиговый регистр с обратной связью (Linear Feedback Shift Register, сокращенно LFSR) – логическое устройство, схема которого изображена на рис. 3.1. Сдвиговый регистр представляет собой последовательность битов. (Количество битов определяется длиной сдвигового регистра. Если длина равна n битам, то регистр называется n-битовым сдвиговым регистром.) Всякий раз, когда нужно извлечь бит, все биты сдвигового регистра сдвигаются вправо на 1 позицию. Новый крайний левый бит является функцией всех остальных битов регистра. На выходе сдвигового регистра оказывается один, обычно младший значащий, бит. Содержание ячеек LFSR с течением времени изменяется следующим образом, определяя тем самым динамику состояний LFSR:
Текущие значения нулевой ячейки регистра используются в качестве элементов порождаемой LFSR двоичной псевдослучайной последовательности (см. рис. 5.1). Данная последовательность извлеченных бит должна обладать тремя свойствами:
При достаточно долгой работе скремблера неизбежно возникает его зацикливание. По выполнении определенного числа тактов в ячейках скремблера создастся комбинация бит, которая в нем уже однажды оказывалась, и с этого момента кодирующая последовательность начнет циклически повторяться с фиксированным периодом. Данная проблема неустранима по своей природе, так как в N разрядах скремблера не может пребывать более 2N комбинаций бит, и, следовательно, максимум, через, 2N-1 циклов повтор комбинации обязательно произойдет. Последовательность бит, генерируемая таким скремблером, называется последовательностью наибольшей длины (ПНД). Чтобы построить N-разрядный скремблер, создающий ПНД, пользуются примитивными многочленами. Примитивный (базовый) многочлен степени по модулю 2 – это неприводимый многочлен, который является делителем , но не является делителем для всех , являющихся делителями . Неприводимый многочлен степени нельзя представить в виде умножения многочленов кроме него самого и единичного. Найденный примитивный многочлен степени записывается в двоичном виде, затем отбрасывается единица, соответствующая самому младшему разряду. Код для этого LFSR для многочлена , на языке C выглядит следующим образом: int LFSR () { static unsigned long ShiftRegister = 1; /* Все кроме 0, начальное значение *./ ShiftRegister = ((((ShiftRegister >> 7)^ ( ShiftRegister >> 3)^ShiftRegister)& 0x00000001 )> 1) ; return ShiftRegister & 0x00000001 ; } Заметим, что функция int LFSR () возвращает одно значение, которое помещается в моделируемую последовательность. Для получения последовательности длины необходимо модифицировать функцию. Задание Исходные данные: 1.Открытый текст
Варианты 3.Начальная комбинация бит для скремблера (ключ). Реализовать приложение, позволяющее смоделировать работу скремблера. Его задачи состоят в следующем:
Контрольные вопросы
|
|