Pull to refresh

ГОСТ 34.11-2012 Стрибог на flat assembler (x86)

Cryptography *Assembler *Algorithms *
image

В продолжение темы OS Systemicus (т.к. там используется этот алгоритм) привожу полный код реализации ГОСТ 34.11-2012 на ассемблере. Эта же «библиотека» используется и в данной программе — http://omegicus.com/gost_34.11-2012_stribog



UPD1: не в курсе, может выкладывать такое на хабре не по правилам — скажите, удалю…
UPD2: перенес на pastebin…

Не буду ничего описывать — написано уже достаточно, просто выложу код. Кого интересует не код, а подробности алгоритма — просьба не читать и не минусовать…

Сразу предупреждаю, код не оптимизирован. Отдаю код целиком в добрые руки оптимизаторов) Если у кого получится ускорить ее — выкладывайте тоже.

Как использовать:
        mov     ebx, 512                         ; 512 bit version
        mov     esi, buff
        mov     edi, MH
        mov     ecx, dword[m_sz]
        call    GOST_3411_2012
        ;
        mov     ebx, 256                         ; 256 bit version
        mov     esi, buff
        mov     edi, MH
        mov     ecx, dword[m_sz]
        call    GOST_3411_2012


В первом случае используется 512-битная версия, исходник в ^buff, результат в ^MH, длина исходных данных в m_sz.
Во втором случае всё аналогично, но используется 256-битная версия алгоритма.

Итак, секция кода: http://pastebin.com/zzL8TXtb

И данные для кода: http://pastebin.com/DAqUZ9dM
Tags:
Hubs:
Total votes 40: ↑28 and ↓12 +16
Views 15K
Comments Comments 28