Криптография - статьи


         

Уравнения режима шифрования CFB приведены


Уравнения режима шифрования CFB приведены ниже:

CFB зашифрование:


-----------------------------------------------------

CFB расшифрование:


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

IV

– вектор инициализации;

Pj

– очередной, j-ый блок открытого текста.

Cj

– очередной, j-ый блок шифротекста.

LSBm (

X) - m младших бит (less significant bits) двоичного числа X

MSBm (

X) - m старших бит (most significant bits) двоичного числа X

X

| Y – конкатенция битовых строк, представленных числами X и Y,

напр. 01 | 1011 = 011011

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



Обратная загрузка выходных данных



Режим OFB, как и CFB является поточным, то есть функция
вызывается в алгоритме до суммирования с порцией открытого текста. Но на этот раз на вход
подаётся не шифротекст с предыдущей итерации, а просто её же выходные данные. Иллюстрация режима приведена на рисунке 4. То есть происходит как бы зацикливание функции
. В такой ситуации становится важным однократное использование вектора инициализации. И вот почему. Допустим два различных сообщения шифруются в режиме OFB с использованием одного и того же вектора инициализации. Тогда, если противнику становится известен какой-либо j-ый блок открытого текста первого сообщения, то, имея j-ый блок шифротекста он легко может вычислить Oj – выходные данные
, а поскольку они зависят только от вектора инициализации, который одинаков для обоих сообщений, то можно утверждать, что и во втором сообщении это будет тот же Oj , отсюда, имея j-ый блок шифротекста второго сообщения противник тутже получит открытый текст j-го блока второго сообщения. Поэтому в алгоритме OFB необходимо избегать не только повторения векторов инициализации, но и того, что бы любой j-ый блок входных данных функции
для одного сообщения не использовался как вектор инициализации для другого сообщения.


Содержание  Назад  Вперед