
暗号学において、鍵カプセル化メカニズム(KEM )は、送信者が短い秘密鍵を生成し、盗聴や傍受の危険を冒して安全に受信者に送信できるようにする公開鍵暗号システムです。[1] [2] [3] [4]
KEMは、公開鍵を知っている送信者がKEMのカプセル化アルゴリズムによって短いランダムな秘密鍵と秘密鍵のカプセル化または暗号文を同時に生成することを可能にする。公開鍵に対応する秘密鍵を知っている受信者は、KEMのカプセル化解除アルゴリズムによってカプセル化から同じランダムな秘密鍵を復元することができる。[1] [2] [3]
KEM のセキュリティ目標は、盗聴したり、受信者の反応を調べるために他のカプセル化を受信者に送信したりした後でも、秘密鍵を知らない人がカプセル化された秘密鍵に関する情報を回復できないようにすることです。[1] [2] [3]
公開鍵暗号との違い

公開鍵暗号化方式とKEMの違いは、公開鍵暗号化方式では送信者が可能なメッセージ空間から任意のメッセージを選択できるのに対し、KEMでは送信者のために短い秘密鍵をランダムに選択することです。[1] [2] [3]
送信者はKEMによって生成されたランダムな秘密鍵を取得し、それを認証暗号の対称鍵として使用し、その暗号文をカプセル化とともに受信者に送信することができます。これにより、ハイブリッド暗号システムでKEMと対称鍵認証暗号から公開鍵暗号化方式が構成されます。[1] [2] [3] [5]
RSAES-PKCS1-v1_5、RSAES-OAEP、エルガマル暗号化などのほとんどの公開鍵暗号化方式は、小さなメッセージに限定されており[6] [7]、ハイブリッド暗号システムで短いランダムな秘密鍵を暗号化するためにほとんど常に使用されています。[8] [9] [5] また、公開鍵暗号化方式は、ランダムな秘密鍵を選択してそれをメッセージとして暗号化することでKEMに変換できますが、安全な公開鍵暗号化方式を基礎として設計するよりも、安全なKEMを設計して分析する方が簡単です。そのため、ほとんどの現代の公開鍵暗号化方式は、KEMをベースとしており、その逆ではありません。[10] [5]
意味
構文
KEMは3つのアルゴリズムから構成される: [1] [2] [3] [11] [12]
- 鍵生成 は入力を取らず、公開鍵と秘密鍵のペアを返します。
- カプセル化 は、公開鍵を受け取り、秘密鍵をランダムに選択し、そのカプセル化とともに返します。
- カプセル化解除 ( )は、秘密鍵とカプセル化 ()を受け取り、カプセル化された秘密鍵を返すか、または失敗します。失敗は、 を返すことで示されることもあります(「一番下」と呼ばれます)。
正確さ
KEMが正しいのは、によって生成された任意の鍵ペアについて、によって返されたカプセル化を高い確率で解除すると、同じ鍵、つまり が得られる場合です。[2] [3] [11] [12]
セキュリティ: IND-CCA
KEM のセキュリティは、選択暗号文攻撃(IND-CCA) に対する判別不能性によって定量化されます。これは、ランダムなキーとカプセル化が与えられた場合に、そのキーがそのカプセル化によってカプセル化されているか、独立したランダムなキーであるかを敵対者がコイントスよりもどれだけうまく判断できるかを示します。[2] [3] [11] [12]
具体的には、IND-CCA ゲームでは次のようになります。
- キー生成アルゴリズムが実行され、 が生成されます。
- 敵対者に明らかにされます。
- 攻撃者は、攻撃者が選択した任意のカプセル化を照会できます。
- カプセル化アルゴリズムが実行され、秘密鍵とカプセル化がランダムに生成され、別の秘密鍵が独立してランダムに生成されます。
- 公平なコインを投げて、結果を決定します。
- ペアは敵に公開されます。
- 敵対者は、を除いて、敵対者が選択した任意のカプセル化を再度照会できます。
- 対戦相手は推測を返し、 であればゲームに勝ちます。
敵対者の IND-CCA の利点は、つまり、カプセル化されたキーを独立してランダムに選択されたキーと正しく区別する、公平なコイントスを超える確率です。
例と動機
RSAA の
ビットの係数と指数を持つ従来のRSA暗号化は次のように定義されます。[13] [14] [15]
- キー生成:
- を満たすビットの半素数をランダムに生成します。ここで はカーマイケル関数です。
- 計算します。
- 公開鍵と秘密鍵として返します。(鍵生成アルゴリズムと秘密鍵の形式には多くのバリエーションがあります。 [16])
- ビットのメッセージを公開鍵で暗号化すると、次のようになります。
- ビット文字列を整数としてエンコードします。
- 戻る。
- 秘密鍵を使用して暗号文を復号すると、次のようになります。
- 計算します。
- 整数をビット文字列としてデコードします。
この単純なアプローチは完全に安全ではありません。たとえば、ランダム化されていないため、既知平文攻撃ATTACK AT DAWNに対しても安全ではありません。つまり、攻撃者はメッセージを暗号化して暗号文を比較するだけで、送信者がメッセージを送信しているのか、それともメッセージを送信しているのかを判断できますATTACK AT DUSK。
が常にランダムな秘密鍵、例えば256ビットのAES鍵であるとしても、効率を最適化するために が選択されると、実数の3乗根を取るだけで暗号文からメッセージを計算することができ、プレーンRSA に対する攻撃は他にも数多く存在します。[13] [14] さまざまなランダムパディング方式が考案され、 RSAES-PKCS1-v1_5 [13] [17] [18]のように、任意の短いメッセージ を安全にするための試みとして、時には失敗しました。[13] [14]
メッセージはほとんどの場合、任意のビット文字列メッセージを暗号化するために使用される対称鍵認証暗号の短い秘密鍵であるため、 RSA-KEMと呼ばれるより単純なアプローチでは、ランダムに の要素を選択し、それを使用して鍵導出関数 を使って秘密鍵を導出します。おおよそ次のようになります。[19] [8]
- キー生成: 上記の通り。
- 公開鍵のカプセル化は次のようになります:
- 均一にランダムに整数を選択します。
- 戻り、カプセル化として。
- 秘密鍵を使用してカプセル化を解除すると、次のようになります。
- 計算します。
- 戻る。
このアプローチは実装が簡単で、RSAES-OAEPのようなパディング方式よりもRSA問題に対するより厳密な削減を提供します。[19]
エルガマル
伝統的なエルガマル暗号は、有限体の乗法部分群上で次のように定義される。[20] [21]
- キー生成:
- 均一にランダムに選択します。
- 計算します。
- 秘密鍵と公開鍵として返します。
- メッセージを公開鍵で暗号化すると、次のようになります:
- 均一にランダムに選択します。
- コンピューティング:
- 暗号文を返します。
- 秘密鍵による暗号文の復号化は次のようになる:
- またはの場合、つまりまたは がによって生成されたサブグループ内にない場合は、失敗して を返します。
- 計算します。
- 戻る。
これは、空間内のメッセージに制限された公開鍵暗号化方式の構文を満たしています( の一般的な値では、数百バイトのメッセージに制限されます)。復号化時に暗号文を検証することにより、によって生成されたグループの外側で悪意を持って選択された暗号文を通じて秘密鍵のビットが漏洩することを回避します。
しかし、これは選択暗号文攻撃に対する区別不能性を達成できない。例えば、未知のメッセージの暗号文を持っている攻撃者は、復号化オラクルに別の暗号文を問い合わせることで簡単にそれを復号化でき、関連する平文が得られ、それを復号化することで復元できる。[20]
伝統的なエルガマル暗号は楕円曲線の設定に適応できるが、曲線上の点としてメッセージを可逆的にエンコードする何らかの方法が必要であり、これはメッセージを mod の整数としてエンコードするよりも簡単ではない。[22]
メッセージはほとんどの場合、任意のビット列メッセージを暗号化するために使用される対称鍵認証暗号の短い秘密鍵であるため、より簡単な方法は、KEMとして鍵導出関数を使用して秘密鍵を導出し、完全に省略することです。[1]
- キー生成: 上記の通り。
- 公開鍵のカプセル化は次のようになります:
- 均一にランダムに選択します。
- 計算します。
- 戻り、カプセル化として。
- 秘密鍵を使用してカプセル化を解除すると、次のようになります。
- 、つまり が によって生成されたサブグループ内にない場合は失敗して を返します。
- 計算します。
- 戻る。
任意のビット文字列メッセージを暗号化するための認証暗号と組み合わせると、その組み合わせは本質的に統合暗号化方式になります。この KEM では、この場合、定義されているグループのランダム要素をハッシュするための一方向の鍵導出関数のみが必要であり、メッセージの可逆エンコードは必要ないため、 ECIES (楕円曲線統合暗号化方式)のように、同じセキュリティでよりコンパクトで効率的な楕円曲線グループに拡張するのは簡単です。
参考文献
- ^ abcdefg ガルブレイス、スティーブン (2012)。「§23.1.1: KEM/DEM パラダイム」。公開鍵暗号の数学。ケンブリッジ大学出版局。pp. 471–478。ISBN 978-1-107-01392-6。
- ^ abcdefgh Shoup, Victor (2000 年 5 月). Preneel, Bart (編). ハッシュ関数を使用した選択暗号文攻撃に対するヘッジ。Advances in Cryptology – EUROCRYPT 2000. Lecture Notes in Computer Science. Vol. 1807. ブルージュ、ベルギー: Springer. pp. 275–288. doi : 10.1007/3-540-45539-6_19 . ISBN 978-3-540-67517-4。
- ^ abcdefgh Cramer, Ronald ; Shoup, Victor (2003). 「適応型選択暗号文攻撃に対して安全な実用的な公開鍵暗号化方式の設計と分析」SIAM Journal on Computing . 33 (1). Society for Industrial and Applied Mathematics : 167–226. doi :10.1137/S0097539702403773.
- ^ FIPS 203: モジュール格子ベースの鍵カプセル化メカニズム標準(PDF)、米国国立標準技術研究所、2024-08-13、doi : 10.6028/NIST.FIPS.203
- ^ abc Barnes, R .; Bhargavan, K.; Lipp, B.; Wood, C. (2022年2月). ハイブリッド公開鍵暗号化。インターネット技術特別調査委員会。doi : 10.17487/ RFC9180。RFC 9180 。
- ^ Kaliski, B. ; Jonsson, J.; Rusch, A. (2016 年 11 月). Moriarity, K. (編). PKCS #1: RSA 暗号化仕様バージョン 2.2.インターネット エンジニアリング タスク フォース. doi : 10.17487/RFC8017 . RFC 8017.
- ^ Menezes, Alfred J. ; van Oorschot, Paul C. ; Vanstone, Scott A. ( 1996年 10 月)。「8. 公開鍵暗号化」。応用暗号ハンドブック(PDF)。CRC プレス。pp. 283–319。ISBN 0-8493-8523-7。
- ^ ab Ferguson, Niels ; Kohno, Tadayoshi ; Schneier, Bruce (2010). 「12. RSA」.暗号化エンジニアリング. Wiley. pp. 195–211. ISBN 978-0-470-47424-2。
- ^ Callas, J. ; Donnerhacke, L.; Finney, H. ; Shaw, D.; Thayer, R. (2007 年 11 月). OpenPGP メッセージ形式. Internet Engineering Task Force . doi : 10.17487/RFC4880 . RFC 4880.
- ^ 「ポスト量子暗号:FAQ」。米国国立標準技術研究所。2024年7月19日。2024年6月26日時点のオリジナルよりアーカイブ。2024年7月20日閲覧。
- ^ abc Dent, Alexander W. (2002)、KEM の設計者向けガイド、Cryptology ePrint Archive、国際暗号研究協会
- ^ abc Hofheinz, Dennis; Hövelmanns, Kathrin; Kiltz, Eike (2017年11月). Kalai, Yael; Reyzin, Leonid (編). Fujisaki-Okamoto 変換のモジュール分析。暗号理論 – TCC 2017。コンピュータサイエンスの講義ノート。第10677巻。ボルチモア、MD、米国:Springer。pp. 341–371。doi : 10.1007 / 978-3-319-70500-2_12。ISBN 978-3-319-70499-9。
- ^ abcd Aumasson, Jean-Philippe (2018). 「10. RSA」.本格的な暗号化:現代暗号化の実践的入門。No Starch Press。pp. 181–199。ISBN 978-1-59327-826-7。
- ^ abc Stinson, Douglas R. (2006). 「5. RSA 暗号システムと整数の因数分解」。暗号理論と実践(第 3 版)。Chapman & Hall/CRC。pp. 161–232。ISBN 978-1-58488-508-5。
- ^ Rivest, RL ; Shamir, A. ; Adleman, L. (1978-02-01). 「デジタル署名と公開鍵暗号システムを取得する方法」(PDF) . Communications of the ACM . 21 (2). Association for Computer Machinery: 120–126. doi : 10.1145/359340.359342 .
- ^ シュヴェンダ、ペトル;ネメック、マトゥシュ。セカン、ピーター。クヴァショフスキー、ルドルフ。デビッド・フォルマネク。デビッド・コマレク。マティアーシュ、ヴァシェク(2016年8月)。 100 万鍵の質問 - RSA 公開鍵の起源の調査。第 25 回 USENIX セキュリティ シンポジウム。米国テキサス州オースティン: USENIX Association。 893–910ページ。ISBN 978-1-931971-32-4。
- ^ Bleichenbacher, Daniel (1998 年 8 月) 。Krawczyk, Hugo (編)。RSA 暗号化標準 PKCS # 1 に基づくプロトコルに対する選択暗号文攻撃。Advances in Cryptology – CRYPTO '98。Lecture Notes in Computer Science。Vol. 1462。サンタバーバラ、カリフォルニア州、米国: Springer。pp. 1–12。doi : 10.1007 / BFb0055716。ISBN 978-3-540-64892-5。
- ^ コロン、ジャン=セバスチャン;ジョイ、マーク。David ;パイリエ、パスカル (2000 年 5 月)。バート・プレネル(編)。 PKCS#1 v1.5 暗号化に対する新たな攻撃。暗号学の進歩 – EUROCRYPT 2000。コンピュータ サイエンスの講義ノート。 Vol. 1807年。ベルギー、ブルージュ:シュプリンガー。 369–381ページ。土井: 10.1007/3-540-45539-6_25。ISBN 978-3-540-67517-4。
- ^ ab Shoup, Victor (2001)、「公開鍵暗号の ISO 標準の提案 (バージョン 2.1)」、Cryptology ePrint Archive、国際暗号研究協会
- ^ ab Galbraith, Steven (2012). 「§20.3: 教科書エルガマル暗号化」公開鍵暗号の数学ケンブリッジ大学出版局 pp. 471–478. ISBN 978-1-107-01392-6。
- ^ Elgamal, Taher (1984 年 8 月)。Blakley , George Robert、Chaum, David (編著)。離散対数に基づく公開鍵暗号システムと署名方式。暗号学の進歩 - CRYPTO 1984。コンピュータサイエンスの講義ノート。第196巻。サンタバーバラ、カリフォルニア州、米国: Springer。pp. 10–18。doi : 10.1007/ 3-540-39568-7_2。ISBN 978-3-540-15658-1。
- ^ Koblitz, Neal (1987 年 1 月). 「楕円曲線暗号システム」(PDF) .計算数学. 48 (177).アメリカ数学会: 203–209. doi : 10.1090/S0025-5718-1987-0866109-5 .
