Раздел: Документация
0 ... 92 93 94 95 96 97 98 ... 169 В потоковых режимах шифруемый блок модифицируется путем наложения на него с помощью бинарной операции («°») результата криптографического преобразования ЕК значения функции f, зависящей от всех предыдущих блоков открытого (Ti) и шифрованного (Ti) текста, и, возможно, от параметра инициализации (S). Таким образом, зашифрование в потоковых режимах выполняется в соответствии со следующим уравнением: Ti = Ti 0 EK(f(Tl,T2,...,Ti-l,Tl,T2,...,Ti-1,S)) Тогда расшифрование в режимах этого типа выполняется по следующему уравнению: Ti = Ti • EK(f(Tl,T2, ...,Ti-l,Tl,T2, . .., Ti-1,S)) Функцию f мы будем называть рандомнзпруюшен функцией, так как основной смысл ее использования заключается в том, чтобы внести разнообразие в блоки данных, подвергающихся преобразованию по криптографическому алгоритму ЕК. В режимах обоих типов значение этой функции должно быть различным для блоков с различнымидаже если эти блоки содержат одинаковые данные. Если Fi - f (Т1,Т2,...,Ti-l,Tl,T2,...,Ti-l,S) и Fj = f(T1,T2,...,Tj-l,Tl,T2,...,Гj-l,S), то i j Fi Fj В остальном от функции f не требуется никаких особых свойств -ни сложности, ни обратимости. Все, что ей необходимо обеспечить, это статистические характеристики ее выхода - все выходные значения должны быть равновероятны при соответствующих предположениях о распределении аргументов, ибо если выход функции будет содержать статистическиеаналитики получат в свои руки некоторые дополнительные возможности по взлому шифра. Конечно, высокая сложностьфункции будет полезна с точки зрения обеспечения криптостойкостн шифра, однако это не является определяющим фактором при ее выборе - не стоит забывать, что стойкость шифра обеспечивается криптографическими свойствами преобразования ЕК, а не сложностью функции f. Конечно, можно попытаться объединить оба вышеуказанных подхода в один, но при этом надо отдавать себе отчет в том, что это будет не новым классом режимов шифрования, а просто повторным шифрованием, - сначала в одном режиме, а потом в другом, - со всеми вытекающими последствиями. 287 В частности, все вычислительные затраты на выполнение такой процедуры как минимум удвоятся. Вот почему в практических схемах шифрования ограничиваются применением режимов одного из указанных типов и не пытаются «впрячь лошадь в паровоз», ибо это привело бы к возникновению совершенно неестественной криптографической конструкции.самое время заметить, что в случаях, когда бинарная операция применяется для модификации одного значения с использованием другого с целью только его сокрытия и не ставится никаких дополнительных задач вроде обеспечения максимально высокой степени перемешивания, наиболее подходящим вариантом такой операции является побитовое исключающее ИЛИ, так как из всех бинарных операций, обладающих необходимыми свойствами, она наиболее проста и технологична. В этом случае уравнения за- и расшифрования в блочных и потоковых типах режимов будут следующими: 1.Блочные режимы: зашифрование: Ti = EK(Ti f (Tl, T2, . . . , Ti-1, Tl, T2, . . .,Ti-l,S) ) расшифрование: Ti = DK(Ti) f(Ti,T2, . . ., Ti-1,Tl,T2, . ..,Ti-l,S) 2.Потоковые режимы: зашифрование: Ti = Ti EK(f(Tl,T2,...,Ti-1,Tl,T2,...,Ti-l,S)) расшифрование: Ti = Ti EK(f (T1,T2, . . ., Ti-1, Tl, T2, .. .,ТЧ-1,ЗП Теперь сравним оба типа режимов. Сравнение начнем с двух фундаментальных фактов, которые, собственно, и определяют их свойства. В блочных режимах зашифрование осуществляется применением криптографического преобразования непосредственно к шифруемому блоку, модифицированному значением рандомизирующей функции f, - в уравнении зашифрования шифруемый блок Ti стоит внутри скобок криптографического преобразования ЕК(...), тогда как 288 в потоковых режимах зашифрование осуществляется точно так же, как в потоковых шифрах — наложением на шифруемый блок некоторого кода с помощью обратимой бинарной операции — и шифруемый блок Ti не фигурирует в выражении для аргумента преобразования ЕК. Для расшифрования в блочных режимах применяется криптографическое преобразование DK, обратное преобразованию ЕК, использованному для зашифрования, тогда как при расшифровании в потоковом режиме используется то же самое преобразование, что и при зашифровании. Из этого следует, кратко говоря, весьма интересный вывод: для построения блочных режимов шифрования необходимо обратимое криптографическое преобразование, тогда как для построения потоковых режимов обратимость используемого преобразования не требуется, достаточно его стойкости. Это, в частности, позволяет реализовать такие режимы на базе вычислительно необратимых функций, например, на базе MD5 и аналогичных алгоритмов. Из сказанного выше становится понятным, что названия «блочные» и «потоковые» режимы имеют вполне простой и понятный смысл: шифр в блочном режиме ведет себя, как обычный блочный шифр: шифрованию могут подвергаться только полные блоки данных. Если шифруемый массив данных содержит нецелое число блоков, это создает для такой схемы определенные трудности - данный вопрос будет подробно рассмотрен ниже. Шифры же в потоковом режиме являются в полном смысле слова потоковыми шифрами и для них, в частности, отсутствует проблема последнего блока. По своей сути потоковый режим есть не что иное, как способ построения потокового шифра на базе блочного криптографического алгоритма. В этом, собственно, и заключается фундаментальная разница между указанными типами режимов, хотя, на первый взгляд, различия между ними могут показаться незначительными и их уравнения зашифрования похожи друг на друга: Ti = EK(Ti Fi) в «блочных» режимах Т1 i = Ti EK(Fi) в «потоковых» режимах где Fi = f(Tl,T2,...,Ti -1 /Г 1/1 :"2.....Ti -1 ,S)для обоих типов режимов. Теперь поговорим о роли параметра инициализации S, называемого в отечественной криптографии синхропосылкой. Дело в том, что при определенных условиях шифрование двух сообщений или масси- Зак. 280 289 0 ... 92 93 94 95 96 97 98 ... 169
|