Раздел: Документация
0 ... 91 92 93 94 95 96 97 ... 169 нык образом с использованием пары взаимно обратных аддитивных бинарных операций. В этом случае между раундами шифрования целесообразно модифицировать шифруемый блок с использованием операций другого типа, например, мультипликативных. 7. Для использования на раундах шифрования обычно требуется больше ключевой информации, чем содержится в ключе шифрования. Для выработки нужного объема ключевой информации для последующего ее применения в раундах используют различные схемы, от самых простых -- повторного использования одних и тех же фрагментов ключа, как в ГОСТе, до наиболее сложных - выработки ключевых элементов с использованием тех же самых шифрующих преобразований, что используются при шифровании, как в шифре BLOWFISH. Практические советы по шифрованию данных Итак, предположим, что в нашем распоряжении имеется симметричный блочный шифр, содержащий два зависящих от ключа К преобразования за- и расшифрования N-битовых блоков, ЕКи DK соответственно. Простейший способ использовать эти преобразования -разбить шифруемый массив Т HaN-битовые блоки и шифровать их независимо друг от друга: Т - (Т1,Т2,...,Тп) = ЕК(Ti) Т" = (Т1,12, . . ., Тп) где Ti = Ti = N Этот режим шифрования, то есть способ использования криптографического преобразования для шифрования данных, в отечественной литературе и части зарубежных источников называется режимом простой замены, в другой части зарубежных источников, тяготеющей к англосаксонской криптографической терминологии, он называется режимом электронной кодовой книги - Electronic Code Book, сокращенно ЕСВ. Использование данного простейшего режима шифрования сопряжено с рядом трудностей. Первая, чисто техническая трудность, называется проблемой последнего блока и заключается в том, что размер шифруемого текста может быть не кратен размеру блока используемого шифра. В этом случае последний блок будет неполным — Tn < N, и его необходимо как-либо дополнить до размера в 284 N бит, так как криптографическому преобразованию может быть подвергнут только блок полного размера. При этом все полученные биты блока шифротекста будут значащими, их нельзя отбрасывать без потери информации, что приводит к увеличению размера шифротекста по сравнению с открытым текстом, а это не во всех случаях допустимо. Вторая проблема связана со стойкостью шифра и заключается в том, что при использовании блочного криптографического преобразования ЕК для зашифрования данных из одинаковых блоков открытого текста получаются одинаковые блоки шифротекста: Ti = Tj EK(Ti) = EK(Tj) Обратное также верно: если два блока шифротекста совпадают, то соответствующие им блоки открытого текста идентичны: EK(Ti) = EK(Tj) Ti = Tj В результате для аналитика противника становится возможным сделать определенные заключения относительно свойств открытого текста, если в шифротексте встретятся совпадающие блоки. Положение усугубляется тем, что в реальных открытых данных часто встречаются повторяющиеся паттерны - группы байтов, символов, частоты вхождения которых намного превышают среднюю вероятность появления в данных случайного блока. Это позволит противнику выявлять паттерны шифротекста и тем самым определять структуру открытого текста, что, конечно, неприемлемо для серьезных систем обеспечения секретности. Например, при форматировании магнитного диска на его дорожке записываются фиксированные байты кода. Если свежеотфор- матированный диск заполнить данными лишь частично, то эти паттерны будут занимать существенную часть диска и после зашифрования на их месте окажутся повторяющиеся блоки шифротекста, что позволит аналитику противника определить местонахождение полезных данных и отличить их от свободного пространства диска. Для того, чтобы преодолеть указанные недостатки, были разработаны различные способы использования криптографических преобразований для шифрования данных, называемые режимами шифрования. Общим в них является то, что преобразование зашифрования выполняется по более сложному уравнению и результат шифрования очередного блока в общем случае зависит не только от этого блока, но и от всех предыдущих блоков открытого текста и шифротекста, и, возможно, от значения параметра инициализации S, называемого синхро-посылкой: Ti= F(T1,T2.....Ti,Tl,T2.....Ti-l,S) 285 Понятно, что при вычислении функции F должно использоваться криптографическое преобразование ЕК и приведенное выше соотношение должно быть разрешимо относительно шифруемого блока Ti, чего требует обратимость процедуры шифрования. Как мы с вами выяснили в предыдущих выпусках, обратимость преобразования в сочетании с его криптостойкостью в ситуациях, когда один блок данных модифицируется с использованием одного или нескольких дополнительных блоков данных, легче всего обеспечить за счет применения обратимых бинарных операций. Напомню, что бинарная операция «Ч называется обратимой, если существует обратная ей операция «•», такая, что каковы бы не были два блока данных X и Y, составляющие пару допустимых аргументов первой операции, справедливо следующее соотношение: (X ° Y) • Y = X Использование обратимой бинарной операции необходимо сочетать с применением криптографического преобразования способом, обеспечивающим высокую криптостойкость. С учетом последнего замечания существуют два возможных вариантасочетания, различающихся тем, как комбинируются друг с другом две указанные операции. Соответственно, все режимы шифрования можно разделить на два больших класса, которые можно условно назвать «блочными режимами» и «потоковыми режимами» подобно тому, как все шифры делятся на блочные и потоковые. Смысл такого названия режимов станет понятным после ознакомления с ними (далее в тексте настоящего выпуска эти названия употребляются без кавычек). В блочных режимах шифруемый блок первоначально модифицируется путем наложения на него с помощью бинарной операции значения функции f, зависящей от всех предыдущих блоков открытого (Ti) и шифрованного (Ti) текста, и, возможно, от параметра инициализации (S), после чего полученное значение модифицируется с помощью криптографического преобразования (ЕК). Таким образом, зашифрование в блочных режимах выполняется в соответствии со следующим уравнением: Ti - EK(Ti 9 f (Т1,Т2, ...,Ti-l,Tl,T2,...,Ti-l,S)) Тогда расшифрование в режимах этого типа выполняется по следующему уравнению: Ti - DK(Ti) • f (T1,T2, . . .,Ti-l,Tl,T2,...,Ti-l,S) где через DK обозначена обратная ЕК процедура расшифрования в режиме простой замены, а через «•» - бинарная операция, обратная операции «V 286 0 ... 91 92 93 94 95 96 97 ... 169
|