Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700218.doc
Скачиваний:
28
Добавлен:
01.05.2022
Размер:
1.36 Mб
Скачать

Шифрование данных с помощью генератора Геффе.

Цель работы: изучить методы шифрования данных в алгоритме Геффе и освоить их практическое применение.

Теоретическое введение

В этом генераторе потока ключей используются три 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. Полученные результаты трех LFSR подставляются в формулу

b = (a1 ^ a2) XOR ((¬a1) ^ a3),

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

Результаты применения данного алгоритма сохраняются в файле.

Задание:

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

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

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

 написать функцию дешифрования, в которую в качестве параметров передается ключ и символ (или строка символов) зашифрованного текста.

Оформление отчета:

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

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

  1. В чем заключается суть метода шифрования генератором Геффе?

  2. Какой характерной особенностью обладает обобщенный генератор Геффе?

  3. 8

    Как рассчитываются линейная сложность и период генерируемой последовательности?

ЛАБОРАТОРНАЯ РАБОТА №3