M. Abadi and P.Rogaway: Reconciling Two Views of
Cryptography (The Computational Soundness of Formal Encryption)
J. Cryptology (2002) 15: 103-127
論文紹介
概要:(暗号)メッセージの形式的表現を計算論的に正当化
• 形式的(Formal)– メッセージは形式的・代数的“表現”
– プロトコルの形式的解析に有用
– 具体的実現とギャップがある
• 計算論的(Computational)– メッセージはビット列
– 厳密かつエレガント
– 確率と計算量理論が必要
形式的表現(メッセージ)
• 形式的表現の集合Exp:
• 構文的同一性を“=”で表す
Symmetric
次のような等価性を定義したい
• 等価性:「復号できる部分が等しい」
• 様相論理の意味を与えるのに便利:
「ある参加者からは同じに見える」
復号できない部分(ランダムな文字列に見える)
Entailment
• M ` N : MからNが得られる
パターン
• パターンの集合Pat:
• 復号できない部分を�で表す
表現からパターンへの変換
• p(M, T):鍵の集合Tを知っているとして、
表現Mの復号できない部分を�に書き換える
表現のパターン
• 表現だけを見て、復号できない部分を�に
• 次のように定義
等価性
• 等価性の定義(「見え方が同じ」)
• 鍵の名前変えσの下での等価性
• 例
例(4)
• 平文の長さはわからない
• 繰り返しはわからない
• 同じ鍵で暗号化したかどうかわからない
同じ鍵 違う鍵
Computational View
準備
(セキュリティ・パラメータ)
(乱数)
暗号スキーム
• 暗号スキーム Π=(K , E, D)
• 復号によって戻る、戻せないとき0
計算結果が確率的に決まる
暗号文の長さ
暗号文の長さ|Ek(x)|は、
• 平文の長さ|x|• セキュリティ・パラメータηのみに依存 (ただし k2 K(η))
無視できる(negligible)
• 関数 ε : N! R が無視できる:
任意の c>0 に対し Nc が存在し、η ¸ Nc なら
ε(η)· η -c
• 「どんな 1/(多項式) よりも速く減少」
• 例:
無視できる 無視できない
確率
• Ensemble:(文字列集合上の)確率変数の列
• サンプリング
• サンプルxに関する事象Eが起こる確率
Ensembleの識別不能性
DηA(η)
0 or 1
A(η)
0 or 1
Dη’
x
x
識別不能 ⇔出力が1である確率の差が無視できる
確率的多項式時間チューリング機械(攻撃者)
Ensembleの識別不能性
2つのensemble
が識別不能である
とは、任意の確率的多項式時間攻撃者Aに対し次の関数が無視できることをいう
暗号スキームのセキュリティ
• 繰り返しを隠す(repetition-conceiling):2つの暗号文c, c’の平文が同じであるか判定できない
• どの鍵を使用したかを隠す(which-key conceiling):2つの暗号文c, c’の鍵が同じであるか判定できない
• メッセージの長さを隠す(length-conceiling):暗号文から平文の長さがわからない
暗号スキームのセキュリティ型
Repetition conceiling
Which-key conceiling
Length conceiling
Type-0 OK OK OK
Type-1 OK OK ?
Type-2 OK ? OK
Type-3 OK ? ?
Type-4 ? OK OK
…
アドバンテージ
fA
0 or 1
A
0 or 1
何らかの結果を返すオラクル
正しく暗号化するオラクル
g
Adv=出力が1である確率の差
……
Type-0
A
0 or 1
A
0 or 1
ゴミを暗号化
正しく暗号化
平文の長さを区別できるならAdvを大きくできる
同じ鍵
異なる鍵
この繰り返し
Type-0 セキュリティ
• Type-0: (repetition, which-key, length)任意の確率的多項式時間の攻撃者Aに対し次が無視できる
入力を暗号化するオラクル
入力を無視して0を暗号化するオラクル
Type-1
A
0 or 1
A
0 or 1
入力と同じ長さのゴミを暗号化使用した鍵を
区別できるならAdvを大きくできる
Type-1 セキュリティ
• Type-1: (repetition, which-key, length)
入力と同じ長さの0の列を暗号化するオラクル
Type-3
A
0 or 1
A
0 or 1
入力と同じ長さのゴミを暗号化
正しく暗号化
同じ平文かどうか区別できるならAdvを大きくできる
Type-3セキュリティ
• Type-3: (repetition, which-key, length)
暗号化オラクルを1つしか使えない(別の鍵で暗号化された暗号文を入手できない)
Type-0の実現
• ブロック暗号(DES, AESなど):固定長の入力
• CBCモード:任意長の入力(⇒Type-1)
• 詰め物・切り詰めによりType-0が得られる
暗号化 暗号化 暗号化
暗号化
乱数
健全性:等価性⇒識別不能性
• 主定理(健全性):暗号の循環が無いとき
ならば
Mを(Type-0の暗号スキームにより)実際に暗号化して作ったビット列(の確率変数(からなるensemble))
形式的表現をensembleに対応
• 形式的表現Mをビット列に変換
• 変換結果は(暗号スキームΠと)ηから確率的に決まり、この確率変数を«M¬Π[η]と書く
• «M¬Π[η]からensemble «M¬Π={«M¬Π[η]}が決ま
る
ランダムにτ(Ki)2 K(η)を選んでおく
CONVERT)τ(K6)
健全性:等価性⇒識別不能性
• 主定理(健全性):Type-0暗号スキームを仮定、暗号の循環が無いとき
• 例
循環
定理の証明
(“hybrid technique”の利用)
準備:鍵の名前換え
• M, N (M≅N)の鍵をある条件(次のスライド)を満たすように名前変えして M’, N’とする
• 名前変えによってensembleは変わらない
• したがって、次を示せばよい
名前換えの条件
• 復号可能な鍵を左から順にJi、それ以外をKi
• {… Ki …}Kj, {… {…}Ki …}Kj
の出現では i<j• M, N (M≅N) の例:
ハイブリッド・パターンM0=pattern(M’)=pattern(N’)=N0から開始して、{…}Ki
に相当する�を順に元の暗号文に戻す
ハイブリッド・パターンの定義
Mの鍵がJ1, J2,…; K1, K2, …, Kmのとき、
特に、M’ ≡ N’より
以降のあらすじ(hybrid tech.)«M’¬Πと«N’¬Πが識別不能でない
(識別可能)と仮定する(背理法)
途中の«Mi¬Π, «Mi+1¬Πの組
(または«Ni¬Π, «Ni+1¬Πの組)
いずれかが識別可能になる
«Mi¬Π, «Mi+1¬Πを識別する攻撃者からType-0暗号を
破る攻撃者を構成できる⇒Type-0に矛盾
準備:パターンをensembleに対応
• パターンからビット列への変換
• この変換からensembleが決まる(«Mi¬Π ,«Nj¬Πなどと書く)
CONVERT’τ(K0)は�専用の鍵
• 定理がなりたたないと仮定(背理法)すると、
«M’¬Πと«N’¬Πは識別不能でない(識別可能)、
つまり、ある攻撃者Aに対し次が無視できない
以下、このAを固定
大きいギャップの探索
ギャップの細分化
pi, qj:ハイブリッドMi, Nj に対しAが1を返す確率
– Mm=M’, Nn=N’, M’0=N’0から
ギャップの細分化p4p3p2p1p0
q0q1q2q3
=
«M4¬Πおよび«M3¬Πのサンプルに対し、
Aが1を返す確率の差
細分の中にも大きいギャップがある
• 右辺の和の各部分のうち一番大きいものは、
これらの平均値以上である、すなわち
• 各ηに対し上を満たすpi-pi-1(or qi-qi-1)がある、さらに、無限個のηに対し上を満たすものもある
無限回ギャップが大きくなるp4p3p2p1p0
q0q1q2q3
= …
|η|=1, 2, 3, 4, 5, …
無限個のηに対し λ(η)/(m+n) より大きくなる
Type-0との矛盾の導出
• pi-pi-1は次のようなものであった
• Aを用いて攻撃者A0を構成、アドバンテージをpi-pi-1を用いて評価
攻撃者A0
f
g
A0 or 1
M’に対応するビット列
A0
この形のM’の部分表現のみオラクルを利用
pi-pi-1
• 攻撃者A0f,gは、M’をビット列に変換しA(η, y)を
返す。ただし、 {M*}Kの暗号化関数は
– K=Kiのとき f– K2{J1, …, Jµ, K1, …, Ki-1}のときEτ(K)– K2{Ki+1, …, Km}のとき g
例(i=2):
• i=2の場合でki, k0をランダムな鍵とする
«Mi-1¬Π[η]]のサンプル
«Mi¬Π[η]のサンプルf=Eki
(¢), g=Ek0(¢)のとき
f=Ek0(0), g=Ek0
(0)のとき
• 次が成り立つ
«Mi¬Π[η]のサンプルyを構成して
A(η, y)を計算
«Mi-1¬Π[η]]のサンプルyを構成して
A(η, y)を計算
• Type-0暗号がA0に破られる確率を計算
• 無視できない⇒Type-0暗号でない⇒矛盾
定理の主張について
• 定理の主張は漸近的(η! 1 )であったが、証明からはより具体的主張(攻撃に必要な時間など)を導き出せる
• 定理の逆は成りたたない– 例)MおよびNがPlaintextの外のメッセージを暗号化する場合、MとNは等しいensembleに対応するが、MとNが形式的に等価とは限らない
– このような自明な例以外の場合は不明
(※completenessを証明した後の研究がある)