Пример шифрования данных с использованием УАШ
Так, на вход функции F третьего раунда шифрования поступает значение 1100 0010, которое преобразуется к значению 1011 1101 в соответствии с рис. 46. После этого выход функции F третьего раунда шифрования (т. е. значение 1011 1101) складывается по модулю 2 с левой частью сообщения на входе третьего раунда шифрования (значение 10 010 100). В результате образуется значение 0010 1001. Так как третий… Читать ещё >
Пример шифрования данных с использованием УАШ (реферат, курсовая, диплом, контрольная)
Для того чтобы лучше освоить принцип шифрования данных с использованием блочных симметричных шифров, рассмотрим пример шифрования данных с помощью описанного выше учебного алгоритма шифрования. Для этого возьмем сообщение X = 5 520 310 и ключ К = 176 061 910. Первым делом необходимо перевести эти сообщения в двоичную систему счисления. При переводе необходимо помнить, что сообщение X должно занимать 16 бит, а ключ К — 24 бита. Если в случае перевода в двоичную систему счисления полученная последовательность битов оказывается короче, чем того требует алгоритм шифрования, необходимо дописать недостающее число нулей к старшим значащим разрядам. Таким образом, в результате перевода чисел получим:
Обратите внимание, что в значении ключа К появились три старших нуля. Следующим шагом является определение раундовых подключей в соответствии с рис. 37:
Итак, на вход алгоритма шифрования поступает блок данных из 16 бит X = 1101 0111 1010 ООП, который разделяется на две части по 8 бит: левую часть — 1101 0111 и правую часть — 1010 ООП. Для наглядности процесс зашифрования данных представлен на рис. 40.
Правая часть сообщения (значение 1010 0011) поступает на вход функции F первого раунда шифрования, где преобразуется с использованием раундового подключа К1 в соответствии с рис. 36.
Первым преобразованием функции F является перестановка с расширением, которая направлена на перемешивание и размножение битов исходного сообщения. Для того чтобы применить перестановку с расширением, необходимо пронумеровать биты исходной последовательности от 1 до 8 слева направо. После этого биты исходной последовательности необходимо преобразовать с помощью табл. 22. Так, в соответствии с табл. 22, третий бит исходной последовательности станет первым, четвертый бит — вторым, первый — бит третьим и т. д. В результате преобразования исходная последовательность 1010 0011 приводится к виду 1010 0101 1100. Для наглядности процесс применения перестановки с расширением изображен на рис. 41.
После перестановки Е происходит сложение данных с раундовым подключом К1 по модулю 2. Напомним, что операция сложения по модулю 2 работает следующим образом: если складываются два одинаковых бита (т. е. или два нуля, или две единицы), то в результате сложения образуется 0; если же складываются два разных бита (0 и 1 или 1 и 0), то в результате сложения образуется 1. Итак, в результате сложения по модулю 2 данных после перестановки с расширением и раундового подключа К1 получается значение 1011 1111 0001 (рис. 42).
После сложения с раундовым подключом последовательность из 12 битов разбивается на три группы по четыре бита. Каждая из групп поступает на вход одного из трех блоков замены, где преобразуется в соответствии с табл. 23 — 25. Напомним, что первые два блока замены имеют одинаковый принцип работы. Работа третьего блока несколько отличается от первых. Рассмотрим данные преобразования более подробно. Так, в соответствии с последовательностью, полученной после сложения с раундовым подключом, на вход первого блока замены поступает значение 1011. Первый бит последовательности указывает на номер строки в табл. 23, последние три бита — на номер столбца. В результате такого преобразования на выходе блока замены образуется значение 100. Для наглядности процесс преобразования данных с помощью первого блока замены представлен на рис. 43. Аналогичным образом на вход второго блока замены поступает значение 1111, которое в соответствии с табл. 24 преобразуется к значению 001.
Рис. 40. Процесс шифрования сообщения Х = 1101 0111 1010 0011 с помощью секретного ключа К = 0001 1010 1101 1101 ОНО 1011.
Рис. 41. Применение операции перестановки с расширением.
<�Х".
Рис. 42. Сложение данных после перестановки с расширением с.. рауидовым подключом К1
Рис. 43. Преобразование данных с помощью первого блока замены.
Последние четыре бита последовательности — 0001 — преобразуются с помощью третьего блока замены в соответствии с табл. 25. Здесь первый и последний биты входа в Блок 3, т. е. значение 01, образуют номер строки в таблице замены, а средние два бита, т. с. значение 00, образуют номер столбца. В результате преобразования на выходе блока замены образуется значение 10 (обратим внимание, что на выходе последнего блока замены образуется два бита в отличие от первых двух блоков, где на выходе были трехбитовые значения). Для наглядности процесс преобразования данных с использованием последнего блока замены представлен на рис. 44.
Таким образом, после применения преобразования с помощью блоков замены на выходе образуется последовательность из 8 бит: 100 001 10.
Последним преобразованием функции F является обычная перестановка, работа которой осуществляется в соответствии с табл. 26 и аналогична работе перестановки с расширением, которая была описана раньше. В результате перестановки последовательность 10 000 110 преобразуется в последовательность 1 000 011, которая и является выходом функции F первого раунда шифрования (см. рис. 40).
После того как выполнено преобразование с помощью функции F, необходимо сложить левую часть сообщения на входе первого раунда шифрования (значение 11 010 111) с выходом функции F первого раунда шифрования (т. е. со значением 1 000 011). В результате образуется значение 10 010 100. Далее правая и левая части сообщения меняются местами, т. е. на вход второго раунда шифрования поступает последовательность 10 100 011 10 010 100.
Преобразования дальнейших двух раундов схожи с теми, которые были проведены в первом раунде шифрования. Мы не будем здесь повторять подробное описание одних и тех же действий. Однако для того чтобы проследить дальнейшие преобразования, отобразим их с помощью функции F для второго и третьего раундов, представленных соответственно на рис. 45 и 46.
Рис. 44. Преобразование данных с помощью третьего блока замены.
Рис. 45. Преобразование функции F второго раунда.
Рис. 46. Преобразование функции F третьего раунда.
На вход функции F второго раунда шифрования поступает значение 1001 0100, которое преобразуется к значению ОНО 0001 в соответствии с рис. 45. После этого выход функции F второго раунда шифрования (т. е. значение 0110 0001) складывается по модулю 2 с левой частью сообщения на входе второго раунда шифрования (значение 1010 0011). В результате образуется значение 1100 0010. Далее правая и левая части сообщения меняются местами, т. е. на вход третьего раунда шифрования поступает последовательность 10 010 100 11 000 010.
Так, на вход функции F третьего раунда шифрования поступает значение 1100 0010, которое преобразуется к значению 1011 1101 в соответствии с рис. 46. После этого выход функции F третьего раунда шифрования (т. е. значение 1011 1101) складывается по модулю 2 с левой частью сообщения на входе третьего раунда шифрования (значение 10 010 100). В результате образуется значение 0010 1001. Так как третий раунд шифрования является последним, в нем нс происходит обмена данными между правой и левой частями сообщения. Таким образом, на выход третьего раунда шифрования поступает последовательность 101 001 11 000 010, которая и является искомым шифрованным сообщением.
Рис. 47. Процесс расшифрования сообщения Y = 101 001 11 000 010 с помощью секретного ключа К = 0001 1010 1101 1101 ОНО 1011.
Расшифрование данных проводится по той же схеме, что и шифрование, с той разницей, что раундовыс подключи используются в обратном порядке. Процесс расшифрования сообщения 101 001 11 000 010 представлен на рис. 47. Вы можете выполнить его самостоятельно, после чего сверить все промежуточные значения.