Дифференциальный и линейный криптоанализ блочных шифров

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ 

 ФЕДЕРАЛЬНОЕ  ГОСУДАРСТВЕННОЕ  АВТОНОМНОЕ  ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ   ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ  

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ  УНИВЕРСИТЕТ»

 

 

 

Факультет информационной безопасности

 

 

 

 

 

 

 

 

 

Курсовая  работа

 

По курсу «КМ СОИБ»

«Дифференциальный  и линейный криптоанализ блочных шифров»

 

 

 

Вариант № 34200

 

 

 

 

 

 

 

 

 

ст. гр. И-20

Выполнил    ____________    Ефимов А.А.

           (подпись)   

 

доц. каф. БИТ

Проверил    ____________   Ищукова.Е.А

        (подпиcь)

 

 

 

 

 

 

                                                        Таганрог – 2012

Цель:

        Научиться выполнять дифференциальный и линейный криптоанализ блочных шифров, используя незашифрованные и зашифрованные тексты, найти ключ шифрования.

 

 

Часть 1.

 

Порядок выполнения:

         - Для каждого из заданных блоков замены проводим статистический анализ и составляем три таблицы зависимости ∆С от ∆А для S1, S2 и S3.

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

   - Используя таблицу перестановки с расширением до 12 бит, находим ∆А и ∆С, вносим их в исходные данные, задаем количество шифруемых текстов и начинаем шифрование.

         - С помощью результатов шифрования находим ключ.

 

Вариант №  34200

Таблица перестановки: 87325416

Таблица перестановки с расширением: 431687254367

 

Таблицы вероятности для трех блоков замены вычисляются с помощью программы lab_1.1, описанная в приложении А.

S1

Таблица S1:

 

а1

а2а3а4

000

001

010

011

100

101

110

111

0

2

1

0

4

1

2

6

5

1

4

7

3

5

7

6

0

3


 

Принцип работы первого блока  замены.

Вход

Выход

0000

010

0001

001

0010

000

0011

100

0100

001

0101

010

0110

110

0111

101

1000

100

1001

111

1010

011

1011

101

1100

111

1101

110

1110

000

1111

011


 

 

 

 

Вероятностная таблица анализа  для первого блока замены

∆А1

∆С1

000

001

010

011

100

101

110

111

0000

0

0

0

0

0

0

0

0

0001

0

1/8

0

5/8

1/8

0

1/8

0

0010

0

0

1/4

0

0

1/4

0

1/2

0011

0

1/4

0

0

1/2

0

1/4

0

0100

0

1/4

0

1/2

0

0

1/4

0

0101

1/2

0

1/4

0

0

1/4

0

0

0110

0

1/8

0

1/8

5/8

0

1/8

0

0111

0

0

1/4

0

0

1/4

0

1/2

1000

0

1/8

0

1/8

1/8

0

5/8

0

1001

0

0

0

0

0

3/4

0

1/4

1010

0

1/2

0

1/4

1/4

0

0

1/4

1011

1/4

0

1/2

0

0

0

0

1/4

1100

1/4

0

0

0

0

1/2

0

1/4

1101

0

0

0

1/4

1/4

0

1/2

0

1110

0

0

3/4

0

0

0

0

1/4

1111

0

5/8

0

1/8

1/8

0

1/8

0


 

 

 

 

 

S2

Таблица S2:

а1

а2а3а4

000

001

010

011

100

101

110

111

0

2

4

2

7

0

6

0

6

1

5

3

4

3

5

1

7

1


 

Принцип работы второго блока замены.

 

Вход

Выход

0000

010

0001

100

0010

010

0011

111

0100

000

0101

110

0110

000

0111

110

1000

101

1001

011

1010

100

1011

011

1100

101

1101

001

1110

111

1111

001


 

 

Вероятностная таблица анализа  для второго блока замены

∆А1

∆С1

000

001

010

011

100

101

110

111

0000

0

0

0

0

0

0

0

0

0001

0

0

0

0

1/8

1/8

5/8

1/8

0010

5/8

1/8

1/8

1/8

0

0

0

0

0011

0

0

0

0

1/8

1/8

5/8

1/8

0100

1/8

1/8

5/8

1/8

0

0

0

0

0101

0

0

0

0

5/8

1/8

1/8

1/8

0110

0

1/4

3/4

0

0

0

0

0

0111

0

0

0

0

5/8

1/8

1/8

1/8

1000

0

0

0

0

1/8

1/8

1/8

5/8

1001

0

3/4

0

1/4

0

0

0

0

1010

0

0

0

0

1/8

1/8

1/8

5/8

1011

1/8

5/8

1/8

1/8

0

0

0

0

1100

0

0

0

0

1/8

5/8

1/8

1/8

1101

1/8

1/8

1/8

5/8

0

0

0

0

1110

0

0

0

0

1/8

5/8

1/8

1/8

1111

0

0

1/4

3/4

0

0

0

0


 

S3

 

Таблица S3:

а1а4

а2а3

00

01

10

11

00

1

3

2

2

01

1

2

1

1

10

3

3

0

0

11

2

0

0

3


 

 

Принцип работы третьего блока замены.

 

Вход

Выход

0000

01

0001

01

0010

11

0011

10

0100

10

0101

01

0110

10

0111

01

1000

11

1001

10

1010

11

1011

00

1100

00

1101

00

1110

00

1111

11


 

 

Вероятностная таблица анализа  для третьего блока замены

∆А1

∆С1

00

01

10

11

0000

0

0

0

0

0001

1/4

1/4

0

1/2

0010

1/2

0

1/4

1/4

0011

1/8

1/8

1/8

5/8

0100

1/8

1/8

1/8

5/8

0101

1/2

0

1/4

1/4

0110

1/4

1/4

0

1/2

0111

1/2

0

1/4

1/4

1000

1/2

1/2

5/8

1/8

1001

0

1/2

1/4

1/4

1010

1/4

1/4

1/2

0

1011

0

3/4

1/4

0

1100

0

3/4

0

1/4

1101

1/4

1/4

1/2

0

1110

0

1/2

1/4

1/4

1111

1/8

1/8

5/8

1/8


 

Наиболее вероятные значения входных разностей для блоков замены

∆А1

∆А2

∆А3

1001

1110

0110

1001

1111

1011

1100


 

     Проверим значение ∆А = 100101101011

Перестановка с расширением

4

3

1

6

8

7

2

5

4

3

6

7

Значение∆А

1

0

0

1

0

1

1

0

1

0

1

1


     Все биты совпадают дублированной части, значит значение ∆А найдено верно.     Значение ∆С=10101001.

     К разности ∆А применим перестановку Е-1, обратную перестановке с расширением и получим XR=01010110, а к разнице ∆С применим прямую перестановку Р и получим D=10101010.

Рис.1

 

Полученные сообщения преобразуются  с помощью перестановок осуществленных в программе Lab_1.2

 

Значение

К11

К12

К13

0000

3

5

7

0001

7

5

7

0010

4

4

1

0011

7

7

6

0100

7

4

6

0101

4

7

1

0110

7

5

7

0111

3

5

7

1000

7

5

6

1001

3

5

1

1010

7

7

7

1011

4

4

7

1100

4

7

7

1101

7

4

7

1110

3

5

1

1111

7

5

6




Рис.2

 

  1. Ключи находятся с помощью программы  Lab_1.3.

 

Результаты  анализа для 1 раундового подключа

 

 

 

 

 

 

 

 

 

 

Результаты  анализа для 3 раундового подключа

Значение

К31

К32

К33

0000

3

7

7

0001

4

3

4

0010

7

4

2

0011

3

3

2

0100

3

4

2

0101

7

3

2

0110

4

7

4

0111

3

3

7

1000

4

3

2

1001

3

7

2

1010

3

3

4

1011

7

4

7

1100

7

3

7

1101

3

4

4

1110

3

3

2

1111

4

7

2


Рис.3

 

1. для первого раундового  подключа

    К1 = 0001, 0011, 0100, 0110, 1000, 1010, 1101, 1111;

    K2 = 0011, 0101, 1010, 1100;

    K3 = 0000, 0001, 0110, 0111, 1010, 1011, 1100, 1301;

2 для третьего раундового  подключа

    K1 = 0010, 0101, 1011, 1100;

    K2 = 0000, 0110, 1001, 1111;

    K3 = 0000, 0111, 1011, 1100;

 

Рис. 4

Искомый ключ: 1111 1010 0110 1011 0000 0000 (FA6B00)

 

Часть 2.

 

Порядок выполнения:

   - с помощью предварительного  анализа построить линейные статистические  аналоги и определить для них  вероятность того, что значение  Q равно 0.

   - обработать шифрованные  данные с помощью линейных  статистических аналогов и получить  систему уравнений с битами  секретного ключа К.

   - получить недостающие  биты секретного ключа К. Для  этого задать 15 полученных уравнений  и проверить их правильность.

   - определить биты  секретного ключа К, решив систему уравнений с учетом полученной подсказки.

 

Вариант №  34200

Таблица перестановки: 87325416

Таблица перестановки с расширением: 713824653167

 

Анализ блоков замены осуществляется с помощью программы Lab_2.

 S1

Таблица S1:

 

а1

а2а3а4

000

001

010

011

100

101

110

111

0

1

3

5

7

3

1

7

5

1

6

2

4

0

4

0

6

2


 

 

 

Принцип работы первого блока  замены.

Вход

Выход

0000

001

0001

011

0010

101

0011

111

0100

011

0101

001

0110

111

0111

101

1000

110

1001

010

1010

100

1011

000

1100

100

1101

000

1110

110

1111

010


 

 

 

 

 

 

 

Результаты  анализа первого блока замены

α

β

001

010

011

100

101

110

111

0001

1/2

1/2

1/2

1/4

1/4

1/2

1/2

0010

1/2

1/2

1/2

3/4

1/4

1/2

1/2

0011

1/2

1/2

1/2

1/2

1/2

1/2

1/2

0100

1/2

1/2

1/2

1/2

1/2

1/2

1/2

0101

1/2

3/4

1/4

1/2

1/2

1/2

1/2

0110

1/2

1/4

1/4

1/2

1/2

1/2

1/2

0111

1/2

1/2

1/2

1/2

1/2

1

1/2

1000

0

1/2

1/2

1/2

1/2

1/2

1/2

1001

1/2

1/2

1/2

3/4

3/4

1/2

1/2

1010

1/2

1/2

1/2

3/4

1/4

1/2

1/2

1011

1/2

1/2

1/2

1/2

1/2

1/2

1/2

1100

1/2

1/2

1/2

1/2

1/2

1/2

1/2

1101

1/2

3/4

1/4

1/2

1/2

1/2

1/2

1110

1/2

3/4

3/4

1/2

1/2

1/2

1/2

1111

1/2

1/2

1/2

1/2

1/2

1/2

0


 

 

 

 

S2

Таблица S2:

а1

а2а3а4

000

001

010

011

100

101

110

111

0

3

5

0

6

0

6

5

3

1

2

2

7

7

1

1

4

4


 

Принцип работы второго блока замены.

Вход

Выход

0000

011

0001

101

0010

000

0011

110

0100

000

0101

110

0110

101

0111

011

1000

010

1001

010

1010

111

1011

111

1100

001

1101

001

1110

100

1111

100


 

 

 

 

 

Результаты  анализа второго блока замены

α

β

001

010

011

100

101

110

111

0001

1/2

5/8

5/8

5/8

5/8

1/2

1/2

0010

1/2

1/2

1/4

3/4

1/2

1/2

1/2

0011

1/2

3/8

5/8

5/8

3/8

1/2

1/2

0100

1/2

1/4

1/2

1/2

3/4

1/2

1/2

0101

1/2

3/8

5/8

5/8

3/8

1/2

1/2

0110

1/2

1/2

1/2

1/2

1/2

0

1/2

0111

1/2

3/8

3/8

3/8

3/8

1/2

1/2

1000

1/2

1/2

1/2

1/2

1/2

1/2

1

1001

1/2

5/8

5/8

5/8

5/8

1/2

1/2

1010

1/2

1/2

3/4

1/4

1/2

1/2

1/2

1011

1/2

3/8

5/8

5/8

3/8

1/2

1/2

1100

1/2

3/4

1/2

1/2

1/4

1/2

1/2

1101

1/2

3/8

5/8

5/8

3/8

1/2

1/2

1110

0

1/2

1/2

1/2

1/2

1/2

1/2

1111

1/2

3/8

3/8

3/8

3/8

1/2

1/2


 

 

 

S3

 

Таблица S3:

а1а4

а2а3

00

01

10

11

00

0

3

3

0

01

0

3

3

0

10

2

1

1

2

11

2

1

1

2


 

 

Принцип работы третьего блока замены.

Вход

Выход

0000

00

0001

00

0010

11

0011

11

0100

11

0101

11

0110

00

0111

00

1000

10

1001

10

1010

01

1011

01

1100

01

1101

01

1110

10

1111

10


 

 

Результаты  анализа третьего блока замены

α

β

01

10

11

0001

1/2

1/2

1/2

0010

1/2

1/2

1/2

0011

1/2

1/2

1/2

0100

1/2

1/2

1/2

0101

1/2

1/2

1/2

0110

1

1/2

1/2

0111

1/2

1/2

1/2

1000

1/2

1/2

1

1001

1/2

1/2

1/2

1010

1/2

1/2

1/2

1011

1/2

1/2

1/2

1100

1/2

1/2

1/2

1101

1/2

1/2

1/2

1110

1/2

1

1/2

1111

1/2

1/2

1/2

Дифференциальный и линейный криптоанализ блочных шифров