Skip to main content
QUICK REVIEW

[論文レビュー] OpenSSLNTRU: Faster post-quantum TLS key exchange

Daniel J. Bernstein, Billy Bob Brumley|arXiv (Cornell University)|Jun 16, 2021
Cryptographic Implementations and Security参考文献 19被引用数 4
ひとこと要約

本論文では、sntrup761格子ベースの鍵共有メカニズムを用いたTLS 1.3向けの高速な後量子暗号鍵交換実装、OpenSSLNTRUを提示する。バッチ処理とモンゴメリーのテクニックを活用した鍵生成の最適化により、CECPQ2のntruhrss701よりも高速でありながら、より高いセキュリティを提供し、OpenSSL 1.1.1kの実装よりも多くのTLS 1.3ハンドシェイクを1秒間に処理できる。

ABSTRACT

Google's CECPQ1 experiment in 2016 integrated a post-quantum key-exchange algorithm, newhope1024, into TLS 1.2. The Google-Cloudflare CECPQ2 experiment in 2019 integrated a more efficient key-exchange algorithm, ntruhrss701, into TLS 1.3. This paper revisits the choices made in CECPQ2, and shows how to achieve higher performance for post-quantum key exchange in TLS 1.3 using a higher-security algorithm, sntrup761. Previous work had indicated that ntruhrss701 key generation was much faster than sntrup761 key generation, but this paper makes sntrup761 key generation much faster by generating a batch of keys at once. Batch key generation is invisible at the TLS protocol layer, but raises software-engineering questions regarding the difficulty of integrating batch key exchange into existing TLS libraries and applications. This paper shows that careful choices of software layers make it easy to integrate fast post-quantum software, including batch key exchange, into TLS with minor changes to TLS libraries and no changes to applications. As a demonstration of feasibility, this paper reports successful integration of its fast sntrup761 library, via a lightly patched OpenSSL, into an unmodified web browser and an unmodified TLS terminator. This paper also reports TLS 1.3 handshake benchmarks, achieving more TLS 1.3 handshakes per second than any software included in OpenSSL.

研究の動機と目的

  • sntrup761鍵生成の高い計算コストを軽減することで、TLS 1.3における後量子鍵交換のパフォーマンスを向上させること。
  • アプリケーションコードの変更を最小限に抑えて、既存のTLSライブラリに高速な後量子暗号をシームレスに統合すること。
  • 未変更のウェブブラウザおよびTLSターミネータに最適化されたsntrup761ライブラリを統合することで、エンドツーエンドの相互運用性を実証すること。
  • 後量子暗号のベンチマークおよびデプロイメント用に再現可能でオープンソースの研究環境を提供すること。
  • 既存の後量子および前量子TLS実装よりも高いパフォーマンスとセキュリティを達成すること。

提案手法

  • 複数の鍵にわたる高価なモジュラー逆数のコストを均等化するため、バッチ処理を用いた最適化されたsntrup761鍵生成。
  • sntrup761鍵生成の主要なボトル neck であるモジュラー逆数を高速化するため、モンゴメリーのテクニックを適用。
  • AVX2命令セットを用いたSIMD最適化算術演算により、低レベルでのパフォーマンス向上を実現。
  • アプリケーションコードの変更なしに後量子機能を公開するために、動的ロード可能なOpenSSL ENGINE、engNTRUを実装。
  • sntrup761をTLS 1.3暗号スイートでサポートするように、軽微にパッチを当てたOpenSSLフォークにライブラリを統合。
  • 未変更のGnome Web(epiphany)およびstunnelを用いたエンドツーエンドのマクロベンチマークを実施し、透明な統合を検証。

実験結果

リサーチクエスチョン

  • RQ1バッチ鍵生成により、sntrup761鍵生成の1鍵あたりコストを著しく削減できるか、かつTLSプロトコル層で透明なままであるか?
  • RQ2実際のTLS 1.3展開において、後量子鍵交換のパフォーマンスを前量子のECCと同等または上回るようにできるか?
  • RQ3既存のTLSライブラリに最小限のアプリケーション変更で、高性能な後量子暗号を統合することが可能か?
  • RQ4オープンソースツールを用い、最小限のシステム変更で研究用に再現可能な後量子TLSスタックを構築・デプロイできるか?
  • RQ5sntrup761の高いセキュリティレベルが、特に鍵生成が最適化された状況で、ntruhrss701と比較して性能のオーバーヘッドを正当化するか?

主な発見

  • 最適化されたsntrup761鍵生成は、1鍵あたり156,317サイクルを達成し、以前の最良記録814,608サイクルと比較して5.7倍の高速化を実現。
  • sntrup761の総合的鍵交換(鍵生成+暗号化+復号)コストは、最適化前はntruhrss701の2.57倍遅かったが、最適化後は2.57倍のコストにまで低下。
  • 新しい実装は、OpenSSL 1.1.1kに含まれるあらゆるソフトウェアよりも多くのTLS 1.3ハンドシェイクを1秒間に処理でき、パフォーマンス記録を更新。
  • エンドツーエンドベンチマークにより、最適化されたsntrup761ライブラリが未変更のGnome Webおよびstunnelに正常に統合され、透明なアプリケーション互換性が確認された。
  • sntrup761パラメータセットは、ntruhrss701の2^136と比較して、2^153のより高い前量子Core-SVPセキュリティレベルを提供し、巡回的構造の懸念がない。
  • セキュリティを損なわず、かつ既存のTLS 1.3プロトコルおよびアプリケーションスタックと完全に互換性を保ったまま、パフォーマンス向上が達成された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。