Как стать автором
Обновить

Как ускорить шифрование по ГОСТ 28147-89 на процессоре Baikal-M

Время на прочтение12 мин
Количество просмотров5.8K
Всего голосов 14: ↑12 и ↓2+15
Комментарии14

Комментарии 14

Спасибо за статью. Цифра (5.2Гбит/с) впечатляет.
Правильно ли я понял, что это все таки теоритическая производительноть. То есть, например в статье не учитывается латентность самой памяти. Также речь как я понял идет о работе бареметал, без операционки?

Это 100% загрузки 8 ядер под задачу шифрования. С одного ядра можно снять 650Мбит/с. Это теория. Будет сильно зависеть, как использовать. Если делать ipsec, то на смешанном трафике(imix) думаю около 4ГБит можно т.е. проходной шифратор на 1Гбит в дуплексе (2+2) должен работать

Всё ещё сильно зависит от режима шифрования. При прикладном примении (ipsec, tls) лучшим вариантом по скорости будет MGM, но тогда надо все значения скорости поделить на 2 (особенность режима). Если брать другие режимы с аутентификацией, то там даже невозможно организовать параллельную обработку блоков, так что скорость упадёт совсем сильно.

НЛО прилетело и опубликовало эту надпись здесь

Было бы интересно подробнее узнать про wave формы, как узнать, где "тормозит конвейер" и прочие детали. Хотя бы пару ссылок.

Листинги ассемблера, наверное, стоит убрать под спойлер, а то занимают основную часть статьи.

Ну и хотелось бы, конечно, больше информации про то, какую реализацию брали и способ замера. Без подготовки читать ассемблер невозможно, а вычленять из него идею — и того хуже. И почему именно разбивка 6+4 на ALU/SIMD? Кажется, что при наличии 32 регистров NEON можно уместить обработку больше, чем 4 блоков, что должно положительно сказаться на скорости. Про замер интересует хотя бы режим шифрования (ECB?), наличие работы с памятью или шифрование на месте в цикле...

Если команда застревает в конвейере, то она стоит на декодере несколько тактов и на формах это как длинный прямоугольник. Из статьи видно, что суперскалярность дает больше чем использование neon. инструкция tbl сильно тормозит.

НЛО прилетело и опубликовало эту надпись здесь

Спасибо за комментарий. Поправили.

В 15 тестах из 21 bcm2711 упёрся в память. Это на заметку на сколько производительность системы (не)определяется только производительностью ядра.

А вообще, я достаточно плотно протестил Байкал-М и сравнил с Эльбрус-8С, 8СВ. На байкал-М скомпилял даже игры под альт, но вот Mali-t628 достаточно уже старый в наше время, всё-таки 2013-2014 гг. гпу.

ГОСТ89 "умирает" и его стараются не использовать в оборудовании (криптомаршрутизаторах) которые сертифицирует ФСБ? Верно ли я понимаю этот момент? Поправьте меня пожалуйста.

Пытаюсь понять практическое применение такой производительности в сетевом оборудовании. Где можно это использовать?

С незначительными модификациями реализация переносится на новый актуальный ГОСТ 34.12-2015 - алгоритм Магма.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий