В. Р. Гинзбург Перевод с английского



Pdf көрінісі
бет45/203
Дата26.09.2024
өлшемі2,74 Mb.
#145829
1   ...   41   42   43   44   45   46   47   48   ...   203
Байланысты:
практическая криптография


Глава 5. Режимы работы блочных шифров
Схема шифрования в режиме OFB определяется следующим образом:
K
0
:=
IV
K
i
:=
E
(
K, K
i

1
)
для
i
= 1
, . . . , k,
C
i
:=
P
i

K
i
.
Как видите, здесь также фигурирует вектор инициализации
K
0
, который
применяется для генерации ключевого потока
K
1
, . . . , K
k
путем постоянного
шифрования предыдущего значения
K
i
. Затем ключевой поток с помощью
операции XOR складывается с открытым текстом сообщения для получения
шифрованного текста.
Значение вектора инициализации должно быть случайным. Как и в ре-
жиме CBC, оно может быть выбрано случайным образом и передано вместе
с самим шифрованным текстом (см. раздел 5.3.3) или же сгенерировано на
основе оказии (см. раздел 5.3.4).
Преимущество режима OFB состоит в том, что алгоритм шифрования
полностью совпадает с алгоритмом дешифрования. Это позволяет сократить
расходы на их реализацию. Что особенно приятно, в данном режиме необхо-
димо использовать только функцию шифрования блочного шифра, а значит,
реализовать функцию дешифрования не нужно вообще.
Второе преимущество режима OFB — отсутствие необходимости в допол-
нении. Поскольку ключевой поток может быть представлен в виде беско-
нечной последовательности байтов, мы можем использовать столько байтов,
сколько содержит наше сообщение. Другими словами, если последний блок
открытого текста неполный, мы посылаем только те байты шифрованного
текста, которые соответствуют реальным байтам открытого текста. Отсут-
ствие дополнения сокращает расходы на пересылку, что особенно важно для
большого количества коротких сообщений.
Помимо этого, режим OFB наглядно демонстрирует одну из проблем ис-
пользования поточных шифров. Если вы
когда-нибудь
используете один и тот
же вектор инициализации для двух разных сообщений, последние будут за-
шифрованы с помощью одного и того же ключевого потока. Это очень и очень
плохо. Предположим, что два открытых текста
P
и
P
0
были зашифрованы
с помощью одного и того же ключевого потока. Обозначим полученные шиф-
рованные тексты как
C
и
C
0
соответственно. Получив в свое распоряжение
шифрованные тексты, злоумышленник сможет подсчитать значение выра-
жения
C
i

C
0
i
=
P
i

K
i

P
0
i

K
i
=
P
i

P
0
i
. Другими словами, он сможет
определить различие между двумя открытыми текстами. Предположим, что
злоумышленник уже знает один из открытых текстов. (В реальной жизни
это случается сплошь и рядом.) Тогда задача вычисления второго открытого
текста становится тривиальной. Существует даже несколько атак, которые


5.5. Счетчик (CTR)
95
восстанавливают информацию о двух неизвестных открытых текстах исходя
из различия между ними [44].
Описанная выше проблема поточных шифров еще более усугубляется
в режиме OFB. Если, к нашему ужасу, значение какого-нибудь ключевого
блока повторится дважды, это приведет к циклическому повторению всей
дальнейшей последовательности ключевых блоков, например в одном боль-
шом сообщении. Или, скажем, значение вектора инициализации одного со-
общения может совпасть со значением ключевого блока, применяемого где-
нибудь в середине второго сообщения, в результате чего части открытого тек-
ста обоих сообщений окажутся зашифрованными с помощью одного и того
же ключевого потока. И в том и в другом случае разные блоки сообщений
шифруются с помощью одного и того же ключевого блока, что делает при-
меняемую схему шифрования небезопасной.
Чтобы подтвердить правдоподобность данного предположения, необхо-
димо зашифровать большое количество данных. В нашем случае речь идет
об обнаружении коллизий между блоками ключевого потока и начальными
значениями этих блоков. Чтобы ожидать возникновения подобной коллизии,
необходимо зашифровать, как минимум,
2
64
блока данных. Если ограничить
количество данных, которые могут быть зашифрованы с помощью одного
и того же ключа, можно снизить вероятность повторения значения ключево-
го блока. К сожалению, риск остается всегда, и в случае неудачи вы можете
утратить конфиденциальность всего сообщения.
5.5
Счетчик (CTR)
Наш любимый режим шифрования с использованием блочных шифров
носит название
счетчика (counter — CTR)
. Хотя данный режим известен уже
на протяжении многих лет, он не был стандартизирован как официальный ре-
жим работы шифра DES [68], а потому игнорируется авторами большинства
учебников по криптографии. Недавно режим CTR был стандартизирован ор-
ганизацией NIST [26]. Как и OFB, режим счетчика основан на применении
поточного шифра. Он определяется следующим образом:
K
i
:=
E
(
K, N once
k
i
)
для
i
= 1
, . . . , k,
C
i
:=
P
i

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


96

Достарыңызбен бөлісу:
1   ...   41   42   43   44   45   46   47   48   ...   203




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет