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