Реализация алгоритма DES

Практическое применение блочного алгоритма шифрования DES, который базируется на алгоритме DEA. Пример представления блоков в виде хэш-функций, использование ротационного хэш-кода. Преобразование входного блока данных в выходной идентичной длины.

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

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

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

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

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

Московский технический университет связи и информатики

Кафедра защиты информации

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

по дисциплине

ОИБ

По теме: “Реализация алгоритма DES

Выполнил студент

Группы: ЗС0901

Раудсепп Илья

Преподаватель: Руднев А.Н.

Москва 2012

Задание на курсовой проект

1. Запишите первые семь букв своей фамилии латинскими буквами в привычном вам виде. Для фамилий короче 7 букв недостающие символы считайте пробелами.

2. Переведите полученные 7 символов в двоичный вид с помощью таблицы ASCII (Приложение 1). Обратите внимание, коды символов представлены в таблице в шестнадцатеричной форме.

3. Рассчитайте простейший хэш-код от полученных 7 символов - ротационный XOR

4. С помощью алгоритма шифрования DEA (описанного в стандарте DES) произведите шифрование полученного 8-ми байтного блока информации:

- В качестве пароля используйте набор из 7 разных букв, также переведенных в двоичную форму при помощи таблицы ASCII.

- Для шифрования используйте только 4 раунда шифрования из предусмотренных стандартом 16-ти.

- Записывайте все промежуточные данные (значения всех блоков в приведенных блок-схемах для каждого раунда).

6. Результирующие 64 бита разбейте на 8 байтов и переведите в символы в соответствии с таблицей ASCII.

Исходные данные: RAUDSEPP

ASC II : 52 41 55 44 53 45 50 50

Binary: 11010010 01000001 01010101 01000100 01010011 01000101 01010000 01010001

Ротационный XOR:

0110 0000 1011 0000 1010 0111 1101 0011 0100 0010 0010 0001 1010 0100 1101 1010

1)

01101101

00000000

1101 1010

2)

10001000

01101101

1010 0100

3)

10100100

00110100

0010 0001

4)

00100001

00000000

0100 0010

5)

01000010

10101011

1101 0011

6)

11010011

00000000

1010 0111

7)

10100111

11111111

1011 0000

8)

10110000

10000000

0110 0000

Начальная перестановка:

0

1

1

0

0

0

0

0

1

0

1

1

0

0

0

0

1

0

1

0

0

1

1

1

1

1

0

1

0

0

1

1

0

1

0

0

0

0

1

0

0

0

1

0

0

0

0

1

1

0

1

0

0

1

0

0

1

1

0

1

1

0

1

0

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

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

62

62

63

64

1

0

0

1

1

0

0

1

1

0

0

0

1

0

1

0

0

1

0

0

0

1

0

0

0

0

1

0

1

1

0

0

1

1

0

0

1

1

1

0

0

1

1

0

0

1

1

1

1

0

0

0

0

0

0

0

1

0

0

1

1

1

0

0

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

Ключ шифрования: QAZDFGUJ

ASC II: 51415A444647554A

Binary: 01010001 01000001 01011010 01000100 01000110 01000111 01010101 01001010

64-х битный ключ:

0

1

0

1

0

0

0

1

0

1

0

0

0

0

0

1

0

1

0

1

1

0

1

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

1

0

0

1

0

0

0

1

1

1

0

1

0

1

0

1

0

1

0

1

0

0

1

0

1

0

56-ти битный ключ:

PC-1 (Выбор 1)

PC-2 (Выбор 2)

57

49

41

33

25

17

9

14

17

11

24

1

5

1

58

50

42

34

26

18

3

28

15

6

21

10

10

2

59

51

43

35

27

23

19

12

4

26

8

19

11

3

60

52

44

36

16

7

27

20

13

2

63

55

47

39

31

23

15

41

52

31

37

47

55

7

62

54

46

38

30

22

30

40

51

45

33

48

14

6

61

53

45

37

29

44

49

39

56

34

53

21

13

5

28

20

12

4

46

42

50

36

29

32

PC-1 (Выбор 1)

PC-2 (Выбор 2)

0

0

0

0

0

0

0

1

0

1

0

0

0

0

1

1

1

1

1

1

0

0

1

0

0

1

1

1

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

1

0

0

0

1

0

1

0

1

1

0

1

0

1

0

1

0

0

0

0

0

1

1

1

1

0

0

1

0

1

0

0

0

0

1

0

0

0

0

0

0

1

1

1

0

1

0

0

0

1

0

1

0

0

1

0

1

1

Разделим входные данные на два блока:

Блок схема алгоритма:

Расширяющая подстановка:

Осуществим S-подстановку:

Исходное число

Строка; столбец

Значение

Двоичное значение

0101

0001

1110

1101

1101

1101

1000

0110

После S перестановки:

0101 0001 1110 1101 1101 1101 1000 0110

P - перестановка:

16

7

20

21

29

12

28

17

1

15

23

26

5

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

1

0

1

1

0

0

0

1

0

0

0

0

0

1

1

1

1

1

1

1

0

0

0

1

0

1

1

0

1

1

1

1

Исходные данные перед началом следующего шага:

Данные на выходе 1 цикла шифрования: О g Ђ њ ( ( µ C

Циклический сдвиг ключа:

Новый 56-ти битный ключ, делим исходный на две половины по 28 бит, каждую половину сдвигаем влево на 1 бит:

Новый 48-ми битный ключ для 2 раунда шифрования:

1

0

1

0

0

0

0

0

1

0

0

1

0

0

1

0

0

1

0

0

0

0

1

0

0

0

1

1

0

1

1

1

0

0

1

0

1

1

1

1

0

1

0

0

0

0

0

0

2 итерация:

Расширяющая подстановка:

48-ми битный ключ:101000001001001001000010001101110010111101000000

Расширяющая подстановка: 011001011100001100001111110000000001010011111001

Осуществим S-подстановку:

Исходное число

Строка; столбец

Значение

Двоичное значение

3; 8

5

0101

1; 10

1

0001

1; 2

0

0000

1; 6

0

0000

3; 14

5

0101

3; 9

14

1110

2; 7

14

1110

3; 12

3

0011

После S перестановки:

0101 0001 0000 0000 0101 1110 1110 0011

P - перестановка:

16

7

20

21

29

12

28

17

1

15

23

26

5

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

0

0

1

1

0

0

0

0

0

0

1

1

0

1

1

0

1

1

0

0

1

1

0

0

0

0

0

0

1

0

1

1

Исходные данные перед началом следующего шага:

Циклический сдвиг ключа (на 2 разряда):

Новый 56-ти битный ключ, делим исходный на две половины по 28 бит, каждую половину сдвигаем влево на 2 бита:

Новый 48-ми битный ключ для 2 раунда шифрования:

0

0

1

0

0

0

0

1

0

1

0

1

0

0

1

0

0

1

0

1

0

0

1

0

1

1

0

1

0

1

1

0

0

0

0

0

0

0

0

0

1

1

1

0

1

1

0

0

Итерация 3:

Расширяющая подстановка:

48-ми битный ключ: 001000010101001001010010110101100000000011101100

Расширяющая подстановка: 111111111100001010100010101001011001010010101111

Осуществим S-подстановку:

Исходное число

Строка; столбец

Значение

Двоичное значение

3; 11

14

1110

3; 4

3

0011

1; 1

7

0111

2; 8

15

1111

0; 14

14

1110

3; 12

6

0110

1; 8

14

1110

1; 1

15

1111

После S перестановки:

1110 0011 0111 1111 1110 0110 1110 1111

P - перестановка:

16

7

20

21

29

12

28

17

1

15

23

26

5

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

1

1

0

0

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

1

1

1

1

0

1

1

1

0

1

1

0

1

Исходные данные перед началом следующего шага:

Циклический сдвиг ключа (на 1 разряд):

Новый 56-ти битный ключ, делим исходный на две половины по 28 бит, каждую половину сдвигаем влево на 2 бита:

Новый 48-ми битный ключ для 2 раунда шифрования:

0

0

1

0

0

1

0

0

0

1

0

1

0

0

1

0

0

1

0

1

0

0

0

0

0

1

0

0

0

1

1

1

1

1

0

0

0

1

0

0

1

0

0

0

0

1

0

0

1 1 1 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0

алгоритм шифрование блок код

Итерация 4:

Расширяющая подстановка:

48-ми битный ключ: 001001000101001001010000010001111100010010000100

Расширяющая подстановка: 011100001010101111110100001101010111110101011101

Осуществим S-подстановку:

Исходное число

Строка; столбец

Значение

Двоичное значение

1; 10

12

1100

1; 7

14

1110

2; 3

9

1001

2; 3

0

0000

0; 14

14

1110

3; 5

5

0101

3; 3

8

1000

1; 12

0

0000

После S перестановки:

1100 1110 1001 0000 1110 0101 1000 0000

P - перестановка:

16

7

20

21

29

12

28

17

1

15

23

26

5

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

0

1

0

0

0

1

0

1

1

0

0

0

1

1

0

0

1

0

1

0

0

0

0

1

1

0

0

1

1

0

0

1

Результат после 4 итераций: 0100 0101 1000 1100 1010 0001 1001 1001

Выходные 64 бита:

Выполним обратную простановку:

40

8

48

16

56

24

64

32

39

7

47

15

55

23

63

31

38

6

46

14

54

22

62

30

37

5

45

13

53

21

61

29

36

4

44

12

52

20

60

28

35

3

43

11

51

19

59

27

34

2

42

10

50

18

58

26

33

1

41

9

49

17

57

25

Обратная перестановка.

1

1

1

0

1

1

0

0

1

0

0

1

0

1

1

1

0

1

1

0

1

0

1

1

1

0

1

1

1

1

1

1

1

0

1

1

0

0

0

0

1

1

0

1

1

1

0

1

0

1

1

1

1

1

0

0

1

1

1

0

1

0

0

1

Данные после шифрования: ASC II: 236; 151; 107; 191; 176; 221; 124; 233.

Перекодировка: м--kї°Э|Я

Таблицы S - преобразований.

 

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 

0

14

4

13

1

2

15

11

8

3

10

6

12

5

9

0

7

S1

1

0

15

7

4

14

2

13

1

10

6

12

11

9

5

3

8

2

4

1

14

8

13

6

2

11

15

12

9

7

3

10

5

0

3

15

12

8

2

4

9

1

7

5

11

3

14

10

0

6

13

 

 

0

15

1

8

14

6

11

3

4

9

7

2

13

12

0

5

10

S2

1

3

13

4

7

15

2

8

14

12

0

1

10

6

9

11

5

2

0

14

7

11

10

4

13

1

5

8

12

6

9

3

2

15

3

13

8

10

1

3

15

4

2

11

6

7

12

0

5

14

9

 

 

0

10

0

9

14

6

3

15

5

1

13

12

7

11

4

2

8

S3

1

13

7

0

9

3

4

6

10

2

8

5

14

12

11

15

1

2

13

6

4

9

8

15

3

0

11

1

2

12

5

10

14

7

3

1

10

13

0

6

9

8

7

4

15

14

3

11

5

2

12

 

 

0

7

13

14

3

0

6

9

10

1

2

8

5

11

12

4

15

S4

1

13

8

11

5

6

15

0

3

4

7

2

12

1

10

14

9

2

10

6

9

0

12

11

7

13

15

1

3

14

5

2

8

4

3

3

15

0

6

10

1

13

8

9

4

5

11

12

7

2

14

 

 

0

2

12

4

1

7

10

11

6

8

5

3

15

13

0

14

9

S5

1

14

11

2

12

4

7

13

1

5

0

15

10

3

9

8

6

2

4

2

1

11

10

13

7

8

15

9

12

5

6

3

0

14

3

11

8

12

7

1

14

2

13

6

15

0

9

10

4

5

3

 

 

0

12

1

10

15

9

2

6

8

0

13

3

4

14

7

5

11

S6

1

10

15

4

2

7

12

9

5

6

1

13

14

0

11

3

8

2

9

14

15

5

2

8

12

3

7

0

4

10

1

13

11

6

3

4

3

2

12

9

5

15

10

11

14

1

7

6

0

8

13

 

 

0

4

11

2

14

15

0

8

13

3

12

9

7

5

10

6

1

S7

1

13

0

11

7

4

9

1

10

14

3

5

12

2

15

8

6

2

1

4

11

13

12

3

7

14

10

15

6

8

0

5

9

2

3

6

11

13

8

1

4

10

7

9

5

0

15

14

2

3

12

 

 

0

13

2

8

4

6

15

11

1

10

9

3

14

5

0

12

7

S8

1

1

15

13

8

10

3

7

4

12

5

6

11

0

14

9

2

2

7

11

4

1

9

12

14

2

0

6

10

13

15

3

5

8

3

2

1

14

7

4

10

8

13

15

12

9

0

3

5

6

11

Таблица кодировки ASC II:

Код (Hex)

Символ

Код (Hex)

Символ

Код (Hex)

Символ

Код (Hex)

Символ

Код (Hex)

Символ

Код (Hex)

Символ

20

Пробел

30

.

40

@

50

P

60

'

70

p

21

!

31

0

41

A

51

Q

61

a

71

q

22

"

32

1

42

B

52

R

62

b

72

r

23

#

33

2

43

C

53

S

63

c

73

s

24

$

34

3

44

D

54

T

64

d

74

t

25

%

35

4

45

E

55

U

65

e

75

u

26

&

36

5

46

F

56

V

66

f

76

v

27

'

37

6

47

G

57

W

67

g

77

w

28

(

38

7

48

H

58

X

68

h

78

x

29

)

39

8

49

I

59

Y

69

i

79

y

2A

*

3A

9

4A

J

5A

Z

6A

j

7A

z

2B

+

3B

:

4B

K

5B

[

6B

k

7B

{

2C

,

3C

;

4C

L

5C

\

6C

l

7C

|

2D

-

3D

<

4D

M

5D

]

6D

m

7D

}

2E

.

3E

>

4E

N

5E

^

6E

n

7E

~

2F

/

3F

?

4F

O

5F

_

6F

o

7F

DEL

Выводы по работе

1. В курсовом проекте изучали блочный алгоритм шифрования DES, на вход подавали блок информации, 8 символов фамилии (64 бита информации). Затем блоки представляются в виде хэш-функций. Для того, чтобы избавится от любой регулярности, которая присутствует во входных значениях, в курсовом проекте используется ротационный хэш-код.

2. Цель курсовой работы закодировать свою фамилию с помощью стандарта шифрования DES, который базируется на алгоритме DEA. DEA представляет собой алгоритм криптозащиты блочного шифрования. Вся информация разбивается на блоки размером 64 бита. Входной блок данных, состоящий из 64 бит, преобразуется в выходной блок данных идентичной длины. Ключ состоит из 64 разрядов, 8 из которых могут использоваться для контроля четности. Ключ шифрования должен быть известен как отправляющей, так и принимающей стороне. В алгоритме шифрования DES широко используются перестановки битов текста для удаления статистических связей между символами.

При шифровании и дешифровании используется один и тот же алгоритм.

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

...

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

  • Реализация алгоритма DES и режимов шифрования для любой длины сообщения и любой длины ключа. Шифрование сообщений различной длины и ключа с замериванием времени и скорости шифрования. Реализация алгоритма RSA. Сохранение зашифрованного файла на диск.

    курсовая работа [398,4 K], добавлен 26.01.2010

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

  • Исследование системы распределения ключей на основе линейных преобразований. Описание компонентов сети конфиденциальной связи. Характеристика отечественного алгоритма шифрования данных. Обзор результатов расчетов криптостойкости алгоритма шифрования.

    контрольная работа [56,5 K], добавлен 26.09.2012

  • Симметричные криптосистемы; алгоритмы шифрования и дешифрования данных, их применение в компьютерной технике в системах защиты конфиденциальной и коммерческой информации. Основные режимы работы алгоритма DES, разработка программной реализации ключа.

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

  • Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.

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

  • История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.

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

  • Разработка программы кодирования текстового файла при помощи блочного алгоритма шифрования ТЕА типа "Сеть Фейштеля", который основан на битовых операциях с 64-битным блоком и имеет 128-битный ключ шифрования. Результаты кодирования и декодирования.

    лабораторная работа [299,9 K], добавлен 18.07.2013

  • Теоретическое исследование вопроса и практическое применение. Общие сведения о графах. Алгоритм Дейкстры. Особенности работы в среде. Программная реализация. Описание алгоритма и структуры программы. Описание программных средств. Текст программы.

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

  • Описание структуры обучающего блока. Проектирование его алгоритма и лингвистического и информационного обеспечения. Организация его взаимодействия с базой данных. Разработка графического интерфейса. Программная реализация основных функций приложения.

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

  • Моделирование передвижения муравьев. Метод ветвей и границ, ближайшего соседа. Ограничения, накладываемые на агента в стандартной постановке задачи коммивояжера. Использование графа видимости в алгоритме муравья. Структура данных алгоритма муравья.

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

  • Изучение понятия и свойств алгоритма. Определение сущности технологии Robson. Исполнитель, а также блок-схема алгоритма или его графическое представление, в котором он изображается в виде последовательности связанных между собой функциональных блоков.

    реферат [155,9 K], добавлен 19.10.2013

  • Разработка программы шифрования данных с использованием алгоритма DES. Структура алгоритма, режимы его работы. Электронный шифровальный блокнот. Цепочка цифровых блокнотов. Цифровая и внешняя обратная связь. Структура окна: функции основных кнопок.

    лабораторная работа [830,3 K], добавлен 28.04.2014

  • Симметрическое шифрование как способ шифрования, в котором применяется один и тот же криптографический ключ. Функции стандартного диалогового окна открытия и сохранения файла. Характерная схема действий при генерации подписи. Цифровая подпись файла.

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

  • Сущность метода зонного сжатия буквенной информации. Описание классов, определяющих место хранения символов и алфавита. Реализация асимметричного алгоритма RSA. Логика построения шифра и структура ключевой информации в криптографическом алгоритме ГОСТ.

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

  • Характеристика сигнала и его представление в виде математического ряда. Условия ортогональности двух базисных функций. Ряд Фурье, его интегральное преобразование и практическое использование в цифровой технике для обработки дискретной информации.

    реферат [69,9 K], добавлен 14.07.2009

  • Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".

    курсовая работа [3,3 M], добавлен 11.03.2013

  • Разработка на языке ассемблера алгоритма контроля, на циклический CRC-код, массива данных хранящегося в некоторой области памяти. Сохранение кода для последующей периодической проверки массива данных. Сообщение об искажении данных. Описание алгоритма.

    курсовая работа [453,0 K], добавлен 27.02.2009

  • Предотвращение угроз информационной безопасности. Использование криптографических методов защиты в информационных системах. Разработка блока обратного преобразования для системы нелинейного шифрования на основе операции возведения в степень по модулю.

    дипломная работа [565,1 K], добавлен 01.07.2011

  • Получение вейвлетов Габора из представления путем его поворота и растяжения для известного числа масштабов и ориентаций. Описание процедуры pullback. Детектор края, реализация алгоритма. Генерация представления изображения с помощью вейвлетов Габора.

    курсовая работа [1021,4 K], добавлен 29.10.2017

  • Перевод исходного текста и первого подключа в двоичную последовательность. Логическое сложение с исключением. Открытый и закрытый ключи в алгоритме шифрования RSA. Шифрование и расшифрование. Электронная цифровая подпись. Применение функции хеширования.

    контрольная работа [21,9 K], добавлен 28.03.2012

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