Скачиваний:
13
Добавлен:
17.06.2023
Размер:
246.39 Кб
Скачать

21 Блочные шифры

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

Схему работы блочного шифра можно описать функциями:

C=Ek(M)

M=Dk(C)

М - блок открытого текста, С - блок зашифрованного текста, К - секретный ключ (Key), Ек(М) - операция зашифрования (Encrypt), Dk(M) - операция расшифрования (Decrypt).

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

Требования, предъявляемые к блочным шифрам

К блочным криптосистемам (как впрочем, и к любым криптосистемам) предъявляются следующие требования:

достаточная криптостойкость;

простота процедур зашифрования и расшифрования;

приемлемая надежность.

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

Надежность - доля информации, поддающаяся дешифровке при помощи какого-то криптоаналитического алгоритма.

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

идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2N-1 проверок.

Основные методы построения блочных шифров

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

Так, например, 32-битный блок данных можно интерпретировать как число из диапазона 0.. 4 294 967 295. Над этими числами блочным криптоалгоритмом по определенной схеме производятся элементарные действия (например, исключающее ИЛИ (XOR), сложение по модулю 2 в степени n и т.п.)

Характерным признаком блочных алгоритмов является многократное и косвенное использование материала ключа.

Ключ имеет фиксированную длину. Однако при прокрутке хотя бы 8 циклов шифрования с размером блока, скажем, 128 бит даже при простом прибавлении посредством XOR потребуется 8*128=1024 бита ключа, поскольку нельзя добавлять в каждом цикле одно и то же значение - это ослабляет шифр.

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

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

22. Шифр Файстеля.

Шифр Файстеля является структурой, на которой построены все практически значимые симметричные схемы блочного шифрования.

Структура шифра Файстеля опирается на идею Клода Шеннона (Claude Shannon), высказанную им в 1945 году, о том, что преобразование шифра должно использовать принципы диффузии и конфузии, основное назначение которых – усложнить (в идеале сделать невозможным) криптоанализ, основанный на исследовании статистических характеристик закрытого текста.

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

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

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

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

Шифр Файстеля использует следующий алгоритм:

  1. Входной блок для каждого преобразования разбивается на две половины: L-левую, R-правую;

  2. Используется преобразование вида

Li+1=Ri

Ri+1=Li XOR fi (Ri,Ki) ,

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

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

Соседние файлы в предмете Информационная безопасность