On the Security of Hybrid Public-Key Encryption

SCIS 2004
The 2004 Symposium on
Cryptography and Information Security
Sendai, Japan, Jan.27-30, 2004
The Institute of Electronics,
Information and Communication Engineers
ハイブリッド暗号の安全性について
On the Security of Hybrid Public-Key Encryption
長尾 若∗
Waka Nagao
真鍋 義文 ∗ †
Yoshifumi Manabe
岡本 龍明 ∗ ‡
Tatsuaki Okamoto
あらまし 公開鍵暗号を用いて秘密鍵暗号のための鍵配送を行い,その秘密鍵を用いてデータの暗号化
を行なう方式は従来用いられていたが,Shoup はこの方式を鍵共有 (KEM) とデータの暗号化 (DEM) を
組み合わせたハイブリッド暗号というフレームワークで定式化を行ない,現在ではこれが広く認められ
つつある.このような背景や暗号の重要性を踏まえ,ISO では暗号に関して理論的安全性を考慮しつつ標
準化を進めている.KEM における理論的安全性に関しては,今まで強秘匿 (IND) 性のみが研究され,頑
強 (NM) 性に関しては研究がされていない.そこで本稿では,公開鍵暗号において定義されている 3 つの
NM 性に対応した形で,KEM において新たな NM 性を定義する.そして,新たに定義した 3 つの NM 性
が等価であることを証明し,KEM における IND-CCA2 と NM-CCA2 との等価性を証明する.
キーワード KEM, DEM, ハイブリッド暗号, IND, NM
1
はじめに
現在の情報化社会においてハイブリッド暗号は広く使
われているが,公開鍵暗号を鍵配送に特化した鍵共有
(KEM) とデータの暗号化 (DEM) という 2 つのフレーム
ワークからなるハイブリッド暗号系が Shoup によって定
式化され,新たに提案されている.そして,ISO を中心に
このフレームワークでのハイブリッド暗号系の標準化が
進められており [1],欧州連合 (EU) の暗号評価プロジェ
クト NESSIE においても KEM に基づく方式が採用され
ている [2].ハイブリッド暗号の安全性は KEM と DEM
の安全性により定義されるが,KEM は公開鍵暗号を鍵
配送に特化したものであるため,公開鍵暗号の安全性と
同様に定式化される.公開鍵暗号の安全性は一般に暗号
おいて定義されている 3 つの NM 性に対応した,KEM に
おける 3 つの NM 性を新たに定義し,それらが等価であ
ることを証明する.また,公開鍵暗号系と同じく,KEM
においても IND-CCA2 と NM-CCA2 とが等価であるこ
とを証明する.
2
ハイブリッド暗号
公開鍵暗号方式には,暗号化・復号化に非常に長い時
間がかかるというデメリットがある.これに対し共通鍵
暗号方式には高速に暗号化・復号化が行えるというメリッ
トがある.これらを考慮して公開鍵暗号方式を鍵配送の
みに利用し,共通鍵暗号方式をデータの送受信に利用す
る仕組みが考えられた.これがハイブリッド暗号である.
系に対する攻撃の種類と暗号系が耐えうる安全性レベ
ハイブリッド暗号は RSA 暗号などの各暗号系で独自に構
ルの組によってなされ,攻撃には受動的な攻撃法 (CPA)
築されてきたが,Shoup[1] により KEM と DEM による
と能動的な攻撃法 (CCA1 および CCA2) などがあり,安
ハイブリッド暗号が新たに提案され,広く認められつつ
全性レベルには一方向 (OW) 性,強秘匿 (IND) 性,頑強
ある.KEM は鍵共有における初めての定式化であり,ハ
(NM) 性 [3]∼[5] が定義されている.現在,KEM におい
ては OW および IND のみが定義され,NM に該当するも
イブリッド暗号のみならずハイブリッドメッセージ認証,
ハイブリッド相手認証等への応用も含めた鍵共有の一般
のが定義されていない.そこで,本稿では公開鍵暗号に
的な定式化となっている.つまり,KEM は DEM と全く
∗
独立な概念であり (DEM の存在可能性などに全く関係
†
‡
京都大学大学院情報学研究科社会情報学専攻〒 606-8501 京都市左京
区吉田本町 Department of Social Informatics, Graduate School
of Informatics, Kyoto University Yoshidahonmachi, Sakyo-ku,
Kyoto-shi, Japan, w-nagao@lab7.kuis.kyoto-u.ac.jp
NTT サイバースペース研究所〒 239-0847 横須賀市光の丘 1-1
NTT Cyber Space Laboratories 1-1 Hikarinooka, Yokosukashi, Japan, manabe.yoshifumi@lab.ntt.co.jp
NTT 情報流通プラットフォーム研究所〒 239-0847 横須賀市光の丘 11 NTT Information Sharing Platform Laboratories 1-1 Hikarinooka, Yokosuka-shi, Japan, okamoto@sucaba.isl.ntt.co.jp
なく),鍵共有の一般的な定式化となっている.KEM と
DEM によるフレームワークは KEM および DEM の望ま
しい安全性を満足すれば暗号系が異なってもそれらを組
み合わせて安全なハイブリッド暗号を構築可能であるこ
とを意味する.以下では,ISO における KEM の定義と
その安全性を紹介する.
2.1
KEM
ば,攻撃者がネットワーク上に流れる暗号文を改ざんし,
KEM とは二者 X,Y の間において鍵 K を共有するため
に公開鍵暗号を鍵配送に特化させた手法である.ISO で
特定の関係を持つ暗号文を生成することが可能である.
は KEM のスキーム ΠK を以下のように定義している.
を暗号化して送信した時,攻撃者が No という内容の暗
例えば,送信者が重要な契約書に Yes という内容の返事
号文に改ざんして受信者に送ることができる.以上は
1. 鍵生成アルゴリズム KEM.KeyGen() により,公
開鍵 P K と秘密鍵 SK とのペア (P K, SK) を生成
する
2. 暗号化アルゴリズム KEM.Encrypt() は P K を入
力として,共有するための鍵 K とその暗号文 C0
のペア (K, C0 ) を出力する
3. 復号化アルゴリズム KEM.Decrypt() は SK と暗
号文 C0 を入力として鍵 K ,もしくは ⊥ を出力する
(⊥ は正しい暗号文ではないことを表す)
鍵 K を共有する二者 X,Y の間で,X から Y へと鍵 K
を配送するものとする.まず事前に Y は公開鍵と秘密鍵
のペア (P KY ,SKY ) を KEM.KeyGen() により生成し,
P KY を公開しておく.Y に鍵配送をしたい場合には,X
が公開されている P KY を入力とし,KEM.Encrypt()
を用いて (K, C0 ) を出力する.X は K を所有し,C0 を Y
へと配送する.Y は C0 と自身の秘密鍵 SKY を入力とす
る KEM.Decrypt(SKY , C0 ) により鍵 K を得る.このよ
うに二者 X,Y 間において鍵 K を共有することが出来る.
KEM において定義されている IND-CCA2 の安全性は,
攻撃者 A に対して次のゲームを考えて定義される.まず,
KEM.KeyGen() により公開鍵と秘密鍵のペア (P K ,SK)
を生成する.この P K により攻撃者以外の第三者 (暗号
化オラクル) が KEM.Encrypt(P K) を用いて鍵 K ∗ とそ
の暗号文 C0∗ のペア (K ∗ , C0∗ ) を作成する.暗号化オラク
e も生成する.ここで,
ルは鍵 K ∗ と同じ長さの偽の鍵 K
二つの鍵のどちらか一方を暗号化オラクルが選択し,暗
号文 C0∗ とのペアを A に与える.さらに A には P K が与
えられている.攻撃者 A は次に暗号文を復号化する復号
化オラクルに C0∗ ではない暗号文 C[i](i = 1, 2, …, n) を
送る.復号化オラクルはそれらを復号化し,平文 P [i] を
A に返す.A はこの情報をもとに,暗号化オラクルがど
ちらの鍵を選択したのかをあてる.
3
Non-Malleable
Non-Malleable(NM) 性とは公開鍵暗号系において定
義された安全性の一つであり頑強性と呼ばれる.公開
鍵暗号系において NM 性を持つとは,二つの平文 x と x0
間で成り立つある非自明な関係 R(x, x0 ) があり,これに
対して x の暗号文 C から R(x, x0 ) を満足する x0 の暗号文
0
C を生成することが困難であることをいう (自明とは例
えば x と x’ の長さが等しいなどがある).関係 R にはビッ
ト反転などがある.もし,この NM 性が満たされなけれ
公開鍵暗号についての危険性であるが,KEM において
NM 性が満足されていない場合にも,鍵を書き換える事
が出来るので,特定の関係を持つ鍵に改ざんされる可能
性があり,何らかの危険性を生じる恐れがある.よって,
KEM における NM 性を定義することは非常に重要なこ
とである.
公開鍵暗号系では,Dolev,Dwork,Naor による NM
性 [3](以下,SNM-PKE と呼ぶ),Bellare,Desai,Point-
cheval,Rogaway による NM 性 [5](以下,CNM-PKE と
呼ぶ),Bellare,Sahai による Parallel attack を用いた NM
性 [4](以下,PNM-PKE と呼ぶ) が定義され,それらの
間に等価性が成り立つことが証明されている.
本稿では,ハイブリッド暗号の KEM において新たな
NM 性を公開鍵暗号の定義に対応した形で 3 つ定義し,
それらにおいて等価性が成り立つことを証明する.各定
義は ISO における KEM のスキーム ΠK をもとに定義し
ている.さらに攻撃の種類 atk は選択平文攻撃 (cpa),選
択暗号文攻撃 (cca1),適応的選択暗号文攻撃 (cca2) のい
ずれかを示し,cpa,cca1,cca2 の各攻撃にパラレル攻撃
[4] を加えた時の攻撃をそれぞれ pa0,pa1,pa2 で表す.こ
こでパラレル攻撃とは,復号化オラクルに対して一度だ
け暗号文を送ることができる攻撃法である.定義では,
攻撃者やシミュレータの復号化オラクルを O1 , O2 で表
し,その復号化アルゴリズム KEM.Decrypt(SK, ·) は
Dsk (·) で表す.また ε は復号化オラクルを参照しないこ
とを表す.次に,セキュリティパラメータを z ,平文と
暗号文ベクトルにおける関係を R で表し,鍵空間を K,
状態情報を s とする.
以下で,SNM-PKE の考えに対応した KEM における
NM 性 (以下,SNM-KEM と呼ぶ),CNM-PKE の考えに
対応した KEM における NM 性 (以下,CNM-KEM と呼
ぶ),PNM-PKE の考えに対応した KEM における NM 性
(以下,PNM-KEM と呼ぶ) の 3 つの定義を示す.
3.1
SNM-KEM
図 1に定義を示す.ΠK における攻撃者を A = (A1 ,
A2 ),シミュレータを S = (S1 , S2 ) とするとき,攻撃者
A における SNM-KEM の安全性は,アドバンテージ
snm−atk
AdvA,S,Π
(R, z) で定義される.全ての多項式で表され
K
る攻撃アルゴリズムの実行時間 p(z) において,全ての
snm−atk
関係 R と全ての攻撃者 A に対して AdvA,S,Π
(R, z) が
K
無視できるくらい小さくなる S が存在するとき,SNMsnm−atk
KEM は安全であるという.AdvA,S,Π
(R, z) は暗号文
K
C0∗ を受け取る攻撃者のアルゴリズム Exptsnm−atk
(R, z)
A,ΠK
cnm−atk
図 1: SNM-KEM Definition
¶
snm−atk
AdvA,S,Π
(R, z) ≡
K
Pr[Exptsnm−atk
(R, z) = 1]
A,ΠK
−
Pr[Exptsnm−atk
(R, z) = 1]
S,ΠK
g A,Π
け取る攻撃者のアルゴリズム Expt
(z) が成功す
K
³る時の確率の差である.ただし,K は ⊥ を含まない.
図 2: CNM-KEM Definition
¶
cnm−atk
(z) ≡
AdvA,Π
K
where
snm−atk
ExptA,Π
(R, z)
K
−
←
KEM.KeyGen(1z )
←
A1O1 (pk)
←
KEM.Encrypt(pk) ∧ K ∗ ∈K
(C , s2 )
←
A2O2 (s1 , C0∗ )
K
←
KEM.Decrypt(sk, C )
(pk, sk)
(K, s1 )
(K
∗
, C0∗ )
(pk, sk) ←
(K, s) ←
(K ∗ , C0∗ ) ←
(R, C ) ←
K
snm−atk
ExptS,Π
(R, z)
K
(K, s1 ) ←
K
∗
←
(C , s2 ) ←
K
←
Pr[Exptcnm−atk
(z) = 1]
A,ΠK
cnm−atk
g A,Π
Pr[Expt
K
(z) = 1]
where
Exptcnm−atk
(z)
A,ΠK
return 1 iff (C0∗ 6∈ C ) ∧ R(K ∗ , K, K, s2 )
(pk, sk) ←
³
KEM.KeyGen(1 )
cnm−atk
g A,Π
Expt
K
S1O1 (pk)
K
S2O2 (s1 )
KEM.Decrypt(sk, C )
のアルゴリズム Exptsnm−atk
(R, z) が成功する時の確率
S,ΠK
の差である.ただし,K は ⊥ を含まない.SNM-PKE と
KEM.Encrypt(pk) ∧ K ∗ ∈K
∗
2
AO
2 (s, C0 )
KEM.Decrypt(sk, C )
(z)
(pk, sk)
←
KEM.KeyGen(1z )
(K, s)
←
1
AO
1 (pk)
K∗
∗
が成功する時の確率とそれを受け取れないシミュレータ
1
AO
1 (pk)
return 1 iff (C0∗ 6∈ C ) ∧ R(K ∗ , K)
z
return 1 iff R(K , K, K, s2 )
and
If atk = cpa then O1 = ε and O2 = ε.
If atk = cca1 then O1 = Dsk (·) and O2 = ε.
If atk = cca2 then O1 = Dsk (·) and O2 = Dsk (·).
µ
←
KEM.KeyGen(1z )
← K
e C
f0 )
(K,
←
e
KEM.Encrypt(pk) ∧ K∈K
f )
(R, C
←
2
f
AO
2 (s, C0 )
f
K
←
f )
KEM.Decrypt(sk, C
f ) ∧ R(K ∗ , K)
f
f0 6∈ C
return 1 iff (C
and
If atk = cpa then O1 = ε and O2 = ε.
If atk = cca1 then O1 = Dsk (·) and O2 = ε.
If atk = cca2 then O1 = Dsk (·) and O2 = Dsk (·).
µ
´
´
O2
2
の違いは,AO
2 と S2 の出力に状態情報を出力させる点
とシミュレータ S に復号化オラクルを利用できるように
した点である.
3.2
CNM-KEM
3.3
PNM-KEM
図 3に定義を示す.ΠK における攻撃者を A = (A1 ,
図 2に定義を示す.ΠK における攻撃者を A = (A1 ,
A2 ) とするとき,PNM-KEM の安全性はアドバンテージ
pnm−atk
AdvA,Π
(z) で定義され,これが多項式で表される,A
K
A2 ) とするとき,CNM-KEM の安全性はアドバンテージ
による攻撃アルゴリズムの実行時間 p(z) において無視で
cnm−atk
AdvA,Π
(z) で定義される.全ての多項式で表される
K
cnm−atk
攻撃アルゴリズムの実行時間 p(z) において,AdvA,Π
K
(z) が無視できるくらい小さくなるとき,CNM-KEM は
cnm−atk
安全であるという.AdvA,Π
(z) は鍵 K ∗ の暗号文 C0∗
K
きるくらい小さいとき,PNM-KEM は安全であるという.
を受け取る攻撃者のアルゴリズム Exptcnm−atk
(z) が成
A,ΠK
e の暗号文 C
f0 を受
功する時の確率と鍵 K ∗ ではない鍵 K
定義において攻撃者 A = (A1 , A2 ),A2 = (A2,q , A2,g ) を
考える.攻撃者 A1 は,鍵空間 K と状態情報 s1 を出力す
る.s1 は A2,q へと渡す情報である.
KEM.Encrypt(pk) は鍵 K ∗ とその暗号文 C0∗ のペア
(K ∗ , C0∗ )(ただし,K ∗ は K の要素である) を出力する.
定理 3 PNM-KEM ⇒ CNM-KEM
図 3: PNM-KEM Definition
¶
pnm−atk
AdvA,Π
(z)≡Pr[Exptpnm−atk
(z) = 1] −
A,ΠK
K
³
1
2
それぞれの定理について,以下で証明を与える.
4.1
CNM-KEM ⇒SNM-KEM
SNM-KEM が安全でないと仮定して CNM-KEM が安
全でないことを示す.SNM-KEM における攻撃者を A =
where
pnm−atk
ExptA,Π
(z)
K
(pk, sk)
←
KEM.KeyGen(1z )
(A1 , A2 ),シミュレータを S = (S1 , S2 ),CNM-KEM に
おける攻撃者を B = (B1 , B2 ) とする.まず Exptcnm−atk
B,ΠK
(R,
z)
をシミュレートすることができ
(z) が Exptsnm−atk
A,ΠK
(K, s1 )
←
A1O1 (pk)
g
ることを示し,次に Exptsnm−atk
(R, z) と Expt
B,ΠK
S,ΠK
(K ∗ , C0∗ )
←
KEM.Encrypt(pk) ∧ K ∗ ∈K
e
K
b
X
cnm−atk
(z) のアルゴリズムが等しくなることを証明する.図 4に
B1O1 ,B2O2 ,S1O1 ,S2O2 の構成を示す.B1O1 , B2O2 がそれ
← K
← {0, 1}
½ ∗ ∗
(K , C0 ) if b = 0
←
e C ∗ ) if b = 1
(K,
←
O2
A2,q
(s1 , X)
K
←
KEM.Decrypt(sk, C )
g
←
O2
(K, s2 )
A2,g
return 1 iff
and
If atk = pa0
If atk = pa1
If atk = pa2
µ
1
(K, s1 )←AO
1 (pk)
return (K, (K, s1 ))
AlgorithmB2O2 ((K, s1 ), C0∗ )
(C0∗ 6∈ C ) ∧ (g = b)
∗
2
(C , s2 ) ← AO
2 (s1 , C0 )
then O1 = ε and O2 = ε.
then O1 = Dsk (·) and O2 = ε.
then O1 = Dsk (·) and O2 = Dsk (·).
Define R0 by R0 (a, b) = 1
であるとき,この攻撃者は攻撃に成功すると定義する.
リズム Exptpnm−atk
(z) が成功する確率と 12 との差が無
A,ΠK
iff R(a, b, K, s2 ) = 1
´
e を生成する.そ
次に,K の要素であるもう一つの鍵 K
して,ランダムに b = {0, 1} の値を選び,b = 0 のとき
e C ∗ ) のペアを X と
(K ∗ , C0∗ ) のペアを,b = 1 のとき (K,
0
して出力する.A2,q は s1 と X を受け取り,状態情報 s2
と暗号文ベクトル C を出力する.A2,g は s2 と復号化オ
ラクル KEM.Decrypt(sk, C ) により出力される復号文
ベクトル K を受け取り,g の値を出力する.ここで,暗
号文ベクトル C の中に C0∗ が含まれず,なおかつ g = b
攻撃者が以上のような振舞いで攻撃を行う時にアルゴ
return (R0 , C )
AlgorithmS1O1 (pk)
(K, s1 ) ←
1
AO
1 (pk)
return (K, s1 )
AlgorithmS2O2 (s1 )
e C
f0 )
(K,
e
← KEM.Encrypt(pk) ∧ K∈K
f , s2 )
(C
2
f
← AO
2 (s1 , C0 )
という.
f , s2 )
return (C
µ
4
O2
cnm−atk
1
ぞれ AO
(z) が
1 , A2 を用いることにより,ExptB,ΠK
視できるくらい小さいとき,PNM-KEM は安全である
各定義の等価性証明
前章では KEM における 3 つの新たな NM 性を定義し
たが,ここではそれらの間で成り立つ以下の定理につい
て述べる.
定理 1 CNM-KEM ⇒ SNM-KEM
定理 2 SNM-KEM ⇒ PNM-KEM
³
AlgorithmB1O1 (pk)
0
(C , s2 )
図 4: CNM-KEM ⇒SNM-KEM
¶
´
Exptsnm−atk
(R, z) をシミュレートすることができる.次
A,ΠK
に,S1O1 , S2O2 を図 4のように構成した時,Exptsnm−atk
S,ΠK
cnm−atk
g B,Π
(R, z) と Expt
K
(z) が等しくなる.
よって,
cnm−atk
snm−atk
AdvB,Π
(z) ≥ AdvA,S,Π
(R, z)
K
K
が成り立つ.
4.2
1
1
+ p1 × )
2
2
1
≤ (p0 + p1 ) ×
2
1
≤
2
SNM-KEM ⇒PNM-KEM
≤ (p0 ×
PNM-KEM が安全でないと仮定して SNM-KEM が安
全でないことを示す.SNM-KEM における攻撃者を A =
(A1 , A2 ),PNM-KEM における攻撃者を B = (B1 , B2 ),
B2 = (B2,q , B2,g ) とする.まず Exptsnm−atk
(R, z) が
A,ΠK
pnm−atk
ExptB,ΠK (z) をシミュレートすることができることを
示し,次に Exptsnm−atk
(R, z) が成功する時の確率が最
S,ΠK
O2
1
大でも 12 となることを証明する.図 5に AO
1 ,A2 ,R の
O2
1
構成を示す.図 5から AO
1 , A2 ,R は B を用いて表すこ
¶
図 5: SNM-KEM ⇒ PNM-KEM
となる.
pnm−atk
snm−atk
よって,AdvA,S,Π
(R, z) と AdvB,Π
(z) との間の
K
K
関係は以下のようになる.
pnm−atk
AdvB,Π
(z) =
K
Pr[Exptpnm−atk
(z) = 1] −
B,ΠK
≤
Pr[Exptsnm−atk
(R, z) = 1]
A,ΠK
1
− + ²(z)
2
Pr[Exptsnm−atk
(R, z) = 1]
A,ΠK
³
1
AlgorithmAO
1 (pk)
≤
B1O1 (pk)
(K, t1 ) ←
K1 ← K
K
0
;
K2 ← K
=
{K1 , K2 }
−Pr[Exptsnm−atk
(R, z) = 1]
S,ΠK
+²(z)
≤
Let s1 = (K0 , t1 , pk).
return (K0 , s1 )
pnm−atk
snm−atk
AdvA,S,Π
(R, z) ≥ AdvB,Π
(z)
K
K
が成り立つ.
where s1 = (K0 , t1 , pk)
4.3
O2
B2,q
(t1 , X)
Choose random coins σ for B2,g .
←
(t2 , σ)
return (C , s2 )
RelationR(K ∗ , K, K, s2 ) where s2 = (t2 , σ)
Let b ∈ 0, 1 .
If K ∗ = K1 , then b = 0. Otherwise, b = 1.
O2
return 1 iff B2,g
(K, t2 ; σ) = b
µ
とができ,Exptsnm−atk
(R, z) が Exptpnm−atk
(z) をシミ
A,ΠK
B,ΠK
B,ΠK
ムになる.ゆえに,図 6のように構成することにより,
cnm−atk
g B,Π
Exptpnm−atk
(z) は Exptcnm−atk
(z) と Expt
(z) の
A,ΠK
B,ΠK
K
´
両方をシミュレートすることができる.よって,Pr[Expt
ュレートすることができる.次に,Exptsnm−atk
(R, z) が
S,ΠK
成功する確率が最大でも 21 となることを証明する.Expt
pnm−atk
(z) の第三者が選択する b の値に対して,Expt
B,ΠK
snm−atk
(R, z) が b を出力する確率を pb とする.pb は Expt
S,ΠK
snm−atk
(R, z) と Exptpnm−atk
(z) が独立であるので,p0 +
S,ΠK
B,ΠK
snm−atk
p1 ≤ 1 である.ExptS,ΠK
(R, z) が成功する確率は,
Pr[Exptsnm−atk
(R, z) = 1]
S,ΠK
=
(p0 × Pr[b = 0] + p1 × Pr[b = 1])
PNM-KEM ⇒CNM-KEM
CNM-KEM が安全でないと仮定して PNM-KEM が安
全でないことを示す.PNM-KEM における攻撃者を A =
(A1 , A2 ), A2 = (A2,q , A2,g ),CNM-KEM における攻撃
O2
O2
1
者を B = (B1 , B2 ) とする.図 6に AO
1 ,A2,q ,A2,g の構
pnm−atk
成を示す.ExptA,ΠK
(z) における X において,第 3 者
∗
が b=0 を選択すると,X は鍵 K ∗ とその暗号文 CO
のペア
cnm−atk
∗
∗
(K , CO ) となる.このとき,CNM-KEM の ExptB,ΠK
(z) のアルゴリズムと対応する.また,b=1 のとき,X
e と暗号文 C ∗ のペア (K,
e C ∗ ) となり,
は K ∗ ではない鍵 K
O
O
e C ∗ ) のように鍵と暗号文のペアが
CNM-KEM では (K,
O
cnm−atk
g
対応していない Expt
(z) に相当するアルゴリズ
(K1 , C0∗ )
←
(C , t2 ) ←
s2
snm−atk
AdvA,S,Π
(R, z) + ²(z)
K
²(z) は無視できる程小さいので,
∗
2
AlgorithmAO
2 (s1 , C0 )
X
1
2
pnm−atk
(z)
A,ΠK
= 1] は,
Pr[Exptpnm−atk
(z) = 1]
A,ΠK
= Pr[b = 0]×Pr[b = 0∧g = 0]
=
+Pr[b = 1]×Pr[b = 1∧g = 1]
1
×{Pr[Exptcnm−atk
(z) = 1]×1
B,ΠK
2
1
+(1 − Pr[Exptcnm−atk
(z) = 1])× }
B,ΠK
2
cnm−atk
1
g
+ ×{Pr[ExptB,ΠK (z) = 1]×0
2
図 6: PNM-KEM ⇒CNM-KEM
¶
価性により NM-CCA2-KEM と IND-CCA2-KEM は等し
³くなる.
1
AlgorithmAO
1 (pk)
5
(K, t)
←
B1O1 (pk)
s1
←
(K, t)
ISO を中心として新たにハイブリッド暗号に関する標
準化案が議論されている.現在,KEM に対しては IND
性のみが定義されていたが,本稿では NM 性について 3
つの定義を新たに定義した.そして,それらの間に等価
性が成り立つことを証明し,IND-CCA2-KEM と NMCCA2-KEM が等しいことを述べた.今後はハイブリッ
ド暗号におけるもう一つのフレームワークである DEM
に関する NM 性に関しても検討を行う.
return (K, s1 )
2
AlgorithmAO
2,q (s1 , X) where s1 = (K, t)
(R, C )
←
B2O2 (t, C0∗ )
s2
←
(R, X, C )
参考文献
return (C , s2 )
[1] V.Shoup, “A Proposal for an ISO Standard for Public Key Encryption (version 2.1), ”manuscript, December 20, 2001.
2
AlgorithmAO
2,g (K, s2 )
where s2 = (R, X, C )
[2] NESSIE, http://cryptonessie.org.
If (C0∗ 6∈ C ) ∧ R(K ∗ , K)
then g
←
0
else g
←
{0, 1}
return g
µ
cnm−atk
g B,Π
+(1 − Pr[Expt
K
=
[3] D.Dolev, C.Dwork, and M.Naor, “Non-Malleable
Cryptography, ”Proceedings of the 23rd Annual
Symposium on Theory of Computing, ACM, 1991.
Also Technical Report CS95-27, Weizmann Institute of Science, 1995.
´
1
(z) = 1])× }
2
1
(Pr[Exptcnm−atk
(z) = 1]
B,ΠK
4
cnm−atk
1
g B,Π
−Pr[Expt
(z) = 1]) +
K
2
となる.よって,
Pr[Exptpnm−atk
(z) = 1] −
A,ΠK
=
おわりに
1
2
1
(Pr[Exptcnm−atk
(z) = 1]
B,ΠK
4
cnm−atk
g B,Π
−Pr[Expt
(z) = 1])
K
と変形し,
pnm−atk
AdvA,Π
(z) =
K
1
cnm−atk
AdvB,Π
(z)
K
4
が成り立つ.
以上のように,定理 1∼3 が証明される.よって,SNM-
KEM,CNM-KEM,PNM-KEM は互いに等価であるこ
とが証明される.また,公開鍵暗号においては IND-CCA2PKE と NM-CCA2-PKE は等しいことが証明されている
が,KEM においても以下の定理が成り立つ.
定理 4 IND-CCA2-KEM ⇔ NM-CCA2-KEM
これは,まず PNM-CCA2-KEM と IND-CCA2-KEM
が各定義から等しくなり,次に 4 章で証明した各定義の等
[4] M.Bellare and A.Sahai, “Non-Malleable Encryption: Equivalence between Two Notions, and an
Indistinguishability-Based Characterization, ”Advances in Cryptology-Crypt’99 Proceedings, Lecture notes in computer science Vol.1666, M.Winer
ed., Springer-verlag, 1999.
[5] M.Bellare, A.Desai, D.Pointcheval, and P.Rogaway,
“Relations Among Notions of Security for PublicKey Encryption Schemes,”Advances in CryptologyCrypt’98 Proceedings, Lecture notes in computer
science Vol. 1462, H.Krawczyk ed., Springer-verlag,
1998.