スライド 1

Similar documents
<4D F736F F F696E74202D2088C38D86979D985F82D682CC8FB591D22E >

Microsoft PowerPoint pptx

Microsoft PowerPoint - kyoto

チェビシェフ多項式の2変数への拡張と公開鍵暗号(ElGamal暗号)への応用

2006

情報セキュリティ 第 9 回 :2007 年 6 月 15 日 ( 金 )

Microsoft PowerPoint pptx

Microsoft PowerPoint pptx

Microsoft PowerPoint - qcomp.ppt [互換モード]

混沌系工学特論 #5

暗号方式委員会報告(CRYPTRECシンポジウム2012)

IPsec徹底入門

An Automated Proof of Equivalence on Quantum Cryptographic Protocols

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt [互換モード]


CLEFIA_ISEC発表

日本内科学会雑誌第98巻第4号

日本内科学会雑誌第97巻第7号

Microsoft PowerPoint - IPsec徹底入門.ppt

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ

今後の予定 第 10 回 :6 月 22 日 暗号化ソフトウェア :SSL,SSH 第 11 回 :6 月 29 日 サーバセキュリティ 第 12 回 :7 月 6 日 理論 : 計算論, 暗号プロトコル 第 13 回 :7 月 13 日 企業 組織のセキュリティ :ISMS, 個人情報保護法 第

Anonymous IPsec with Plug and Play

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると

Microsoft PowerPoint - 13approx.pptx


Microsoft PowerPoint - info09b.ppt

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

Microsoft PowerPoint - sakurada3.pptx

PowerPoint プレゼンテーション

Microsoft PowerPoint - w5.pptx

Microsoft PowerPoint - 13.ppt [互換モード]

ボルツマンマシンの高速化

Probit , Mixed logit

2011年度 大阪大・理系数学

重要例題113

第86回日本感染症学会総会学術集会後抄録(I)

Microsoft PowerPoint - H22制御工学I-10回.ppt

情報量と符号化

DNSSECの基礎概要

<4D F736F F F696E74202D2091E6824F82538FCD8CEB82E88C9F8F6F814592F990B382CC8CB4979D82BB82CC82505F D E95848D8682CC90B69

C02.pdf

Microsoft PowerPoint pptx

AirStationPro初期設定

様々なミクロ計量モデル†

Ł\”ƒ-2005

第90回日本感染症学会学術講演会抄録(I)

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

PowerPoint プレゼンテーション

ii 3.,. 4. F. (), ,,. 8.,. 1. (75% ) (25% ) =9 7, =9 8 (. ). 1.,, (). 3.,. 1. ( ).,.,.,.,.,. ( ) (1 2 )., ( ), 0. 2., 1., 0,.

DNSSEC の仕組みと現状 平成 22 年 11 月 DNSSEC ジャパン

公開鍵暗号技術の最新動向について

日本内科学会雑誌第102巻第4号

スライド タイトルなし

RSA-lecture-2015.pptx

構造化プログラミングと データ抽象

Microsoft PowerPoint ppt

cpvp_PKM_ProVerif

Microsoft PowerPoint - 6-盛合--日文.ppt

<4D F736F F D208C51985F82CD82B682DF82CC88EA95E A>

O1-1 O1-2 O1-3 O1-4 O1-5 O1-6

2019 年 6 月 4 日演習問題 I α, β > 0, A > 0 を定数として Cobb-Douglas 型関数 Y = F (K, L) = AK α L β (5) と定義します. (1) F KK, F KL, F LK, F LL を求めましょう. (2) 第 1 象限のすべての点

放射線専門医認定試験(2009・20回)/HOHS‐05(基礎二次)

プログラム

Microsoft PowerPoint - mp11-06.pptx


ASF-01

DVIOUT-SS_Ma

経済数学演習問題 2018 年 5 月 29 日 I a, b, c R n に対して a + b + c 2 = a 2 + b 2 + c 2 + 2( a, b) + 2( b, c) + 2( a, c) が成立することを示しましょう.( 線型代数学 教科書 13 ページ 演習 1.17)

cpvp_PKMv2_ProVerif

スライド 1

Symmetric-Key encryption (AES) fun sencrypt(bitstring, symkey): bitstring. reduc forall x: bitstring, k: symkey; sdecrypt(sencrypt(x, k), k) = x. Key

ビジネス統計 統計基礎とエクセル分析 正誤表

Microsoft Word - 補論3.2

(Requirements in communication) (efficiently) (Information Theory) (certainly) (Coding Theory) (safely) (Cryptography) I 1

ProVerifによる暗号プロトコルの形式的検証

Microsoft PowerPoint ppt

ii 2. F. ( ), ,,. 5. G., L., D. ( ) ( ), 2005.,. 6.,,. 7.,. 8. ( ), , (20 ). 1. (75% ) (25% ). 60.,. 2. =8 5, =8 4 (. 1.) 1.,,

融合規則 ( もっとも簡単な形, 選言的三段論法 ) ll mm ll mm これについては (ll mm) mmが推論の前提部になり mmであるから mmは常に偽となることがわかり ll mmはllと等しくなることがわかる 機械的には 分配則より (ll mm) mm (ll mm) 0 ll m

memo

PowerPoint プレゼンテーション

構造化プログラミングと データ抽象


義する. g g ( A) = Pr g F ; A Pr g P ; A rpr Adv q この rpr-advatage が大きいほど アルゴリズム A の識別能力が高いことを意味する. なお A の出力は または なので A は g がランダム関数である証拠 あるは g がランダム置換である

暗号モジュール試験及び認証制度 の動向

データ構造

BitcoinでCTF Bitcoin based CTF

n 2 + π2 6 x [10 n x] x = lim n 10 n n 10 k x 1.1. a 1, a 2,, a n, (a n ) n=1 {a n } n=1 1.2 ( ). {a n } n=1 Q ε > 0 N N m, n N a m

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A

<4D F736F F F696E74202D208CA48B868FD089EE288FDA82B582A294C5292E B8CDD8AB B83685D>

目次 1 概要 モジュール概要 暗号モジュールの仕様 暗号境界 物理的暗号境界 論理的暗号境界 動作モードとアルゴリズム ポートとインタフェース 暗号モジュール

航空機の運動方程式

Microsoft PowerPoint - ad11-09.pptx

さくらの個別指導 ( さくら教育研究所 ) 1 φ = φ 1 : φ [ ] a [ ] 1 a : b a b b(a + b) b a 2 a 2 = b(a + b). b 2 ( a b ) 2 = a b a/b X 2 X 1 = 0 a/b > 0 2 a

プログラム

ビットコインとは ビットコインは仮想通貨 1 円やドルは 国家単位で運営されている通貨ビットコインは世界中で利用できる次世代の通貨を目指したもの 2オンラインゲームや特定のWebサイトでのみ使える仮想通貨は多いビットコインは 円やドルと同じく 広範な経済活動での利用を目指したもの 3 電子マネーは

2,., ,. 8.,,,..,.,, ,....,..,... 4.,..

<8D828D5A838A817C A77425F91E6318FCD2E6D6364>

スライド 1

論理と計算(2)

Transcription:

暗号入門

教科書 参考書 Oded Goldreich: Foundations of Cryptography, Volume I Basic Tools, Cambridge, 2001 Oded Goldreich: Foundations of Cryptography, Volume II Basic Applications, Cambridge, 2004 J. A. ブーフマン著, 林芳樹訳 : 暗号理論入門, 原著第 3 版, 暗号アルゴリズム, 署名と認証, その数学的基礎, Springer, シュプリンガー ジャパン, 2007

あらすじ 暗号化スキーム 定義 Private-Key vs. Public-Key ブロック暗号 対称鍵暗号 DES, AES, 疑似乱数 公開鍵暗号 RSA, 落し戸付き置換, ElGamal 公開鍵暗号を使ったプロトコル Needham-Schroeder 公開鍵認証プロトコル 署名スキーム ハッシュ関数

暗号化スキーム 暗号化スキームとは 確率的多項式時間アルゴリズムの三つ組 (G, E, D) で 以下の二つの条件を満たすもののことである 1 n が入力されたとき 鍵生成アルゴリズム G は ビット列の対を返す G が返した任意の対 (e, d) と任意の α {0,1} * に対して 暗号化アルゴリズム E と 復号アルゴリズム D は 以下の等式を満たす Pr[D(d, E(e, α))=α] = 1 ただし 確率はアルゴリズム D と E の内部的なコイン投げに従う n はセキュリティ パラメタ

暗号化スキーム 暗号化スキームとは 確率的多項式時間アルゴリズムの三つ組 (G, E, D) で 以下の二つの条件を満たすもののことである 1 n が入力されたとき 鍵生成アルゴリズム G は ビット列の対を返す G が返した任意の対 (e, d) と任意の α {0,1} * に対して 暗号化アルゴリズム E と 復号アルゴリズム D は 以下の等式を満たす Pr[D d (E e (α))=α] = 1 ただし 確率はアルゴリズム D と E の内部的なコイン投げに従う n はセキュリティ パラメタ

確率的多項式時間アルゴリズム ある多項式 p(n) が存在して 入力の大きさが n であるとき たかだか p(n) ステップで終了する ( 多項式時間 ) コイン ( 乱数 ) を持っていて コイン投げに従って次の動作を決めることができる ( 確率的 ) より具体的には 確率的多項式時間チューリング機械によって実現される 1 n (1 の n 個の並び ) は チューリング機械へのセキュリティ パラメタの入力を表す

セキュリティ パラメタ 暗号の強さを決めるパラメタ n とか η たとえば 鍵の長さ ( ビット数 ) 鍵の空間は その長さに従って 指数的に大きくなる 暗号への攻撃は セキュリティ パラメタが大きくなっても その多項式の時間に限定されていると仮定する 指数時間を許せば 鍵をすべて試せてしまう

Private-Key vs. Public-Key Private-key --- 秘密鍵 個別鍵 共通鍵 Public-key --- 公開鍵 暗号化スキームの定義に両者の違いはない 両者の違いは 各種の安全性定義の違いとなって現れる ただし e = d の場合は必然的に private-key となる この場合 暗号化スキームは symmetric( 対称鍵 ) という

Private-Key 平文 E 暗号文 平文 x D x k 送信者の保護された領域 攻撃者 (adversary) k 受信者の保護された領域

Public-Key 平文 E 暗号文 平文 x D x e 送信者の保護された領域 e 攻撃者 (adversary) e d 受信者の保護された領域

ブロック暗号 ブロック暗号とは 確率的多項式時間アルゴリズムの三つ組 (G, E, D) で 以下の二つの条件を満たすもののことである 1 n が入力されたとき 鍵生成アルゴリズム G は ビット列の対を返す ブロック長と呼ばれる多項式有界関数 l : N N が存在して G が返した任意の対 (e, d) と任意の α {0,1} l (n) に対して 暗号化アルゴリズム E と 復号アルゴリズム D は 以下の等式を満たす Pr[D d (E e (α))=α] = 1 典型的には l(n) = n もしくは l(n) = 1

ブロック暗号 ブロック暗号とは 確率的多項式時間アルゴリズムの三つ組 (G, E, D) で 以下の二つの条件を満たすもののことである 1 n が入力されたとき 鍵生成アルゴリズム G は ビット列の対を返す ブロック長と呼ばれる多項式有界関数 l : N N が存在して G が返した任意の対 (e, d) と任意の α {0,1} l (n) に対して 暗号化アルゴリズム E と 復号アルゴリズム D は 以下の等式を満たす 暗号化スキームでは Pr[D d (E e (α))=α] = 1 α {0,1} * 典型的には l(n) = n もしくは l(n) = 1

ブロック暗号から暗号化スキームへ ブロック暗号 (G, E, D) から暗号化スキーム (G, E, D ) を構成する G は G に等しい 暗号化は メッセージ α を長さ l(n) のブロック α 1,, α t に分解し ( 最後のブロックには余白を埋めて ) E e (α) = ( α, E e (α 1 ),, E e (α t )) 復号は 暗号文 (m, β 1,, β t ) が与えられたとき α i = D d (β i ) として 連結した結果 α 1 α t の最初の m ビットを返す

対称鍵のブロック暗号の例 アフィン線形ブロック暗号 ヴィジュネル暗号 ヒル暗号 置換暗号 --- ビット位置の置換 DES Data Encryption Standard Feistel 暗号の一種 AES Advanced Encryption Standard Rijmen と Daemen(Rijndael ) 乱数化していない

DES ブロック 64 ビット 鍵 64 ビット おおよその構成 初期置換 IP を適用 結果を L 0 R 0 とする 16 段の Feistel 暗号 (L i, R i ) = (R i 1, L i 1 f (R K i i 1)) 巡回鍵 K i は DES 鍵から関数 PC1 と PC2 により作る f K i は 32 ビットに対して以下のように定義される 32 ビットを 48 ビットに拡大し K i との排他的論理和をとる 6 ビットの 8 ブロックに 8 個の S ボックスという関数を適用 結果は 4 ビットの 8 ブロックとなる これに置換を適用 最後に R 16 L 16 に IP 1 を適用

32 ビット 拡大関数 48 ビット K i 6 6 6 6 6 6 6 6 S ボックス 4 4 4 4 4 4 4 4 32 ビット 置換

AES ブロック 32*Nb ビット 鍵 32*Nk ビット 4 Nb 8, 4 Nk 8 巡回の回数 Nr Nk = 4, 6, 8 に対して Nr = 10, 12, 14 巡回のために鍵拡張 ブロックを 4 行 Nb 列のバイト行列と考える 初期変換の後 Nr 回の巡回 SubBytes ShiftRows MixColumns( 最終巡回のときは適応せず ) AddRoundKey( 初期変換でもある )

疑似乱数から private-key を構成 F = {F n } を効率的計算可能関数アンサンブルとし I と V を F に付随したアルゴリズムとする I(1 n ) は分布 F n で関数を選択し ビット列 s に付随する関数 f s に対して V(s, x) は f s (x) を計算する Private-key ブロック暗号 (G, E, D) を以下のように定義する G(1 n ) = (k, k) where k I(1 n ) x {0,1} n に対して E k (x) = (r, V(k, r) x) where r {0,1} n D k (r, y) = V(k, r) y

疑似乱数から private-key を構成 さらに ブロック暗号から 一般的な暗号化スキームを構成することができる アンサンブル F が ( 多項式回路に対して ) pseudorandom ならば 以上のようにして構成された暗号化スキームは IND-CCA1 を満たす (Goldreich, Vol.II, Prop.5.4.18, p.450) F が ( 多項式回路に対して )pseudorandom であるとは 分布 F n が一様分布 H n と ( 多項式回路によって ) 区別できないということ

乱数化された RSA RSA による落し戸付き置換を利用 鍵生成 n ビットの二つの素数 P と Q をランダムに選ぶ N=PQ とおく ed =1 (mod (P 1)(Q 1)) を満たす対 (e, d) をランダムに選ぶ G(1 n ) = ((N,e), (N,d)) 長さ n のビット列 σ に対して r {1,, N 1} をランダムに選ぶ LSB(r) は r の下位 n ビットを返すとする E (N,e) (σ) = (r e mod N, σ LSB(r)) (y, ζ) {1,, N 1} {0,1} n に対して D (N,e) (y, ζ) = ζ LSB(y d mod N)

例 P=11, Q=13 とする n=4 と考える N=PQ=143, (P 1)(Q 1)=120 e=7, d=103 とする ed=721=1 (mod 120) ed=1 (mod 10) かつ ed=1 (mod 12) r=102 とする r ed =r (mod 11) かつ r ed =r (mod 11) したがって r ed =r (mod 143)

例 ( つづき ) σ=10 とする LSB(r)=LSB(102)=6 (102 の下位 4 ビット ) E (N,e) (σ) = (r e mod N, σ LSB(r)) = (102 7 mod 143, 10 6) = (119, 12) = (y, ζ) D (N,e) (y, ζ) = ζ LSB(y d mod N) = 12 LSB(119 103 mod 143) = 12 LSB(102) = 12 6 = 10

落し戸付き置換 置換の族 {p α } と確率的多項式時間アルゴリズム I, S, F, B が落し戸付き置換であるとは 入力 1 n に対して アルゴリズム I はランダムな n ビットのインデックス α と置換 p α の落し戸 τ を返す 入力 α に対して アルゴリズム S は p α の定義域のランダムな要素をサンプルして返す p α の定義域の要素 x に対して F(α, x) = p α (x) p α の値域の要素 y に対して (α, τ) が I(1 n ) の返し得る出力ならば B(τ, y) = p α 1 (y)

ハードコア述語 落し戸付き置換に対して ハードコア述語 b を構成することができる 多項式時間述語 b : {0,1} * {0,1} に対して 一様分布のもとで いかなる多項式時間アルゴリズムも p α (x) から b(x) を当てる確率は 1/2 よりも無視できないほど大きくはない

落し戸付き置換から public-key を構成 {p α }, I, S, F, B, b を仮定 1 ビットの public-key ブロック暗号 (G, E, D) を以下のように定義する G(1 n ) = I(1 n ) = (α, τ) ビット σ に対して E α (σ) = (F(α, r), σ b(x)) where r S(α) D τ (y, ζ) = ζ b(b(τ, y))

ElGamal 離散対数の困難性を利用 G を位数 q の巡回群 γ をその原始根とする (q は n ビット ) Z q* ={1,, q 1} とおく x Z q* をランダムに選ぶ α = γ x とおく G(1 n ) = (α, x) y Z q* をランダムに選ぶ β = γ y とおく E α (m) = (β, α y m) D x (β, ζ) = ζ/β x

例 p=11 とする (11 は素数 ) mod 11 の剰余類は 0 を除くと乗法群を成す 2 1 =2, 2 2 =4, 2 3 =8, 2 4 =16=5, 2 5 =10, 2 6 =20=9, 2 7 =18=7, 2 8 =14=3, 2 9 =6, 2 10 =12=1 (mod 11) したがって この乗法群は位数 10 の巡回群 γ=2 はその原始根の一つ q=p 1=10 とする Z 10* = {1,, 9}

例 ( つづき ) Z 10* = {1,, 9} x=3 Z 10* をランダムに選んだとする α=γ x =2 3 =8 (mod 11) y=9 Z 10* をランダムに選んだとする β=γ y =2 9 =6 (mod 11) m=5 とする E α (m) = (β, α y m) = (6, 8 9 5) = (3, 2) (mod 11) D x (β, ζ) = ζ/β x = 2/6 3 = 5 (mod 11)

公開鍵暗号を使ったプロトコル Needham-Schroeder の公開鍵暗号による認証プロトコル (1978) の本質的部分 ( アリス ボブ記法 ) A B : {A, N A } KB B A : {N A, N B } KA A B : {N B } KB

アリス {A, N A } KB 乱数 ノンス ( 作った人しか知り得ない ) { アリス, アリスの秘密 } ボブの公開鍵 このとき アリスの秘密は アリスとボブしか知り得ない {N A, N B } KA { アリスの秘密, ボブの秘密 } アリスの公開鍵 アリスの秘密が帰って来たということは ボブが最初のメッセージを受信したはず {N B } KB

ボブ {A, N A } KB { アリス, アリスの秘密 } ボブの公開鍵 {N A, N B } KA { アリスの秘密, ボブの秘密 } アリスの公開鍵 このとき ボブの秘密は アリスとボブしか知り得ない? {N B } KB 同様

Man-in-the-Middle 攻撃 Lowe が 20 年近くたってから発見 (1995) プロトコルの厳格なモデル化が一つの理由 チャーリー {A, N A } KC {A, N A } KB {N A, N B } KA {N A, N B } KA {N B } KC {N B } KB

修正されたプロトコル Needham-Schroeder-Lowe A B : {A, N A } KB B A : {B, N A, N B } KA A B : {N B } KB

署名スキーム 署名スキームとは 確率的多項式時間アルゴリズムの三つ組 (G, S, V) で 以下の二つの条件を満たすもののことである 1 n が入力されたとき 鍵生成アルゴリズム G は ビット列の対を返す G が返した任意の対 (s, v) と任意の α {0,1} * に対して 署名アルゴリズム S と 検証アルゴリズム V は 以下の等式を満たす Pr[V(v, S(s, α))=1] = 1 ただし 確率はアルゴリズム S の内部的なコイン投げに従う

ElGamal G を位数 q の巡回群 γ をその原始根とする Z q* ={1,, q 1} とおく x Z q* をランダムに選ぶ α = γ x とおく G(1 n ) = (x, α) q と素な y Z q* をランダムに選ぶ β = γ y とおく m を署名したい文書 h(m) をそのハッシュ値とする ζ = y 1 (h(m) xβ) mod q とおく S(x, m) = (m, β, ζ) ただし yy 1 1 mod q V(α, (m, β, ζ)) = (α β β ζ = γ h(m) )

例 p=11 γ=2 q=p 1=10 Z 10* = {1,, 9} x=3 Z 10* をランダムに選んだとする α=γ x =2 3 =8 (mod 11)

例 ( つづき ) y=9 Z 10* は 10 と素 y 1 =9 (mod 10) β=γ y =2 9 =6 (mod 11) h(m)=5 とする ζ = y 1 (h(m) xβ) = 9 (5 3 6) = 117 = 3 (mod 10) α β β ζ = 8 6 63 = 10 (mod 11) γ h(m) = 2 5 = 10 (mod 11)

l : N N とする ハッシュ関数 関数族 {h s : {0,1} * {0,1} l ( s ) } s {0,1}* が無衝突ハッシュであるとは 確率的多項式時間アルゴリズム I が存在して s と x に対して h s (x) を返す多項式時間アルゴリズムが存在する s=i(1 n ) から h s の衝突を無視できない確率で返す確率的多項式時間アルゴリズムは存在しない 関数 h の衝突とは h(x)=h(x ) かつ x x を満たす対 (x, x )

SHA-1 Digital Signature Standard 初期段階 ビット列に対して 1 を一つ付加 k*512 64 の長さになるように 0 を付加 最後に もとの長さを 64 ビット 2 進数で付加 32 ビット語 H 0, H 1, H 2, H 3, H 4 を初期化 各 512 ビット ブロックに対して 16 個の 32 ビット語に分割 H 0, H 1, H 2, H 3, H 4 を更新 最終的な H 0 H 1 H 2 H 3 H 4 を返す