Алгоритм DES (Data Encryption Standard)

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

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

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

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

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

Содержание

Введение

1. Постановка задачи

2. Алгоритм решения задачи

3. Создание 16 подключей, каждый из которых 48 бит длиной

4. Криптование каждого 64 битного блока

5. Дешифровка

6. Состав программы

Заключение

Список использованных источников

Приложение А. Результаты тестирования

Приложение Б. Руководство

Введение

В 1977 году Национальное бюро Стандартов США (NBS) опубликовало стандарт шифрования данных Data Encryption Standard (DES), предназначенный для использования в государственных и правительственных учреждениях США для защиты от несанкционированного доступа важной, но несекретной информации.

Алгоритм, положенный в основу стандарта, распространялся достаточно быстро, и уже в 1980 году был одобрен ANSI. С этого момента DES превращается в стандарт не только по названию (Data Encryption Standard), но и фактически. Появляются программное обеспечение и специализированные микро ЭВМ, предназначенные для шифрования/расшифрования информации в сетях передачи данных и на магнитных носителях. К настоящему времени DES является наиболее распространенным алгоритмом, используемым в системах защиты коммерческой информации.

1. Постановка задачи

Разработка криптографического программного обеспечения

Необходимо разработать программу, которая должна шифровать и дешифровать текст алгоритмом DES (Data Encryption Standard). Программа должна выполнять следующие основные действия:

- шифровка, то есть кодировка, текста из указанного файла; перед кодировкой пользователь вводит пароль;

- дешифровка текста из указанного файла; перед дешифровкой пользователь должен ввести пароль;

2. Алгоритм решения задачи

DES это блочный шифр - то есть оперирует с текстовыми сообщениями блоками фиксированного размера 64 бит и возвращает блоки шифротекста 64 бит длиной. Каждый блок из 64 бит делится на два блока в 32 бита каждый, левая половина блока L и правая R.

Пример: Возьмём M это текстовое сообщение M = 0123456789ABCDEF, где М в шестнадцаритичном (base 16) формате. Перезапишем M в бинарный формат, мы получим 64 бит блок текста:

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

L = 0000 0001 0010 0011 0100 0101 0110 0111

R = 1000 1001 1010 1011 1100 1101 1110 1111

DES оперирует с 64-бит блоками используя ключи размерами в 56 бит. Ключи на самом деле хранятся как 64 бит длины, но каждый 8й бит ключа не используется (то есть биты 8, 16, 24, 32, 40, 48, 56, и 64). Однако, мы будем нумеровать биты от 1 до 64, идя слева направо, следуя расчётам. Но можно заметить, что восьмой бит удаляется когда создаются подключи.

Пример: Пусть K будет шестнадцатеричный ключ K = 133457799BBCDFF1. Это даёт бинарный ключ (1 - 0001, 3 = 0011) и группируется вместе по каждому 8му биту, который в каждой группе не используется:

K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001

3. Создание 16 подключей, каждый из которых 48 бит длиной

64-битный ключ переставляется по следующей таблице PC-1. Первое значение в таблице "57", это подразумевает, что 57й бит оригинального ключа K становится первым битом переставленного ключа K+ (пермутированного). 49й бит оригинального ключа становится вторым битом пермутированного ключа. 4й бит оригинального ключа становится последним битом пермутированного ключа. Ну и тут снова, деталь, что только 56 битов оригинального ключа подвергаются пермутации или только 56 битов оригинального ключа появятся в пермутированном ключе.

PC-1

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

В целом, это можно представить как таблицу индексов оригинального ключа, по которым построится пермутированный ключ.

Пример: из оригинального 64 битного ключа

K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001

мы получим 56 битный пермутированный

K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111

Далее, разделяем этот ключ на левые и правые половины, C0 и D0, где каждая половина имеет 28 бит.

Пример: Из пермутированного ключа K+, получается

C0 = 1111000 0110011 0010101 0101111

D0 = 0101010 1011001 1001111 0001111

С C0 и D0 определёнными, создаются 16 блоков Cn и Dn, 1<=n<=16. Каждая пара блоков Cn и Dn формируется из предыдущей пары Cn-1 и Dn-1, для n = 1,2,3...,16, используются схема "левых сдвигов" предыдушего блока. Чтобы сделать левый сдвиг, нужно сдвинуть каждый бит на один бит влево, кроме первого бита, который идёт в конец блока.

Iteration Number of

Number Left Shifts

1 1

2 1

3 2

4 2

5 2

6 2

7 2

8 2

9 1

10 2

11 2

12 2

13 2

14 2

15 2

16 1

Это подразумевает, для примера, C3 и D3 получаются из C2 и D2, соответственно, на два сдвига влево, и C16 и D16 получены из C15 и D15, соответственно, на один сдвиг влево. Во всех случаях, на один сдвиг влево это поворот битов на одно место влево, так что после одного сдвига влево биты в 28 позиции на биты которые были ранее здесь (на бит выше) на 2, 3, ..., 28, 1. Обычный циклический сдвиг влево.

Пример: Из оригинальной пары C0 и D0 получаем:

C0 = 1111000011001100101010101111

D0 = 0101010101100110011110001111

C1 = 1110000110011001010101011111

D1 = 1010101011001100111100011110

C2 = 1100001100110010101010111111

D2 = 0101010110011001111000111101

C3 = 0000110011001010101011111111

D3 = 0101011001100111100011110101

C4 = 0011001100101010101111111100

D4 = 0101100110011110001111010101

C5 = 1100110010101010111111110000

D5 = 0110011001111000111101010101

C6 = 0011001010101011111111000011

D6 = 1001100111100011110101010101

C7 = 1100101010101111111100001100

D7 = 0110011110001111010101010110

C8 = 0010101010111111110000110011

D8 = 1001111000111101010101011001

C9 = 0101010101111111100001100110

D9 = 0011110001111010101010110011

C10 = 0101010111111110000110011001

D10 = 1111000111101010101011001100

C11 = 0101011111111000011001100101

D11 = 1100011110101010101100110011

C12 = 0101111111100001100110010101

D12 = 0001111010101010110011001111

C13 = 0111111110000110011001010101

D13 = 0111101010101011001100111100

C14 = 1111111000011001100101010101

D14 = 1110101010101100110011110001

C15 = 1111100001100110010101010111

D15 = 1010101010110011001111000111

C16 = 1111000011001100101010101111

D16 = 0101010101100110011110001111

Сейчас формируются ключи Kn, для 1<=n<=16, применяя таблицу пермутации для каждой пары CnDn. Каждая пара 56 бит, но таблица PC-2 использует 48 из этих бит.

PC-2

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

Здесь первый бит Kn это 14й бит CnDn, второй бит - 17й, и так же далее, заканчивая 48ым битом Kn - 32й бит CnDn.

Пример: для первого ключа получается C1D1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110, после применения таблицы: K1 = 000110 110000 001011 101111 111111 000111 000001 110010

Для других ключей получается:

K2 = 011110 011010 111011 011001 110110 111100 100111 100101

K3 = 010101 011111 110010 001010 010000 101100 111110 011001

K4 = 011100 101010 110111 010110 110110 110011 010100 011101

K5 = 011111 001110 110000 000111 111010 110101 001110 101000

K6 = 011000 111010 010100 111110 010100 000111 101100 101111

K7 = 111011 001000 010010 110111 111101 100001 100010 111100

K8 = 111101 111000 101000 111010 110000 010011 101111 111011

K9 = 111000 001101 101111 101011 111011 011110 011110 000001

K10 = 101100 011111 001101 000111 101110 100100 011001 001111

K11 = 001000 010101 111111 010011 110111 101101 001110 000110

K12 = 011101 010111 000111 110101 100101 000110 011111 101001

K13 = 100101 111100 010111 010001 111110 101011 101001 000001

K14 = 010111 110100 001110 110111 111100 101110 011100 111010

K15 = 101111 111001 000110 001101 001111 010011 111100 001010

K16 = 110010 110011 110110 001011 000011 100001 011111 110101

4. Криптование каждого 64 битного блока

Начальная пермутация (initial permutation) IP 64 бит сообщения данных M. Снова используется таблица для перераспределения. 58й бит M становится первым битом IP. И так далее как и ранее.

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

Пример: Применяя IP пермутацию к блоку M получаю:

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

IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010

И как обычно, 58й бит становится "1", и так далее.

Далее результат IP делится на две части: L0 и R0 - 32 бит длиной.

L0 = 1100 1100 0000 0000 1100 1100 1111 1111

R0 = 1111 0000 1010 1010 1111 0000 1010 1010

Далее через 16 итераций обработка нужна, 1<=n<=16, используя функцию, которая оперирует двумя блоками - это с блоком данных и ключом Kn в 48 бит - генерируя блок из 32 бит.Let + denote XOR addition, (bit-by-bit addition modulo 2). Потом для n от 1 до 16:

Ln = Rn-1

Rn = Ln-1 + f(Rn-1,Kn)

Результаты в финальном блоке, для n = 16, для L16R16. В каждой итерации берутся правые 32 бита предыдущего результата и вычисляются с текущим блоком 32 бита. Для правых 32х битов текущего шага, выполняется XOR с левыми 32 битами предыдущего шага.

Пример: для n = 1, получается:

K1 = 000110 110000 001011 101111 111111 000111 000001 110010

L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010

R1 = L0 + f(R0,K1)

Теперь насчёт функции f. Во-первых расширяется блок 32 битный Rn-1 в 48 бит. Это выполняется с помощью таблицы, которая повторяет некоторые биты Rn-1. Назовём использование этой таблицы функцией E. Так что E(Rn-1) использует на входе 32 бита, а на выходе 48.

E BIT-SELECTION TABLE

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

Первые три бита E(Rn-1) в позициях 32, 1, 2 Rn-1, и последние два бита E(Rn-1) в позициях 32 и 1.

Пример: рассчитаем E(R0) из R0:

R0 = 1111 0000 1010 1010 1111 0000 1010 1010

E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101

Каждый блок из 4 бит расширяется в 6 бит.

Далее используется XOR для E(Rn-1) с ключом Kn: Kn + E(Rn-1).

Пример: для K1, E(R0), получается:

K1 = 000110 110000 001011 101111 111111 000111 000001 110010

E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101

K1+E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111

Kn + E(Rn-1) =B1B2B3B4B5B6B7B8,

где каждая Bi - это группа из 6ти бит. Далее:

S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)

Si(Bi) определяет вывод S i-того из таблицы S box.

Ещё раз: каждая из S1, S2,..., S8 берёт 6битный блок как ввод и производит 4 бита как вывод.

S1, показан и определён ниже:

S1

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

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

Есть S1 функция определённая в таблице, и B блок из 6 бит, потом S1(B) определён так: первый и последний бит B представляет по base 2 число от 0 - 3 (или 00 или 11). Переменную добавлю i. Средние 4 бита B представляют base 2 - 0 to 15 (binary 0000 to 1111). Вторая переменная будет j. По таблице будет i - строка и j - колонка. Числа в диапазоне от 0-15 представлены 4битным блоком. Этот блок это вывод S1(B) от S1 для ввода B. Для примера, для входного блока B = 011011, первый бит "0" и последний "1" дают 01 как строка. Это строка 1. Средние 4 бита "1101". Это эквивалент 13, так что колонка будет 13. 1 строка и колонка 13 соответствует значению 5. Это и будет вывод 0101,S1(011011) = 0101.

Таблицы S1,...,S8:

S1

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8

13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7

1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4

3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S5

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9

14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6

4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S6

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11

10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6

4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S7

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1

13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6

1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2

6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S8

13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7

1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2

7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8

2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Пример: Для первого раунда, мы получаем как вывод восемь S боксов:

K1 + E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111.

S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) =

0101 1100 1000 0010 1011 0101 1001 0111

Финальная стадия расчёта f это выполнение пермутации P S box вывода чтобы получить финальное значение f.

f = P(S1(B1)S2(B2)...S8(B8))

Пермутация P определена в таблице ниже. P - это 32 битный вывод из 32 битного ввода, и пермутация ввода.

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

Пример: из вывода восьми S боксов:

S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) =

0101 1100 1000 0010 1011 0101 1001 0111

Получаем: f = 0010 0011 0100 1010 1010 1001 1011 1011

R1 = L0 + f(R0, K1) = 1100 1100 0000 0000 1100 1100 1111 1111

+ 0010 0011 0100 1010 1010 1001 1011 1011

= 1110 1111 0100 1010 0110 0101 0100 0100

В следующем раунде мы будем иметь L2 = R1, блок который только что расчитали, и потом мы должны расчитать

R2 =L1 + f(R1, K2),

и так 16 раундов. В конце 16го раунда будут блоки L16 и R16. Мы потом реверсируем(reverse) порядок двух блоков в 64 бит R16L16.

И применим финальную пермутацию FP.

FP

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

Здесь, вывод алгоритма имеет 40й бит для предвыводного блока как первый бит, бит 8 - второй бит и так далее.

Пример: Если если выполнить все 16 раундов то получится такой результат:

L16 = 0100 0011 0100 0010 0011 0010 0011 0100

R16 = 0000 1010 0100 1100 1101 1001 1001 0101

Реверсируем порядок в финальную пермутацию:

R16L16 = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100

FP = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101

В шестнадцатиричном формате будет так: 85E813540F0AB405.

Закриптованная форма M = 0123456789ABCDEF: C = 85E813540F0AB405.

Процесс шифрования заключается в начальной перестановке битов 64-битового блока, шестнадцати циклах шифрования и, наконец, обратной перестановки битов (рис.1).

Рис.1. Обобщенная схема шифрования в алгоритме DES

5. Дешифровка

криптография шифрование алгоритм пермутация

Дешифровка просто обратна криптованию, проходит те же шаги что выше, но реверсный порядок применение подключей.

Пример:

Если для зашифровки данных использовались ключи K1...K16, то для дешифровки используются ключи К 16...К 1

6. Состав программы

QString HexToBit(QString temp); //перевод стоки из 16-ричной в 2-ичную систему

//создание новых ключе и перемутация блоков текста

QString create_key(QString key);

QString createCn(QString temp,int shift);

QString create_key_1(QString Cn, QString Dn);

void createNum();

void createPC_1();

void createPC_2();

void createIP();

QString createE(QString Rn);

void create_E();

void createSn();

void createP();

QString create_P(QString key);

void createFP();

QString create_FP(QString key);

QString DEcreate_FP(QString key);

QString DEcreate_IP(QString key);

//основные функции для работы с шифровкой и дешифровкой

void CipherFile(QString name);

void DECipherFile(QString name);

QByteArray cipher(QString line);

QString create_IP(QString key);

QString Xor(QString a, QString b); //функция XOR

QString f(QString Rn, QString Kn);

QString S(QString fr);

int BitToInt(QString key);

QString IntToBit(int key);

QString BitToHex(QString bit);

QByteArray decipher(QString line);

Заключение

Таким образом, была разработана программа шифрования и дешифрования данных алгоритмом DES (Data Encryption Standard).

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

Список использованных источников

1. http://social.ilya-afanasyev.ru/

2. http://ru.wikipedia.org/wiki/DES Материал из Википедии - свободной энциклопедии

Приложение А. Результаты тестирования

Исходный текст:

1)

The Roman Empire had a huge task in front of them while it was first starting out and while it was becoming a dominant dynasty in the early civilizations. The main problem that the book "Discovering the Global Past" points out is how the Roman Empire found itself growing a little too quickly.

The Roman Empire started out very small on the Tiber River and grew abruptly without warning. Before they knew it, they were not a small power but now one with a great number of people with a great number of cultures intertwined within the Roman Empire. They were now spread over an immense portion of land with much power coming with it. The question now is how they are going to be able to handle all of this power and continue to dominate the world without any blueprints to help them out from previous dynasties because it had never been done before. We now have some evidence to help understand this and to show how it did happen. So courtesy of the "Discovering the Global Past" they have seven pieces of evidence that will help prove that the Roman Empire could handle the challenge of taking on the mastery of world power.

2)

DES является классической сетью Фейстеля с двумя ветвями. Данные шифруются 64-битными блоками, используя 56-битный ключ. Алгоритм преобразует за несколько раундов 64-битный вход в 64-битный выход. Длина ключа равна 56 битам. Процесс шифрования состоит из четырех этапов. На первом из них выполняется начальная перестановка (IP) 64-битного исходного текста (забеливание), во время которой биты переупорядочиваются в соответствии со стандартной таблицей. Следующий этап состоит из 16 раундов одной и той же функции, которая использует операции сдвига и подстановки. На третьем этапе левая и правая половины выхода последней (16-й) итерации меняются

Зашифрованный текст (когда ключ 12345678):

1)

ca4730342e3aa877185716d6c8699116cefed92965c1909d09541dd726a10482e21b7e81b28609fc1f6a24d8241c3441a21984c59e4b96c958b641b4b62f517ea88a2090f4e99b5c55e9a59bb95d9a129406e3234e59b4a192764fab25e0d7e75d1bcf791579296a8f6b20bebf4452c260bf4afd10931e000b53e4ebe61707287d73823ab31e1f0bc58fd1844152811e8e6de7eb7098b339cdbe23c8af9d0aac637e07486efdeab7039733b58eb55d2621b2df68592b99498bc304417fcf7b59613b1e58568f5abe037966aa7a37e8fe12add93d7b4d62de38caa7c6cbd4e6b004fa654324a4ef46ede6fde48b21c3f7c4797e3f50cac89b4f97b360adc70645bf186234a509a68de4ddd41d82f04647b70b04168f6857a00923ee40dfaff291eb3c7ef8b87dd28a9f0948a177c1d5ccc4797e3f50cac89bc300dadc4bf40e460e87c3872413449dff97f099fab702f300cc475046aff0a8602cb1ad72404692e20454485407e16f5bfb0f25376fa6884d55bfcc89ca6c928e204606e4fb230340890d4db300b349f4c2d8c15546be446aecf2e68f57cd44f424306b0323bbc0539114fd8dcf6aaabd9424ea53a0150f93e770aaa9130edeafbc2cc3e7dea043f9e62fcc7b4e36920172f031479f735f38d52470f73d459cbcf14847a4acc8d2e6bac96fb88807a4008c47e5c0686bde0b084ce365517756d216b8da0acfb45286c58baeed77e44460c54c7ee086ecf476e7b81794aa839219efdc7bf3ea4e35f1d47d4c295fd7e85aa21efee6c1ddb05c32fa62561850f9e7f3a947ba3f7fc16eb7783ae9dc8693efde1bb7d45207486070c32961f6c541deadc3ce3b46a03d060661ca1a5634b3ac2303035636e7c154d5e1d15cff2c8b80ccde3b8fbfe587d6ec40c442ecc21cfb5037d158277340b6e44f1b8be6d18c234e8ab88f913f4c37fd746c3a98e72af2ef915761c99586391738d5e5e06b249e03380006184370ef9bef1c5ee8de9690136c0fac5043174ac03f1ed91d549b55b758fad9ab450a9a05aea4a4e2746aa9334adeb8bd4861bc62dae6f6344a2840db01a5bc0a33ef660df0415b007cd27d883bded6da9e33b32e8f80aa61f84298d4c7de2de5aae41785e6c950a03cd1ba018afcb719bc1c17bd492a9af18d92f5a93b8d51fbb7dcec3967c0df51108c6018fa9d2ec814c8b4c9e58b9ffc4e12a39ce87bf5952b54a5c04350606ebbaec8725b82227197cc4efdf2d7a43764899aa273f1c55f0b3047502b12ca51599de33a9db118a4f10191ed51eba9d10a7d462c21352e793f3ee20754d6dc20ce97adc64663afd33fecfe3aa532ff61d773500a409ec66116cc2f7f1dd44cf2e68d0d483d75eda374cbfaf31d5dacc90bd260f987c99445838cf061e85d10fbeac1c31c7d65

1efd410f169aeb3953794de02379c99c8aa02c60072d2d11860ea6931fc96e2a6adc5dd10a88358fc041815a43b7a45d72ac68965216a7f5ceb84dfbf0cbe720398ca7e4ddb78c2b5969aa61def1a0b496e837be2e6cc0dda5a0ebb5306dda0f5651f4c49d0e4914b030f86e69e11af853a3089ed337efeed9777f46

2)

b15e768ff7e3b9b2a1f3ad4428876257a1f3ad4428876257b95c87482c7c7f0ba1f3ad442887625708b26fc138e476871547bf040339427016c548bae4f1f910a30a5a2c9147254fa1f3ad4428876257a1f3ad4428876257a1f3ad44288762571547bf0403394270ce2ed460042be955a1f3ad4428876257fed3d7423e0afe85a1f3ad4428876257a1f3ad4428876257beb6a58b1917b8c4a1f3ad4428876257a1f3ad4428876257a1f3ad4428876257a1f3ad44288762577dfad0ecf758fa18a1f3ad4428876257a1f3ad4428876257beb6a58b1917b8c49d92de90789c51c4fed3d7423e0afe85beb6a58b1917b8c4a1f3ad4428876257a1f3ad44288762571547bf04033942701547bf0403394270088828846b192c73beb6a58b1917b8c4b95c87482c7c7f0ba1f3ad4428876257a1f3ad4428876257a1f3ad4428876257a1f3ad4428876257fef66f186508e88aa1f3ad4428876257a1f3ad44288762571547bf0403394270d6c02d5c0112c60ea1f3ad4428876257b95c87482c7c7f0ba1f3ad4428876257a1f3ad4428876257a1f3ad4428876257a1f3ad442887625708b26fc138e47687a1f3ad4428876257beb6a58b1917b8c4a1f3ad4428876257a1f3ad44288762571547bf0403394270beb6a58b1917b8c4a1f3ad44288762570e2db547f4892fbda1f3ad4428876257a1f3ad4428876257b95c87482c7c7f0ba1f3ad4428876257a1f3ad4428876257a1f3ad44288762571547bf0403394270b95c87482c7c7f0b08b26fc138e47687a1f3ad4428876257beb6a58b1917b8c4beb6a58b1917b8c41547bf04033942701547bf0403394270a1f3ad44288762571547bf0403394270a1f3ad44288762571196c8e38163110a1547bf0403394270b95c87482c7c7f0b57520da8446017b5

Расшифрованый текст:

1)

The Roman Empire had a huge task in front of them while it was first starting out and while it was becoming a dominant dynasty in the early civilizations. The main problem that the book "Discovering the Global Past" points out is how the Roman Empire found itself growing a little too quickly.

The Roman Empire started out very small on the Tiber River and grew abruptly without warning. Before they knew it, they were not a small power but now one with a great number of people with a great number of cultures intertwined within the Roman Empire. They were now spread over an immense portion of land with much power coming with it. The question now is how they are going to be able to handle all of this power and continue to dominate the world without any blueprints to help them out from previous dynasties because it had never been done before. We now have some evidence to help understand this and to show how it did happen. So courtesy of the "Discovering the Global Past" they have seven pieces of evidence that will help prove that the Roman Empire could handle the challenge of taking on the mastery of world power.

2)

DES является классической сетью Фейстеля с двумя ветвями. Данные шифруются 64-битными блоками, используя 56-битный ключ. Алгоритм преобразует за несколько раундов 64-битный вход в 64-битный выход. Длина ключа равна 56 битам. Процесс шифрования состоит из четырех этапов. На первом из них выполняется начальная перестановка (IP) 64-битного исходного текста (забеливание), во время которой биты переупорядочиваются в соответствии со стандартной таблицей. Следующий этап состоит из 16 раундов одной и той же функции, которая использует операции сдвига и подстановки. На третьем этапе левая и правая половины выхода последней (16-й) итерации меняются

Скриншоты:

Приложение Б. Руководство

В папке "release" расположена рабочая программа. Запуск программы существляется файлом des.exe. В папке "KURS" расположены исходники программы.

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

...

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

  • Разработка программы, реализующей процедуры шифрования и расшифрования текста по стандарту DES (Data Encryption Standard). Структура алгоритма шифрования, схема выработки ключевых элементов. Использование криптографического программного средства.

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

  • Принятые на конкурс алгоритмы: CAST-256 (Канада), CRYPTON (Южная Корея), DEAL (Норвегия, Канада), DFC или Decorrelated Fast Cipher (Франция). Основные этапы конкурса на Advanced Encryption Standard. Финалист и победитель конкурса, сравнение шифров.

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

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

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

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

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

  • Необходимость автоматизации и защиты информации в Управлении Федеральной налоговой службы России. Реализация криптографической защиты алгоритмом ГОСТ 28147-89 "Сеть Фейстеля" и разработка программного обеспечения функционала в среде Borland Delphi 7.

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

  • Создание криптографического программного обеспечения, выполняющего шифрование по алгоритму RC6; электронную подпись на основе шифра Эль-Гамаля; задачу о нахождении гамильтонова цикла в графе. Алгоритм реализации гамильтонова цикла. Исходный код программы.

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

  • Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".

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

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

    курсовая работа [2,8 M], добавлен 27.02.2015

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

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

  • Основные требования к разрабатываемым программам и исходным текстовым файлам. Характеристика шифров замены. Укрупненные структурные схемы и коды программ шифрования и дешифрования, скриншоты их выполнения. Пример зашифрованного текста и его дешифрования.

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

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

    контрольная работа [208,4 K], добавлен 14.06.2013

  • Теория графов и её применения. Разработка программного продукта для решения задач нахождения минимального пути. Анализ надежности и качества ПП "метода Дейкстры". Математическая модель задачи. Алгоритмы Дейкстры на языке программирования Turbo Pascal.

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

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

    курсовая работа [2,8 M], добавлен 14.01.2014

  • Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.

    курсовая работа [24,7 K], добавлен 20.10.2014

  • Создание сайта-каталога программного обеспечения с поиском на основе булевой модели. Достоинства и недостатки булевой модели. Алгоритм поиска по слову в базе данных системы. Разработка руководства пользователя и администратора по работе с системой.

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

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

    курсовая работа [439,3 K], добавлен 21.12.2015

  • Создание электронного учебника, написанного на языке гипертекстовой разметки HTML. Характеристика программного обеспечения ЭВМ, необходимого для создания и эксплуатации информационной системы. Алгоритм функционирования системы, отладка программы.

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

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

    презентация [260,8 K], добавлен 11.10.2015

  • История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как способы преобразования бит данных. Алгоритмы шифрования DES и IDEA, их основные достоинства и недостатки.

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

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

    дипломная работа [44,9 K], добавлен 08.07.2009

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