講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf ·...

43
講義プラン 入門(本日) 暗号入門 暗号化スキームとプロトコルの安全性 ハイブリッド論法 Abadi-Rogaway ゲームとその形式化 --- 2記号論的アプローチ --- 2Mapping Lemma --- 2UC --- 2その他

Upload: others

Post on 31-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

講義プラン• 入門(本日)

• 暗号入門

• 暗号化スキームとプロトコルの安全性

• ハイブリッド論法

• Abadi-Rogaway

• ゲームとその形式化 --- 2回

• 記号論的アプローチ --- 2回

• Mapping Lemma --- 2回

• UC --- 2回

• その他

Page 2: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

• 入門

• 暗号入門

• 暗号化スキームとプロトコルの安全性

• ハイブリッド論法

• Abadi-Rogaway

• Mapping Lemma

• 記号論的アプローチ(ストランド空間・PCL)

• ゲームとその形式化(確率Hoare・Cryptoverif)

• その他(UC・署名・ハッシュ・ゼロ知識証明・・・)

講義プラン(改訂後)

Page 3: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

参考文献

• 萩谷昌己:

フォーマルメソッドによる暗号安全性,

情報処理, Vol.49, No.5, 2008, pp.537-543

• 萩谷昌己:

数理的技法による情報セキュリティの検証,

応用数理, Vol.17, No.4, 2007, pp.8-15

Page 4: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

SSL2.0のハンドシェイク

(アリス・ボブ記法)Mitchell たちによる定式化

Page 5: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

サーバクライアント

C, SuiteC, NC

SuiteS, NS, signCA{S, KS+}

{Secret C}KS+

SuiteC と SuiteS とから

以後用いる暗号スイーツを決定

Page 6: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

サーバクライアント

C, SuiteC, NC

SuiteS, NS, signCA{S, KS+}

{Secret C}KS+

SuiteC と SuiteS とから

以後用いる暗号スイーツを決定

クライアント名

クライアントが指定した暗号スイーツ クライアントが作ったノンスnonce --- number once

サーバが作ったノンス

サーバの公開鍵の証明書

サーバが指定した暗号スイーツ

クライアントが作った秘密鍵をサーバの公開鍵で暗号化

Page 7: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

サーバクライアント

C, SuiteC, NC

SuiteI, NS, signCA{S, KS+}

{SecretC}KS+

以後用いる暗号スイーツはSuiteI に決定

C, SuiteI, NC

SuiteS, NS, signCA{S, KS+}

{SecretC}KS+

攻撃者

Page 8: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

Dolev-Yaoモデル

Dolev-Yaoモデル記号論的解析SSL3.0では解消

Page 9: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

SSL3.0のハンドシェイク

Page 10: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

SSL3.0のハンドシェイク

クライアントが指定したSSLバージョン

サーバが指定したSSLバージョン

クライアントの検証鍵の証明書

それまでにやりとりされたメッセージ全体のハッシュ

Page 11: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

Million message attack

Page 12: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

サーバクライアント

{SecretC}KS+ の代わりの暗号文

PCKS#1のフォーマット00 | 02 | padding string | 00 | 03 | 00 | premastersecret

に適合しているかどうか

Page 13: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

• Dolev-Yaoモデル

• プロトコルの記述

– CSP

– π計算

• モデル検査

• 定理証明

Page 14: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

• 完璧に安全な暗号を仮定。

– Dolev-Yaoモデル

• メッセージを項によって表現(メッセージ代数)

• フォーマルメソッド(数理的技法もしくは

形式的手法)の駆使

– モデル化

• 状態遷移系

• プロセス計算(汎用・専用)

• ストランド空間

– 自動検証

• モデル検査系

• 専用の検証系

記号論的アプローチ

Page 15: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

記号論的アプローチの事例

• Needham-Schroeder の公開鍵暗号による

認証プロトコル(1978)の本質的部分

(アリス・ボブ記法)

A → B : {A, NA}KB

B → A : {NA, NB}KA

A → B : {NB}KB

Page 16: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

{A, NA}KB{アリス, アリスの秘密}ボブの公開鍵

アリス

{NA, NB}KA

{アリスの秘密, ボブの秘密}アリスの公開鍵

このとき、アリスの秘密は、アリスとボブしか知り得ない。

アリスの秘密が帰って来たということは、ボブが最初のメッセージを受信したはず。

{NB}KB

乱数・ノンス(作った人しか知り得ない)

Page 17: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

{A, NA}KB

{アリス, アリスの秘密}ボブの公開鍵

ボブ

{NA, NB}KA

{アリスの秘密, ボブの秘密}アリスの公開鍵

このとき、ボブの秘密は、アリスとボブしか知り得ない?

{NB}KB

同様

Page 18: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

Man-in-the-Middle攻撃

• Lowe が20年近くたってから発見(1995)– プロトコルの厳格なモデル化が一つの理由

{A, NA}KC

{NA, NB}KA

{NB}KC

{A, NA}KB

{NA, NB}KA

{NB}KB

チャーリー

Page 19: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

修正されたプロトコル

• Needham-Schroeder-Lowe

A → B : {A, NA}KB

B → A : {B, NA, NB}KA

A → B : {NB}KB

Page 20: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

ストランド空間モデル

• ストランド空間モデル

– Guttman, et al.(1998)

– ストランド(個々の主体の実行トレース)

– バンドル (因果関係について閉じたストランドの集合)

– 後ろ向き推論 によるバンドルの網羅

• 攻撃者のストランド

攻撃者によるあらゆる攻撃を想定。

Page 21: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

アリス

ボブ

攻撃者(チャーリー)

{NA, A}KC

{NA, A}KB

{NA, NB}KA

{NB}KC

{NB}KB

Page 22: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

ストランド空間モデルによる検証

• agreement の検証

ある主体のストランドを仮定して、

それを含むバンドルを網羅し、

対応する主体のストランドが必ずバンドルに

含まれることを示す。

• 認証性(authenticity)

• 相互認証性(mutual authenticity)

Page 23: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

ボブ

{NA, A}KB

{B, NA, NB}KA

{NB}KB

Page 24: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

アリス

ボブ

{NA, A}KB

{NA, A}KB

{B, NA, NB}KA

{NB}KB

{NB}KB

{B, NA, NB}KA

Page 25: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

• 計算論的アプローチ

• 記号論的と計算論的の融合

– 直接的方法

– 間接的方法

Page 26: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

計算論的アプローチ

• 暗号の脆弱性を考慮。

– IND-CPA

– IND-CCA

• 確率的多項式時間チューリング機械

– 攻撃者のモデル化

– 現実的な解析

• guessing attack

• 煩雑

– 機械化も容易でない。

– 多くの証明間違いの報告

Page 27: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

計算論的な安全性

• ゲーム

• 汎用的結合可能性

Page 28: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

元締め公開鍵 pk と

秘密鍵 sk を生成二つのメッセージ

m0 と m1 を生成 0 か 1 をランダムに

選んで b とする

mb を pkで暗号化した

結果を c とする

c 以外のメッセージ

c′ を送る

攻撃者

c′ を復号した結果

m′ を送る

b の値を推測した結果を b′ とする b = b′ ?

pk

m0, m1

c

c′

m′

IND-CCA2 ゲーム

Page 29: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

元締め公開鍵 pk と

秘密鍵 sk を生成二つのメッセージ

m0 と m1 を生成 0 か 1 をランダムに

選んで b とする

mb を pkで暗号化した

結果を c とする

c 以外のメッセージ

c′ を送る

攻撃者

c′ を復号した結果

m′ を送る

b の値を推測した結果を b′ とする b = b′ ?

pk

m0, m1

c

c′

m′

IND-CCA2 ゲーム

正確には、m0 と m1 を

生成する前にも、復号を行うことができる。

Page 30: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

PKCS#1

Page 31: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

元締め

公開鍵 pk と

秘密鍵 sk を生成二つのメッセージ

m0 と m1 を生成 0 か 1 をランダムに

選んで b とする

mb を pkで暗号化した

結果を ψ とする

攻撃者

b の値を推測した結果を b′ とする

b = b′ ?

pk

m0, m1

ψ

IND-CPA ゲーム

Page 32: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

元締め攻撃者

b = b′ ?

pk

m0, m1

ψ

(pk, sk) ⇐ KeyGen( )r ⇐ R,

(m0, m1) ← A(r, pk)b ⇐ {0, 1},ψ ⇐ E(pk, mb)

b′ ← A(r, pk, ψ)

IND-CPA ゲーム

ランダム生成

Page 33: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

IND-CPA ゲーム

• 例:公開鍵暗号

• 元締め: (pk, sk) ⇐ KeyGen( )• 攻撃者: r ⇐ R, (m0, m1) ← A(r, pk)• 元締め: b ⇐ {0, 1}, ψ ⇐ E(pk, mb) • 攻撃者: b′ ← A(r, pk, ψ)

| Pr[b=b′] − 1/2 | : negligible?

Page 34: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

ElGamal Encryption

• プロトコル

鍵生成: x ⇐ Zq, α ← γx, pk ← α, sk ← x暗号化: y ⇐ Zq, β ← γy, δ ← αy, ζ ← δ·m, ψ ← (β, ζ)復号: m ← ζ/βx

• IND-CPA ゲーム

x ⇐ Zq, α ← γx

r ⇐ R, (m0, m1) ← A(r, α)b ⇐ {0, 1}, y ⇐ Zq, β ← γy, δ ← αy, ζ ← δ·mb

b′ ← A(r, α, β, ζ)

Page 35: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

ゲーム変換

• DDH-advantage

| Pr[D(γx, γy, γxy) | x, y ⇐ Zq] −

Pr[D(γx, γy, γz) | x, y, z ⇐ Zq] |(D : 多項式時間述語)

• ElGamal Encryption ゲームの成功確率を

DDH-advantage に変換。

• Blanchet-Pointcheval(2006)– プロセス計算の中でゲーム変換を形式化。

Page 36: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

融合の試み• 世界的な動向

• IEEE Computer Security Foundations Workshop

• Theory of Cryptography Conference

• ICALP Track C

• Formal and Computational Cryptography

• 間接的方法

– 記号論的推論に計算論的解釈を付与。

「記号論的に正しければ計算論的に正しい。」

– 必然的に暗号スキームを境界として上のレベル

• 直接的方法

– 計算論的解析をそのまま形式化。自動検証

– 主として下のレベル

Page 37: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

間接的方法

• 受動的な識別可能性

• 能動的な攻撃

• 汎用的結合可能性に向かって

Page 38: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

受動的な識別可能性

• Abadi-Rogaway(2000, 2002)– 間接的方法のパイオニア

– 対称鍵

• Dolev-Yaoモデルに基づいて、

メッセージを表す項の間の等価性を定義。

(K1, ({m1}K1, {m2}K2}))≈ (K1, ({m1}K1, {m3}K2}))≈ (K1, ({m4}K1, {m3}K2}))

見えない部分は等価

Page 39: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

等価⇒識別不能

• m1 ≈ m2 ならば、

任意の確率的多項式時間述語 D に対して、

| Pr[D(x) | x∈[[m1]]η] − Pr[D(x) | x∈[[m2]]η] |は security parameter η に関して negligible

• 根底にある暗号の type-0 安全性に帰着。

– ゲーム変換

Page 40: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

能動的な攻撃

• Micciancio-Warinschi(2004)

• 例:Needham-Schroeder-Lowe

• 相互認証性(mutual authentication)

イニシエータにおいても

レスポンダにおいても agreement が成立。

• 記号論的に相互認証性が成り立つならば、

計算論的にも相互認証性が成り立つ。

– 相互認証性が成り立たない確率は negligible

– 能動的な攻撃も含まれる。

Page 41: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

Mapping Lemma

• negligible な確率を除いて、

計算論的なトレース(実行過程)には、

記号論的なトレースが対応する。

– 記号論的なトレースに対応しないような

計算論的なトレースの確率は negligible

– 例えば guessing attack が成功する可能性は

negligible

• IND-CCA2 を仮定。

– 公開鍵暗号

Page 42: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

直接的方法

• ゲーム変換の形式化

• ゲーム変換の自動化

Page 43: 講義プランhagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ango/intro.pdf · サーバが指定したSSLバージョン . クライアントの検証鍵の証明書. それまでにやりとりされた

講義プラン• 入門(本日)

• 暗号入門

• 暗号化スキームとプロトコルの安全性

• ハイブリッド論法

• Abadi-Rogaway

• ゲームとその形式化 --- 2回

• 記号論的アプローチ --- 2回

• Mapping Lemma --- 2回

• UC --- 2回

• その他