Введение в современную криптографию


*Доказательство беопасности



Pdf көрінісі
бет102/249
Дата14.06.2023
өлшемі6.4 Mb.
#475029
1   ...   98   99   100   101   102   103   104   105   ...   249
Криптография Катц

4.4.2 *Доказательство беопасности 
В этом разделе мы докажем безопасность различных вариантов CBC-MAC. 
Начнем с обобщения результатов, а затем выложим детали доказательства. 
Перед началом мы отметим, что доказательство в данном разделе достаточно 
сложное и предназначено для продвинутых читателей.
По всему этому разделу, зафиксируйте ключевую функцию F , которая, учи-
тывая параметр защиты n, преобразовывает n-битные ключи и n-битные вход-
ные данные в n-битные выходные данные. Мы определим ключевую


140
РИСУНОК 4.2: Вариант CBC-MAC, защищенного для аутентификации со-
общений проивольной длины.
функцию CBC , которая, учитывая параметр защиты n, преобразовывает 
n-битные ключи и входные данные в ({0, 1}n)* (то есть строки, длина которых 
кратная n) в n-битные выходные данные. Данная функция определяется как
CBC (x , . . . , x ) 
F (F (• • • F (F (x ) ⊕ x ) ⊕ • • • ) ⊕ x ) ,
где |x1| = • • • = |xA | = |k| = n. (Мы оставляем CBCk неопределенной на пу-
стую строку.) Обратите внимание, что CBC точь в точь базовый CBC-MAC, 
хотя здесь мы рассматриваем входные данные различной длины.
Набор строк P ∈ ({0, 1}n)* является бе зпрефиксным, если он не содержит 
пустых строк, и ни одна строка X ∈ P не является префиксом какой-либо другой 
строки Xr ∈ P . Покажем:
ТЕОРЕМА 4.13  Если F является псевдослучайной функцией, тогда и CBC 
является псевдослучайной функцией, поскольку набор входных данных, ко-
торый она опрашивает, является беспрефиксным. Строго говоря, для всех ве-
роятностных полиномиально-временных идентификаторов D , которые опра-
шивают своего оракула касательно беспрефиксного набора входных данных, 
существует пренебрежимо малая функция negl такая, что
где k выбирается единообразно из {0, 1}n, а f выбирается единообразно из на-
бора функций, преобразующих ({0, 1}n)* в {0, 1}n (то есть значение f при 
каждом входном элементе является универсальным и независимым от значений 
f при всех остальных входных данных).
Таким образом, мы можем преобразовать псевдослучайную функцию F для
входных данных фиксированной длины в псевдослучайную функцию CBC для 
входных данных произвольной длины (подчиняющихся условию, по которому 
входные данные были запрошены)! Чтобы использовать это для аутентификации 
сообщений, мы адаптируем идею Конструкции 4.5 следующим образом: чтобы 
аутентифицировать сообщение m, для начала применим некоторую функцию 
шифрования encode, чтобы получить (непустую) строку encode(m) ∈ ({0, 1}n)*;
затем выведем тег CBCk (encode(m)). Здесь, чтобы обеспечить защищенность 
(сравните доказательством Теоремы 4.6), шифрование должно быть без префикс-


141
ным, а именно, иметь такое свойство, чтобы для любого нового (законного) со-
общения m1, m2, строка encode(m1) не являлась префиксом строки encode(m2). 
Это подразумевает то, что для любого набора (законных) сообщений {m1, . . .}, 
набор зашифрованных сообщений {encode(m1), . . .} будет беспрефиксным.
Давайте теперь изучим два конкретных применения этой идеи:
• Зафиксируйте A, и пусть набор законных сообщений будет {0, 1}A(n)•n. За-
тем мы можем взять тривиальное шифрование encode(m) = m, которое является 
беспрефиксным, поскольку строка не может быть префиксом другой строки той 
же длины. Это точь в точь базовый CBC-MAC, и как мы уже говорили выше, 
это подразумевает, что базовый CBC-MAC является защищенным для сообще-
ний любой фиксированной длины (сравните с Теоремой 4.12).
• Один из способов обработки (непустых) сообщений произвольной длины (тех-
нически, сообщений длиной меньше чем 2n) - это зашифровать строку m ∈ {0, 1}* 
посредством добавления в начало строки ее длины |m| (зашифрованной n-битной 
строкой), а затем добавления в конец строки стольких нулей, сколько будет нужно, 
чтобы сделать длину итоговой строки кратной n. (Это очень важно, что и показано 
на Рисунке 4.2.) такое шифрование является беспрефиксным, и мы, таким образом, 
получаем защищенный MAC для сообщений произвольной длины.
Оставшаяся часть раздела посвящена доказательству Теоремы 4.13. Доказывая 
теорему, мы анализируем CBC , когда она «ключевая» при случайной функции g 
, а не случайном ключе k для какой-то присутствующей псевдослучайной функ-
ции F . То есть мы рассматриваем ключевую функцию CBCg , определенную как
CBC (x , . . . , x ) 
g (g (• • • g(g(x ) ⊕ x ) ⊕ • • • ) ⊕ x )
где, учитывая параметр защиты n, функция g преобразовывает n-битные вход-
ные данные вn-битные выходные данные, и |x1| = • • • = |xA | = n. Обратите 
внимание, что CBCg , как было здесь определено, не является эффективной 
(поскольку представление g требует экспоненциала пространства в n); тем не 
менее, она все еще хорошо определенная, ключевая функция.
Мы покажем, что если g выбирается единообразно из Funcn, то CBCg является 
неотличимой от случайной функции, преобразующей ({0, 1}n)* в n-битные строки 
при условии, что опрашивается беспрефиксный набор входных данных. Более точно:


Достарыңызбен бөлісу:
1   ...   98   99   100   101   102   103   104   105   ...   249




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

    Басты бет