9 Разностная атака

advertisement
9
9.1
Разностная атака
Таблицы разностей
Отображению s : An → Am поставим в соответствие таблицу разностей — 2n × 2m матрицу
Q(s) = (qαβ (s)),
в которой
qαβ (s) =
X
α ∈ An ,
β ∈ Am ,
I {s(x ⊕ α) = s(x) ⊕ β} .
x∈An
P
Упражнение 9.1. Доказать: 1) qαβ — четные числа; 2) β qαβ = 2n ; 3) если n = m и s — подстановка, то
P
n
−n Q(s) является дважды стохастической).
¤
α qαβ = 2 (матрица 2
Придадим введенному объекту вероятностный смысл и одновременно поясним содержание возникшего
термина «разность». Пусть x и x̃ — случайные слова с равномерным распределением на An . Их разностью
назовем слово ∆x = x ⊕ x̃. Аналогично, разностью s(x) и s(x̃) назовем слово ∆s = s(x) ⊕ s(x̃).
Теперь
qαβ
= P {∆s = β | ∆x = α} ,
2n
т. е. элементы таблицы разностей характеризуют вероятности перехода от входной разности α в прообразе
к выходной разности β в образе.
Пример 9.1. Пусть S1 ∈ S(A4 ) — первый S-блок криптосистемы G, S1 (x) = ((3x mod 17) + 2) mod 16. Для α = 1000
и β = 0001 прямыми вычислениями можно найти, что qαβ (S1 ) = 4.
Рассмотрим тактовую функцию fκ криптосистемы G. Анализируя вид fκ , устанавливаем, что для γ = 10000000
выполняется:
P {∆fκ = γ | ∆x = γ} = P {S1 (x1 ⊕ κ1 ) ⊕ S1 (x1 ⊕ κ1 ⊕ α) = β} =
= P {S1 (x1 ) ⊕ S1 (x1 ⊕ α) = β} =
1
= P {∆S1 = β | ∆x1 = α} = ,
4
т. е. fκ сохраняет разность γ с высокой вероятностью. Подобного рода слабости как раз и позволяют использовать
методы разностного анализа.
¤
9.2
Разностная атака
Определения. Пусть F — действующая на An d-тактовая итерационная криптосистема. Разность ∆X =
X ⊕ X̃ между открытыми текстами X, X̃ ∈ An порождает последовательность разностей
∆Y (1) = Y (1) ⊕ Ỹ (1), . . . , ∆Y (d) = Y (d) ⊕ Ỹ (d),
где Y (i), Ỹ (i) — результаты выполнения i тактов преобразования Fθ = Σκd . . . Σκ1 над X и X̃ соответственно.
Последовательность (α, β(1), . . . , β(r)) возможных значений разностей ∆X, ∆Y (1), . . . , ∆Y (r) называется r-тактовой характеристикой, а пара (α, β(r)) значений (∆X, ∆Y (r)) — r-тактовым дифференциалом,
1 6 r 6 d. Тривиальные характеристики (0, 0, . . . , 0) и дифференциалы (0, 0) в разностном анализе не рассматриваются.
В предположении, что X, X̃ — случайные слова с равномерным на An распределением, а случайные
тактовые ключи κ1 , . . . , κd независимы и равномерно распределены на множестве тактовых ключей K, введем
вероятность характеристики
P {∆Y (1) = β(1), . . . , ∆Y (r) = β(r) | ∆X = α}
и вероятность дифференциала
P {∆Y (r) = β(r) | ∆X = α} .
36
Условия и цель атаки. Разностная атака на криптосистему F проводится при выбираемом открытом тексте. Целью атаки является определение последнего тактового ключа κd (полностью или частично).
Используя оценки κ̂d можно вычислять значения
−1
Z(Y, Ỹ ; κ̂d ) = Σ−1
κ̂d (Y ) ⊕ Σκ̂d (Ỹ ).
Предварительный этап. Криптоаналитик находит (d − 1)-тактовый дифференциал (α, β(d − 1)) с максимально возможной вероятностью p. Сразу скажем, что для успеха атаки требуется выполнения условия
p > 1/(2n − 1).
Поиск высоковероятного дифференциала — непростая задача, успешное решение которой зависит от
квалификации криптоаналитика. Криптоаналитик должен тщательно изучить криптосистему, провести исследование разностных характеристик S-блоков, характеристик перемешивания P -блоков и др.
Обычно вместо высоковероятного дифференциала (α, β(d − 1)) криптоаналитик ищет высоковероятную
характеристику (α, β(1), . . . , β(d − 1)) и использует оценки:
p > P {∆Y (1) = β(1), . . . , ∆Y (r) = β(d − 1) | ∆X = α}
≈ P {∆Y (1) = β(1) | ∆X = α} P {∆Y (2) = β(2) | ∆Y (1) = β(1)} . . .
P {∆Y (d − 1) = β(d − 1) | ∆Y (d − 2) = β(d − 2)} .
Оперативный этап атаки проводится следующим образом:
1. Криптоаналитик случайным образом выбирает открытые тексты Xt ∈ An и определяет шифртексты
Yt = Fθ (Xt ), Ỹt = Fθ (Xt ⊕ α), t = 1, . . . , T .
2. В качестве оценки κd выбирается значение κ̂d , доставляющее максимум сумме
W (κ̂d ) =
T
n
o
X
I Z(Yt , Ỹt ; κ̂d ) = β(d − 1) .
t=1
Сложность атаки. Проведем грубый анализ сложности атаки (более тонкий анализ предполагает использование свойств конкретной криптосистемы). Если κ̂d = κd , то
EW (κ̂d ) =
T
X
n
o
P Z(Yt , Ỹt ; κ̂d ) = β(d − 1) = T p.
t=1
Если же κˆd 6= κd , то естественно считать, что слова Z(Yt , Ỹt ; κ̂d ) принимают случайные значения из An \ {0}
и в этом случае
T
n
o
X
P Z(Yt , Ỹt ; κ̂d ) = β(d − 1) = T /(2n − 1).
EW (κ̂d ) =
t=1
Для того, чтобы атака приводила в среднем к нужному результату требуется, чтобы
T p − T /(2n − 1) > 1,
откуда
T >
1
.
p − 1/(2n − 1)
Пример 9.2. Блочная криптосистема DES была принятая в качестве стандарта шифрования США в 1977 г. Долгое
время не удавалось предложить атаки на DES, сложность которых была бы существенно меньше сложности атаки
«грубой силой». Первым успехом явилась как раз разностная атака, предложенная в 1991 г. Бихамом и Шамиром.
В предложенной атаке использовались две 13-тактовых разностных характеристики с вероятностью ≈ 2−47.2 . Атака
позволяет определить 52 бита информации о двух последних тактовых ключах с вероятностью 0.58 при анализе 247
пар «открытый текст — шифртекст».
¤
37
9.3
Пример: разностная атака на криптосистему G
Проиллюстрируем разностную атаку на примере модельной 8-тактовой криптосистемы Фейстеля G. Длина
ключа G — 32 бита, длина блока — 16 битов.
Ключу θ = (θ1 , θ2 , θ3 , θ4 ), θi ∈ A8 , ставится в соответствие последовательность тактовых ключей
κ1 = θ1 ,
κ2 = θ2 ,
κ3 = θ3 ,
κ4 = θ4 ,
κ5 = θ1 ,
κ6 = θ2 ,
κ7 = θ3 ,
κ8 = θ4 .
Тактовая функция fκ : A8 → A8 , κ = κ1 k κ2 , κi ∈ A4 , ставит в соответствие вектору x = x1 k x2 , xi ∈ A4 ,
слово
fκ (x) = S1 (x1 ⊕ κ1 ) k S2 (x2 ⊕ κ2 )) ≪ 3
S-блоки действуют на A4 ∼ Z16 ∼ F∗17 по правилам:
S1 (x) = ((3x mod 17) + 2) mod 16,
S2 (x) = ((5x mod 17) + 7) mod 16,
x = 0, 1, . . . , 15
(3 и 5 — примитивные элементы F17 ).
Упражнение 9.2. Построить таблицы S-блоков S1 , S2 .
Для проведения разностной атаки на
вида:
α=
β(1) =
β(2) =
β(3) =
β(4) =
β(5) =
β(6) =
β(7) =
¤
G можно использовать 7-тактовую характеристику следующего
γk0
0kγ
γkγ
γk0
0kγ
γkγ
γk0
0kγ
(c
(c
(c
(c
(c
(c
(c
вероятностью
вероятностью
вероятностью
вероятностью
вероятностью
вероятностью
вероятностью
1)
1/4)
1/4)
1)
1/4)
1/4)
1),
где γ = 10000000, а значения вероятностей определялись с помощью предыдущего примера. Вероятность
характеристики p = 2−8 .
Поскольку p À 2−n = 2−16 , найденную характеристику можно использовать для определения последнего
тактового ключа κ8 = θ4 . Детальный анализ показывает, что имеются неразличимые ключи-кандидаты κ̂8 ,
которые доставляют одинаковые значения целевой функции W (κ̂8 ). Поэтому удается определить только 3
бита κ8 , для этого требуется обработать ≈ 2000 пар «открытый текст — шифртекст».
9.4
Конструкция Нюберг
Пусть s ∈ S(An ). Образуем матрицу Q∗ (s), вычеркнув в таблице разностей Q(s) первые (с пометкой 0)
строку и столбец. Обозначим через R(s) максимальный элемент Q∗ (s). Как мы только что убедились, при
включении s в состав блочной криптосистемы F характеристика R(s) определяют стойкость F к методам
разностного анализа. Малые значения R(s) затрудняют применение таких методов.
Возникает задача построения s с малыми значениями R(s). В 1993 году Каиса Нюберг предложила
решение данной задачи, которое затем часто использовалось во многих криптосистемах, в частности, в AES.
Опишем конструкцию Нюберг.
Будем представлять слова из An элементами поля F2n и, таким образом, перенесем действие s на F2n ,
т. е. будем считать, что s ∈ S(F2n ). Действие s определим следующим образом:
(
x−1 , x 6= 0,
2n −2
s(x) = x
=
0, x = 0.
Теорема 9.1. Пусть s ∈ S(F2n ) — подстановка Нюберг. Тогда R(s) = 4 при четном n и R(s) = 2 при
нечетном n.
38
Доказательство. Пусть α, β ∈ F2n и α 6= 0. Рассмотрим уравнение
s(x + α) − s(x) = β
(?)
относительно x. Характеристика R(s) есть максимальное число решений данного уравнения при всевозможных фиксированных α, β. Подсчитаем максимальное число решений. Для этого рассмотрим два случая.
1. Пусть β 6= α−1 . Тогда x = 0 и x = α не могут являться решениями (?). Считая, что x ∈
/ {0, α}, мы
можем записать (?) в виде:
1
1
x + (x + α) + βx(x + α)
+ +β =
=0
x+α x
(x + α)x
и получить эквивалентное квадратное уравнение
βx2 + αβx + α = 0,
которое имеет не более двух решений в поле F2n .
2. Пусть β = α−1 . В этом случае решениями (?) являются x = 0 и x = α, а также, дополнительно,
решения уравнения
α−1 x2 + α−1 αx + α = 0
или, что эквивалентно, уравнения
x2 + αx + α2 = 0.
Оценим число решений последнего уравнения. Для этого выполним замену y =
x
α
и перейдем к уравнению
y 2 + y + 1 = 0.
Все корни этого уравнения лежат в поле F22 . Действительно, корнями являются элементы λ, λ + 1 ∈
F2 [λ]/(λ2 + λ + 1) ∼
= F22 .
При четном n поле F22 является подполем F2n , а при нечетном n — нет (почему?). Таким образом, у
исходного уравнения (?) имеется 6 4 решений при четном n и 6 2 решений при нечетном n, причем верхние
границы достижимы.
¤
39
Download