|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Зашифрование открытых данных в режиме простой заменыОткрытые данные, подлежащие зашифрованию, разбивают на 64‑разрядные блоки Т0. Процедура зашифрования 64-разрядного блока Т0 в режиме простой замены включает 32 цикла (j = 1…32). В ключевое запоминающее устройство вводят 256 бит ключа К в виде восьми 32-разрядных подключей (чисел) Кi: К=К7К6К5К4К3К2К1К0. Последовательность битов блока Т0=(a1(0), a2(0),..., a31(0), a32(0), b1(0), b2(0),..., b31(0), b32(0)) разбивают на две последовательности по 32 бита: b(0) a(0), где b(0) – левые или старшие биты, a(0) – правые или младшие биты.Эти последовательности вводят в накопители N1 и N2 перед началом первого цикла зашифрования. В результате начальное заполнение накопителя N1 a (0) = (a32(0), a31(0),..., a2(0), a1(0)), 32, 31,... 2, 1 номер разряда N1 начальное заполнение накопителя N2 b(0) = (b32(0), b31(0),..., b2(0), b1(0)). 32, 31,..2, 1 номер разряда N2
Рисунок 5.6 – Схема реализации режима простой замены
Первый цикл (j=1) процедуры зашифрования 64-разрядного блока открытых данных можно описать уравнениями:
Здесь a (1) – заполнение N1 после 1-го цикла зашифровaния; b (1) – заполнение N2 после 1-го цикла зашифрования; f – функция шифрования. Аргументом функции f является сумма по модулю 232 числа a(0) (начального заполнения накопителя N1) и числа К0 – подключа, считываемого из накопителя Х0 КЗУ. Каждое из этих чисел равно 32 битам. Функция f включает две операции над полученной 32-разрядной суммой (a (0) К0). Перваяоперация называется подстановкой (заменой) и выполняется блоком подстановки S. Блок подстановки S состоит из восьми узлов замены (S-блоков замены) S1,S2,...,S8 с памятью 64 бит каждый. Поступающий из СМ1 на блок подстановки S 32-разрядный вектор разбивают на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в четырехразрядный вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати четырехразрядных двоичных чисел в диапазоне 0000…1111. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем четырехразрядные выходные векторы последовательно объединяют в 32‑разрядный вектор. Узлы замены (таблицы-перестановки) представляют собой ключевые элементы, которые являются общими для сети ЭВМ и редко изменяются. Эти узлы замены должны сохраняться в секрете. Втораяоперация – циклический сдвиг влево (на 11 разрядов) 32‑разрядного вектора, полученного с выхода блока подстановки S. Циклический сдвиг выполняется регистром сдвига R. Далее результат работы функции шифрования f суммируют поразрядно по модулю 2 в сумматоре СМ2 с 32-разрядным начальным заполнением b(0) накопителя N2. Затем полученный на выходе СМ2 результат (значение a(1)) записывают в накопитель N1, а старое значение N1 (значение a(0)) переписывают в накопитель N2 (значение b(1) = a(0)). Первый цикл завершен. Последующие циклы осуществляются аналогично, при этом во втором цикле из КЗУ считывают заполнение Х1 – подключ К1, в третьем цикле – подключ К2 и т.д., в восьмом цикле – подключ К7. В циклах с 9-го по 16-й, а также в циклах с 17-го по 24-й подключи из КЗУ считываются в том же порядке: К0, К1, К2,...,К6, К7. В последних восьми циклах с 25-го по 32-й порядок считывания подключей из КЗУ обратный: К7, К6,..., К2, К1, К0. Таким образом, при зашифровании в 32 циклах осуществляется следующий порядок выборки из КЗУ подключей: К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0. В 32-м цикле результат из сумматора СМ2 вводится в накопитель N2, а в накопителе N1 сохраняется прежнее заполнение. Полученные после 32-го цикла зашифрования заполнения накопителей N1 и N2 являются блоком зашифрованных данных Тш, соответствующим блоку открытых данных Т0. Уравнения зашифрования в режиме простой замены имеют вид: при j=1…24, при j=25…31, при j=32 где a (j) = (a32(j), a31(j),..., a1(j)) – заполнение N1 после j-го цикла зашифрования; b (j) = (b32(j), b31(j),..., b1(j)) – заполнение N2 после j-го цикла зашифрования, j=1…32. Блок зашифрованных данных Тш (64 разряда) выводится из накопителей N1, N2 в следующем порядке: из разрядов 1…32 накопителя N1, затем из разрядов 1…32 накопителя N2, т.е. начиная с младших разрядов: Тш = (a1(32), a2(32),..., a32(32), b1(32), b2(32),..., b32(32)). Остальные блоки открытых данных зашифровываются в режиме простой замены аналогично.
5.5.1.2 Расшифрование в режиме простой замены Криптосхема, реализующая алгоритм расшифрования в режиме простой замены, имеет тот же вид, что и при зашифровании (рисунок 5.6). В КЗУ вводят 256 бит ключа, на котором осуществлялось зашифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты на блоки Тш по 64 бита в каждом. Ввод любо-го блока Тш = (a1(32), a2(32),..., a32(32), b1(32), b2(32),..., b32(32)) в накопители N1 и N2 производят так, чтобы начальное значение накопителя N1 имело вид (a32(32), a31(32),..., a2(32), a1(32)), 32, 31,..., 2, 1 номер разряда N1 а начальное заполнение накопителя N2 – вид (b32(32), b31(32),..., b2(32), b1(32)). 32, 31,..., 2, 1 номер разряда N2 Расшифрование осуществляется по тому же алгоритму, что и зашифрование, с тем изменением, что заполнения накопителей X0, Х1,..., Х7 считываются из КЗУ в циклах расшифрования в следующем порядке: К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0, К7, К6, К5, К4, К3, К2, К1, К0, К7, К6, К5, К4, К3, К2, К1, К0. Уравнения расшифрования имеют вид: при j=1…8; при j=9…31; при j=32. Полученные после 32 циклов работы заполнения накопителей N1 и N2 образуют блок открытых данных Т0 = (a1(0), a2(0),..., a32(0), b1(0), b2(0),..., b32(0)), соответствующий блоку зашифрованных данных Тш. При этом состояние накопителя N1 (a32(0), a31(0),..., a2(0), a1(0)), 32, 31,..., 2, 1 номер разряда N1 состояние накопителя N2 (b32(0), b31(0),..., b2(0), b1(0)). 32, 31,..., 2, 1 номер разряда N2 Аналогично расшифровываются остальные блоки зашифрованных данных. Если алгоритм зашифрования в режиме простой замены 64‑битового блока Т0 обозначить через А, то А(Т0) = А(a (0), b(0)) = (a (32), b(32))=Тш. Следует иметь в виду, что режим простой замены допустимо использовать для шифрования данных только в ограниченных случаях – при выработке ключа и зашифровании его с обеспечением имитозащиты для передачи по каналам связи или для хранения в памяти ЭВМ. Остальные режимы стандарта будут рассмотрены в последующих дисциплинах. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |