560 likes | 653 Views
論文紹介. M. Abadi and P.Rogaway: Reconciling Two Views of Cryptography (The Computational Soundness of Formal Encryption). J. Cryptology (2002) 15: 103-127. 概要 : (暗号)メッセージの 形式的表現を計算論的に正当化. 形式的( Formal ) メッセージは形式的・代数的“表現” プロトコルの形式的解析に有用 具体的実現とギャップがある 計算論的( Computational ) メッセージはビット列
E N D
論文紹介 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の復号できない部分をに書き換える
表現のパターン • 表現だけを見て、復号できない部分をに • 次のように定義
等価性 • 等価性の定義(「見え方が同じ」) • 鍵の名前変え の下での等価性 • 例
例(2) but
例(4) • 平文の長さはわからない • 繰り返しはわからない • 同じ鍵で暗号化したかどうかわからない 同じ鍵 違う鍵
準備 (乱数) (セキュリティ・パラメータ)
暗号スキーム 計算結果が 確率的に決まる • 暗号スキーム =(K, E, D) • 復号によって戻る、戻せないとき0
暗号文の長さ 暗号文の長さ|Ek(x)|は、 • 平文の長さ|x| • セキュリティ・パラメータ のみに依存 (ただし k2K())
無視できる(negligible) • 関数 : N! Rが無視できる: 任意の c>0 に対し Ncが存在し、¸Ncなら ()· -c • 「どんな 1/(多項式) よりも速く減少」 • 例: 無視できない 無視できる
確率 • Ensemble:(文字列集合上の)確率変数の列 • サンプリング • サンプルxに関する事象Eが起こる確率
Ensembleの識別不能性 D x 確率的多項式時間 チューリング機械 (攻撃者) A() 0 or 1 識別不能 ⇔ 出力が1である確率の 差が無視できる D’ x A() 0 or 1
Ensembleの識別不能性 2つのensemble が識別不能である とは、任意の確率的多項式時間攻撃者Aに対し次の関数が無視できることをいう
暗号スキームのセキュリティ • 繰り返しを隠す(repetition-conceiling):2つの暗号文c, c’の平文が同じであるか判定できない • どの鍵を使用したかを隠す(which-key conceiling):2つの暗号文c, c’の鍵が同じであるか判定できない • メッセージの長さを隠す(length-conceiling):暗号文から平文の長さがわからない
正しく暗号化 するオラクル アドバンテージ f A 0 or 1 … Adv= 出力が1である確率の差 何らかの結果を返す オラクル g A … 0 or 1
この繰り返し 正しく暗号化 Type-0 A 異なる鍵 0 or 1 ゴミを暗号化 平文の長さを 区別できるなら Advを大きくできる A 同じ鍵 0 or 1
Type-0 セキュリティ • Type-0: (repetition, which-key, length) 任意の確率的多項式時間の攻撃者Aに対し次が無視できる 入力を暗号化するオラクル 入力を無視して0を暗号化するオラクル
Type-1 A 0 or 1 入力と同じ長さの ゴミを暗号化 使用した鍵を 区別できるなら Advを大きくできる A 0 or 1
Type-1 セキュリティ • Type-1: (repetition, which-key, length) 入力と同じ長さの0の列を暗号化するオラクル
Type-3 正しく暗号化 A 0 or 1 入力と同じ長さの ゴミを暗号化 同じ平文かどうか 区別できるなら Advを大きくできる A 0 or 1
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¬[]}が決まる CONVERT ランダムに(Ki)2K() を選んでおく ) t(K6)
健全性:等価性⇒識別不能性 • 主定理(健全性):Type-0暗号スキームを仮定、暗号の循環が無いとき • 例 循環
定理の証明 (“hybrid technique”の利用)
準備:鍵の名前換え • M, N (MN)の鍵をある条件(次のスライド)を満たすように名前変えして M’, N’とする • 名前変えによってensembleは変わらない • したがって、次を示せばよい
名前換えの条件 • 復号可能な鍵を左から順にJi、それ以外をKi • {… Ki …}Kj, {… {…}Ki …}Kjの出現ではi<j • M, N (MN) の例:
ハイブリッド・パターン M0=pattern(M’)=pattern(N’)=N0から開始して、{…}Kiに相当するを順に元の暗号文に戻す
Mの鍵がJ1, J2,…; K1, K2, …, Kmのとき、 ハイブリッド・パターンの定義 特に、M’ N’より
途中の«Mi¬, «Mi+1¬の組 (または«Ni¬, «Ni+1¬の組) いずれかが識別可能になる 以降のあらすじ(hybrid tech.) «M’¬と«N’¬が識別不能でない (識別可能)と仮定する(背理法) «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から
ギャップの細分化 p4 p3 p2 p1 p0 «M4¬および«M3¬のサンプルに対し、 Aが1を返す確率の差 = q0 q1 q2 q3
細分の中にも大きいギャップがある • 右辺の和の各部分のうち一番大きいものは、 これらの平均値以上である、すなわち • 各に対し上を満たすpi-pi-1(or qi-qi-1)がある、 さらに、無限個のに対し上を満たすものもある
無限回ギャップが大きくなる p4 p3 p2 p1 p0 無限個のに対し ()/(m+n) より大きくなる … = q0 q1 q2 q3 ||=1, 2, 3, 4, 5, …
Type-0との矛盾の導出 • pi-pi-1は次のようなものであった • Aを用いて攻撃者A0を構成、アドバンテージをpi-pi-1を用いて評価