暗号学において、ポスト量子拡張ディフィー・ヘルマン(PQXDH)は、ディフィー・ヘルマン鍵交換に基づくKyberベースのポスト量子鍵交換方式です。これは、2023年以来、人気のエンドツーエンド暗号化プロトコルであるSignal Protocolの重要な部分となっています。 [ 1 ] [ 2 ] [ 3 ]
PQXDH は、量子耐性Kyberプロトコルと古典的な楕円曲線X25519プロトコルの両方を使用するX3DHプロトコルのバリアントです。これにより、攻撃者は機密データにアクセスするために両方の暗号化プロトコルを破らなければならないことが保証されます。このプロトコルは非同期通信用に設計されており、クライアントはサーバーを介して公開鍵を交換し、機密データを暗号化するために使用できる安全な共有鍵を生成します。これにより、常に新しい鍵を互いに同期する必要がなくなります。[ 3 ] [ 4 ]
2023年10月、このプロトコルは形式検証を受け、第2版で「プロトコルの望ましいセキュリティ特性をすべて証明する」ことに成功した。[ 5 ]しかし、PQXDHは認証に完全に楕円曲線暗号に依存している。[ 6 ]
PQXDHは、楕円曲線暗号(ECC)とポスト量子鍵カプセル化メカニズム(PQ-KEM)を組み合わせて、2者間で共有秘密を導出します。実際には、 PQ-KEMとしてKyberが使用されます。PQXDHでは、送信するメッセージは1つだけです。[ 6 ] [ 7 ]
メッセージを送信する前に、受信者はサーバーに対して複数の公開鍵を公開する必要があります。具体的には、長期識別ECC鍵(IK B)、セッションECC事前鍵(SPK B)、一連のワンタイムECC事前鍵、および一連のワンタイムPQ-KEM事前鍵です。受信者のセッション鍵とワンタイム鍵はそれぞれ、受信者の識別鍵を使用して署名する必要があります。送信者も長期識別ECC鍵(IK B)を公開する必要があります。
メッセージを送信するために、送信者はサーバーから受信者のIDとセッションキー、受信者のワンタイムECCキー(PQOPK B)の1つ、および受信者のワンタイムPQ-KEMキー(PQOPK B)の1つを取得します。サーバーはワンタイムキーを削除して再利用できないようにします。次に、送信者は次の計算を実行します(ここで、DHは楕円曲線ディフィー・ヘルマン関数、KDFは適切な鍵導出関数です)。
IK Bを使用してSPK B、OPK B、およびPQPK Bの署名が有効であることを検証します。 一時的な ECC キーEK A を生成します。IK Aを使用してEK A に署名します。PQPK Bを使用して 暗号文 CT と共有秘密鍵 SS を生成します。DH 1 : = DH ( IK A 、SPK B ) DH 2 : = DH ( EK A、IK B ) DH 3 := DH( EK A、SPK B ) DH 4 := DH( EK A 、OPK B ) SK := KDF( DH 1 || DH 2 || DH 3 || DH 4 || SS )SK を使用してメッセージを暗号化する
送信者は、メッセージ、EK A、CT、および使用されたワンタイムキーを識別するための情報を受信者に送信します。受信者は、 CTと自身の秘密鍵を使用してメッセージを復号できます。
IK Aを使用してEK Aの署名が有効であることを確認するPQPK Bを使用してCTから 共有秘密SSをデコード するDH 1 := DH( IK A , SPK B ) DH 2 := DH( EK A , IK B ) DH 3 := DH( EK A , SPK B ) DH 4 : = DH ( EK A , OPK B ) SK : = KDF ( DH 1 || DH 2 || DH 4 ||SK を使用してメッセージを復号化する
共有鍵(SK)は、さらなるメッセージの暗号化に使用できます。