Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Румбешт_Уч.пос._для печати.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
11.86 Mб
Скачать

2.3.3. Шифры гаммирования

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

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

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

В качестве обратимой операции обычно используется либо сложение по модулю количества букв в алфавите n: либо, при представлении символов открытого текста в виде двоичного кода, операция поразрядного суммирования по модулю два (XOR): .

Расшифрование осуществляется применением к символам шифртекста и гаммы обратной операции: , или (операция XOR является обратной к самой себе).

Стойкость систем шифрования, основанных на гаммировании, зависит от характеристик гаммы – ее длины и равномерности распределения вероятностей появления знаков гаммы.

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

1) все символы гаммы полностью случайны и появляются в гамме с равными вероятностями;

2) длина гаммы равна длине открытого текста или превышает ее;

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

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

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

Линейный конгруэнтный генератор задается рекуррентной формулой: gi agi1 b (mod m), где gi i-й член последовательности псевдослучайных чисел; a, b, m и g0 – ключевые параметры. Данная последовательность состоит из целых чисел от 0 до m – 1, и если элементы gi и gj совпадут, то последующие участки последовательности также совпадут: gi+1 gj+1, gi+2 gj+2, и т.д. Поэтому последовательность {gi} является периодической, и ее период не превышает m. Для того чтобы период последовательности псевдослучайных чисел, сгенерированной по указанной рекуррентной формуле, был максимальным (равным m), параметры данной формулы должны удовлетворять следующим условиям:

  • b и m —взаимно простые числа;

  • a – 1 делится на любой простой делитель числа m;

  • a – 1 кратно 4, если m кратно 4.

Линейная рекуррентная последовательность задается следующей формулой:

, i = 0,1…,

где  – операция вычисления суммы по модулю 2, – состояние j-го бита последовательности, – коэффициент обратной связи, , коэффициенты .

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

Последовательности такого вида легко реализуются программными или аппаратными средствами. Основу этой реализации составляет регистр сдвига с линейной обратной связью (РСЛОС).

РСЛОС представляет собой простое в реализации, недорогое устройство, способное формировать последовательности и обеспечить такие требования как:

  • большой размер ансамбля последовательностей, формируемых на одной алгоритмической основе;

  • оптимальность корреляционных функций в ансамбле;

  • сбалансированность структуры;

  • максимальность периода для данной длины регистра сдвига.

Обобщенная схема РСЛОС приведена на рис. 2.4.

Рис. 2.4. Обобщенный вид регистра сдвига с линейной обратной связью.

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

Обратная связь представляет собой просто операцию XOR над битами регистра, для которых значения коэффициентов обратной связи равно 1. Перечень этих битов называется отводной последовательностью.

Любой n-битовый РСЛОС может находиться в одном из 2n–1 внутренних состояний. Это означает, что теоретически такой регистр может генерировать псевдослучайную последовательность с периодом 2n–1 битов. (Число внутренних состояний и максимальный период равны 2n–1, потому что заполнение РСЛОС нулями, приведет к тому, что сдвиговый регистр будет выдавать бесконечную последовательность нулей, что абсолютно бесполезно.) Только при определенных отводных последовательностях РСЛОС циклически пройдет через все 2n–1 внутренних состояний, такие РСЛОС являются регистрами с максимальным периодом. Получившийся результат называется М – последовательностью.

Для того, чтобы конкретный n-битовый РСЛОС имел максимальный период 2n–1, двоичный полином f(x) = hnxn hn1xn+ … + h1x + 1, образованный из отводной последовательности и константы 1, должен быть примитивным. Полином f(x) степени n называется примитивным, если его нельзя представить в виде произведения двух полиномов с меньшими степенями (свойство неприводимости) и, если x является генератором всех ненулевых полиномов со степенями не выше n, умножение которых осуществляется по модулю f(x).

В общем случае не существует эффективного способа генерировать примитивные полиномы данной степени. Проще всего выбирать полином случайным образом и проверять, не является ли он примитивным. Это чем-то похоже на проверку, не является ли простым случайно выбранное число. В настоящее время составлены таблицы примитивных полиномов, которыми можно воспользоваться при разработке конкретных РСЛОС.

В качестве примера рассмотрим РСЛОС максимального периода с полином обратной связи f(x) = x4 x +1. На рис. 2.5 приведена его структурная схема.

Если начальное состояние этого РСЛОС – [0, 0, 0, 0], выходная последовательность также будет нулевой. В табл. 2.1 показано содержимое битов регистра a0, a1, a2, a3, в конце каждого такта t работы регистра при начальном состоянии [0, 1, 1, 0].

Рис. 2.5. РСЛОС с полином обратной связи f(x) = x4 x +1.

Таблица 2.1

Пример 16-и тактов работы РСЛОС с полином обратной связи f(x) = x4 x +1

t

a0

a1

a2

a3

t

a0

a1

a2

a3

0

0

1

1

0

8

1

1

1

0

1

0

0

1

1

9

1

1

1

1

2

1

0

0

1

10

0

1

1

1

3

0

1

0

0

11

1

0

1

1

4

0

0

1

0

12

0

1

0

1

5

0

0

0

1

13

1

0

1

0

6

1

0

0

0

14

1

1

0

1

7

1

1

0

0

15

0

1

1

0

При таком начальном заполнении РСЛОС выходная последовательность представляет собой 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1,  и является периодической с периодом 24–1= 15.

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