Читать в оригинале

<< Предыдущая Оглавление Следующая >>


10.3.2. Традиционные симметричные криптосистемы

Симметричные системы шифрования информации подразделяются на блочные и поточные системы.

В блочной системе шифрования информации сообщение разбивается на информационные блоки фиксированной длины  бит и весь блок шифруется одновременно. Такие системы получили название блочных шифров; они представляют собой семейство обратимых преобразований блоков исходного текста. Фактически блочный шифр это система подстановки блоков. В настоящее время блочные шифры наиболее распространены на практике. Российский и американский стандарты шифрования относятся именно к этому классу.

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

Каждый символ сообщения, записанный в верхней строке соответствия

,

 

,

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

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

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

(А    Б   В   Г    Д    Е   Ж   З   И   Й   К   Л   М   Н  …  Ю   Я),

(П   Г   И   Р   Ш   Д   В   Л   Х   Т   Щ   Я   О   Б  …  Н   У).

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

Для обеспечения однозначности операция дешифрования должна описываться подстановкой, обратной к подстановке операции шифрования.

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

,

 

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

Пусть, например, требуется зашифровать сообщение: «перестановка» шифром перестановки при . Зададим фиксированную функцию перестановки  вида:

,

.

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

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

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

На рис. 10.7 показан пример композиции функций  и . Композиция функций легко расширяется на случай произвольного числа функций, позволяя из элементарных функций шифрования синтезировать композиционные шифры с высокой стойкостью.

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

На практике удобно использовать подкласс композиционных шифров, называемый составными шифрами. В составных шифрах над блоком шифруемого сообщения многократно выполняются подстановки и перестановки. Последовательное использование подстановок и перестановок в составном шифре реализует два основных принципа построения симметричных блочных систем шифрования: рассеивание и перемешивание. Рассеивание заключается в распространении влияния всех символов блока открытого сообщения на все символы блока криптограммы, что позволяет скрыть статистические свойства шифруемой информации. Высокая степень рассеивания достигается многократными подстановками, зависящими не только от ключа, но и от промежуточных результатов шифрования. Одновременно рассеивание проявляется во влиянии каждого символа ключа на все символы блока криптограммы, что исключает восстановление взаимосвязи статистических свойств открытого и шифрованного текста. Перемешивание заключается в усложнении взаимосвязи статистических свойств сообщения и полученной из него криптограммы. Высокая степень перемешивания достигается при многократных перестановках в процессе криптопреобразований. Хорошее рассеивание и перемешивание обеспечивается использованием составного шифра, состоящего из последовательности элементарных шифрующих функций, каждая го которых вносит небольшой вклад в значительное суммарное рассеивание и перемешивание [1].

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

,

, ,

,

 

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

Итерационные блочные шифры вычислительно просто строить по схеме Фейстеля [1]. Для этого блоки сообщения и блоки криптограмм длиной по  бит разбиваются на левую  и правую  половины. Криптографическому преобразованию на каждой итерации шифрования подвергается только одна половина шифруемого сообщения; на следующей итерации половины меняются местами. Такой способ построения блочного шифра позволяет относительно просто при большом количестве итераций (циклов) обеспечить хорошее рассеивание и перемешивание. Схема одной итерации шифрования блочного шифра Фейстеля представлена на рис. 10.8. Алгоритм шифрования можно описать следующей рекуррентной процедурой. Вначале производится разбиение блоков на левую и правую половины: . Затем над правым полублоком выполняются криптографические преобразования по круговой функции шифрования:

, ,

(10.2)

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

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

, ;

(10.3)

полублоки меняются местами () и формируется блок сообщения .

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

В реальных шифрах часто используется упрощенная схема Фейстеля. Для этого после  итераций шифрования левая и правая половины криптограмм меняются местами, что позволяет для дешифрования вместо выражения (10.3) использовать выражение (10.2) с учетом противоположного порядка применения подключей. Это существенно упрощает построение устройств шифрования; примером служит отечественный алгоритм криптографической защиты данных согласно ГОСТ 28147-89.

 



<< Предыдущая Оглавление Следующая >>