Методы генерации псевдослучайных последовательных чисел




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

«Защита данных с помощью шифров гаммирования»

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

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

Шифрование методом гаммирования

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

Уравнение шифровки можно записать в виде: Тш( i ) = Гш( i ) Å То( i ) , i = 1... M,

где Тш( i )i -й блок шифротекста;

Гш( i )i -й блок гаммы шифра;

То( i )i -й блок открытого текста;

M - Количество блоков открытого текста.

Процесс дешифровки сводится к повторной генерации гаммы шифра и наложению этой гаммы на зашифрованные данные. Уравнение дешифровки имеет вид: То(i) = Гш(i) Å Тш(i) , i = 1... M.

Методы генерации псевдослучайных последовательных чисел

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

¨ период гаммы должен быть достаточно большим для шифрования сообщений различной длины;

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

¨ генерирование гаммы не должно вызывать больших технических сложностей.

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

Наиболее часто применяется так называемый линейный конгруэнтный генератор псевдослучайных чисел. Этот генератор вырабатывает последовательность ПСЧ Y1, Y2,..., Yi-1, Yi,..., используя соотношение Yi = (a • Yi-1 + b) mod m, где Yi - i-е (текущее) число последовательности; Yi-1–предыдущее число последовательности; a – множитель; b – приращение; Y0 – порождающее число (исходное значение). Текущее псевдослучайное число Yi получают из предыдущего числа Yi-1 умножением его на коэффициент а, сложением с приращением b и вычислением остатка от деления на m. Данное уравнение генерирует ПСЧ с периодом повторения, зависящим от выбранных значений a и b, и может достигать значения m. Значение m обычно устанавливается равным 2n, где n - длина машинного слова в битах, либо равным простому числу, например m=231–1. Как показано Д. Кнутом, линейный конгруэнтный датчик ПСЧ имеет максимальный период тогда и только тогда, когда b – нечетное, и a mod 4 = 1.

Мультипликативный генератор вырабатывает последовательности чисел с помощью рекуррентного соотношения: Yi = (a • Yi-1) mod m. Требования к значениям констант a и m такие же, как и для линейного конгруэнтного генератора. Текущее случайное число Yi аддитивного датчика получается из суммы чисел Yi-1 и Yi-2 вычислением модуля от деления этой суммы на m: Yi = (Yi-1 + Yi-2) mod m. Смешанный датчик: Yi = (а*Yi-1 + μ) mod m.

Описание алгоритмов

Алгоритм шифровки

1. Проинициализировать датчик случайных чисел.

2. Выделить блок открытого текста.

3. Сгенерировать гамму шифра.

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

5. Если текст не закончился, перейти к пункту 2, иначе к пункту 6.

6. Конец алгоритма шифровки.

Алгоритм дешифровки

1. Проинициализировать датчик случайных чисел.

2. Выделить блок зашифрованного текста.

3. Сгенерировать гамму шифра.

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

5. Если зашифрованный текст не закончился, перейти к пункту 2, иначе к пункту 6.

6. Конец алгоритма дешифровки.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-07-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: