1 / 15

Основной шаг алгоритма ГОСТ 28147-89

Основной шаг алгоритма ГОСТ 28147-89. N – входной блок (64 бита) ‏ X – раундовый ключ (32 бита) ‏ H – таблица замен. Реализация основного шага алгоритма ГОСТ 28147-89. gost32 PROC iloop: mov EBP,EAX add EAX,[ESI] add ESI,4

mahlah
Download Presentation

Основной шаг алгоритма ГОСТ 28147-89

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Основной шаг алгоритма ГОСТ 28147-89 • N – входной блок (64 бита)‏ • X – раундовый ключ (32 бита)‏ • H – таблица замен

  2. Реализация основного шага алгоритма ГОСТ 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

  3. Команда XLAT EAX Память EAX [ES:BX] AL AL +AL

  4. n GF(р ) • Характеристика поля р - простое число • Число элементов поля pn- натуральная степень простого числа • В поле определены операции сложения и умножения • В поле существуют элементы 0, 1, -α, α-1 • В поле существует особый элемент ω, называемый примитивным

  5. GF(7) • Сложение 4 + 5=9 mod 7 = 2 • Умножение 5 •4=20 mod 7 = 6

  6. Поля Галуа характеристики 2

  7. n Сложение в GF(2 ) • (x6 + x4 + x2 + x + 1) + (x7 + x + 1) = • = x7 + x6 + x4 + x2 +2x + 2 = x7 + x6 + x4 + x2

  8. 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

  9. Примитивный элемент φ(х) = x4 + x + 1

  10. Табличное умножение x3 · (x3 + 1)mod (x4 + x + 1) =ω3 · ω14 = ω2 = x2

  11. Регистры сдвига с линейной обратной связью (LFSR)

  12. Пример генератора Галуа Ф(х) = x8 + x7 + x5 + x3 + 1

  13. Программная реализация генератора Галуа Lfsr PROC shl AX,1 jnc Exit xor AX,FeedBack Exit: ret Lfsr ENDP FeedBack – вектор обратных связей, например, для Ф(х) = x8 + x7 + x5 + x3 + 1 FeedBack = 0D4h

  14. Преобразование байта с использованием 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]

  15. Выводы • Ситуация с ГОСТом неопределенная: запас его прочности велик, но в то же время имеются предпосылки для его пересмотра • Необходима специальная команда, суть которой n тактов работы генератора элементов поля GF(2n)‏ • Необходимы специальные команды, реализующие операции 4- и 8-разрядной замены • Желательна специальная команда, реализующая такт работы стохастического сумматора

More Related