180 likes | 486 Views
Основной шаг алгоритма ГОСТ 28147-89. N – входной блок (64 бита) X – раундовый ключ (32 бита) H – таблица замен. Реализация основного шага алгоритма ГОСТ 28147-89. gost32 PROC iloop: mov EBP,EAX add EAX,[ESI] add ESI,4
E N D
Основной шаг алгоритма ГОСТ 28147-89 • N – входной блок (64 бита) • X – раундовый ключ (32 бита) • H – таблица замен
Реализация основного шага алгоритма ГОСТ 28147-89 gost32 PROC iloop: mov EBP,EAX add EAX,[ESI] add ESI,4 REPT 3 xlat ror EAX,8 add EBX,100h ENDM xlat sub EBX,300h rol EAX,3 xor EAX,EDX mov EDX,EBP loop iloop ret gost32 ENDP
Команда XLAT EAX Память EAX [ES:BX] AL AL +AL
n GF(р ) • Характеристика поля р - простое число • Число элементов поля pn- натуральная степень простого числа • В поле определены операции сложения и умножения • В поле существуют элементы 0, 1, -α, α-1 • В поле существует особый элемент ω, называемый примитивным
GF(7) • Сложение 4 + 5=9 mod 7 = 2 • Умножение 5 •4=20 mod 7 = 6
n Сложение в GF(2 ) • (x6 + x4 + x2 + x + 1) + (x7 + x + 1) = • = x7 + x6 + x4 + x2 +2x + 2 = x7 + x6 + x4 + x2
n Умножение в GF(2 ) • φ(х)= x8 + x4 + x3 + x + 1 • (x6 + x4 + x2 + x + 1) · (x7 + x + 1) mod (x8 + x4 + x3 + x + 1) = • = (x13 + x11 + x9 +x8 + x6 + x5 + x4 + x3 + 1) mod (x8 + x4 + x3 + x + 1) = • = x7 + x6 + 1
Примитивный элемент φ(х) = x4 + x + 1
Табличное умножение x3 · (x3 + 1)mod (x4 + x + 1) =ω3 · ω14 = ω2 = x2
Регистры сдвига с линейной обратной связью (LFSR)
Пример генератора Галуа Ф(х) = x8 + x7 + x5 + x3 + 1
Программная реализация генератора Галуа Lfsr PROC shl AX,1 jnc Exit xor AX,FeedBack Exit: ret Lfsr ENDP FeedBack – вектор обратных связей, например, для Ф(х) = x8 + x7 + x5 + x3 + 1 FeedBack = 0D4h
Преобразование байта с использованием R-блока AL – входной байт; AH – параметр преобразования; DS:BX – адрес массива Addr&H Addr&H DS: BX Hsize = 256 Rbox8 PROC push BX xlat add AL,AH add BX, HSize xlat pop BX ret Rbox8 ENDP DS: [BX+HSize]
Выводы • Ситуация с ГОСТом неопределенная: запас его прочности велик, но в то же время имеются предпосылки для его пересмотра • Необходима специальная команда, суть которой n тактов работы генератора элементов поля GF(2n) • Необходимы специальные команды, реализующие операции 4- и 8-разрядной замены • Желательна специальная команда, реализующая такт работы стохастического сумматора