Миграция оптимизаций в lib/crypto
Инженер Google Эрик Биггерс (Eric Biggers) завершил масштабную работу по оптимизации подсистемы криптографии Linux. В ветку 7.4 мерж-реквестом добавлены оптимизированные реализации режимов шифрования AES для архитектур x86/x86_64 и RISC-V. Ключевое изменение заключается в переносе этих высокопроизводительных реализаций непосредственно в пространство библиотеки ядра lib/crypto.
Ранее эти оптимизации часто использовались фрагментарно. Теперь API библиотеки криптографии получает ускорение «из коробки» на указанных архитектурах, что также положительно сказывается на производительности использования crypto_skcipher. На процессорах Intel и AMD это означает активное использование инструкций AES-NI и кода, оптимизированного под AVX.
Поддержка SPARC64 и новые возможности
Параллельно разработчик Stian Halseth добавил оптимизированную реализацию режима AES-XTS для архитектуры SPARC64. Это решение использует специфические криптографические опкоды (crypto opcodes) процессоров SPARC, что является редким и ценным дополнением, особенно в 2026 году, когда поддержка этой архитектуры часто остается в тени.
Результаты оптимизации
Помимо прямого прироста производительности за счет использования аппаратных инструкций, интеграция в lib/crypto решает архитектурные проблемы. Эрик Биггерс отмечает, что новая структура позволяет устранить избыточный «клей» (glue code) и дублирование кода, упрощая поддержку и снижая риск ошибок.
Сводная таблица изменений
| Архитектура | Разработчик | Режимы/Типы шифрования | Используемые инструкции |
|---|---|---|---|
| x86 / x86_64 | Eric Biggers (Google) | ECB, CBC, CBC-CTS, CTR, XCTR, XTS | AES-NI, AVX |
| RISC-V | Eric Biggers (Google) | ECB, CBC, CBC-CTS, CTR, XCTR, XTS | Оптимизированные реализации для RISC-V |
| SPARC64 | Stian Halseth | AES-XTS | SPARC crypto opcodes |
Почему это важно
Для систем, использующих дисковое шифрование (LUKS), VPN-туннели или защищенные соединения, эти изменения означают снижение нагрузки на CPU без изменения пользовательского кода. Интеграция в базовую библиотеку ядра гарантирует, что все подсистемы, зависящие от lib/crypto, автоматически получат преимущество от новых оптимизаций.
Источник: Phoronix ↗
