Нахождение статистических аналогов для трех циклов алгоритма DES
Матсуи не описывал алгоритма получения эффективных линейных аналогов для алгоритма DES, состоящего из r циклов, но из финальных результатов можно предположить, что основная идея состоит в следующем: использовать связанные тройные суммы с наибольшим D.
Прежде чем пояснить вышесказанное на примере, рассмотрим несколько базовых определений:
Лемма 1. Если S(1),…, S(n) – независимые бинарные случайные величины, тогда
D(S(1)Å… ÅS(n)) = ПD(S(i)), (9)
где i=1,…, n.
Доказательство.Так как S(1) и S(2) независимы и при этом Р(S(1)=1)=р1, Р(S(2)=1)=р2, Р(S(1)=0)=1– р1 и Р(S(2)=0)=1 – р2. Тогда:
Р(S(1)ÅS(2) = 1) = Р(S(1)=1)Р(S(2)=0) + Р(S(1)=0)Р(S(2)=1) = р2(1 – р1) + р1(1 – р2) = р2 – р1р2 + р1 – р1р2 = р2 + р1 – 2р1р2.
D(S(1)ÅS(2)) = 1 – 2р(S(1)ÅS(2) =1) = 1 – 2(р2 + р1 – 2р1р2) = 1 – 2р2 – 2р1 + 4р1р2 = (1 – 2р1)( 1 – 2р2) = D(S(1))D( S(2)).
Замечание 1. Массе называл тройной суммой S(i) для i-го раунда случайную величину вида
S(i) = fi (X(i)) Å gi (Y(i)) Å hi (K(i)), (10)
где fi, gi, hi – равновероятностные булевы функции.
В определении Матсуи fi, gi, hi – линейные функции.
Определение 2. Последовательные тройные суммы S(1+i) и S(i) называются связанными, если fi+1 = gi.
Из определения следует, что S(i) Å S(1+i) = fi (X(i)) Å gi (Y(i)) Å hi (K(i)) Å fi+1 (X(i+1)) Å gi+1 (Y(i+1)) Å bi+1 (K(i+1)),
где Y(i) = X(i+1).
Определение 3. Если S(1),…, S(n) – связанные тройные суммы, то тогда S1… n = S(1)Å… ÅS(n) = f1 (X(1)) Å gn (Y(n)) Å , (11)
и S1… n называется n-раундовой тройной суммой.
В случае линейных функций формула (11) дает линейное соотношение
S1… n =(X(1), a) Å (Y(n), b) Å , (12)
которое выполняется с вероятностью, определяемой D(S(1)Å… ÅS(n)) и леммой 1.
Определение 4. Эффективным линейным статистическим аналогом называется линейный статистический аналог (12) из заданного множества с наибольшим D.
Поясним все вышесказанное на примере. Для этого рассмотрим схему 3-раундового DES (см рис. 3.1).
Эффективными линейными статистическими аналогами 1-ой и третьей итераций являются уравнения
X(1)17 Å Y(1)2 Å Y(1)8 Å Y(1)24 Å Y(1)14 = K(1)26,
X(3)17 Å Y(3)2 Å Y(3)8 Å Y(3)24 Å Y(3)14 = K(3)26,
каждое из которых выполняется с вероятностью 3/16.
Учитывая, что Х(1) = PR, X(3) = CL, Y(1) = PL Å X(2), Y(3) = CR Å X(2), после сложения этих уравнений получим
(PR Å CL) 17 Å (PL Å CR) 2 Å (PL Å CR) 8 Å (PL Å CR) 24 Å (PL Å CR) 14 = (К(1) Å К(3)) 26. (13)
По лемме 1 D = (5/8)*(5/8) = 25/64 и это уравнение выполняется с вероятностью р = (1 – D)/2 = 39/128.
Найти биты ключа К(1) Å К(3) можно, решая уравнение (13) с использованием следующего алгоритма.
Алгоритм. Пусть N – число всех открытых текстов и Т – число открытых текстов, для которых левая часть (13) равна 0.
Если Т> N/2, то
К(1) Å К(3) =
Если Т< N/2, то
К(1) Å К(3) =
Успех алгоритма возрастает с ростом N и D = |1 – 2p|. Вероятность успеха определяется следующей леммой.
Лемма 2. Пусть N – число открытых текстов и р – вероятность выполнения линейного уравнения (2). Предположим, что D = |1 – 2p| ® 0. Тогда вероятность успеха алгоритма имеет вид
Р ® ,
Где
. (14)
Числовые вычисления (14) сведены в таблице 3.5.
Таблица 3.5
N | 1/16 D2 | 1/8D2 | 1/4D2 | 1/2D2 |
Pусп | 0,841 | 0,921 | 0,977 | 0,998 |
Аналогичным образом можно строить уравнения нахождения битов ключа и для большего количества циклов. Самое главное при этом вывести такие уравнения, левые части которых нам известны.