4月17日、Phoronixが「Linux Kernel Crypto Code Rework Enables More Optimizations By Default」と題した記事を公開した。この記事では、次期Linuxカーネルで実装される暗号化サブシステムの大幅なコード再編成とパフォーマンス最適化について詳しく紹介されている。以下に、その内容を紹介する。
設定不要でAES・SHA-256処理が自動高速化
次期Linuxカーネルの暗号化サブシステムに、デフォルトで有効となる最適化機能が多数追加される。これまで暗号化処理の高速化には複雑な設定や特別なコンパイルオプションが必要だったが、今回の変更によりカーネルをアップデートするだけで自動的にパフォーマンス向上の恩恵を受けられるようになる。
現代のWebサービスやクラウドインフラでは、HTTPS通信やディスク暗号化により大量の暗号化処理が発生している。CPUリソースの最適化は、サーバーコストの削減やレスポンス時間の改善に直結する重要な課題となっている。特に、クラウドプロバイダーにとっては数パーセントの性能向上でも大幅なコスト削減につながる。
lib/crypto/への統合で実装を簡素化
GoogleでLinux暗号化サブシステムの開発を担当するEric Biggersが今週提出したプルリクエストでは、従来の暗号化サブシステムから**lib/crypto/**という新しい専用エリアへのハッシュアルゴリズムの移行が進められている。
このlib/crypto/は、カーネル内の暗号化処理を一元化する新しいライブラリ層で、従来散らばっていた暗号化実装をまとめることで保守性とパフォーマンスの両立を図る。この移行により、実装の簡素化、パフォーマンスの向上、さらなるコードクリーニングへの道筋が開かれる。
特に注目すべきは、AES CBC-basedのMAC(Message Authentication Code)とGHASHでデフォルトで最適化が有効になる点だ。AES-CMAC、AES-XCBC-MAC、AES-CBC-MACといった認証付き暗号化で広く使用されるアルゴリズムが対象となる。GHASHはAES-GCMモードで使用される高速ハッシュ関数で、TLS 1.3通信の性能に直接影響する重要なコンポーネントだ。
ZhaoxinのSHA-256専用最適化も実装
Linuxの新しいlibcryptoコードでは、ZhaoxinCPUにおけるSHA-256パフォーマンスの最適化も実装される。ZhaoxinはVIA Technologiesから技術を継承した中国のプロセッサメーカーで、同社のCPUに搭載されるPadlock Hash Engineという専用ハードウェアを活用した最適化が行われる。
Padlock Hash Engineは暗号化処理を専用ハードウェアで実行することで、汎用CPUコアの負荷を軽減しながら高速化を実現する。SHA-256はビットコインのマイニングやSSL証明書の署名検証、Dockerコンテナイメージの整合性チェックで使用される重要なハッシュアルゴリズムで、その最適化は幅広いアプリケーションに恩恵をもたらす。
開発者とインフラ運用者にとってのメリット
今回の変更により、アプリケーション開発者とインフラ運用者は以下のメリットを享受できる:
- 設定不要: 特別なカーネルコンフィグやコンパイルオプションが不要
- 既存コードとの互換性: OpenSSLやlibgcryptを使用する既存アプリケーションが自動的に高速化
- 保守性向上: コードベースの簡素化により、セキュリティ更新やバグ修正が迅速化
- 電力効率改善: 暗号化処理の高速化により、同じ処理量でのCPU使用率とエネルギー消費が削減
これらの最適化がデフォルトで有効になることで、Linux上で動作する暗号化処理全般のパフォーマンスボトルネックが解消され、特にコンテナ化されたマイクロサービス環境やエッジコンピューティングでの効率化が期待される。
詳細はLinux Kernel Crypto Code Rework Enables More Optimizations By Defaultを参照していただきたい。