Опубликован: 02.03.2017 | Доступ: свободный | Студентов: 2394 / 514 | Длительность: 21:50:00
Лекция 7:

Современные симметричные алгоритмы шифрования

7.3.2 Дополнение. Обзор общих методов построения и тестирования блоков замен

Практически все современные блочные шифры, основанные на схеме Файстеля, содержат в числе процедур преобразования данных замену бит по специальным таблицам аналогично тому, как это делается в шифре ГОСТ 28147-89. Однако в них эти таблицы определены в спецификации алгоритма и выбираются один раз (на этапе проектирования шифра). Назначение этих таблиц (в алгоритме DES они называются S-блоками) -- перемешивание битов данных в ходе раунда шифрования путем замены отрезков шифруемого блока данных по правилам, определяемым таблицами.

Общие требования к узлам замен (S-блокам) блочных шифров повторяют требования к функции шифрования в целом -- это высокое значение нелинейности и наличие лавинного эффекта (что достигается при низком динамическом расстоянии различных порядков). Существует ряд общеизвестных критериев для проектирования устойчивых к дифференциальному криптоанализу узлов замен для любых блочных шифров:

1) Строгий критерий лавинного эффекта (SAC -- Strict Avalanche Criterion) -- требует, чтобы для любых i и j при инвертировании входного бита i на входе узла замен выходной бит j изменялся с вероятностью 1/2. Блок замен удовлетворяет данному критерию, если его динамическое расстояние порядка (1,1) равно 0.

2) Критерий независимости битов (BIC -- Bit Independence Criterion) -- требует, чтобы для любых значений i, j и k при инвертировании входного бита i на входе узла замен выходные биты j и k изменялись независимо (то есть вероятность одновременного изменения битов должна быть равна произведению вероятностей изменения отдельных бит). Блок замен удовлетворяет данному критерию, если динамическое расстояние порядка 1 {XOR} - суммы любых двух булевых функций, его составляющих, равно 0.

3) Критерий гарантированного лавинного эффекта (GAC -- Guaranteed Avalanche Criterion) порядка \gamma -- выполняется, если при изменении одного бита на входе узла замен на выходе меняются как минимум \gamma выходных битов.

4) Критерий XOR-значения для блока S размерностью n\times m бит -- основывается на построении на основе блока специальной XOR -таблицы, элементы которой вычисляются по следующей формуле:

\text{XOR}(S,\alpha,\beta)=\left|x\in \{0,1\}^n \mid S(x)\oplus S(x\oplus \alpha)=\beta \right|,

где \alpha\in\{0,1\}^n\setminus\{0\} это значение может быть представлено в виде числа от 1 до 2^n-1), \beta\in \{0,1\}^m (может быть представлено в виде числа от 0 до 2^m-1), S(x) --- выходное значение блока замен S при входном значении x.

XOR-значением блока замен называется максимальное значение в его XOR-таблице. Данный критерий требует, чтобы XOR-значение блока было как можно меньшим, в идеале -- 2.

Для построения новых высокоскоростных криптоалгоритмов интерес представляют такие блока S, которые соответствуют одновременно нескольким критериям качества, и, таким образом, позволяют эффективно противостоять одновременно разным видам атак. Одними из наиболее существенных с практической точки зрения является критерий независимости векторов выхода S-блока y_j от векторов его входа x_i.

Более формально: обозначим через \{x_i\}_{i=0}^{N-1} множество всевозможных входных векторов блока замен. Очевидно, N=2^n. Каждому входному вектору x_i соответствует выходной вектор y_i. Через x_{ij} и y_{ik} обозначим, соответственно, j-й бит входного вектора и k-й бит выходного вектора (0\leq j\leq n-1, 0\leq k\leq m-1). Биты входных векторов x_i связаны с номером i соотношением:

i=x_{i0} + 2 x_{i1} + \ldots + 2^{n-1} x_{i,n-1}.

Мы также будем записывать выходной вектор y_i=S(x_i) шестнадцатеричным числом, связанным с битами соотношениями:

y_i = y_{i0} + 2 y_{i1}+\ldots+2^{m-1} y_{i,m-1}.

Например, если y_i=A8_{16}=10101000_2, то y_{i0} = 0, y_{i1}=0, \ldots, y_{i5}=1, y_{i6}=0, y_{i7}=1.

Коэффициент корреляции между j-м входным и k-м выходным битами узла замен вычисляется по формуле:

\rho_{jk}=\frac{\sum_{t=0}^{N-1} x_{tj} y_{tk}- \left(\sum_{t=0}^{N-1} x_{tj}\cdot \sum_{t=0}^{N-1} y_{tk}\right)/N}{\sqrt{\left(\sum_{t=0}^{N-1} x_{tj}^2 - \left(\sum_{t=0}^{N-1} x_{tj}\right)^2/N \right)\cdot\left(\sum_{t=0}^{N-1} y_{tk}^2 - left(\sum_{t=0}^{N-1} y_{tk}\right)^2/N \right)}}.

Кроме того, для двоичных векторов x_i, y_i верна более простая формула:

\rho_{jk}=1-2^{-(n-1)}\sum\limits_{z=0}^{N-1} (x_{z,j} \oplus y_{z,k}). ( 7.1)

Пример 7.7 Вычислим коэффициенты корреляции для следующего блока замен 4\times 4 для алгоритма ГОСТ:

9 8 3 A C D 7 E 0 1 B 2 4 5 F 6
    

Более подробно: число 0 (нумерация начинается с нуля) переходит в число 9, число 1 переходит в 8, 2 в 3, число 3 в 10, 4 в 12,..., число 15 переходит в 6.

Запишем битовые представления всех чисел нашей подстановки:

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
1001 1000 0011 1010 1100 1101 0111 1110 0000 0001 1011 0010 0100 0101 1111 0110

Теперь, интерпретируя последовательность битов каждого разряда как множество значений случайной величины, вычислим коэффициенты корреляции между последовательностью входящих битов i-го разряда и последовательностью выходящих битов j-го разряда, i,j=0,1,2,3. Все коэффициенты корреляции посчитаны в таблице 7.4.

Таблица 7.4. Пример расчитанных коэффициентов корреляции
j\k 0 1 2 3
0 -0,25 0 0 0
1 0 1 0 0
2 0 0 1 0
3 0 0 0 -0,5

Мы видим, что биты 1 и 2 группы остаются неизменными, что свидетельствует о плохом качестве данного блока.

Определение 7.9 Нелинейное преобразование назовем оптимальным, если все его коэффициенты корреляции равны нулю.

В работах [5], [2] представлена методика построения оптимальных блоков замен любого размера.

Существуют следующие наиболее распространенные подходы к построению блоков замен:

1) Случайный выбор. Элементы узлов замен выбираются с помощью генератора случайных или псевдослучайных чисел. Это наиболее простой способ, однако в случае небольшого размера блоков, как в алгоритме ГОСТ 28147-89 (4{\times}4 бит), такой способ может с высокой степенью вероятности привести к генерации таблицы замен с нежелательными с точки зрения стойкости криптостойкости характеристиками нелинейности и лавинного эффекта.

2) Случайный выбор с последующей проверкой. Элементы блоков замен выбираются случайным образом, но после этого полученные результаты проверяются на соответствие различным критериям с отсеиванием тех блоков, которые не выдержали такой проверки. Этот способ также прост, и в то же время он устраняет указанный недостаток первого способа, однако в таком случае встает вопрос о выборе набора критериев для проверки и формировании методики тестирования, так как не существует блоков, одинаково хорошо удовлетворяющих всем предъявляемым к ним требованиям одновременно. Также возможна ситуация, когда блоков замен, удовлетворяющим выбранным требованиям слишком мало по сравнению с мощностью пространства блоков, и генерация таких блоков на основе случайного выбора может требовать больших вычислительных ресурсов.

3) Выбор вручную. Элементы узлов замен выбираются вручную с использованием математических преобразований. Именно эта методика легла в основу разработки DES с его фиксированными S-блоками. Такой подход является наиболее сложным, так как требует разработки и теоретического обоснования методики выбора блоков замен.

4) Математический подход. Элементы узлов замен генерируются при помощи определенного алгоритма, основанного на тех или иных математических принципах. Такой подход при грамотной проектировании алгоритма обеспечивает выбор узлов замен, гарантирующих заданный уровень надежности по отношению к различным методам криптоанализа.

Евгений Шаров
Евгений Шаров

как начать заново проходить курс, если уже пройдено несколько лекций со сданными тестами?

Юлия Мышкина
Юлия Мышкина

Обучение с персональным тьютором осуществляется по Скайпу или посредством переписки?