- •Способы криптографической защиты информации в радиосвязи методические указания
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •Введение
- •Шифрование данных в группе симметричных блочных алгоритмов redoc.
- •Теоретическое введение
- •Алгоритм redoc III
- •Алгоритм зашифрования redoc III
- •Создание таблицы ключей
- •Алгоритм расшифрования redoc III
- •Шифрование данных с помощью генератора Геффе.
- •Теоретическое введение
- •Обобщенный генератор Геффе
- •Описание алгоритма решения задачи Решение данной задачи можно разбить на следующие этапы.
- •Хеширование данных с помощью алгоритма md5.
- •Теоретическое введение
- •Присоединение заполняющих (дополнительных) битов
- •Добавление длины
- •Инициализация md буфера
- •Обработка сообщения в блоках по 16 слов
- •Шифрование данных с помощью алгоритма a5.
- •Теоретическое введение
- •Шифр а5/0.
- •Шифр а5/1
- •Шифр а5/2.
- •Шифр а5/3
- •Шифрование данных с помощью алгоритма Blowfish.
- •Теоретическое введение Функциональное преобразование f(X) сети Фейстеля:
- •Алгоритм шифрования 64-битного блока с известным массивом p и f(X)
- •Алгоритм Blowfish
- •Выбор начального значения p-массива и таблицы замен
- •Шифрование данных с помощью алгоритма seal.
- •Теоретическое введение Обозначения.
- •Длина выхода.
- •Отображение ключа в таблицы.
- •Описание функции генерации таблиц.
- •Псевдослучайная функция.
- •Алгоритм seal (отображение 32-битного индекса в l бит).
- •Процедура инициализации seal.
- •Шифрование данных с помощью алгоритма rc2.
- •Теоретическое введение Структура алгоритма
- •Процедура расширения ключа
- •Шифрование данных с помощью алгоритма cast.
- •Теоретическое введение
- •Библиографический список
- •Содержание
- •Способы криптографической защиты
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •394026 Воронеж, Московский просп., 14
Шифрование данных с помощью генератора Геффе.
Цель работы: изучить методы шифрования данных в алгоритме Геффе и освоить их практическое применение.
Теоретическое введение
В этом генераторе потока ключей используются три LFSR, объединенные нелинейным образом. Два LFSR являются входами мультиплексора, а третий LFSR управляет выходом мультиплексора. Если а1, а2 и а3 - выходы трех LFSR, выход генератора Геффе можно описать как:
b = (a1 ^ a2) XOR ((¬a1) ^ a3)
Если длины LFSR равны n1, n2 и n3, соответственно, то линейная сложность генератора равна
(n1 + 1)n2 + n1n3
Период генератора равен наименьшему общему кратному периодов трех генераторов. При условии, что степени трех примитивных многочленов обратной связи взаимно просты, период этого генератора будет равен произведению периодов трех LFSR. Этот генератор криптографически слаб и не может устоять против корреляционного вскрытия. В 75 процентах времени выход генератора равен выходу LFSR-2.
Поэтому, если известны отводные последовательности обратной связи, можно догадаться о начальном значении LFSR-2 и сгенерировать выходную последовательность этого регистра. Тогда можно подсчитать, сколько раз выход LFSR совпадает с выходом генератора. Если начальное значение определено неверно, две последовательности будут согласовываться в 50 процентах времени, а если правильно, то в 75 процентах времени.
С такими корреляциями генератор потока ключей может быть легко взломан. Например, если примитивные многочлены состоят только из трех членов, и длина самого большого LFSR равна n, для восстановления внутренних состояний всех трех LFSR нужен фрагмент выходной последовательности длиной 37n битов.
6
Обобщенный генератор Геффе
Вместо выбора между двумя LFSR в этой схеме выбирается один из n LFSR, где n является степенью 2. Всего используется n + 1 LFSR. Тактовая частота LFSR-1 должна быть в log2 n раз выше, чем у остальных n LFSR.
Рис.1 Обобщенный генератор Геффе.
Несмотря на то, что эта схема сложнее генератора Геффе, для взлома можно использовать то же корреляционное вскрытие.
Описание алгоритма решения задачи Решение данной задачи можно разбить на следующие этапы.
На первом этапе задаются входные условия, а именно:
- первоначальные состояния для трех регистров сдвига;
- примитивные многочлены, на основе которых будут формироваться последовательности LFSR;
- необходимая длина генерируемой последовательности;
- список возможных используемых примитивных многочленов.
На следующем этапе рассчитываются линейная сложность и период генерируемой последовательности. Сложность рассчитывается по линейной формуле
(n1 + 1)n2 + n1n3
Д
7
На третьем этапе реализуется сам алгоритм Геффе. Генерируются выходные биты следующего состояния LFSR-последовательностей. Для этого согласно выбранным примитивным многочленам складываются биты текущего состояния LFSR, получившийся результат записывается старшим битом, а младший бит является результатом генерации нового состояния для данной LFSR. Полученные результаты трех LFSR подставляются в формулу
b = (a1 ^ a2) XOR ((¬a1) ^ a3),
значение которой является следующим битом генерируемой псевдослучайной последовательности.
Результаты применения данного алгоритма сохраняются в файле.
Задание:
Используя алгоритм шифрования данных генератор Геффе, написать программу шифрования и дешифрования произвольного набора символов на любом языке программирования.
Порядок выполнения работы:
написать на языке программирования функцию шифрования, в которую в качестве параметров передается ключ и символ (или строка символов) исходного текста.
написать функцию дешифрования, в которую в качестве параметров передается ключ и символ (или строка символов) зашифрованного текста.
Оформление отчета:
В отчете следует привести краткие теоретические сведения. Кроме того, должны быть представлены: краткая блок-схема, текст программы, шифруемый набор символов, результаты выполнения программы.
Контрольные вопросы:
В чем заключается суть метода шифрования генератором Геффе?
Какой характерной особенностью обладает обобщенный генератор Геффе?
8
ЛАБОРАТОРНАЯ РАБОТА №3