Алгоритм 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