Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шемякин лекции 2023 / Л8. Дифференциальный криптоанализ.pptx
Скачиваний:
19
Добавлен:
30.05.2023
Размер:
3.9 Mб
Скачать

Лекция

Дифференциальный

криптоанализ

1

Дифференциальный криптоанализ (ДК), предложенный в 1991 г.

Бихамом и Шамиром, использует аномально повышенные вероятности появления некоторых разностей криптограмм для определенных разностей между открытыми сообщениями.

Обозначим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

через X

X

X

2

...X

n

вход и черезY YY ...Y

 

 

выход

 

1

 

 

1 2

n

 

 

 

 

 

некоторого блокового шифра. Зафиксируем последовательности

 

 

 

 

 

 

 

X

', X '' и

соответствующие

 

 

 

 

 

 

разности

имY

',Y ''. Определим входные и выходные

 

следующим образом: X X '' X '; Y Y '' Y '.

В случае идеального шифра выходные разности были бы

 

 

 

 

 

 

 

1

для всех

равновероятными, т. е. выполнялось бы соотношениеPr( Y

)

2n

 

 

.

 

 

 

 

 

 

 

 

входных разностей X

 

 

 

 

 

 

 

 

 

 

 

 

X1

X2

Xi

Xn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема подстановки

 

 

 

 

 

 

 

 

 

S-блок

 

 

 

 

 

 

 

 

 

 

Y1

Y2

Y3

Yn

 

 

2

Дифференциальный криптоанализ (ДК) основан на гипотезе о

существовании определенных выходных разностей, которые имеют повышенные или пониженные вероятности (т. е. отличающиеся от 21n в

большую или в меньшую сторону). ДК, также как и ЛК, распадается на два этапа:

1)анализ разностей для каждогоS-блока;

2)анализ разностей для всего шифра.

Анализ разностей для S-блока. В табл. 3.6 показаны некоторые

разности X и

соответствующие

им разности Y для различныхХ, где

Y Y Y ',

Y S(X ),Y ' S(X ') ,

X ' X X ,

S( )–преобразование,

выполняемое S-блоком.

3

Примеры пар разностей для S-блока

Х

Y

 

Y

 

X =1011

X =1000

X =0100

 

 

0000

1110

0010

1101

1100

0001

0100

0010

1110

1011

0010

1101

0111

0101

0110

0011

0001

0010

1011

1001

0100

0010

0101

0111

1100

0101

1111

1111

0110

1011

0110

1011

0010

1011

0110

0111

1000

1101

1111

1001

1000

0011

0010

1101

0110

1001

1010

0111

1110

0011

1010

0110

0010

0101

0110

1011

1100

0010

1011

1011

1100

0101

1101

0111

0110

1101

1001

0010

0110

0011

1110

0000

1111

1011

0110

1111

0111

0101

1111

1011

Из табл. 3.6 видно, что Y 0010 появляется в 8 случаях из 16, когдаX 1011, т. е. вероятность ее появления равна 12 , вместо161 , которая была

бы для чисто случайного выбора. Если X 0100, то Y 0010 вообще не появляется. Таким образом, различные виды разностей Y появляются с различной частотой.

4

Распределение значений выходных разностей для S-блока и

различных входных разностей представлено в табл. 3.7, где все эти разности записаны в 16-ричной системе. Видно, что наибольшее число раз

(8) появляется выходная разность Y 2 при входной разности X B .

Таблица 3.7 Распределение всевозможных разностей S-блока учебного шифра

 

 

0

В

0

16

1

0

х

2

0

о

3

0

д

4

0

н

5

0

а

6

0

я

 

7

0

р

8

0

а

9

0

з

A

0

н

B

0

о

C

0

с

D

0

т

E

0

ь

F

0

 

 

 

 

 

 

Выходная разность

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

A B C D E F

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

0

0

0

2

0

2

4

0

4

2

0

0

0

0

2

0

6

2

2

0

2

0

0

0

0

2

0

0

2

0

2

0

0

0

0

4

2

0

2

0

0

4

0

0

2

0

0

6

0

0

2

0

4

2

0

0

0

4

0

0

0

2

2

0

0

0

4

0

2

0

0

2

0

0

4

0

4

0

0

0

0

0

0

2

2

2

2

0

2

2

2

0

2

0

0

2

2

0

0

0

0

4

0

0

0

0

0

2

2

0

0

0

4

0

4

2

2

2

0

0

2

0

0

4

2

0

2

2

2

0

0

0

2

2

0

0

0

0

0

6

0

0

2

0

0

4

0

0

8

0

0

2

0

2

0

0

0

0

0

2

0

2

2

0

0

2

2

2

0

0

0

0

2

0

6

0

0

4

0

0

0

0

0

4

2

0

2

0

2

0

2

0

0

2

4

2

0

0

0

6

0

0

0

0

0

2

0

2

0

0

6

0

0

0

0

4

0

2

0

0

2

0

5

ВЛИЯНИЕ РАУНДОВЫХ КЛЮЧЕЙ НА ВЫХОДНЫЕ РАЗНОСТИ

Прежде чем перейти ко второму этапу, отметим важное свойство этого метода криптоанализа: раундовые ключи не влияют на входные разности. Действительно, из схемы, приведенной на рис. 3.7, следует справедливость следующего соотношения:

Wi (X ' ki ) (X '' ki ) (X ' X '') X , поскольку раундовый ключki сохраняется

постоянным, и тогда ki ki 0 .

Рис. 3.7. Нахождение разности

при наличии раундовых ключей

6

Расчет разностных характеристик для полного шифра.Будем

использовать следующие разностные пары для S-блоков, через которые проходят жирные линии на рис.3.8:

 

 

 

 

 

 

8

 

 

 

S(1,2)

X B

 

Y 2

с вероятностью

 

 

 

 

 

 

;

16

 

 

 

 

 

 

 

S(2,3)

X 4

 

Y 6

с вероятностью

 

 

6

 

 

 

;

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

 

S(3,2)

X 2

 

Y 5

с вероятностью

 

 

6

 

 

 

;

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

S(3,3)

X 2

 

Y 5

с вероятностью

 

 

 

 

 

 

.

16

 

 

 

 

 

 

 

 

 

 

7

8

Для всех остальных блоков входные разности будут нулевыми, что на

выходе даст также нулевые разности. Используя те же обозначения для входов и выходов раундов, что и при линейном криптоанализе, но с индексом (разность), мы получаем следующие выражения для соответствующих разностей:

P U1 [000010110000 0000];

 

 

 

 

 

 

 

 

 

8

 

 

1

V1 [0000 0010 0000 0000], ( Y 2) с вероятностью

 

 

 

 

 

 

.

16

2

После перестановок в первом слое, получаем

 

 

 

 

 

 

 

 

 

 

 

U2 [0000 0000 0100 0000], ( Y 2) с вероятностью

 

 

1

 

 

 

 

 

2

.

 

 

 

 

 

 

 

 

 

9

Далее используем ранее выбранную выходную пару для блока S2,3

V2 [0000 0000 0110 0000].

После перестановок получаем для следующего слоя

 

 

 

 

 

 

 

 

1

 

 

6

 

 

 

 

3

 

 

 

 

 

U3 [0000 0010 0010 0000] с вероятностью

 

 

2

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

16

 

 

 

Переходя к блокам S3,2 , S3,3 , получаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V [0000 010101010000] с вероятностью

 

 

 

 

6

2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

Для слоя U4 получаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

6

 

 

6

 

 

2

 

 

 

27

 

U

4

[0000 0110 0000 0110] с вероятностью

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

16

 

 

 

 

 

 

 

 

1024

 

 

 

 

 

 

 

16

 

 

 

 

10

11