N – входной блок (64 бита) X – раундовый ключ (32 бита) H – таблица замен
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
AL EAX
Характеристика поля р - простое число Число элементов поля p n - натуральная степень простого числа В поле определены операции сложения и умножения В поле существуют элементы 0, 1, -α, α -1 В поле существует особый элемент ω, называемый примитивным
Сложение = 9 mod 7 = 2 Умножение 5 4 = 20 mod 7 = 6
(x 6 + x 4 + x 2 + x + 1) + (x 7 + x + 1) = = x 7 + x 6 + x 4 + x 2 + 2x + 2 = x 7 + x 6 + x 4 + x 2
φ(х) = x 8 + x 4 + x 3 + x + 1 (x 6 + x 4 + x 2 + x + 1) · (x 7 + x + 1) mod (x 8 + x 4 + x 3 + x + 1) = = (x 13 + x 11 + x 9 +x 8 + x 6 + x 5 + x 4 + x 3 + 1) mod (x 8 + x 4 + x 3 + x + 1) = = x 7 + x 6 + 1
φ(х) = x 4 + x + 1
x 3 · (x 3 + 1) mod (x 4 + x + 1) =ω 3 · ω 14 = ω 2 = x 2
Ф(х) = x 8 + x 7 + x 5 + x 3 + 1
LfsrPROC shlAX, 1 jncExit xorAX, FeedBack Exit:ret LfsrENDP FeedBack – вектор обратных связей, например, для Ф(х) = x 8 + x 7 + x 5 + x FeedBack = 0D4h
Hsize = 256 Rbox8PROC push BX xlat add AL, AH add BX, HSize xlat pop BX ret Rbox8ENDP AL – входной байт; AH – параметр преобразования; DS: BX – адрес массива Addr&H
Ситуация с ГОСТом неопределенная: запас его прочности велик, но в то же время имеются предпосылки для его пересмотра Необходима специальная команда, суть которой n тактов работы генератора элементов поля GF(2 n ) Необходимы специальные команды, реализующие операции 4- и 8-разрядной замены Желательна специальная команда, реализующая такт работы стохастического сумматора