На втором этапе производится рекурсивное перемешивание между собой массивов K и k :
A=0;B=0;i=0;j=0;
for( x=0;x<44*3;x++)
{
k[i]=(k[i]+A+B) ROL 3; B=k[i];
i=(i+1) %44;
K[j]=(K[j]+A+B) ROL (A+B);A=k[j];
j=(j+1)%c;
}
Троекратное рекурсивное перемешивание материала ключа с ключом при наличии сдвига на переменное количество бит существенно затрудняет криптоанализ алгоритма.
Основное преимущество алгоритма – высокая скорость работы на 32-разрадных аппаратных платформах. Его криптостойкость определяется стойкостью к атакам его предшественника (RC5), который в свое время очень хорошо изучен криптографами. К недостатком алгоритма относят его слабую распараллеливаемость.
При практическом использовании блочных шифров применяются различные схемы шифрования, известные под названием рабочие режимы шифрования. Эти режимы позволяют реализовать дополнительные, отсутствующие в исходной конструкции блочного шифра функции. Наиболее популярны следующие 4 режима шифрования (рис. 6):
1) режим электронной кодовой книги (Electronic Code Book, ECB);
2) режим сцепления блоков шифра (Cipher Block Changing, CBC);
3) режим обратной связи по шифротексту (Electronic Feedback, CFB);
4) режим обратной связи по выходу (Output Feedback, OFB).
ci=Ek(mi), mi=Dk(ci).
Недостатком данного режима шифрования является то, что одинаковые блоки входного текста будут кодироваться в одинаковые блоки шифротекста, что дает возможность злоумышленнику, во-первых, делать предположения о характере информации в открытом тексте, а во-вторых, подменить один или несколько блоков шифротекста. Достоинством режима можно назвать простоту реализации, а также возможность распараллеливания процедуры шифрации.
Режим CBC предполагает следующие алгоритмы шифрации/дешифрации:
ci=Ek(mi Å ci-1), mi=Dk(ci) Å ci-1
В режиме CBC каждый блок открытого текста складывается с блоком шифротекста, полученным на предыдущем этапе. Таким образом, происходит сцепление блоков друг с другом и независимая манипуляция с каждым из них невозможна, а одинаковые входные блоки будут давать на выходе разные блоки. Однако задача распараллеливания процедуры кодирования в этом режиме затруднена. Дополнительным параметром процедур шифрования/дешифрования является параметр c0. Существует модификация данного режима, называемая PCBC (Propagating Cipher Block Changing), которая позволяет при дешифрации распространить единичную ошибку, возникшую при передаче шифротекста, на весь шифротекст и таким образом обнаруживать ошибки передачи. Правила шифрования и дешифрации PCBC:
ci=Ek(mi Å mi-1Å ci-1), mi=Dk(ci) Å ci-1Å mi-1
Режим PCBC не утвержден международными стандартами, однако находит применение в протоколе ключевого обмена Kerberos.
В режиме CFB также происходит «маскировка» блока открытого текста уже зашифрованными блоками:
ci=mi Å Ek(ci-1), mi=Еk(ci-1) Å ci
Режим CFB также связывает значение текущего блока шифротекста со значениями всех предыдущих блоков входного текста. Если длина сообщения не кратна размеру блока шифра, то в режиме CBC необходимо дополнять последний блок дополнительными битами и сообщать на принимающую сторону истинный размер сообщения, а режим CFB позволяет сформировать шифротекст того же размера, что и исходное сообщение. Еще одна отличительная особенность – отсутствие процедуры дешифрации, что упрощает реализацию криптосистемы, особенно для несимметричных криптоалгоритмов.
В режиме OFB исходное сообщение вообще не подвергается криптопреобразованию, оно складывается с шифруемыми на секретном ключе блоками si (s0 является задаваемым несекретным параметром режима):
ci=miÅ si , mi=ciÅ si, si=Ek(si-1)
В этом режиме, как и в режиме ECB, ошибки, которые могут возникнуть при передаче шифротекста по каналам связи, локализуются в блоке, не распространяясь на соседние, причем в режиме OFB ошибочными будут только биты, подвергшиеся изменению (в ECB изменится весь блок). Это дает возможность злоумышленнику незаметно для принимающей стороны подменить блок шифротекста. Возможности распараллеливания процедур шифрации/дешифрации затруднены. Режим также не требует реализации процедуры дешифрации данных. В режиме усовершенствованного OFB предлагается маскировать блок открытого текста не величиной si, а si +V (mod 264), где V – некоторый вектор инициализации.
Более полный список режимов шифрования можно посмотреть в [5].
Порядок выполнения работы
1. Ознакомьтесь с теоретическими основами блочного симметричного шифрования в настоящих указаниях, а также в [2] и конспектах лекций.
2. Получите вариант задания у преподавателя.
3. Напишите программу согласно варианту задания.
4. Отладьте разработанную программу и покажите результаты работы программы преподавателю.
5. Составьте отчет по лабораторной работе
Содержание отчета
Отчет по лабораторной работе должен содержать следующие сведения:
- название и цель работы;
- вариант задания;
- листинг разработанной программы с комментариями;
- результаты работы программы.
Варианты заданий
Реализовать систему симметричного блочного шифрования, позволяющую шифровать и дешифровать файл на диске с использованием заданного блочного шифра в заданном режиме шифрования. Перечень блочных шифров и режимов шифрования приведен в таблице 6. Номер шифра и режима для реализации получить у преподавателя.
Таблица 6 – Варианты заданий к лабораторной работе
Алгоритм | Режим шифрования | ||
Номер | Название | Номер | Режим |
1 | TEA | а | ECB |
2 | IDEA | б | CBC |
3 | RC6 | в | PCBC |
4 | ГОСТ 28147-89 | г | CFB |
5 | Rijndael | д | OFB |
6 | DES |
Контрольные вопросы
1. Перечислите основные обратимые операции, используемые в образующих функциях блочных шифров.
2. Что такое сеть Фейштеля? В чем ее основные достоинства?
3. Какие параметры блочных шифров влияют на его криптостойкость?
4. Какие блочные шифры, построенные по принципу сети Фейштеля, вам известны?
5. Проведите сравнительный анализ алгоритмов ГОСТ 28147-89 и Rijndael.
6. Проведите сравнительный анализ режимов шифрования CBC и ECB.
7. Проведите сравнительный анализ режимов шифрования CBC и CFB
Л и т е р а т у р а
1. Конеев И.Р., Беляев А.В. Информационная безопасность предприятия. -СПб.: БХВ-Петербург, 2003.- 752с.:ил.
2. Лясин Д.Н., Саньков С.Г. Методы и средства защиты компьютерной информации (учебное пособие). – Волгоград, Издательство ВолгГТУ РПК "Политехник”, 2005г.
3. Официальный сайт национального института стандартизации и техники (NIST) США. http://csrc.nist.gov/CryptoToolkit/aes/
4. Чмора А.Л. Современная прикладная криптография. 2-е изд. -М.: Гелиос АРВ, 2002.-256с.:ил.
5. Шнайер Б. Прикладная криптография.- М. : Триумф, 2002. – 816с.
Составители: Дмитрий Николаевич Лясин
Игорь Александрович Макушкин
Блочное симметричное шифрование. Методические указания к лабораторным работам по курсу «Методы и средства защиты компьютерной информации».
В авторской редакции.
Темплан 2008 г. , поз. N 13В (з)
Лицензия ИД N04790 от 18.05.01
Подписано в печать _________ . На магнитном носителе.
Усл. печ. л. 1,4 . Уч. -изд.л. 1,44.
Волгоградский государственный технический университет.
400131 Волгоград , пр. Ленина , 28.
РПК "Политехник" Волгоградского государственного технического
университета.
400131 Волгоград , ул. Советская , 35.