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



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


Глава 5. Режимы работы блочных шифров
случайных чисел. Реализация хорошего генератора случайных чисел весьма
трудоемка, а потому данного требования рекомендуется всячески избегать.
Кроме того, шифрованный текст на один блок длиннее, чем открытый. Это
значительно увеличивает короткие сообщения, что всегда нежелательно.
5.3.4
Оказия
Существует еще одно — и, пожалуй, наилучшее — решение проблемы вы-
бора вектора инициализации. Оно состоит из двух шагов. Вначале каждому
сообщению, которое должно быть зашифровано с помощью заданного клю-
ча, присваивается уникальное число, называемое
оказией (nonce)
. Название
этого термина происходит от фразы “
n
umber used
once
” — “число, используе-
мое только один раз”. Основным свойством оказии является ее уникальность.
Не допускается использовать одну и ту же оказию дважды с одним и тем
же ключом. Обычно оказия представляет собой номер сообщения, присвоен-
ный ему по некоторому принципу и, возможно, скомбинированный с какой-
нибудь другой информацией. Большинство современных систем уже приме-
няют нумерацию сообщений, чтобы сохранять сообщения в правильном по-
рядке, распознавать повторяющиеся сообщения и т.п. Оказию не обязательно
сохранять в секрете, но она может быть использована только один раз. Это
особенно важно для получателя сообщений, который получает оказию вместе
с каждым сообщением и должен убедиться в том, что ее текущее значение не
повторяется дважды.
Вектор инициализации, необходимый для шифрования первого блока тек-
ста в режиме CBC, генерируется путем шифрования оказии.
Обычно отправитель последовательно нумерует свои сообщения и пере-
сылает их вместе с соответствующим номером. В этом случае для отправки
сообщения выполните приведенную ниже последовательность действий.
1. Присвойте сообщению номер. Обычно для нумерации сообщений ис-
пользуется счетчик, начинающийся с 0. Обратите внимание: значение
счетчика никогда не должно вернуться к нулю, так как это нарушит
свойство уникальности.
2. Используйте номер сообщения для построения уникальной оказии. Для
заданного ключа оказия должна быть уникальной по всей системе, а не
только в рамках текущего компьютера. Например, если один и тот же
ключ используется для шифрования трафика в двух направлениях, ока-
зия должна представлять собой сочетание номера сообщения и инди-
катора направления, в котором отсылается сообщение. Размер оказии
должен быть равен размеру блока используемого блочного шифра.


5.4. Обратная связь по выходу (OFB)
93
3. Зашифруйте оказию с помощью блочного шифра, чтобы сгенерировать
вектор инициализации.
4. Зашифруйте сообщение в режиме CBC, используя полученный вектор
инициализации.
5. Добавьте к шифрованному тексту достаточно информации, чтобы по-
лучатель мог воссоздать значение оказии. Обычно для этого к началу
шифрованного текста добавляется номер сообщения. Значение самого
вектора инициализации (в наших обозначениях это
C
0
)
пересылать не
нужно.
6. Убедитесь, что получатель будет принимать сообщение с каждым кон-
кретным номером только один раз. Обычно для этого получателю необ-
ходимо отклонять сообщения, номера которых меньше или равны но-
меру последнего принятого сообщения.
Как правило, при использовании оказии дополнительная информация,
включаемая в сообщение, намного меньше, чем при пересылке случайного
вектора инициализации. Для большинства систем вполне достаточно 32- или
48-битового счетчика сообщений, в то время как размер случайного векто-
ра инициализации составляет не менее 128 бит. На практике большинству
систем обмена информацией все равно требуются счетчики сообщений, по-
этому использование оказии не приведет к дополнительным расходам.
5.4
Обратная связь по выходу (OFB)
До сих пор все рассмотренные режимы принимали на вход сообщение
и шифровали его путем применения блочного шифра к блокам самого сооб-
щения. Режим
обратной связи по выходу (output feedback — OFB)
отличается
тем, что в качестве входных данных для блочного шифра не используется
само сообщение. Вместо этого блочный шифр применяется для генерации
псевдослучайного потока байтов (называемого ключевым потоком), который
с помощью операции XOR складывается с открытым текстом для получе-
ния шифрованного текста. Схема шифрования, которая генерирует подобный
ключевой поток, называется
поточным шифром (stream cipher)
. Некоторым
почему-то кажется, что поточные шифры очень слабы. Ни в коем случае!
Они не только весьма полезны, но и работают безотказно. Просто необхо-
димо внимательно к ним относиться. Злоупотребление поточным шифром
(как правило, в форме повторного использования оказии) легко нарушает
безопасность системы. В этом смысле надежнее использовать режим наподо-
бие CBC — последний даже при повторном использовании оказии остается
относительно безопасным. Тем не менее преимущества поточных шифров за-
частую перевешивают их недостатки.


94

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




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

    Басты бет