KEM
鍵カプセル化メカニズムKey-Encapsulation Mechanism (KEM)
共通鍵の交換のための新しめのもの?
Diffie-Hellman鍵共有法
ECDH
などとは違う?
一方で鍵を作るのはRSAなどと同じか
TLS1.3などでは使われなくなった?
RFC 9629 Using Key Encapsulation Mechanism (KEM) Algorithms in the Cryptographic Message Syntax (CMS)
https://tex2e.github.io/rfc-translater/html/rfc9629.html
RFC 9690 Use of the RSA-KEM Algorithm in the Cryptographic Message Syntax (CMS)
NIST SP 800-227 鍵カプセル化メカニズムにおける推奨事項
https://csrc.nist.gov/pubs/sp/800/227/final
RFC 5652 CMSの
enveloped-data RFC 5652
authenticated-data RFC 5652
authenticated-enveloped-data RFC 5083
で利用できる
RSA-KEM
ML-KEM
PSEC-KEM
NIST SP 800-227
Recommendations for Key-Encapsulation Mechanisms
鍵カプセル化メカニズムに関する推奨事項
概要
鍵カプセル化メカニズム(KEM)は、特定の条件下で二者間が公開チャネル上で安全に共有秘密鍵を確立するために使用できるアルゴリズムのセットです。KEMを用いて確立された共有秘密鍵は、対称鍵暗号アルゴリズムと組み合わせて、暗号化や認証といった安全な通信に不可欠なタスクを実行するために使用できます。この文書では、KEMの基本的な定義、特性、および用途について説明します。また、KEMを安全に実装および使用するための推奨事項も示します。
キーワード
暗号化、暗号化、鍵カプセル化メカニズム、鍵確立、公開鍵暗号
cryptography; encryption; key-encapsulation mechanism; key establishment; public-key cryptography
1. はじめに
1.1. 背景
鍵確立スキームとは、2者以上の当事者間で共有秘密鍵を安全に確立するために使用できるアルゴリズムのセットです。このような共有秘密鍵は、効率的な機密通信など、対称鍵暗号に適したタスクを実行するために使用できます。
NIST Special Publication (SP) 800-56A 1 および SP 800-56B 2 で規定されているものを含む、広く導入されている多くの鍵確立スキームは、大規模で暗号解析的に重要な量子コンピュータを利用した暗号攻撃に対して脆弱です。2016年、NISTは耐量子鍵確立スキーム(すなわち、暗号解析的に重要な量子コンピュータによる攻撃に対しても脆弱ではない鍵確立スキーム)を選定し、標準化するためのプロセスを開始しました。これに対し、NISTは暗号コミュニティから、標準化と広範な展開に最も適した耐量子鍵確立方式は鍵カプセル化メカニズム(KEM)であるというフィードバックを受けました。このNIST耐量子暗号(PQC)標準化プロセスから生まれた最初のKEM標準は、連邦情報処理標準(FIPS)出版物203 3で規定されているML-KEMです。
ML-KEMの標準化当時、NISTはKEMの基本的な定義、特性、および用途に関する詳細なガイドラインを提供していませんでした。本勧告は、これらのガイドラインを提供し、KEMの現在および将来の標準化を補完し、KEMを安全に実装および使用するための推奨事項を提供することを目的としています。
1.2. 適用範囲と目的
本勧告は、KEMの基本的な定義、特性、および用途に関するガイドラインを提供し、KEMの現在および将来の標準化を補足し、FIPS 140認証済み暗号モジュールにおけるKEMの実装および使用に関する要件と推奨事項を示す。また、本勧告は、承認された耐量子暗号方式で生成された鍵材料と、他の(潜在的に量子暗号に脆弱な)方式で生成された鍵材料を安全に組み合わせたいと考えているベンダー向けのガイドラインも提供する。
本勧告は、量子暗号に脆弱な鍵確立手順から耐量子暗号KEM(4参照)への移行方法や時期については議論せず、特定のKEMの仕様も提供しない。そのような仕様は、FIPS 203 3におけるML-KEMの仕様のように、FIPSまたはSPで提供される。
本勧告には、KEMの一般的な理解を助けるための説明資料および教育資料が含まれている。 SPには通常、承認内容に関連する内容のみが含まれますが、本SPではKEMを全般的に、また承認内容に関して説明します。
具体的な要件は、「shall(しなければならない)」および「must(しなければならない)」という文言で明確に示されます。
1.3. 要件
承認されたKEMの適合実装は、以下のすべての要件を満たす必要があります。暗号モジュール検証プログラム(CMVP)検証ラボでテスト可能な要件には「RS」の接頭辞が付き、検証ラボでテストできない要件には「RM」の接頭辞が付きます。各要件は、対応する参照セクションから直接引用されています。要件RS6、RS7、RS8、RS10、およびRS11は、推奨される鍵確認(セクション4.4)に関係しますが、必須ではありません。
以下の要件は、CMVP検証ラボでテスト可能です(すなわち、「shall(しなければならない)」という記述)。
RS1(セクション3.1)KEM実装は、関連するKEMのアルゴリズムを規定する特定のNIST FIPSまたはSPに準拠する必要があります(shall)。
例えば、ML-KEMの準拠実装は、FIPS 203 $ [3] ^1 に準拠する必要があります。
$ ^1 CMVPは、この要件が満たされているかどうかを確認するために、ランダム入出力テストを実行します。テストによって仕様との完全な機能的同等性を保証することはできません(「must(しなければならない)」要件RM1を参照)。
RS2(セクション3.1)KEM実装は、FIPS 140-3 5および関連する実装ガイダンスに示されたガイドラインに従う必要があります。(shall)
RS3(セクション3.1)KEM実装は、各KEMパラメータセットに必要なセキュリティ強度を満たすか、それを超えるセキュリティ強度を持つ承認済みコンポーネントを使用する必要があります。(shall)
RS4(セクション3.1)乱数ビットは、SP 800-90A、SP 800-90B、およびSP 800-90Cの最新改訂版6-8に記載されている承認された手法を用いて生成しなければならない。
RS5(セクション3.2)公開情報から容易に計算できる乱数シードおよびデータを除き、任意のKEMアルゴリズム(すなわち、KeyGen、Encaps、およびDecaps)で使用されるすべての中間値は、アルゴリズムが終了する前に破棄しなければならない。
RS6(セクション4.2)アプリケーションが一時的な鍵ペアを使用する場合、その鍵ペアはKEMによる鍵確立の1回の実行にのみ使用され、使用後できるだけ速やかに破棄されなければならない。
RS7(第4.4.1項)鍵確認時にデカプセル化器がノンスを使用する場合(本項に規定されているとおり)、KEM鍵確立プロセスの目標とするセキュリティ強度と(少なくとも)等しいビット長のノンスを使用しなければならない(付録C.2参照)。
RS8(4.4.1項)鍵確認においては、使用するMACアルゴリズムおよび鍵確認鍵のセキュリティ強度は、アプリケーションの目標セキュリティ強度以上でなければならない。
RS9(セクション4.4.2)鍵確認鍵は、鍵確認のみに使用され、使用後は破棄されなければならない(shall)。
RS10(付録C.1)鍵確認にMACアルゴリズムの使用が必要な場合、承認されたMACアルゴリズム(例:HMAC、AES-CMAC、KMAC)を使用しなければならない(shall)。さらに、AES-GMAC(9で規定)も承認されたMACアルゴリズムであり、使用できる。
RS11(付録C.1)鍵確認にMACタグを使用する場合、エンティティは、共有秘密鍵から決定されたMACKeyを用いて、受信データまたは派生データに対してMACアルゴリズムによりMACタグを計算しなければならない(shall)。
以下の要件は、CMVP検証ラボではテストできない(つまり、必須事項である)。
RM1(セクション3.1)実装は、対象となるKEM$ ^2 の数学的機能を正しく実装しなければならない(must)。
$ ^2 CMVPは、この要件が満たされているかどうかを確認するために、ランダムな入出力テストを実施する。仕様との完全な機能的等価性を保証することは不可能です。
RM2(セクション4.2)KEMのアプリケーションにおいては、アプリケーションに適したセキュリティ強度を持つパラメータセットを選択する必要があります(must)(10、セクション2.2を参照)。
RM3(セクション4.2)カプセル化当事者が他の当事者の静的カプセル化鍵を取得する場合、鍵確立の実行前または実行中に、他の当事者が鍵を所有していることを保証しなければなりません(must)。
RM4(セクション4.2)KEMアルゴリズムの実行および機密データ(例えば、デカプセル化鍵)の保存に使用されるデバイスは、適切に保護されなければなりません(must)。
RM5(セクション4.2)アリスとボブが使用するチャネル上で行われる鍵確立プロセスは、アプリケーションに適した完全性の概念を満たさなければなりません(must)。