Перейти к содержанию
    

ГОСТ 34.12-2015 шифрование кузнечик

Убрал таблицу, затолкал исходники в контроллер. Шифруется и дешифруется, но примерно в 50 раз медленнее чем то же самое в этом же контроллере по старому ГОСТу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, кузнечик намного требовательнее по вычислительным ресурсам, нежели магма или очень похожий на неë "старый ГОСТ"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не ожидал что настолько. Вот тут http://xn--h1aanh6e.xn--p1ai/activity/science/BIT/T10-p92.pdf пишут что можно использовать неполную таблицу чтобы получить компромисс между объемом и быстродействием. 

Но это мне не по зубам. Таблица килобайт на 16 мне бы влезла, но такого варианта исходников я не встречал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, uriy said:

Шифруется и дешифруется, но примерно в 50 раз медленнее чем то же самое в этом же контроллере по старому ГОСТу

Если нужна скорость, то нужно делать на ПЛИС. Тут, КМК, без вариантов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

39 minutes ago, uriy said:

пишут что можно использовать неполную таблицу чтобы получить компромисс между объемом и быстродействием

Не совсем это пишут. Пишут, что вместо быстрой замены и объединения операций S и L можно использовать кратно большее количество замен в кратно же меньших по объёму таблицах. Но статья написана с ошибками, следовательно, её результаты невозможно проверить. Когда я вижу такое, то сразу бросаю. Поэтому, в своё время я именно с этой статьёй не разбирался.

 

32 minutes ago, blackfin said:

Если нужна скорость, то нужно делать на ПЛИС. Тут, КМК, без вариантов.

Почему же, ведь далеко не всегда нужно сделать максимально быстро, чаще нужно сделать достаточно быстро. Т.е. если @uriy решит, что уменьшение скорости чуть более, чем вчетверо, по сравнению с методом, использующим 64k, устроит его, то можно помучить немного арифметику.

Изменено пользователем one_eight_seven

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас новый ГОСТ в моем контроллере шифрует блок размером 100 байт примерно за 150 мсек. Старый ГОСТ в том же контроллере это делает за 2-3 мсек. 

Мне нужно чтобы было не более 30 мсек. Мне не нужна высокая скорость. Поток не более 5 кбит/сек

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заменил на плате проц на то же семейство, но с большей флешкой. Затолкал таблицу, получилось в 5 раз быстрее чем без таблицы. Меня вполне устраивает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Снова возникла проблемка с этим шифрованием. Исходники, которые я уже несколько лет использую работают с байтовыми указателями на uint8_t*, используют memcpy, memset, sizeof. 

Это отлично работает на STM подобных контроллерах.

Сейчас мне надо запустить в DSP процессоре. В моем DSP минимальный тип данных это uint16. 

И memcpy, memset, sizeof оперируют с 16 битными данными. 

Думал легко будет переделать, но пока не осилил.

Может быть есть у кого готовая реализация под 16 битную или 32 битную платформу?  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...