|
Новичок
Регистрация: 26.07.2025
Сообщений: 0
С нами:
423479
Репутация:
0
|
|
Оптимизация криптографического ядра SpongeV16
В новой версии была проведена дополнительная низкоуровневая оптимизация криптографического ядра "Бастиона", отвечающего за все операции шифрования и расшифровки.
Предыдущий оптимизированный вариант, условно названный "Финальная версия (совместимая, быстрая)", уже содержал значительные улучшения, такие как:
Отказ от создания временных копий всего состояния в памяти на каждом раунде.
Разворачивание большинства внутренних циклов для уменьшения накладных расходов.
Новая версия, "Финальная (без SIMD)", развивает эту идею и применяет полное разворачивание последнего оставшегося короткого цикла (этап «diagonal mix») внутри основной функции пермутации.
Что это даёт
Вместо того, чтобы вычислять адреса элементов массива (v[(i + 1) % 4 + 4]) на каждой итерации, код теперь использует заранее известные, константные индексы (v[5], v[15] и т.д.).
Такой подход значительно упрощает анализ кода для компилятора.
Он видит простую последовательность независимых инструкций, что позволяет ему генерировать более эффективный машинный код, лучше планировать загрузку конвейера процессора и использовать параллелизм на уровне инструкций (когда процессор выполняет несколько операций за один такт).
В результате, несмотря на то, что алгоритм математически остался абсолютно тем же, его практическая реализация стала значительно эффективнее.
Сравнительные результаты тестов производительности
Тестирование проводилось на выполнении 1,000,000 итераций основной криптографической функции.
Предыдущая версия "Финальная версия (совместимая, быстрая)": ~3355 мс
Новая версия "Финальная (без SIMD)": ~2595 мс
Новая реализация криптографического ядра работает в среднем на ~760 мс быстрее в рамках теста, что соответствует приросту производительности примерно на 22-23%.
Для пользователя это означает, что операции шифрования и расшифровки, особенно на больших объемах данных, теперь будут выполняться еще быстрее, улучшая общую отзывчивость и скорость работы программы.
Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
|