Стандарт шифрування DES

Сутність і напрямки вивчення методики шифрування алгоритмами збивання. Поняття та структура алгоритму DES, оцінка його переваг та недоліків. Підключ як деяка ключова інформація, яка отримується з основного ключа шифрування, його аналіз і значення.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 18.11.2015
Размер файла 99,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Лабораторна робота

Стандарт шифрування DES

Мета роботи - опанувати методику шифрування алгоритмами збивання. На прикладі DES здійснити шифрування. Усвідомити сильні сторони в застосуванні даного методу шифрування.

Теоретичні відомості

Алгоритм DES був державним стандартом США і здійснює шифрування 64-бітових блоків даних за допомогою 64-бітового ключа. Процес шифрування полягає в початковій перестановці бітів 64-бітового блоку і 16 циклах шифрування, а розшифрування - 16 циклах розшифрування і у кінцевій перестановці бітів.

Слід зазначити, що всі таблиці, що приводяться, є стандартними і повинні включатися в реалізацію алгоритму DES у незмінному вигляді. Усі перестановки і коди в таблицях підібрані розроблювачами таким чином, щоб максимально заважати процесу дешифрування шляхом підбору ключа.

Підключ - деяка ключова інформація, яка отримується з основного ключа шифрування. На кожному раунді використовується нове значення підключа Ki (довжиною 48 біт), яке обчислюється з початкового 64-бітового ключа K з 8 бітами контролю парності, розташованими в позиціях 8,16,24,32,40,48,56,64. Для вилучення контрольних бітів і підготовки ключа до роботи використовується функція PC1 первісної підготовки ключа. Докладно процес одержання підключей показано на рис 1.1.

Результат перетворення PC1 (K) розбивається на дві половини C0 і D0 по 28 біт кожна. Перші чотири рядки матриці PC1 визначають, як вибираються біти послідовності C0, останні чотири рядки - послідовності D0. Для генерації послідовностей не використовуються біти 8,16,24,32,40,48,56 і 64 ключа шифру. Таким чином, у дійсності ключ шифру є 56-бітовим.

Після визначення С0 і D0 рекурсивно визначаються Сi і Di, i = 1, 2,…, 16.

Для цього застосовуються операції циклічного зрушення вліво на один чи два біти в залежності від номера кроку раунду, як показано в таблиці, що приведена в додатку. Ключ Ki, обумовлений на кожнім кроці раунду, є результатом вибору конкретних бітів з 56-бітової послідовності Сi Di, і їхньої перестановки згідно з таблицею PC2, яка наведена в додатку. Іншими словами, ключ Ki=PC2 (Ci Di) [17].

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 1. Цикл отримання підключів для кожного раунду

Процес шифрування виглядає в такий спосіб. Нехай з файлу вхідного тексту був прочитаний черговий 64-бітовий (8-байтовий) блок T. Цей блок T обробляється за допомогою матриці початкової перестановки IP: біти вхідного блоку (64 біта) переставляються відповідно до матриці IP [2]. Отримана послідовність бітів розділяється на 2 послідовності: L0-ліві старші біти, R0-праві молодші біти, кожна з яких містить 32 біта. Потім виконується ітеративний процес шифрування, що складається з 16 раундів. (рис 1.2).

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 2. Структурна схема алгоритму DES

Нехай Ti - результат i-ого раунду:

Ti=LiRi

де Li - перші 32 біта послідовності, Ri - останні 32 біта послідовності. Тоді результат i-ого раунду описується наступними формулами:

Li=Ri-1, i=1,2,3, …, 16,

Ri=Li-1 xor f(Ri-1, Ki), i=1,2,3, …, 16

Функція f називається функцією шифрування. Її аргументами є послідовність Ri-1, одержувана на попередньому кроці раунду, і 48-бітовий підключ Ki, що є результатом перетворень 64-бітового ключа шифру K.

На останньому кроці раунду одержують послідовності R16 і L16, що об'єднуються в 64-бітову послідовність - здійснюється відновлення позицій бітів за допомогою матриці зворотної перестановки IP-1 [17]. Елементи матриць IP і IP-1 зв'язані між собою.

Тепер розглянемо, що ховається під перетворенням, позначеним літерою f. Для обчислення значення функції f використовуються:

- функція E (розширення 32 біт до 48);

- функція S1, S2, …, S8 (перетворення 6-бітового числа в 4-бітове);

- функція P (перестановка бітів у 32-бітовій послідовності).

Приведемо визначення цих функцій і процес шифрування більш докладно.

1. Функція розширення E приймає блок з 32 біт і породжує блок з 48 біт, відповідно до матриці E.

2. Отриманий результат складається по модулю 2 (операція XOR) з поточним значенням ключа Ki і потім розбивається на вісім 6-бітових блоків B1, B2, …, B8

3. Далі кожний з цих блоків використовується як номер елемента у блоках S1, S2, …, S8, що мають 4-бітові значення. Нехай на вхід функції Sj надходить 6-бітовий блок Bj=b1b2b3b4b5b6, тоді двохбітове число b1b6 указує номер рядка матриці, а чотирьохбітове число b2b3b4b5 - номер стовпця в наступній таблиці.

Сукупність 6-бітових блоків B1, B2, …, B8 забезпечує вибір чотирьохбітового елемента в кожній з функцій S1, S2, …, S8… У результаті одержуємо S1(B1) S2(B2) … S8(B8), або 32-бітовий блок (оскільки матриці Sj містять 4-бітові елементи).

4. Цей 32-бітовий блок перетвориться за допомогою функції перестановки бітів P. Таким чином, функція шифрування f (Ri-1, Ki)=P (S1 (B1) S2 (B2) … S8 (B8))…

5. Далі випливає додавання по модулю 2 лівого підблока й результату перетворення правого підблока.

Процес розшифровування даних є інверсним стосовно процесу шифрування. Усі дії повинні бути виконані в зворотному порядку. Це означає, що дані, що розшифровуються, спочатку переставляються відповідно до матриці IP-1, а потім над послідовністю бітів R16L16 виконуються ті ж дії, що й у процесі шифрування, але в зворотному порядку.

Ітеративний процес розшифрування може бути описаний наступними формулами:

Ri=Li, i=1,2,3, …, 16,

Li-1=Ri xor f (Li, Ki), i=1,2,3, …, 16. R16L 16

Таким чином, для процесу розшифрування з переставленим вхідним блоком R16L16 на першому раунді використовується ключ K16, на другому раунді - K15 і т.д. На 16-ому раунді використовується ключ K1. на останньому кроці останнього раунду будуть отримані послідовності L0 і R0, що конкатенуються (об'єднуються) в 64-бітову послідовність L0R0. Потім у цій послідовності 64 біта переставляються відповідно до матриці IP. Результат такого перетворення - вихідна послідовність бітів. (див. рис. 1.2.)

Основні режими роботи алгоритму DES. Алгоритм DES дозволяє безпосередньо перетворювати 64-бітовий вхідний відкритий текст у 64-бітовий вихідний шифрований текст, однак дані рідко обмежуються 64 розрядами. Щоб скористатися алгоритмом DES для рішення різноманітних криптографічних задач, розроблені чотири робочі режими:

електронна кодова книга ЕСВ (Electronic Code Book);

зчеплення блоків шифру СВС (Cipher Block Chaining);

зворотний зв'язок по шифртексту СРВ (Cipher Feed Back);

зворотний зв'язок по виходу OFB (Output Feed Back) [3].

Режим «Електронна кодова книга». Довгий файл розбивають на 64-бітові відрізки (блоки) по 8 байтів. Кожний з цих блоків шифрують незалежно з використанням того ж самого ключа шифрування. Найбільша перевага цього режиму - простота реалізації. Недолік - відносно слабка стійкість проти кваліфікованих криптоаналітиків. Через фіксований характер шифрування при обмеженій довжині блоку (64 біта) можливе проведення криптоаналізу «зі словником». Блок такого розміру може повторитися в повідомленні унаслідок великої розмірності тексту. Це приводить до того, що ідентичні блоки відкритого тексту в повідомленні будуть представлені ідентичними блоками шифротексту, що дає криптоаналітику деяку інформацію про зміст повідомлення [2].

Режим «Зчеплення блоків шифру». У цьому режимі вхідний файл М розбивається на 64-бітові блоки: М=M1M2Mn. Перший блок M1 складається по модулю 2 з 64-бітовим початковим вектором (IV), що змінюється щодня і тримається в секреті. Отримана сума потім шифрується з використанням ключа DES. Отриманий 64-бітовий шифр C1 складається по модулю 2 із другим блоком тексту, результат шифрується і отримується другий 64-бітовий шифр С2, і т.д. Процедура повторюється доти, доки не будуть оброблені всі блоки тексту. Таким чином, для всіх i = 1n (n - число блоків) результат шифрування Ci визначається у такий спосіб: Сi=DES(Mi xor Сi-1), де С0=IV-початкове значення шифру, що дорівнює початковому вектору ініціалізації. Очевидно, що останній 64-бітовий блок шифротексту є функцією секретного ключа, початкового вектора і кожного біта відкритого тексту незалежно від його довжини. Цей блок шифротексту називають кодом аутентифікації повідомлення (КАП). Код КАП може бути легко перевірений одержувачем, що володіє секретним ключем і початковим вектором, шляхом повторення процедури, виконаної відправником. Перевага даного режиму в тому, що він не дозволяє накопичуватися помилкам при передачі. Блок М, є функцією тільки Сi-1 і Ci. Тому помилка при передачі приведе до втрати тільки двох блоків вихідного тексту [2].

Режим «Зворотний зв'язок за шифром». У цьому режимі розмір блоку може відрізнятися від 64 біт. Файл, що підлягає шифруванню, зчитується послідовними блоками довжиною k бітів k=164). Вхідний блок (64-бітовий) спочатку містить вектор ініціалізації, вирівняний по правому краю. Припустимо, що в результаті розбивання на блоки ми одержали n блоків довжиною k бітів кожний (залишок дописується нулями чи пробілами). Тоді для будь-якого i=1n блок шифротексту Сi=Mi xor Pi-1, де Pi-1 позначає k старших бітів попереднього зашифрованого блоку. Ці k старших бітів, що вже використані при шифруванні, відкидаються і вхідний блок зсовується на k бітів. Для відновлення зашифрованих даних Pi-1 і Сi, відкритий текст обчислюється аналогічним чином Мii xor Pi-1 [2].

Режим «Зворотний зв'язок по виходу». Цей режим теж використовує змінний розмір блоку і регістр зсуву, що ініціюється (набуває початкового значення) так само, як у режимі СРВ, а саме - вхідний блок спочатку містить вектор ініціалізації IV, вирівняний по правому краю. При цьому, для кожного сеансу шифрування даних необхідно використовувати новий початковий стан регістра, що повинний пересилатися по каналу відкритим текстом. Покладемо М = M1 М2 Мn. Для всіх i = 1 n Сii xor Рi, де Рi - старші k бітів операції DES (Ci-1).

На відміну від режиму зворотного зв'язку по шифру, відновлення регістра зсуву здійснюється шляхом відкидання старших k бітів і дописування їх праворуч відносно Р1 [13].

Хід виконання роботи

Таблиця 1 - Ключ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

0

1

0

0

1

0

1

1

1

1

0

0

0

0

1

1

0

1

0

1

0

0

1

0

1

1

0

0

0

0

1

1

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

0

0

0

0

0

1

0

0

1

1

0

1

0

0

0

0

0

1

0

1

1

0

1

1

0

1

0

1

1

1

0

1

Функція PC1 первісної підготовки ключа

57

49

41

33

25

17

9

1

58

50

42

34

26

18

10

2

59

51

43

35

27

19

11

3

60

52

44

36

63

55

47

39

31

23

15

7

62

54

46

38

30

22

14

6

61

53

45

37

29

21

13

5

28

20

12

4

Таблиця 2 - Отриманий за допомогою функції РС1 регистр C0

57

49

41

33

25

17

9

1

58

50

42

34

26

18

10

2

59

51

43

35

27

19

11

3

60

52

44

36

0

0

1

0

1

0

1

0

1

1

1

0

1

1

1

1

0

0

0

0

0

0

0

0

1

1

1

0

Таблиця 3 - Отриманий за допомогою функції РС1 регистр D0

63

55

47

39

31

23

15

7

62

54

46

38

30

22

14

6

61

53

45

37

29

21

13

5

28

20

12

4

0

1

0

0

1

1

1

1

1

0

0

1

0

0

0

0

1

1

0

0

0

0

0

1

0

1

0

0

Таблиця 4 - Отриманий за допомогою зсуву вліво на 1біт регистр C1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

0

1

0

1

0

1

0

1

1

1

0

1

1

1

1

0

0

0

0

0

0

0

0

1

1

1

0

0

Таблиця 5 - Отриманий за допомогою зсуву вліво на 1біт регистр D1

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

1

0

0

1

1

1

1

1

0

0

1

0

0

0

0

1

1

0

0

0

0

0

1

0

1

0

0

0

Таблиця 6 - Отриманий за допомогою функції РС2 підключ К1

14

17

11

24

1

5

3

28

15

6

21

10

23

19

12

4

26

8

16

7

27

20

13

2

41

52

31

37

47

55

30

40

51

45

33

48

44

49

39

56

34

53

46

42

50

36

29

32

Функція РС2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

0

0

0

0

0

1

0

0

1

0

0

1

1

0

0

1

0

1

0

1

0

0

1

0

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

1

1

0

0

0

0

1

1

0

0

0

0

0

1

0

0

1

1

0

1

0

0

0

0

Таблиця 7 - Шифротекст

3

11000110 00000110 11000011 10010001 01101010 00110110 01110001 11000100

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

1

1

0

0

0

1

1

0

0

0

0

0

0

1

1

0

1

1

0

0

0

0

1

1

1

0

0

1

0

0

0

1

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

0

1

1

0

1

0

1

0

0

0

1

1

0

1

1

0

0

1

1

1

0

0

0

1

1

1

0

0

0

1

0

0

Матриця початкової перестановки IP

58

50

42

34

26

18

10

2

60

52

44

36

28

20

12

4

62

54

46

38

30

22

14

6

64

56

48

40

32

24

16

8

57

49

41

33

25

17

9

1

59

51

43

35

27

19

11

3

61

53

45

37

29

21

13

5

63

55

47

39

31

23

15

7

Таблиця 8 - Старші біти шифротексту отримані за допомогою функції IP L0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

1

0

0

0

1

1

0

1

0

1

1

1

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

1

0

1

1

1

Таблиця 9 - Молодші біти шифротексту отримані за допомогою функції IP R0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

1

1

0

1

0

1

0

1

0

1

1

0

1

0

0

0

1

0

1

0

0

0

1

1

0

1

0

0

1

1

0

0

Матриця розширення E

32

1

2

3

4

5

4

5

6

7

8

9

8

9

10

11

12

13

12

13

14

15

16

17

16

17

18

19

20

21

20

21

22

23

24

25

24

25

26

27

28

29

28

29

30

31

32

1

Таблиця 10 - Розширення молодших бітів шифротексту за допомогою функції E R0

32

1

2

3

4

5

4

5

6

7

8

9

8

9

10

11

12

13

12

13

14

15

16

17

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

1

0

1

0

1

0

0

0

1

16

17

18

19

20

21

20

21

22

23

24

25

24

25

26

27

28

29

28

29

30

31

32

1

0

1

0

1

0

0

0

0

0

1

1

0

1

0

1

0

0

1

0

1

1

0

0

1

Таблиця 11 - XOR розширеного R0 та К1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

К1

0

0

0

0

0

1

0

0

1

0

0

1

1

0

0

1

0

1

0

1

0

0

1

0

R0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

1

0

1

0

1

0

0

0

1

Ре

0

1

1

0

1

1

1

0

1

0

1

1

0

0

1

0

0

0

0

0

0

0

1

1

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

К1

1

1

0

0

0

0

1

1

0

0

0

0

0

1

0

0

1

1

0

1

0

0

0

0

R0

0

1

0

1

0

0

0

0

0

1

1

0

1

0

1

0

0

1

0

1

1

0

0

1

Ре

1

0

0

1

0

0

1

1

0

1

1

0

1

1

1

0

1

0

0

0

1

0

0

1

№ b1b2b3b4b5b6

1

2

3

4

5

6

№ рядка b1b6

№ рядка

№ стовпця b2b3b4b5

№ стовпця

Число десяткове

Число двійкове, S

S1 (B1)

0

1

1

0

1

1

01

1

1101

13

5

0101

S2 (B2)

1

0

1

0

1

1

11

3

0101

5

15

1111

S3 (B3)

0

0

1

0

0

0

00

0

0100

4

6

0110

S4 (B4)

0

0

0

0

1

1

01

1

0001

1

8

1000

S5 (B5)

1

0

0

1

0

0

10

2

0010

2

1

0001

S6 (B6)

1

1

0

1

1

0

10

2

1011

11

10

1010

S7 (B7)

1

1

1

0

1

0

10

2

1101

13

5

0101

S8 (B8)

0

0

1

0

0

1

01

1

0100

4

10

1010

Таблиця 12 - Перетворення XOR розширеного R0 та К1 функцією S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Ре

0

1

1

0

1

1

1

0

1

0

1

1

0

0

1

0

0

0

0

0

0

0

1

1

S

0

1

0

1

1

1

1

1

0

1

1

0

1

0

0

0

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

Ре

1

0

0

1

0

0

1

1

0

1

1

0

1

1

1

0

1

0

0

0

1

0

0

1

S

0

0

0

1

1

0

1

0

0

1

0

1

1

0

1

0

Таблиця 13 - Результат роботи функції S

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

0

1

0

1

1

1

1

1

0

1

1

0

1

0

0

0

0

0

0

1

1

0

1

0

0

1

0

1

1

0

1

0

Таблиця 14 - Результат роботи функції P

16

7

20

21

29

12

28

17

1

15

23

26

15

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

0

1

1

1

1

0

1

0

0

0

1

1

0

0

1

1

1

1

0

0

0

0

0

0

0

1

0

1

0

1

1

0

Функція P перестановки бітів

16

7

20

21

29

12

28

17

1

15

23

26

15

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

Висновки: В результаті виконання лабораторної роботи опановано методику шифрування алгоритмами збивання. На прикладі DES виконано перший раунд шифрування.

Размещено на Allbest.ru


Подобные документы

  • Історія виникнення та розвиток методів шифрування. Особливості розробки програми, що виконує шифрування за допомогою доповнювального модуля, який надає доступ до самої програми. Вибір ефективного методу шифрування даних. Розробка відповідного інтерфейсу.

    курсовая работа [1,9 M], добавлен 21.07.2011

  • Основи технології запису на оптичні диски. Довготривале зберігання інформації на оптичних носіях. Дослідження існуючих програмних і технічних засобів шифрування даних. Можливі рішення проблем і попередження злому. Програмні засоби шифрування даних.

    дипломная работа [4,0 M], добавлен 27.01.2012

  • Спосіб шифрування, в якому для шифрування і дешифрування застосовується один криптографічний ключ. Класифікація симетричних криптоалгоритмів. Стандарт блочних шифрів AES. Порівняння з асиметричними криптосистемами. Скремблер: переваги та недоліки.

    презентация [73,3 K], добавлен 19.08.2013

  • Основи криптосистем та їх використання. Шифрування методом гамування, його зміст, прийоми та етапи реалізації. Вимоги до програмного продукту, його структура та принципи роботи, схеми алгоритму, вимоги до функціональних можливостей. Лістинг програми.

    курсовая работа [245,5 K], добавлен 25.08.2014

  • Вивчення особливості програмування додатків на мові C++ Builder. Шифрування повідомлення методом перестановки букв за маршрутами типу гамільтонський. Огляд існуючих аналогів. Розгляд необхідних вимог до конфігурації електронно-обчислювальної машини.

    контрольная работа [1,2 M], добавлен 24.07.2014

  • Відомі підходи до реалізації потокового шифрування даних. Регістр зсуву з оберненими зв’язками. Комбінуючий та фільтруючий генератор. Потоковий шифр Alpha1. Розробка структурної схеми алгоритму шифрування Alpha1. Розробка блоку керування пристрою.

    курсовая работа [185,6 K], добавлен 09.04.2013

  • Види секретної інформації та методи захисту. Тип і об’єм вхідних даних. Програмна реалізація системи алгоритму шифрування зі стисненням. Призначення та опис програмного продукту Export. Алгоритми захисту зберігання та обміну секретною інформацією.

    дипломная работа [1,1 M], добавлен 19.09.2012

  • Застосування криптографічного захисту інформації від випадкової чи навмисної її модифікації, поняття цілісності інформації та ресурсів. Розповсюдженням електронного документообігу, застосування цифрового підпису, характеристика методів шифрування.

    курсовая работа [140,9 K], добавлен 01.03.2012

  • Використання адитивних властивостей множин у системі шифрування Цезаря. Розгляд основних етапів процедури шифрування. Шифр перестановки з використанням шифруючої таблиці. З'ясування особливостей шифруючих таблиць Трисемуса та біграмного шифру Плейфейра.

    курсовая работа [57,8 K], добавлен 25.11.2020

  • Криптографія – математичні методи забезпечення інформаційної безпеки та захисту конфіденційності. Огляд існуючих методів пошуку нових алгоритмів шифрування. Розробка системи оцінки ефективності криптографічних систем. Найпоширеніші методи шифрування.

    дипломная работа [1,2 M], добавлен 13.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.