Необходимость внезависимых ключах. Завершим эту главу, сосредоточив
внимание на базовом принципе криптографии: различные варианты криптогра-
фических примитивов должны всегда использовать независимые ключи. Чтобы
проиллюстрировать это здесь, рассмотрим, что может случится с методом «шиф-
рование, затем аутентификация», когда один и тот же ключ k используется как для
шифрования, так и для аутентификации. Пусть F будет сильной псевдослучайной
перестановкой. Из этого следует, что F −1 также является сильной псевдослучайной
перестановкой. Определим Enck (m) = Fk (m||r) для m ∈ {0, 1}n/2 и универсальный
r ∈ {0, 1}n/2, а также определим Mack (c) = Fk −1(c). Можно показать, что схема
шифрования является безопасной для атак на основе подобранного открытого тек-
ста (в действительности, она даже безопасна от атак на основе подобранного шиф-
ротекста; см. Упражнение 4.25), а также мы знаем, что данный код аутентификации
сообщений является защищенным MAC. Однако, комбинация «шифрование, по-
том аутентификация», используя один ключ k применимо к сообщению m выдает:
Enck (m), Mack (Enck (m)) = Fk (m||r), F −1(Fk (m||r)) = Fk (m||r), m||r,
и сообщение m is revealed in the clear! Это ни в коем случае не противоречит
Теореме 4.19, так как Конструкция 4.18 явно требует, чтобы kM, kE было по-
добрано (единообразно и) независимо. Мы даем читателю возможность вы-
яснить, где такая независимость применяется в доказательстве Теоремы 4.19.
4.5.3 Защищенные сеансы связи
Мы кратко описывали применение аутентифицированного шифрования к па-
раметрам двух сторон, желающих осуществлять безопасную связь, а именно, с
взаимной стойкостью и целостностью во время сеансов связи. (В этом разделе
сеанс связи будет означать простой период времени, во время которого сообща-
ющиеся стороны сохраняют состояние.) В нашем решении мы будем намерен-
но неформальны; формальное определение достаточно сложное, а данная тема
лежит больше в области сетевой безопасности чем криптографии.
Пусть Π = (Enc, Dec) будет схемой аутентифицированного шифрования. Рас-
смотрим две стороны A и B , которые разделяют ключ k и желают использовать
этот ключ, чтобы обезопасить связь между ними во время сеанса. Очевидно, что
тут необходимо использовать Π: Допустим, сторона A хочет передать сообщение
m стороне B, она вычисляет c ← Enck (m) и отправляет c стороне B; сторона
B в ответ дешифрует c , чтобы извлечь результат (игнорируя результаты, если
дешифрирование возвращает ┴). Аналогично, идентичная процедура следует,
когда сторона B хочет отправить сообщение A. Этот простой подход, однако , не
удовлетворителен, так как существует множество потенциальных атак:
Достарыңызбен бөлісу: |