Симметричное блочное шифрование
Проблема обеспечения безопасности в каналах телекоммуникаций, ее значение и актуальность. Разработка и использование специальных средств, методов и мероприятий с целью предотвращения потери информации, современная технология ее защиты в каналах связи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.06.2009 |
Размер файла | 828,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ
Федеральное государственное образовательное учреждение высшего профессионального образования
«Чувашский государственный университет им. И.Н.Ульянова»
Кафедра компьютерных технологий
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ:
«ОТЗИ» на тему:
«Симметричное блочное шифрование»
Выполнил: студент группы ДиКТ 23-07
Осипов Ю. В.
Проверил: преподаватель кафедры
компьютерных технологий
Михайлов А. Л.
Чебоксары 2007
Содержание
Задание на курсовую работу
Введение
1. Шифрование информации. Тип шифра - Grand Cru
2. Режим шифрования ECB8
3. Режим шифрования CBC0
Выводы по работе
Список используемой литературы
Задание на курсовую работу
1) На основе заданного типа шифра (Grand Gru) разработать алгоритм шифрования и дешифрования;
2) Разработать блок-схему шифра (Grand Gru) на основе заданного алгоритма;
3) На основе блок-схемы написать программу шифрования и дешифрования (язык произвольный);
4) Используя заданный текст и ключ получить шифрограмму, проверить правильность восстановления исходного текста.
Введение
Информационная революция, происшедшая в мире в последнее десятилетие, привела к интенсивному развитию средств связи и вычислительной техники. Достижения современной технологии позволяют сегодня передавать информацию практически на любые расстояния. Информация, передаваемая при помощи ЭВМ, модема и канала связи, может быть представлена в любом виде: буквенно-цифровом, речевом, графическом, видео, и т.п.
Вместе с тем, наряду с интенсивным развитием средств и систем передачи, все более актуальной становится проблема обеспечения её безопасности. Под защитой информации (обеспечением безопасности) понимается использование специальных средств, методов и мероприятий с целью предотвращения потери информации. Меры безопасности направлены на предотвращение несанкционированного получения информации, физического уничтожения или модификации защищаемой информации.
Опасность несанкционированных злоумышленных действий в системах обработки и передачи информации является весьма реальной, а проблема обеспечения безопасности в каналах телекоммуникаций становится все более значимой и актуальной.
Сегодня, проблема защиты информации означает организацию целого комплекса мер по защите в широком понимании этого понятия, то есть использование специальных средств, методов и мероприятий с целью предотвращения потери информации, находящейся в каналах телекоммуникаций. В этом смысле сегодня рождается новая современная технология - технология защиты информации, передаваемой по каналам телекоммуникаций, в область влияния которой попадают не только каналы связи, но и центры коммутации, периферийные устройства, терминалы, администраторы связи и др.
1. Шифрование информации. Тип шифра - Grand Cru
Алгоритм Grand Cru разработан специально для участия в конкурсе NESSIE. Автор алгоритма - Йохан Борст (Johan Borst) из Католического Университета г. Лювен, Бельгия.
Как и алгоритм Anubis, Grand Cru имеет структуру «квадрат». Данный алгоритм основан на алгоритме Rijndael, разработанном, как известно, Джоан Деймен (Joan Daemen) и упомянутым выше Винсентом Риджменом. Несомненно, тот факт, что Rijndael выиграл конкурс AES и в настоящее время является стандартом шифрования США AES, сподвигнул некоторых разработчиков алгоритмов шифрования на конструирование блочных шифров на его основе. Один из них - Anubis - был рассмотрен выше. Grand Cru - второй пример; фактически, он является глубокой модификацией алгоритма Rijndael.
Как известно, среди четырех преобразований данных в каждом раунде алгоритма Rijndael существует только одна операция (наложение подключа операцией XOR), выполняющая зависящие от ключа преобразования. По мнению автора алгоритма Grand Cru, увеличение количества ключевых преобразований в раунде алгоритма усилит криптостойкость алгоритма при том же количестве раундов или позволит уменьшить количество раундов (чем увеличить скорость шифрования) при заданном уровне криптостойкости. Соответственно, раунд Grand Cru - это, фактически, раунд Rijndael с добавлением двух ключевых операций вместо одной бесключевой.
Алгоритм Grand Cru шифрует данные блоками по 128 бит с использованием только 128-битного ключа шифрования.
Структура алгоритма
Как было сказано выше, алгоритм имеет структуру «квадрат»: аналогично рассмотренному выше алгоритму Anubis, при шифровании данные представляются в виде таблицы 4 * 4 байт. Каждый раунд подразумевает выполнение следующих операций:
Наложение фрагмента ключа r-го раунда k[r, 0] (см. ниже), которое выполняется с помощью операции XOR полностью аналогично операции алгоритма Anubis (однако, в спецификации алгоритма Grand Cru используется обратная нумерация столбцов - справа налево - как на рис. 1). Данная операция в алгоритме Grand Cru также обозначается как .
Рис. 1. Первый этап перестановки алгоритма Grand Cru
Как было сказано выше, раунд алгоритма содержит 3 операции с участием фрагментов расширенного ключа. Обозначим эти фрагменты следующим образом:
k[r, 0] - 128-битный фрагмент ключа раунда k[r] для наложения ключа,
k[r, 1] - 40-битный фрагмент для описанной ниже операции ,
k[r, 2] - 48-битный фрагмент для операции .
Табличная замена , замещающая каждый байт массива согласно следующей таблице S:
99 |
124 |
119 |
123 |
242 |
107 |
111 |
197 |
|
48 |
1 |
103 |
43 |
254 |
215 |
171 |
118 |
|
202 |
130 |
201 |
125 |
250 |
89 |
71 |
240 |
|
173 |
212 |
162 |
175 |
156 |
164 |
114 |
192 |
|
183 |
253 |
147 |
38 |
54 |
63 |
247 |
204 |
|
52 |
165 |
229 |
241 |
113 |
216 |
49 |
21 |
|
4 |
199 |
35 |
195 |
24 |
150 |
5 |
154 |
|
7 |
18 |
128 |
226 |
235 |
39 |
178 |
117 |
|
9 |
131 |
44 |
26 |
27 |
110 |
90 |
160 |
|
82 |
59 |
214 |
179 |
41 |
227 |
47 |
132 |
|
83 |
209 |
0 |
237 |
32 |
252 |
177 |
91 |
|
106 |
203 |
190 |
57 |
74 |
76 |
88 |
207 |
|
208 |
239 |
170 |
251 |
67 |
77 |
51 |
133 |
|
69 |
249 |
2 |
127 |
80 |
60 |
159 |
168 |
|
81 |
163 |
64 |
143 |
146 |
157 |
56 |
245 |
|
188 |
182 |
218 |
33 |
16 |
255 |
243 |
210 |
|
205 |
12 |
19 |
236 |
95 |
151 |
68 |
23 |
|
196 |
167 |
126 |
61 |
100 |
93 |
25 |
115 |
|
96 |
129 |
79 |
220 |
34 |
42 |
144 |
136 |
|
70 |
238 |
184 |
20 |
222 |
94 |
11 |
219 |
|
224 |
50 |
58 |
10 |
73 |
6 |
36 |
92 |
|
194 |
211 |
172 |
98 |
145 |
149 |
228 |
121 |
|
231 |
200 |
55 |
109 |
141 |
213 |
78 |
169 |
|
108 |
86 |
244 |
234 |
101 |
122 |
174 |
8 |
|
186 |
120 |
37 |
46 |
28 |
166 |
180 |
198 |
|
232 |
221 |
116 |
31 |
75 |
189 |
139 |
138 |
|
112 |
62 |
181 |
102 |
72 |
3 |
246 |
14 |
|
97 |
53 |
87 |
185 |
134 |
193 |
29 |
158 |
|
225 |
248 |
152 |
17 |
105 |
217 |
142 |
148 |
|
155 |
30 |
135 |
233 |
206 |
85 |
40 |
223 |
|
140 |
161 |
137 |
13 |
191 |
230 |
66 |
104 |
|
65 |
153 |
45 |
15 |
176 |
84 |
187 |
22 |
Данная операция также аналогична (но с другой таблицей замен) операции алгоритма Anubis - см. рис. 1.
Зависящая от ключа перестановка . Использует 5-байтный фрагмент расширенного ключа k[r, 1], причем процедура расширения ключа гарантирует, что значение каждого байта k[r, 1] лежит в диапазоне от 1 до 24 включительно. Перестановка выполняется в 5 этапов:
На первом этапе выполняется перестановка строк массива данных. Для этого по первому байту ключа k[r, 1] (обозначим его значение как x) из следующей таблицы выбирается константа tx:
x |
tx |
|
1 |
78 |
|
2 |
36 |
|
3 |
2D |
|
4 |
C9 |
|
5 |
93 |
|
6 |
72 |
|
7 |
4B |
|
8 |
9C |
|
9 |
87 |
|
10 |
63 |
|
11 |
D2 |
|
12 |
39 |
|
13 |
8D |
|
14 |
1E |
|
15 |
E4 |
|
16 |
B4 |
|
17 |
6C |
|
18 |
D8 |
|
19 |
E1 |
|
20 |
C6 |
|
21 |
27 |
|
22 |
B1 |
|
23 |
4E |
|
24 |
1B |
|
tx представляется в виде четырех 2-битных значений
tx[0]...tx[3]; подбор констант tx гарантирует, что значения tx[0]...tx[3] представляют собой последовательность из неповторяющихся значений от 0 до 3 включительно, например, для x = 1:
tx[0] = 1,
tx[1] = 3,
tx[2] = 2,
tx[3] = 0.
Рис. 2. Второй этап перестановки алгоритма Grand Cru
Перестановка строк состоит в том, что i-я строка массива данных заменяется строкой, номер которой определяется значением tx[i] (см. пример для x = 1 на рис. 1).
Со второго по пятый этапы выполняют перестановку байт одного из столбцов массива данных: i-й этап переставляет байты i-2-го столбца, руководствуясь значением tx, выбираемым из приведенной выше таблицы согласно x - значению i-го байта ключа k[r, 1]. Перестановка байт выполняется абсолютно аналогично описанной выше перестановке строк - см. пример для этапа 2 и x = 2 на рис. 2.
Операция - умножение обрабатываемой таблицы на фиксированную матрицу H - аналогично одноименной операции Anubis (см. рис. 3). Матрица H унаследована от алгоритма Rijndael, в котором она определена следующим образом:
2 |
3 |
1 |
1 |
|
1 |
2 |
3 |
1 |
|
1 |
1 |
2 |
3 |
|
3 |
1 |
1 |
2 |
|
Зависящее от ключа вращение (операция ) каждого байта массива на переменное число бит, определяемое значениями соответствующих бит фрагмента ключа r-го раунда k[r, 2] (см. рис. 3):
Рис. 3. Операция алгоритма Grand Cru
bi,j = ai,j <<< xi,j,
где в качестве xi,j используются значения трех последовательных бит фрагмента k[r, 2] в соответствии со следующей таблицей:
i |
j |
Используемые биты k[r, 2] |
|
3 |
3 |
45, 46, 47 |
|
3 |
2 |
42, 43, 44 |
|
3 |
1 |
39, 40, 41 |
|
3 |
0 |
36, 37, 38 |
|
2 |
3 |
33, 34, 35 |
|
2 |
2 |
30, 31, 32 |
|
2 |
1 |
27, 28, 29 |
|
2 |
0 |
24, 25, 26 |
|
1 |
3 |
21, 22, 23 |
|
1 |
2 |
18, 19, 20 |
|
1 |
1 |
15, 16, 17 |
|
1 |
0 |
12, 13, 14 |
|
0 |
3 |
9, 10, 11 |
|
0 |
2 |
6, 7, 8 |
|
0 |
1 |
3, 4, 5 |
|
0 |
0 |
0, 1, 2 |
Таким образом, раунд алгоритма состоит из последовательно выполняемых операций:
.
Кроме того, перед первым по порядку (при зашифровании раунды нумеруются от 8 до 0) раундом выполняются операции и (составляющие предварительное преобразование), которые будут подробно описаны ниже. После последнего раунда выполняется заключительное преобразование - последовательность операций:
,
где -1 - операция, обратная к , также подробно описана ниже. Происхождение фрагментов расширенного ключа, используемых в ключевых операциях предварительного и заключительного преобразований, будет приведено в описании процедуры расширения ключа.
Операции , выполняемые перед первым и после последнего раунда алгоритма, представляют собой входное и выходное отбеливание данных соответственно. Данные операции накладывают на обрабатываемый блок данных соответствующие фрагменты ключа (обозначим их kwi и kwo) с помощью операции сложения по модулю 256 (см. рис. 4).
Рис. 4. Операция алгоритма Grand Cru
Например, для входного отбеливания:
bi,j = ai,j + kwii,j mod 256.
представляет собой операцию бесключевого рассеивания данных и выполняется в два этапа:
В цикле по n от 0 до 15 выполняется следующее действие:
bn+1 mod 16 = a n+1 mod 16 S(an),
где ax и bx - значения x-го байта данных до и после выполнения текущего действия соответственно (в данном случае блок данных представляется не в виде таблицы, а в виде последовательности байт).
В цикле по n1 от 0 до 15 выполняется цикл по n2 от 0 до 15, в котором выполняется следующее действие:
bn2 = an2 S(an1).
Данное действие не выполняется при n2 = n1.
Обратная к операция -1 определена так:
В цикле по n1 от 15 до 0 выполняется цикл по n2 от 15 до 0 (кроме шага, в котором n2 = n1), в котором выполняется следующее действие:
bn2 = an2 S(an1).
В цикле по n от 0 до 15 выполняется следующее действие:
bn+1 mod 16 = a n+1 mod 16 S(an).
Расшифрование
Расшифрование выполняется применением обратных операций в обратной последовательности:
Обратное заключительное преобразование:
,
где - обратные операции к , , и соответственно и будут описаны ниже (обратная операция к эквивалентна самой операции ).
9 раундов (от 0-го до 8-го), в каждом из которых выполняется следующая последовательность действий:
,
где -1 - операция, обратная к .
Обратное предварительное преобразование, состоящее из двух операций: -1 и -1.
-1 выполняет наложение фрагментов расширенного ключа kwo и kwi путем вычитания по модулю 256, например:
bi,j = ai,j - kwii,j mod 256.
-1 выполняется аналогично операции , однако, вращение каждого байта блока данных выполняется не влево, а вправо:
bi,j = ai,j >>> xi,j.
-1 - обратная перестановка относительно операции - ее этапы выполняются в обратной последовательности; кроме того, в каждом этапе выполняется обратная перестановка.
-1 аналогична прямой операции -1, но замена выполняется с помощью обратной таблицы S-1.
-1 представляет собой умножение
блока данных на обратную к H матрицу H-1, которая определена так:
E |
B |
D |
9 |
|
9 |
E |
B |
D |
|
D |
9 |
E |
B |
|
B |
D |
9 |
E |
Расширение ключа
Как видно из описания алгоритма шифрования, для выполняемых преобразований требуется достаточно большое количество фрагментов расширенного ключа различного размера. Поэтому процедура расширения ключа достаточно сложна3.
Прежде всего, вычисляется последовательность промежуточных ключей K0...K3 следующим образом:
128-битный исходный ключ шифрования представляется в виде четырех столбцов, которые обозначаются K0'...K3'.
Формируется последовательность столбцов K4'...K15' путем следующих действий:
K'i = K'i-4 G(R(K'i-1) ci/4),
если i кратно четырем, иначе:
K'i = K'i-4 K'i-1.
Функция R() представляет собой побайтное вращение обрабатываемого столбца на 1 байт вверх.
Функция G() обрабатывает каждый байт столбца с помощью описанной выше таблицы замен S, т.е. x-й байт столбца ax заменяется значением S(ax).
Модифицирующие константы cx взяты из алгоритма Rijndael, где они определены согласно следующей таблице:
x |
cx |
|
1 |
1 |
|
2 |
2 |
|
3 |
4 |
В принципе, в алгоритме может использоваться ключ шифрования, больший 128 бит, но не превышающий 512 бит и кратный 32 битам. В этом случае последовательность K0'...K15' заполняется аналогичным образом 32-битными фрагментами ключа шифрования, насколько это возможно, а недостающие столбцы рассчитываются согласно приведенным выше формулам.
Из столбцов, рассчитанных на предыдущем шаге, формируется последовательность промежуточных ключей K0...K3:
Ki = (K'4i+3 | K'4i+2 | K'4i+1 | K'4i).
Совокупность преобразований, используемых для получения промежуточного ключа Ki из исходного ключа шифрования (обозначим его KU) обозначим следующим образом:
Ki = F(KU, i).
В дальнейшем, с помощью аналогичных преобразований вычисляются необходимые подключи:
Для операции требуются 9 128-битных подключей k[0, 0]...k[8, 0] - по одному для каждого раунда алгоритма, а также 2 подключа (k[9, 0] и k[10, 0]), поочередно используемые в заключительном преобразовании (в обратном заключительном преобразовании эти два подключа используются в обратном порядке). Данные 11 подключей вычисляются на основе промежуточного ключа K0 следующим образом:
k[i, 0] = F(K0, i).
Операция использует два 128-битных подключа kwi и kwo, которые вычисляются так:
kwi = F(K3, 0),
kwo = F(K3, 1).
При расшифровании kwi и kwo применяются в обратном порядке.
Для операции требуются 48-битные подключи k[0, 2]...k [8, 2] - по одному для каждого раунда, а также k [9, 2] для заключительного преобразования. Эти подключи вычисляются следующим образом: для каждого i = 0...9 выполняются следующие действия:
вычисляется еще один промежуточный ключ:
K= F(K2, i);
вычисляется k[i, 2]:
k[i, 2] = LSB3(K15) | LSB3(K14) | ... | LSB3(K0),
где Kx - x-й байт промежуточного ключа K,
- операция конкатенации,
а LSB3(X) - три младших бита значения X.
Для операции требуется 10 40-битных подключей: k[0, 1]...k[8, 1] для 9 раундов алгоритма и k[9, 1] для заключительного преобразования. Эти подключи для i = 0...9 вычисляются так:
вычисляется промежуточный ключ:
K= F(K1, i);
Kпредставляется в виде байтового массива из 16 элементов: K0...K15.
Из данного массива набираются первые 5 байт из тех, значения которых попадают в требуемый диапазон: от 1 до 24. Если в массиве таких байт меньше пяти, недостаточное количество набирается с начала массива, в качестве значения байта ключа берется остаток от деления значения используемого байта массива на 16 (вместо 0 используется значение 16).
Достоинства и недостатки алгоритма
Как видно из приведенного выше описания алгоритма Grand Cru, данный алгоритм является весьма сложным; причем, сложным и запутанным выглядит как шифрование, так и процедура расширения ключа. Из избыточной сложности алгоритма следует тот факт, что алгоритм Grand Cru оказался самым медленным (причем, с огромным отрывом от быстродействия большей части других алгоритмов) среди всех участников конкурса.
В процессе изучения алгоритма в рамках конкурса NESSIE в нем не было обнаружено каких-либо слабостей, и, соответственно, каких-либо атак на данный алгоритм. Тем не менее, эксперты конкурса посчитали, что возможно высокая (но недоказанная) криптостойкость данного алгоритма не компенсирует ужасающе низкой скорости шифрования, поэтому Grand Cru не был выбран во второй раунд конкурса.
Блок схема алгоритма Grand Gru
да
нет
нет
да
да
нет
2. Режим шифрования - ECB (Electronic Code Book) - електронная кодовая книга
Данный режим является электронным аналогом режима, использовавшегося агентами для отправки зашифрованного сообщения ещё в начале XX века. Агент получал блокнот, каждая страница которого содержала уникальную последовательность - код с помощью которого и зашифровывалось сообщение. После использования такая страница вырывалась из блокнота и уничтожалась. При необходимости сообщение дополнялось так, чтоб на вырываемых страничках не оставалось не использованного кода. Принимающая сторона имела копию блокнота, поэтому, при условии синхронного использования страниц такой режим шифрования обеспечивал как зашифрование так и расшифрование сообщений. В ECB использованию одной страницы кодовой книги при зашифровании соответствует применение к входным данным преобразования функцией , а при расшифровании - . Обоим сторонам для того, чтобы синхронизироваться достаточно договориться о значении секретного ключа K . Вобще этот режим является самым простым и первым приходящим на ум способом использования блочного шифра для шифрования сообщений. Он проиллюстрирован на рис.5.
Рис. 5. Режим шифрования електронная кодовая книга - ECB.
Как видно из рисунка весь алгоритм ECB состоит в применении напрямую функций и к сообщению и шифротексту для зашифрования и расшифрования соответственно, что также может быть выражено в виде уравнений:
ECB зашифрование:
,
где j=1…n
ECB расшифрование:
,
где j=1…n
В уравнениях приняты следующие обозначения:
Pj - очередной, j-ый блок открытого текста (на рисунке - PLAINTEXT).
Cj - очередной, j-ый блок шифротекста (на рисунке - CIPHERTEXT).
Таким образом шифрование происходит блоками, соответствующими размеру входных/выходных данных для функций и . Блоки шифруются отдельно и независимо друг от друга, что позволяет делать это параллельно. Это достоинство режима ECB и его простота скрадываются двумя значительными недостатками. Первый - то, что длина сообщения должна быть кратна длине блока входных данных блочного шифра, то есть всё сообщение либо можно разбить на целое число таких блоков, либо необходимо каким-то образом дополнять последний блок не несущими информацию данными. Второй недостаток ещё более существенный. Поскольку при зашифровании очередной блок шифротекста полностью определяется только соответствующим блоком открытого текста и значением секретного ключа K, то одинаковые блоки открытого текста будут преобразовываться в этом режиме в одинаковые блоки шифротекста. А это иногда нежелательно, так как может дать ключ к анализу содержания сообщения. Например, если шифруются данные на жёстком диске, то пустое пространство будет заполнено одинаковыми байтами, оставшимися там от форматирования диска. А значит по шифротексту можно будет догадаться о размере полезной информации на диске. В таких случаях нужно применять другие режимы шифрования.
3 Режим шифрования - CBC
В режиме шифрования CBC происходит "сцепливание" всех блоков сообщения по шифротексту. Как это достигается - видно из рисунка 6, иллюстрирующего этот режим шифрования.
K
V
M +-------+
i+1 -->---?-->--Grand +-------------------->- .
Gru¦
+-------+ V
+-------+
+--<-- буфер +--<---+
+-------+
Рис. 6, а) Шифрование Grand Gru в режиме CBC
K ¦
V
+-------+
-->------>--¦Grand +-->---?------------->-
Gru
+-------+ ¦
+-------+ ¦
+-->--¦ буфер +-->---+
+-------+
C
0
Рис.6, б) Дешифрование Grand Gru в режиме CBC
В алгоритме шифрования на вход функции каждый раз подаётся результат суммирования по модулю 2 открытых данных очередного блока сообщения и выходных данных функции для предыдущего блока. Поскольку выходные данные функции для очередного блока идут прямо на выход алгоритма CBC, то есть являются шифротекстом этого блока и одновременно поступают на вход этой же функции для зашифрования последующего блока, то говорят, что происходит сцепление блоков по шифротексту. Первый блок открытых данных суммируется с т.н. вектором инициализации, речь о котором пойдёт ниже. Пока же достаточно понимать, что этот вектор инициализации становится известен как отправителю, так и получателю в самом начале сеанса связи (поэтому зачастую его называют просто синхропосылкой). Расшифрование происходит, соответственно, в обратном порядке - сначала к шифротексту применяют функцию, а затем суммируют с предыдущим блоком шифротекста для получения на выходе алгоритма очередного блока открытого текста. Первый блок открытого текста, опять же, восстанавливается с помощью вектора инициализации. Таким образом весь алгоритм может быть выражен в виде уравнений следующим образом:
CBC зашифрование:
CBC зашифрование:
В уравнениях приняты следующие обозначения:
IV - вектор инициализации (на рисунке - Initialization Vector);
Pj - очередной, j-ый блок открытого текста.
Cj - очередной, j-ый блок шифротекста.
Поскольку, как наглядно следует из рисунка, в режиме CBC при зашифровании каждая итерация алгоритма зависит от результата предыдущей итерации, то зашифрование сообщения не поддаётся расспараллеливанию. Однако в режиме расшифрования, когда весь шифротекст уже получен, функции вполне можно исполнять параллельно и независимо для всех блоков сообщения. Это даёт значительный выигрыш по времени. В этом режиме стоит остановиться ещё на одной детали. Дело в том, что последний блок шифротекста, который получается на выходе алгоритма режима CBC зависит как от ключа блочного шифра и вектора инициализации, так и (что важнее в данном случае) от всех бит отрытого текста сообщения. А это означает, что этот последний блок шифротекста можно использовать как своего рода идентификатор сообщения. Такой идентификатор не даёт постороннему наблюдателю никакой информации о содержимом всего сообщения в целом, и в то же время, практически однозначно определяет его (сообщение). Более того подделать этот идентификатор без знания ключа шифрования K так же трудно, как и правильно угадать сам ключ. Этот идентификатор широко используется для аутентификации сообщений и отправителей и носит название MAC (Message Authentication Code), в русскоязычной литературе - КАС (код аутентификации сообщения).
Пример работы программы
1) При запуске программа просит выбрать режим шифрования.
2) Вводим данные которые будем шифровать
3) Вводим ключ.
4) Программа переводит данные открытого текста в шестнадцатеричную систему счисления и выводит их на экран.
5) Программа выводит зашифрованные данные.
6) Программа выводит расшифрованные данные.
Вывод
Следующие характеристики Grand Cru характеризуют его криптографическую стойкость:
1. Длина блока: длина блока должна быть достаточной, чтобы скрыть все статистические характеристики исходного сообщения. С другой стороны, сложность реализации криптографической функции возрастает экспоненциально в соответствии с размером блока. Более того, использование режима шифрования EСB и PBC говорит о дальнейшем усилении этого аспекта алгоритма.
2. Длина ключа: длина ключа должна быть достаточно большой для того, чтобы предотвратить возможность простого перебора ключа. При длине ключа 128 бит Grand Cru считается достаточно безопасным.
3. Конфузия: зашифрованный текст должен зависеть от ключа сложным и запутанным способом.
Диффузия: Как видно из приведенного выше описания алгоритма Grand Cru, данный алгоритм является весьма сложным; причем, сложным и запутанным выглядит как шифрование, так и процедура расширения ключа. Из избыточной сложности алгоритма следует тот факт, что алгоритм Grand Cru оказался самым медленным (причем, с огромным отрывом от быстродействия большей части других алгоритмов) среди всех участников конкурса [14].
В процессе изучения алгоритма в рамках конкурса NESSIE в нем не было обнаружено каких-либо слабостей, и, соответственно, каких-либо атак на данный алгоритм [16]. Тем не менее, эксперты конкурса посчитали, что возможно высокая (но недоказанная) криптостойкость данного алгоритма не компенсирует ужасающе низкой скорости шифрования, поэтому Grand Cru не был выбран во второй раунд конкурса [13].
Cписок используемой литературы
1. Брюс Шнайер «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си» 2-е издание
2. Ю.С. Харин, В.И. Берник, Г.В. Матвеев, С.В. Агиевич «Математические и компьютерные основы криптологии»
3. Кузнецов И.Н. «Рефераты, курсовые и дипломные работы: Методика подготовки и оформления» 2-е издание. 2004. - 352с.
4. http://www.ixbt.com/soft/alg-encryption-aes.shtml
Подобные документы
Проблема защиты информации. Особенности защиты информации в компьютерных сетях. Угрозы, атаки и каналы утечки информации. Классификация методов и средств обеспечения безопасности. Архитектура сети и ее защита. Методы обеспечения безопасности сетей.
дипломная работа [225,1 K], добавлен 16.06.2012Основные виды угроз безопасности экономических информационных систем. Воздействие вредоносных программ. Шифрование как основной метод защиты информации. Правовые основы обеспечения информационной безопасности. Сущность криптографических методов.
курсовая работа [132,1 K], добавлен 28.07.2015Актуальность и важность технической защиты информации, нормативные документы. Анализ деятельности ООО "Технология защиты", информационные потоки. Обоснование угроз по техническим каналам. Разработка системы управления информационной безопасности.
дипломная работа [771,4 K], добавлен 13.06.2012Принципы обеспечения достоверности и сохранности, основанные на шифровании информации. Создание электронной цифровой подписи. Обеспечение достоверности и сохранности информации в автоматизированных системах. Симметричное и асимметричное шифрование.
курсовая работа [897,3 K], добавлен 19.01.2015Направления реализации технической политики обеспечения информационной безопасности, разработка документов. Характеристика средств обеспечения конфиденциальности информации: шифрование, электронная цифровая подпись. Алгоритм создания сетевого архива.
реферат [713,2 K], добавлен 15.12.2010Возможные каналы утечки информации. Особенности и организация технических средств защиты от нее. Основные методы обеспечения безопасности: абонентское и пакетное шифрование, криптографическая аутентификация абонентов, электронная цифровая подпись.
курсовая работа [897,9 K], добавлен 27.04.2013Зарождение и развитие криптографии. Симметричное шифрование и его особенности. Нейронная сеть и области ее использования, основные составляющие. Математическая модель нейронной сети на базе базисно-радиальных функций. Алгоритм симметричного шифрования.
курсовая работа [809,4 K], добавлен 30.09.2016Статистический анализ текстов, созданных программой симметричного шифрования. Реализация симметричного криптоалгоритма. Основные шаги в использовании криптосистемы PGP. Генерация ключей, шифрование и расшифровка сообщений. Защита от сетевых атак.
лабораторная работа [1,7 M], добавлен 06.07.2009Правила настройки параметров разрешений и общих строк протокола SNMP в целях предотвращения несанкционированного доступа к информации. Требования к обработке ошибок на уровне сервера. Шифрование личных данных, архивация и восстановление приложений.
курсовая работа [1,0 M], добавлен 13.11.2011Программные средства защиты от вредоносного программного обеспечения, основные требования к ним, оценка возможностей и функциональности. Системы обнаружения вторжения. Анализ средств защиты информации на предприятии. Политика корпоративной безопасности.
дипломная работа [1,2 M], добавлен 17.10.2015