黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp 情報セキュリティ特論(7) 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp.

Slides:



Advertisements
Similar presentations
情報セキュリティ 第3回 現代暗号の基礎数理. 脅威と暗号技術 セキュリティに対する脅威 脅かされる特性 暗号技術 機密性 正真性 認証 否認不可能性 盗聴 (秘密が漏れる) 改竄 (情報が書き換えられる) なりすまし (正しい送信者のふりをする) 否認 (後から私じゃないと言う) 共通鍵暗号 公開鍵暗号.
Advertisements

1 前回の練習問題 F 29 = {1, 2,…, 28} において, g = 11 が生成元であることを確 かめ, F 29 の元とその離散対数との関係を図示せよ. x = 1,..., 28 に対し, g x mod 29 を計算すればよい
効率的に計算可能な 加法的誤りの訂正可能性 安永 憲司 九州先端科学技術研究所 SITA 2012 @ 別府湾ロイヤルホテル
駒澤大学 経営学部 情報セキュリティ B 公開鍵暗号による 認証つきの秘匿通信 ―― 鍵に注目して ――
2001/10/10 PSEC-KEM NTT 小林 鉄太郎 CRYPTREC 2001
2000年 3月 10日 日本電信電話株式会社 三菱電機株式会社
情報工学科 06A2055 平塚 翔太 Hiratsuka Shota
黒澤 馨 (茨城大学) 情報セキュリティ特論(4) 黒澤 馨 (茨城大学) 2017/3/4 confidential.
UNIX Life KMSF M2 saburo.
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
Q q 情報セキュリティ 第6回:2005年5月20日(金) q q.
Generating Functions (前半) B4 堺谷光.
黒澤 馨 (茨城大学) 情報セキュリティ特論(6) 黒澤 馨 (茨城大学) 2017/3/13 confidential.
Reed-Solomon 符号と擬似ランダム性
「まめだくん Ver.1.0」 特徴と利用方法.
共通鍵と公開鍵 暗号のしくみ 情報、数学ハイブリッド版.
Q q 情報セキュリティ 第3回:2007年4月27日(金) q q.
数 学 の か た ち 第3講 暗号を作ろう 早苗 雅史 数学とソフトウエア
暗号技術 ~公開鍵暗号方式の仕組み~ (3週目)
第10回 情報セキュリティ 伊藤 高廣 計算機リテラシーM 第10回 情報セキュリティ 伊藤 高廣
黒澤 馨 (茨城大学) 情報セキュリティ特論(5) 黒澤 馨 (茨城大学)
2001/10/10 PSEC-KEM NTT 小林 鉄太郎 CRYPTREC 2001
Q q 情報セキュリティ 第3回:2005年4月28日(金) q q.
Q q 情報セキュリティ 第3回:2005年4月22日(金) q q.
シャノンのスイッチングゲームにおけるペアリング戦略について
数学のかたち 暗号を作ろう Masashi Sanae.
Q q 情報セキュリティ 第5回:2005年5月13日(金) q q.
Q q 情報セキュリティ 第14回:2005年7月15日(金) q q.
黒澤 馨 (茨城大学) 情報セキュリティ特論(1) 黒澤 馨 (茨城大学) 2018/12/8 confidential.
Q q 情報セキュリティ 第8回:2006年6月9日(金) q q.
Q q 情報セキュリティ 第4回:2007年5月11日(金) q q.
共通暗号方式 共通のキーで暗号化/復号化する方法 例) パスワードつきのZIPを送信して、後からパスワードを送る方法 A さん B さん
情報セキュリティ  第4回 メッセージ認証コード.
第二章 インターネットで やり取りする情報を守る
PGP インターネットで 広く使われている暗号技術
実用的暗号通信ソフトウェア 「まめだくん」の開発 Shiota Laboratory
情報セキュリティ  第11回 デジタル署名.
7.4 Two General Settings D3 杉原堅也.
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
情報セキュリティ  第8回 RSA暗号.
2章 暗号技術 FM15002 友池 絲子.
武藤研究室セキュリティー藩暗号犯メンバー 環境情報学部4年 櫻井 環境情報学部3年 秋本 環境情報学部3年 堀田 環境情報学部2年 卯野木
5.RSA暗号 素因数分解の困難性を利用した暗号.
Extractor D3 川原 純.
Q q 情報セキュリティ 第8回:2005年6月3日(金) q q.
Q q 情報セキュリティ 第7回:2006年6月2日(金) q q.
暗号技術 ~暗号技術の基本原理~ (1週目) 情報工学科  04A1004 石川 真悟.
Q q 情報セキュリティ 第7回:2007年6月1日(金) q q.
Q q 情報セキュリティ 第6回:2007年5月25日(金) q q.
Q q 情報セキュリティ 第4回:2005年5月12日(金) q q.
論文紹介 M. Abadi and P.Rogaway: Reconciling Two Views of Cryptography (The Computational Soundness of Formal Encryption) J. Cryptology (2002) 15:
コミュニケーションと ネットワークを探索する
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
「情報セキュリティ論」 2-4 公開鍵暗号の原理とRSA暗号
代数体上で定義された楕円曲線の 素因数分解への応用
Diffie-Hellman 鍵共有 ElGamal 暗号 楕円曲線暗号,量子コンピュータ
暗号技術 ~JAVAプログラム②~ (6週目)
人工知能特論II 第8回 二宮 崇.
Q q 情報セキュリティ 第5回:2006年5月19日(金) q q.
Q q 情報セキュリティ 第12回:2004年6月25日(金) の補足 q q.
情報工学概論 (アルゴリズムとデータ構造)
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
黒澤 馨 (茨城大学) 情報セキュリティ特論(8) 黒澤 馨 (茨城大学)
Q q 情報セキュリティ 第6回:2005年5月26日(金) q q.
暗号技術・セキュリティ 情報工学科  04A1004 石川 真悟.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
CSS符号を用いた量子鍵配送の安全性についての解析
創造都市研究科 都市情報学 情報基盤研究分野
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
Presentation transcript:

黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp 情報セキュリティ特論(7) 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp

RSA暗号 C=Me mod N C=0のとき、M=0とわかってしまう。 C=1のとき、M=1とわかってしまう。 平文Mのどんな部分情報も   漏れないようにするには?

公開鍵暗号系 鍵生成アルゴリズム G 暗号化アルゴリズム E 復号アルゴリズム D

公開鍵暗号系の安全性 IND-CPA安全性 Chosen Plaintext(平文)Attack IND-CCA安全性 Chosen Ciphertext(暗号文) Attack

IND-CPAを定義するゲーム チャレンジャー 敵 pk (pk,sk)←G m0, m1 b←{0,1} C=E(mb) b’

IND-CPA安全 if |Pr(b’=b)-1/2|<ε チャレンジャー 敵 pk (pk,sk)←G m0, m1 b←{0,1} C=E(mb) b’

IND-CPA安全 if |Pr(b’=b)-1/2|<ε for 全ての多項式時間の敵 チャレンジャー 敵 pk (pk,sk)←G m0, m1 b←{0,1} C=E(mb) b’

ElGamal暗号のIND-CPA安全性 チャレンジャー 敵 g, y x←ランダム y=gx mod p m0, m1 b←{0,1} C=(gr, mbyr) C b’ Pr( b’=b )≃1/2

定理 ElGamal暗号はIND-CPA安全   under DDH仮定 (証明) 演習

RSA≠IND-CPA安全 チャレンジャー 敵の動作 m0=0, m1=1 b←{0,1} C=mbe mod N (N,e) b’=0 if C=0 b’=1 if C=1 Pr( b’=b )=1

Pr(b’=b)=1なので、 |Pr(b’=b)-1/2|=|1-1/2|=1/2≧ε よって、    RSA暗号≠IND-CPA安全

IND-CPA安全なRSA-based暗号 c1=re mod N c2=M + H(r) mod N ただし、Hはハッシュ関数 暗号文 C=(c1, c2)

IND-CPA安全なRSA-based暗号 K=H(r) c1=re mod N c2=M+擬似乱数生成器(K) (One-Time-PAD) 暗号文 C=(c1, c2) 公開鍵暗号でKを暗号化 共通鍵暗号で平文Mを暗号化

IND-CPA安全なRSA-based暗号 c1=re mod N c2=M + H(r) mod N 暗号文 C=(c1, c2)

AES暗号を利用した擬似乱数生成器 Seed 出力 AES AES AES … … AES暗号が擬似ランダム置換と仮定すると、 これは、標準モデルで擬似乱数生成器

ハイブリッド暗号 C= 公開鍵暗号(共通鍵K)      + 共通鍵暗号(K,平文m) 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ

ハイブリッド暗号 C= 公開鍵暗号(共通鍵K) ← KEM + 共通鍵暗号(K,平文m) ← DEM 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ

KEM-DEMフレームワーク CPA安全なKEM   + One-Time-PAD  = IND-CPA安全な   公開鍵暗号(ハイブリッド暗号)

KEM 鍵生成アルゴリズム G 暗号化アルゴリズム E E(pk)=(暗号文 C, 鍵 K) 復号アルゴリズム D D(C, sk)=K

RSA-KEM 公開鍵 (N,e) 暗号化 r ← ランダム 暗号文 C=re mod N 鍵  K=H(r)

KEMのCPA安全性 チャレンジャー 敵 (pk,sk)←G (C, K0) ← E(pk) K1=ランダム b←{0,1} C, Kb Pr( b’=b )~1/2

KEMはCPA安全 If 全ての多項式時間の敵に対し、     |Pr(b’=b)-1/2|<ε

KEMのCPA安全性 in RO 敵 b’ H r1, r2, H(r1), H(r2), pk, C, Kb Pr( b’=b )~1/2

RSA-KEMのCPA安全性 in RO 敵 b’ (N,e), C(=re mod N), K0 =H(r) or K1 =乱数 H r1, r2, H(r1), H(r2), (N,e), C(=re mod N), K0 =H(r) or K1 =乱数

定理 RSA仮定の下で、 RSA-KEMはCPA安全 in the ランダム・オラクル・モデル

補題 Pr(b’=b)-1/2=ε (non-negligible)  と仮定すると  Pr(敵がrをHオラクルに質問する)≧2ε

証明 X=敵がrをHオラクルに質問する事象 Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬X)

証明 X=敵がrをHオラクルに質問する事象 Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬X) =Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr(¬ X)

証明 X=敵がrをHオラクルに質問する事象 Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬X) =Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr(¬ X) ≦Pr(X) + 1/2 Pr(¬ X)

証明 X=敵がrをHオラクルに質問する事象 Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬X) =Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr(¬ X) ≦Pr(X) + 1/2 Pr(¬ X) =Pr(X) + 1/2 (1-Pr(X))

証明 X=敵がrをHオラクルに質問する事象 Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬X) =Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr(¬ X) ≦Pr(X) + 1/2 Pr(¬ X) =Pr(X) + 1/2 (1-Pr(X)) =1/2+1/2Pr(X)

証明 X=敵がrをHオラクルに質問する事象 Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬X) =Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr(¬ X) ≦Pr(X) + 1/2 Pr(¬ X) =Pr(X) + 1/2 (1-Pr(X)) =1/2+1/2Pr(X) ゆえに、1/2Pr(X)≧ Pr(b’=b)-1/2=ε

補題 Pr(b’=b)-1/2=ε (non-negligible)  と仮定すると  Pr(敵がrをHオラクルに質問する)≧2ε (証明完了)

RSA-KEMのCPA安全性の証明 敵 b’ (N, e), C=re mod N (N, e), C, b←{0,1}、Kb =乱数 H r1, r2, H(r1), H(r2), b’ (N, e), C=re mod N (N, e), C, b←{0,1}、Kb =乱数 r

(N, e), C=re mod N (N, e), C, Kb =乱数 補題より どこかでr H 敵

(N, e), C=re mod N (N, e), C, Kb =乱数 補題より どこかでr H 敵 r if C=re mod N

(N, e), C=re mod N (N, e), C, Kb =乱数 r1 H 敵 r=r1 if C=r1e mod N

(N, e), C=re mod N (N, e), C, Kb =乱数 r1 H 敵 C≠r1e mod Nのとき H(r1)=乱数

(N, e), C=re mod N (N, e), C, Kb =乱数 r2 H 敵 r=r2 if C=r2e mod N

定理 RSA仮定の下で、 RSA-KEMはCPA安全 in the RO モデル (証明完了)

定理 RSA仮定の下で、以下の暗号系はCPA安全 in the RO モデル r←ランダム、K=H(r) c1=re mod N c2=M+擬似乱数生成器(K) (One-Time-PAD) 暗号文 C=(c1, c2) RSA-KEM

証明 CPA安全なKEM(公開鍵暗号) + One-Time-PAD = IND-CPA安全な公開鍵暗号 RSA-KEMはCPA安全、を証明した。                     (証明終)

ハイブリッド暗号の効能 IND-CPA (IND-CCA) 安全な公開鍵暗号 を簡単に作れる 平文は、任意の長さのビット列でよい。

ハイブリッド暗号に関する定理 CPA安全なKEM(公開鍵暗号)   + One-Time-PAD  = IND-CPA安全な公開鍵暗号 (証明)

ハイブリッド暗号のIND-CPA チャレンジャー 敵 (pk,sk)←G m0, m1 b←{0,1} (c1*, K*)←KEM(pk) c2*=mb+擬似乱数(K*) C*=(c1*, c2*) b’

Game 0 チャレンジャー 敵 (pk,sk)←G m0, m1 b←{0,1} (c1*, K* )←KEM(pk) c2*=mb+擬似乱数(seed=K* ) C*=(c1*, c2*) b’

Game 1 チャレンジャー 敵 (pk,sk)←G m0, m1 b←{0,1} (c1*, K*)←KEM(pk) c2*=mb+擬似乱数(seed=乱数) C*=(c1*, c2*) b’

補題1 ハイブリッド暗号において Pr(b’=b in Game 0)~ Pr(b’=b in Game 1)  if KEM is CPA 安全 (証明)   ハイブリッド暗号の敵を基に、   KEMの敵を以下のように構成する。

KEMの敵 KEMの チャレンジャー ハイブリッド暗号の敵 (pk,sk)←G (c1*, K0)←KEM K1←ランダム d←{0,1} c1*, Kd m0, m1 b←{0,1} c2*= mb + 擬似乱数(seed=Kd) C*=(c1*, c2*) b’ d’ =1 if b’=b

d=0のとき KEMの敵 KEMの チャレンジャー ハイブリッド暗号の敵 Game 0 d←0 (pk,sk)←G (c1*, K0)←KEM K1←ランダム d←0 c1*, K0 m0, m1 b←{0,1} c2*= mb + 擬似乱数(seed=K0) C*=(c1*, c2*) b’ d’ =1 if b’=b

d=1のとき KEMの敵 KEMの チャレンジャー ハイブリッド暗号の敵 Game 1 d←1 (pk,sk)←G (c1*, K0)←KEM K1←ランダム d←1 c1*, K1 m0, m1 b←{0,1} c2*= mb + 擬似乱数(seed=K1) C*=(c1*, c2*) b’ d’ =1 if b’=b

d’=1 if b’=b なので、 Pr(d’=1 when d=0)=Pr(b’=b in Game 0)

証明 Pr(d’=1 when d=0)=Pr(b’=b in Game 0) KEMの敵は、d=0 or 1を区別できないので、 Pr(d’=1 when d=0)~ Pr(d’=1 when d=1) よって、 Pr(b’=b in Game 0) ~ Pr(b’=b in Game 1)

補題1 ハイブリッド暗号において Pr(b’=b in Game 0)~ Pr(b’=b in Game 1)  if KEM is CPA 安全 (証明完了)

補題2 Pr(b’=b in Game 1)~1/2

Game 1 チャレンジャー 敵 (pk,sk)←G m0, m1 b←{0,1} (c1*, K*)←KEM(pk) c2*=mb+擬似乱数(seed=乱数) C*=(c1*, c2*) b’

Game 1 チャレンジャー 敵 (pk,sk)←G m0, m1 b←{0,1} (c1*, K*)←KEM(pk) c2*=mb+擬似乱数(seed=乱数) C*=(c1*, c2*) c2*は、c1*とは独立なone-time-pad なので、 Pr(b’=b)=1/2 b’

補題2 Pr(b’=b in Game 1)~1/2 (証明完了)

ハイブリッド暗号に関する定理 CPA安全なKEM(公開鍵暗号) + One-Time-PAD = IND-CPA安全な公開鍵暗号 (証明)   補題1、補題2より。

公開鍵暗号系の安全性 IND-CPA安全性 Chosen Plaintext(平文)Attack IND-CCA安全性 Chosen Ciphertext(暗号文) Attack

公開鍵暗号のIND-CCA安全性 チャレンジャー 復号オラクル 敵 (pk,sk)←G m0, m1 b←{0,1} C=E(mb) pk 復号してもらえる b’

KEMのCCA安全性 チャレンジャー (pk,sk)←G 敵 C, Kb 復号オラクル (C, K0) ← E(pk) K1=ランダム 復号してもらえる 復号オラクル (C, K0) ← E(pk) K1=ランダム b←{0,1}

DEM(共通鍵暗号)のCCA安全性 復号オラクル チャレンジャー 敵 m0, m1 K←ランダム b←{0,1} C=EK(mb) 復号してもらえる b’ CCA安全 if |Pr(b’=b)-1/2|<ε

KEM-DEMフレームワーク CCA安全なKEM(公開鍵暗号) + CCA安全なDEM(共通鍵暗号) = IND-CCA安全な公開鍵暗号 公開鍵暗号の暗号文 C=KEM(共通鍵K)+DEM(共通鍵K,m)

定理 RSA仮定の下で、 RSA-KEMはCCA安全 In the RO モデル

CCA安全なDEMの構成法 K → → 暗号文 C=(E, Tag) 擬似乱数生成器 敵は、MACオラクルに1回だけ質問して偽造する

IND-CCA安全なハイブリッド暗号 r ← ランダム 共通鍵 K=H(r) 暗号文 C=(φ, χ) χ=(E, Tag) 公開鍵 (N,e)        r ← ランダム 共通鍵 K=H(r) 暗号文 C=(φ, χ) KEMの暗号文 χ=(E, Tag) DEMの暗号文 (鍵K) RSA仮定の下で、IND-CCA安全 in the RO model

ROモデル IND-CPA安全な ハイブリッド暗号の 構成法 IND-CCA安全な RSA-KEM + one-time-pad + MAC

ROなしで、IND-CPAな暗号 ElGamal暗号 Paillier暗号 DDH仮定 N次剰余仮定

N次剰余仮定 xN = a+bN mod N2 としたとき、 (a,b) と (a, 乱数)は   computationally indistinguishable ただし、   x←{1,2,…, N-1}

Paillier暗号 公開鍵 N=pq 秘密鍵 p, q 暗号化 x ←{1,2,…, N-1} xN=a+bN mod N2 C=(a, b+m mod N)

Paillier暗号 暗号化 x ←{1,2,…, N-1} xN=a+bN mod N2 C=(a, b+m mod N) 復号    xN =a mod N より、x=ad mod N xN=a+bN mod N2  により、bを求める

定理 Paillier暗号は、N次剰余仮定の下で  IND-CPA安全

N次剰余仮定 xN = a+bN mod N2 としたとき、 (a,b) と (a, 乱数)は   computationally indistinguishable とは、どういう意味か?

確率変数 XとY Pr(X=a) Pr(Y=a) a

Statistically distance |X-Y| Pr(X=a) Pr(Y=a) a

X and Y are statistically indistinguishable if |X-Y|<ε Pr(X=a) Pr(Y=a) a

補題 この面積=この面積 Pr(X=a) Pr(Y=a) a

証明 Pr(X=a) C=1-A B=1-A Pr(Y=a) A a

系 |X-Y| = 2×この面積 Pr(X=a) Pr(Y=a) a

Distinguisher D X 0 or 1 Px = Pr(D=1)

例(1) PX = Pr(D=1) Pr(X=a) Pr(Y=a) a D=1 D=0

例(1) PY = Pr(D=1) Pr(X=a) Pr(Y=a) a D=1 D=0

例 (1) 2×(PX-PY) = |X-Y| Pr(X=a) Pr(Y=a) a

例(2) PY = Pr(D=1) Pr(X=a) Pr(Y=a) a D=0 D=1

例(2) Px = Pr(D=1) Pr(X=a) Pr(Y=a) a D=0 D=1

例(2) 2×(PX-PY) < |X-Y| Pr(X=a) Pr(Y=a) a D=0 D=1

定理 2×maxD |PX-PY| = |X-Y| Dは、指数時間アルゴリズムでもよい。

定義 X and Y are computationally indistinguishable if maxD |PX-PY| < ε ただし、Dは多項式時間アルゴリズム

DDH仮定 (g,ga,gb,gab)と(g,ga,gb,gc)は computationally indistinguishable ただし、   a,b,cはランダム

Distinguisher Px = Pr(D=1) X= (g,ga,gb,gab) PY = Pr(D=1) Y= (g,ga,gb,gc) PY = Pr(D=1) maxD |PX-PY| < ε ただし、Dは多項式時間アルゴリズム

N次剰余仮定 xN = a+bN mod N2 としたとき、 (a,b) と (a, 乱数)は   computationally indistinguishable ただし、   x←{1,2,…, N-1}

Paillier暗号 公開鍵 N=pq 秘密鍵 p, q 暗号化 x ←{1,2,…, N-1} xN=a+bN mod N2 C=(a, b+m mod N)

定理 Paillier暗号は、N次剰余仮定の下で  IND-CPA安全

証明 暗号化 x ←{1,2,…, N-1} xN=a+bN mod N2 C=(a, b+m mod N) ≒         ≒      (a, 乱数+m mod N) one-time pad

演習 ElGamal暗号のIND-CPA安全性を破る敵Aが存在したと仮定すると、 DDH仮定を破るdistinguisher D が存在することを示せ。 (ヒント)  Aをサブルーチンとして使い、Dを構成せよ。

ElGamal暗号 公開鍵: p, q, g, y(=gx mod p) 秘密鍵: x 平文: m 暗号化: r ← zp-1 E(m)=(gr, myr) 2018/9/17 confidential

直感的な証明 DDH仮定より (g,y,gr,yr)と(g,y,gr,gz)は多項式時間で区別不可能 ただし、zは乱数 暗号文: E(m) = (gr, m・yr)       ~(gr, m・gz )    m×gz=m×乱数 → one-time pad mに関する情報は、もれていない 2018/9/17 confidential

ElGamal暗号のIND-CPA安全性 チャレンジャー 敵 g, y x←ランダム y=gx mod p m0, m1 b←{0,1} C=(gr, mbyr) C b’ Pr( b’=b )≃1/2