Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kniga_tolyk_2.docx
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
2.9 Mб
Скачать

2.1 Режимы простой замены (электронная кодовая книга ecb)

Режим электронной кодовой книги (Electronic Code Book – ECB) - приведен на рис. 4. Исходный текст разбивается на блоки. В этом режиме каждый блок поступает на вход алгоритма шифрования и преобразуется независимо один от другого. Расшифрование каждого блока также происходит независимо.

В ГОСТ 28147—89 называется режимом простой замены.

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

,

где – номера блоков, и – блоки зашифрованного и открытого соответственно, а – функция блочного шифрования. Расшифровка аналогична:

,

Рис. М. Режим простой замены (режим электронной кодовой книги)

2.2 Режим сцепления блоков (Cipher Block Chaining (cbc))

Режим шифрования Cipher Block Chaining (CBC) :Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с предыдущим результатом шифрования. Шифрование: Сначала, так же как и в случае с ECB, первоначальное сообщение разбиваем на блоки, при необходимости дополнив последний до длины , далее следуют действия:

,

где i – номера блоков, – вектор инициализации (синхропосылка), и – блоки зашифрованного и открытого текстов соответственно, а – функция блочного шифрования. Расшифровка:

Рис. М1. Шифрование в режиме CBC

Рис. М2. Расшифрование в режиме CBC

Данный тип шифрования имеет ряд недостатков, при атаках:

- возможность определения начала изменения данных при изменении шифротекста;

- возможность переделать открытый текст при перемещении блоков;

- подмена шифротекста со следующим за ней изменением открытого текста.

Режим CBC является режимом устраняющим недостатки режима ECB, что происходит следующим образом: каждый блок открытого текста маскируется соответственно блоком шифротекста, полученном на предыдущем этапе. Скорость обработки в данном режиме также определяется скоростью шифра, при этом не ниже производительности блочного шифра — задержка при выполнении операции XOR пренебрежимо мала. Процедура шифрования в режиме СВС трудно распараллеливается, тогда, как процедура дешифрования распараллеливается легко.

2.2 Режимы гаммирования

Гаммирование – метод шифрования, основанный на «наложении» гамма-последовательности на открытый текст. Обычно это суммирование в каком-либо конечном поле (например, поле GF(2) такое суммирование принимает вид обычного «исключающего ИЛИ»). При расшифровании операция проводится повторно, в результате получается открытый текст.

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

Для начала попробуем привести пример для понимания режима гаммирования. Пусть Алиса не может передавать большой объем ключа Бобу. Алиса передает Бобу только вектор инициализации (начальное значение), который пусть будет значение чисел Фибоначи. , отсюда Боб уже может для своего ключа вычислить сколько угодно остальные .

Далее, Боб суммирует (как правило, по модулю числа 2) свой открытый текст, используя вычисленную последовательность гаммы. Подробнее:

а) Алиса передает Бобу вектор инициализации (начальное значение) , теперь и Боб и она могут вычислить остальные . Значить у обоих будет одинаковый бесконечный, не повторяющийся ключ.

б) Боб вычисляет нужную последовательность гаммы. Которая будет равна 1 1 2 3 5 8 13 21 34 55 89 144 и т.д. Далее, Боб свой открытый текст может суммировать с вычисленной гамма-последовательностью. Учитывая, что такую гамма-последовательность может сделать и Алиса, то они могут скрытно передавать друг другу сообщения.

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

Рассмотрим криптосхему, реализующую алгоритм шифрования в режиме гаммирования, показанная на рис. 3.12. Открытые данные разбивают на 64-разрядные блоки

где – -й 64-разрядный блок открытых данных, =1...m, m определяется объемом шифруемых данных.

Рисунок 3.12

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

где - -й 64-разрядный блок,

Число двоичных разрядов в блоке может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока отбрасывается.

Уравнение шифрования данных в режиме гаммирования имеет вид

, (3)

где i-й блок 64-разрядного блока зашифрованного текста; функция шифрования в режиме простой замены; , – 32-разрядные двоичные константы; – 32-разрядные двоичные последовательности. некоторая бинарная операция, в качестве которого может выступать сложение либо сложение по модулю 2.

Величины определяются итерационно по мере формирования гаммы следующим образом:

где – синхропосылка (64-разрядная двоичная последовательность),

)=(

Как правило в «промышленной реализации» функция шифрования представляет собой некоторую достаточно сложную функцию шифрования, такие как DES, AES, IDEA, ГОСТ 28147-89 и т.д. Исходя из главной цели нашего учебника, простоты изложения, в качестве функции шифрования возьмем сложение по модулю 2 и циклический сдвиг на определенное количество бит.

Рассмотрим детально частный случай реализации процедуры шифрования в режиме гаммирования.

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

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

,

Используя в качестве аргумента для функции шифрования , находим , т.е. , . Затем объединяем оба 32-битных вектора в один 64-битный вектор (конкатенация) и .

Отсюда следует, что

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

В канал связи или память ЭВМ передаются синхропосылка и блоки зашифрованных данных , .

Ниже приведены уравнение и схема расшифрования:

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]