Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория и Методология ИБ.doc
Скачиваний:
633
Добавлен:
12.03.2015
Размер:
4.45 Mб
Скачать

6.2.2. Шифрование методами перестановки

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

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

При шифровании методом простой перестановки производят деление открытого текста на блоки одинаковой длины, равной длине ключа. Ключ длины n представляет собой последовательность неповторяющихся чисел от 1 до n, в этом случае каждое из данных чисел встретится в ключе ровно один раз. Символы открытого текста внутри каждого из блоков переставляют в соответствие с символами ключа. Элемент ключа Ki в заданной позиции блока говорит о том, что на данное место будет помещен символ открытого текста с номером Ki из соответствующего блока.

Пример 6.8.

Зашифруем открытый текст «ПРИЕЗЖАЮДНЕМ» методом перестановки с ключом К=3142.

П

Р

И

Е

З

Ж

А

Ю

Д

Н

Е

М

3

1

4

2

3

1

4

2

3

1

4

2

И

П

К

Р

А

З

Ю

Ж

Е

Д

М

Н

Для дешифрования шифротекста необходимо символы шифротекста перемещать в позицию, указанную соответствующим им символом ключа Ki.

Весьма высокую стойкость шифрования можно обеспечить усложнением перестановок по маршрутам типа гамильтоновских [8]. При этом, для записи символов шифруемого текста используются вершины некоторого гиперкуба, а знаки зашифрованного текста считываются по маршрутам Гамильтона, причем используется восемь различных маршрутов. Размер ключа перестановки в данном случае равен восьми. Для примера, два из маршрутов Гамильтона представлено на рис. 6.3. Первому маршруту соответствует перестановка 4-0-2-3-1-5-7-6, второму 4-6-2-0-1-5-7-3 (нумерация символов в блоке осуществляется с нуля).

Рис. 6.3. Пример маршрутов Гамильтона

Пример 6.9.

Зашифруем открытый текст «ВОСЕМЬ МАРШРУТОВ» с помощью перестановок Гамильтона при использовании в качестве ключа двух перестановок, представленных на рис. 6.3.

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

В

О

С

Е

М

Ь

М

А

Р

Ш

Р

У

Т

О

В

4

0

2

3

1

5

7

6

4

6

2

0

1

5

7

3

М

В

С

Е

О

Ь

М

У

О

Ш

А

Р

Т

В

Р

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

Определение 5.1. Под гаммированием понимают наложение на открытые данные по определенному закону гаммы шифра [8,20].

Определение 5.2. Гамма шифра – псевдослучайная последовательность, вырабатываемая по определенному алгоритму, используемая для зашифровки открытых данных и дешифровки шифротекста.

Общая схема шифрования методом гаммирования представлена на рис. 6.4.

Рис. 6.4. Схема шифрования методом гаммирования

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

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

(5.9)

где - i-ый блок шифротекста, - i-ый блок гаммы шифра, - i-ый блок открытого текста, N – количество блоков открытого текста.

Дешифрование в данном случае осуществляется по следующей формуле:

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

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

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

Метод фон Неймана

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

Пусть A0 – четырехзначное число - начальное состояние ГПСЧ. Тогда i – ое псевдослучайное число Аi получается из предыдущего числа Аi-1 в результате следующих преобразований:

1. Возведение Аi-1 в квадрат, то есть нахождение числа .

2. В качестве Аi выбирают четыре средние цифры числа .

Пример 6.10.

Пусть A0=1204, =1449616. ТогдаA1=4496, =20214016,A2=2140 и т.д

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

Линейный конгруэнтный метод

Данный генератор вырабатывает последовательность псевдослучайных чисел Y1,Y2,...,Yi-1,Yi,..., используя соотношение

Yi=(a*Yi-1+b) mod m,

(6.10)

где Yii-ое (текущее) число последовательности; Yi-1 – предыдущее число последовательности; a,b,m – константы; m – модуль; a – коэффициент; b – приращение; Y0 – начальное состояние ГПСЧ.

Обычно значение модуля m берется равным 2n, либо простому числу. Приращение b должно быть взаимно простым с m, коэффициент a должен быть нечетным числом.

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