wolfSSLによるポスト量子KEMグループとハイブリッドグループのサポートをお知らせしておりましたが、今回は PQC NISTラウンド3の最終候補に残った署名方式FALCONのサポートをお知らせします。wolfSSLを使って「量子安全」なTLS1.3ハンドシェイクを試すことができるようになりました。
総じて言えば、全てのTLS 1.3接続にとって、認証と機密性が接続を保護する最重要な要素です。認証は、ECDSAなどの署名方式で担保され、機密性は、ECDHEなどの鍵合意アルゴリズムによって担保されます。合意された鍵をAESなどの対称暗号化アルゴリズムで使用して通信ストリームを暗号化します。つまりTLS1.3プロトコルのセキュリティを次の3種類の暗号化アルゴリズムに分解できます:
- 認証アルゴリズム
- 鍵合意アルゴリズム
- 対称暗号アルゴリズム
暗号に関連する量子コンピューターが最終的に開発されると、Shorのアルゴリズムは最新の認証および鍵合意アルゴリズムのセキュリティを完全に破り、Groverのアルゴリズムは最新の対称暗号アルゴリズムのセキュリティを半分に減らしてしまいます。したがって、通信のセキュリティを維持するには、最新の認証および鍵確立アルゴリズムを量子安全アルゴリズムに置き換え、対称暗号アルゴリズムの強度を2倍にする必要があります。
wolfSSLはFALCONの統合により、認証アルゴリズムとして使用できます。新しいKEMのいずれかを使用でき、万が一の場合に備えて、NIST承認のECDSAグループとハイブリッド化できます。そして最後に、AES-128の強度は一般に十分であると認められているのですがさらにAES-256を使用(例えばAES_256_GCM_SHA384 TLS1.3暗号スイートを使用)して強度を2倍にすることができます。このようなTLSハンドシェイクを行う為には、次のコマンドを実行します:
$ examples/server/server -v 4 -l TLS_AES_256_GCM_SHA384 \ -A certs/falcon_level5_root_cert.pem \ -c certs/falcon_level5_server_cert.pem \ -k certs/falcon_level5_server_key.pem \ --oqs P521_KYBER_LEVEL5 $ examples/client/client -v 4 -l TLS_AES_256_GCM_SHA384 \ -A certs/falcon_level5_root_cert.pem \ -c certs/falcon_level5_cleint_cert.pem \ -k certs/falcon_level5_client_key.pem \ --oqs P521_KYBER_LEVEL5
このハンドシェークを解析できるように変更したWiresharkを使うと、このTLSコネクションで実際にネットワーク上で何が行われているかを次の図の様に確認できます。
Wiresharkの変更のマージリクエストは次の場所にあります。
https://gitlab.com/wireshark/wireshark/-/merge_requests/4924/
Wiresharkを変更してDockerイメージを作成する手順のプルリクエストは、次の場所にあります。
https://github.com/open-quantum-safe/oqs-demos/pull/104
FALCONのサポートはwolfSSLマスターブランチに組み込まれ、wolfSSLの次のリリースで提供の予定です。
脅威モデルとポスト量子認証を早く検討したほうが良い理由を最後に付け加えさせてください。アプリケーションパラメータまたはユースケースにより、ソフトウェアコンポーネントを更新することは、費用対効果が悪い、もしくは不可能でさえある可能性もあります。 このような場合、製品の寿命を注意深く評価する必要があります。 製品の存続期間内に、暗号に関連する量子コンピューターが登場してくると予測しているのに製品を更新できないならば、今からポスト量子アルゴリズムに移行するための戦略について考え始める必要があります。
ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/integration-falcon-signature-scheme-wolfssl/