情報セキュリティ特論(3) 黒澤 馨 (茨城大学) [email protected] 演習 (1) One-time padについて考える。 • 鍵K=(001101)で、平文M=(111111)を 暗号化せよ。 • C=K+M =(001101)+(111111) =(110010) 演習 (1) One-time padについて考える。 • 鍵K=(001101)で、暗号文C=(101101)を 復号せよ。 • M=K+C =(001101)+(101101) =(100000) 演習 (2) • One-Time Padが無条件に安全であることを、 n=1ビットの場合と同様に、 n=2ビットに対し、証明せよ。 証明 (n=2の場合) • 敵が暗号文C=(00)を入手した。 • このとき、 Pr(M=00 | C=00)=Pr(M=00) を証明する。 C=M+K mod 2より、C=00となる(M,K)は、 K 11 10 01 00 1 00 01 10 11 M C=00という条件の下で、M=00となる事象は、 K 11 10 01 00 1 00 01 10 11 M K 11 10 01 00 1 00 01 10 11 M Pr( M=00, K=00) Pr(M=00 | C=00) = Pr( M=00, K=00)+…+Pr( M=11, K=11) K 11 10 01 00 1 00 01 10 11 M Pr( M=00) ・1/4 Pr(M=00 | C=00) = Pr( M=00) ・1/4 +…+Pr( M=11) ・1/4 K 11 10 01 00 1 00 01 10 11 Pr( M=00) Pr(M=00 | C=00) = Pr( M=00) +…+Pr( M=11) M K 11 10 01 00 1 00 Pr(M=00 | C=00) = 01 10 Pr( M=00) 11 M Pr(M=00 | C=00)=Pr(M=00) • 同様にして、 Pr(M=01 | C=00) = Pr(M=01) … Pr(M=11 | C=11) = Pr(M=11) 演習 (3) 共通鍵暗号系(G,E,D)が無条件に安全 であるための必要十分条件は、 ・ M上の任意の確率関数 PM ・ ∀m ∈ M ・ ∀C ∈ C に対し、 ~ ~ ~ Pr( C = c | M = m ) = Pr( C = c ) であることを証明せよ。 順方向の証明 • Pr(C=c | M=m)=Pr(C=c) と仮定する。 • このとき、無条件に安全、すなわち、 Pr(M=m | C=c) =Pr(M=m) を示す。 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 • 右辺=Pr(M=m) 証明 • • • • Pr(C=c | M=m)=Pr(C=c)と仮定。 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 右辺=Pr(M=m) 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) 証明 • • • • Pr(C=c | M=m)=Pr(C=c)と仮定。 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 右辺=Pr(M=m) 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c) 証明 • • • • Pr(C=c | M=m)=Pr(C=c)と仮定。 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 右辺=Pr(M=m) 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c) = Pr(M=m | C=c) 証明 • • • • Pr(C=c | M=m)=Pr(C=c)と仮定。 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 右辺=Pr(M=m) 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c) = Pr(M=m | C=c) よって、Pr(M=m | C=c) =Pr(M=m) 証明 • • • • Pr(C=c | M=m)=Pr(C=c)と仮定。 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 右辺=Pr(M=m) 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c) = Pr(M=m | C=c) よって、Pr(M=m | C=c) =Pr(M=m) ゆえに、無条件に安全。 逆方向の証明 • 無条件に安全と仮定する。 すなわち、 Pr(M=m | C=c) =Pr(M=m) • このとき、 Pr(C=c | M=m)=Pr(C=c) を示す。 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると • 右辺= Pr(C=c) 逆方向の証明 • • • • Pr(M=m | C=c) =Pr(M=m)と仮定。 両辺に、Pr(C=c) / Pr(M=m)を掛けると 右辺= Pr(C=c) 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m) 逆方向の証明 • • • • Pr(M=m | C=c) =Pr(M=m)と仮定。 両辺に、Pr(C=c) / Pr(M=m)を掛けると 右辺= Pr(C=c) 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m) = Pr(M=m, C=c) / Pr(M=m) 逆方向の証明 • • • • Pr(M=m | C=c) =Pr(M=m)と仮定。 両辺に、Pr(C=c) / Pr(M=m)を掛けると 右辺= Pr(C=c) 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m) = Pr(M=m, C=c) / Pr(M=m) = Pr(C=c | M=m) 逆方向の証明 • • • • Pr(M=m | C=c) =Pr(M=m)と仮定。 両辺に、Pr(C=c) / Pr(M=m)を掛けると 右辺= Pr(C=c) 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m) = Pr(M=m, C=c) / Pr(M=m) = Pr(C=c | M=m) よって、Pr(C=c | M=m)=Pr(C=c) 無条件に安全な暗号系の制限 • 定理 無条件に安全な暗号系においては |K| ≧ |M| 対策 • 擬似乱数生成器、 PseudoRandom Bit Generator (PRBG)、 を利用する。 擬似乱数生成器 短いシード K PRBG 長い擬似乱数 PRBG(K) ただし、 ・ |PRBG(K)| > |K| ・ PRBG(K)と真の乱数は、区別がつかない(indistinguishable)。 Distinguisher PRBG(K) D 0 or 1 P0 = Pr(D=1) 真の乱数 D P1 = Pr(D=1) 0 or 1 定義 • PRBG(K)と真の乱数はindistinguishable if |P0-P1|<ε for 全ての多項式時間のD • 上記が成り立つとき、 PRBG(K)は擬似ランダム |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合 |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合 {D=1となるnビットの集合} |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合 {D=1となるnビットの集合} P0 = Pr(PRBG(K)が入力のときD=1) = 斜線の面積 / 赤の面積 |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合 {D=1となるnビットの集合} P1 = Pr(真の乱数が入力のときD=1) = 黒の面積 / 全面積 定義 • PRBG(K)と真の乱数はindistinguishable if |P0-P1|<ε for 全ての多項式時間のD • 上記が成り立つとき、 PRBG(K)は擬似ランダム One-Time Padの改良 短い鍵 K PRBG 長い擬似乱数 PRBG(K) 暗号文 C = M + PRBG(K) 擬似ランダム関数FK(x) • 鍵K ← ランダム のとき、 • Y0=(FK(0…0), …, FK(1…1)) と Y1=(乱数、…、乱数) がindistinguishable 擬似ランダム関数FK(x) • 鍵K ← ランダム のとき、 • Y0=(FK(0…0), …, FK(1…1)) と Y1=(乱数、…、乱数) がindistinguishable しかし、|Y0|=|Y1|=2n 擬似ランダム関数FK(x) • 鍵K ← ランダム のとき、 • Y0=(FK(0…0), …, FK(1…1)) → D → 0 or 1 • |Y0|=2n • Distinguisher Dは、 読み込むだけで指数時間かかってしまう。 In Experiment 0 • K ← randam xi Distinguisher D FK(x) yi i=1, 2, …, q, where q=多項式個 0 or 1 p0 = Pr(D=1) In Experiment 1 • f ← nビットからnビットへの全ての関数の集合から randamに選んだ関数 xi Distinguisher D f yi i=1, 2, …, q, where q=多項式個 0 or 1 p1 = Pr(D=1) 定義 • {FK(x)}は、擬似ランダム関数族 if |p0-p1|<ε for 全ての多項式時間アルゴリズム D 置換 • F:{nビットの集合}→ {nビットの集合} は置換 if Fが1対1の関数. 置換 • F:{nビットの集合}→ {nビットの集合} は置換 if Fが1対1の関数. y=F(x)が置換ならば、 逆関数 x=F-1(y)が存在する In Experiment 0 • K←ランダム xi yj Distinguisher D FK yi FK-1 xj 0 or 1 p0 = Pr(D=1) In Experiment 1 • π ← nビット上の全ての置換の集合から ランダムに選んだ置換 xi yj Distinguisher D π yi π-1 xj 0 or 1 p1 = Pr(D=1) In Experiment 1 • Choose a random permutationπ m_i c_j Distinguisher D π c_i π ^{-1} m_j 0 or 1 定義 • {FK(x)}は、擬似ランダム置換族 if |p0-p1|<ε for 全ての多項式時間アルゴリズム D Block Cipher (AES) m=128 bits c=128 bits Key k Encryption E c=128 bits Decryption D m=128 bits A Block Cipher (AES) is • {permutation πover {128 bit strings }} That is, π:message space ={128 bit strings} → ciphertext space ={128 bit strings} • Key k specifies a permutation. AES • Key:128 bits, 192 bits or 256 bits • 仮定 {AESK}は、擬似ランダム置換族 ECB Mode encrypts a long message M as follows. M = (m1,・・・・・・・・・・・・・・・・・,mt) Ek Ek C=(c1,・・・・・・・・・・・・・・・・・,ct) Not Secure • If c1=c2, then the adversary knows m1=m2 Message Ciphertext http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation Counter Mode • The sender keeps a counter ctr. ctr ctr+1 Ek m1 (ctr, ctr+t ‥‥ mt c1, ‥ ‥ ‥ ‥ Ek ,ct)=C Security Proof • {AES}~Random Permutation Family P ~Random Function Family F • Replace AES E_K with a random function f. The adversary can see no difference. Counter Mode ctr ctr+1 Ek m1 (ctr, ctr+t ‥‥ mt c1, ‥ ‥ ‥ ‥ Ek ,ct)=C Idealized Counter Mode ctr ctr+1 ctr+t f f ‥‥ m1 (ctr, mt c1, ‥ ‥ ‥ ‥ ,ct)=C Idealized Counter Mode ctr ctr+1 ctr+t f m1 (ctr, f r1 ‥‥ mt c1, ‥ ‥ ‥ ‥ rt ,ct)=C One-Time Pad Hence Secure ctr ctr+1 ctr+t f m1 (ctr, f r1 ‥‥ mt c1, ‥ ‥ ‥ ‥ rt ,ct)=C CTR mode • Was shown by Diffie and Hellman in1979 • It is standarized as NIST recommendation SP800-38A CBC mode On IV • If IV=fixed value or ctr, then CBC mode is not secure. • If IV=random, then the security is proved. NIST SP800-38A • For the CBC and CFB modes, the IV for any particular execution of the encryption process must be unpredictable. • For the OFB mode, unique IVs must be used for each execution of the encryption process. CFB mode OFB mode Standards • CBC mode, CFB mode and OFB mode are standards of • NIST FIPS81, SP800-38A • US ANSI X3 • ISO 8372, ISO/IEC 10116 Security of Symmetric Encryption • Was defined and studied by Bellare, Desai, Jokiph, Rogaway in the paper “A concrete Security Treatment of Symmetric Encryption” (FOCS’97) 4 Security Definitions • • • • LOR (Left or Right) CPA (CCA) ROR (Real or Random) CPA (CCA) FTG (Find then Guess) CPA (CCA) SEM (Semantic Security) CPA (CCA) LOR-CPA secure If the following two worlds are indistinguishable. m_0, m_1 E_K m_0, m_1 D E_K(m_0) E_K D E_K(m_1) 0 or 1 0 or 1 ROR-CPA secure If the following two worlds are indistinguishable. m E_K m D E_K(m) E_K D E_K(random r) 0 or 1 0 or 1 FTG-CPA security Is defined by using Find stage and Guess stage. E_K(x_b) m_i E_K m_j D E_K(m_i) E_K D E_K(m_j) Guess stage: For a random bit b Find stage: x_0, x_1 0 or 1 FTG-CPA secure If the following two worlds are indistinguishable. E_K(x_0) E_K(x_1) m_j E_K m_j D E_K(m_j) E_K D E_K(m_j) 0 or 1 0 or 1 Relationship FTG LOR Reduction is loose ROR Strongest security Semantic Security (omitted) LOR-CPA security • CTR mode, CBC mode BDJR (FOCS 1997) • CFB mode Alkassar, Geraldy, Birgit Pfitzmann, Sadeghi (FSE 2001) • CTR-OFB mode Jaechul Sung, Sangjin Lee, Jongin Lim, Wonil Lee, Okyeon Yi (ICISC 2001) This Talk • • • • • Security of Block Ciphers Encryption Schemes MAC Schemes Tweakable Block Cipher CMAC Message Authentication Code (MAC) Key K Key K (M, Tag) × Impersonate × Forge CBC-MAC is well known M=(m1, m2, ・・・, mt) ・・・ Ek Ek Ek Tag Attack on CBC-MAC Obtains (m, Tag) Outputs M=(m, m+Tag), Tag (m, m m+Tag) m 偽造 Ek Ek Ek Tag Tag Tag Model of Security Chose Message Attack M_i Forgery (M’, Tag’) Tag_i MAC scheme is secure if Pr(Forgery)=negligible Security of CBC MAC • Secure if |M|=fixed • But, not secure if |M|=variable EMAC Is an improvement of CBC-MAC as follows. M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K Tag of CBC-MAC E_K’ Tag EMAC is Secure for variable |M| M=(m_1, m_2, ・・・, m_t) ・・・ f1 f1 f1 x f2 f1, f2は、ランダム関数 Tag = f2(x) EMAC is Secure for variable |M| M1=(m_1, m_2, ・・・, m_t) ・・・ f1 f1 f1 x1 f2 f1, f2は、ランダム関数 Tag1 = f2(x1) Model of Security Chose Message Attack M1 Tag1=f2(x1) Model of Security Chose Message Attack M2 Tag2=f2(x2) Model of Security Chose Message Attack Mq Tagq=f2(xq) Model of Security Chose Message Attack M1, M2, ⋯, Mq Forgery (M’, Tag’) Tag1, ⋯, Tagq 偽造成功 if Tag ’= f2(x’) M’=(m_1’, m_2’, ・・・, m_t’) ・・・ f1 f1 f1 x’ f2 Tag’ In general, M H Tag=H(M) for some function H MAC Theorem H is a pseudo-random function H is a secure MAC Proof • Assume that there exists a chosen message attacker A on H who succeeds with prob. ε • Then we will show that H is not a pseudo-random function. Consider D which uses A as follows M’ m_i H D=A H D Tag’ Tag_i M’, Tag’ Pr(D=1)=ε 1 if Tag’ =Tag’ 0 else Replace H with a random function f M’ m_i f D=A f D Tag’ Tag_i M’, Tag’ Pr(D=1) = 2-128 because Tag’ is random 1 if Tag’ =Tag’ 0 else Proof (cont.) • If the oracle=H, then Pr(D=1)=ε • If the oracle=random function f, Pr(D=1)=2-128 Proof (cont.) • If the oracle=H, then Pr(D=1)=ε • If the oracle=random function f, Pr(D=1)=2-128 • Hence H is not a pseudo-random function (PRF) Proof (cont.) • If the oracle=H, then Pr(D=1)=ε • If the oracle=random function f, Pr(D=1)=2-128 • Hence H is not a PRF • Consequently, If H is a PRF, then H is a secure MAC. We will show EMAC=PRF M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K E_K’ Tag = PRF E_K’ can be replace by RF f M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K f Tag Let X=CBC(M) M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K X=CBC(M) f f(X) M’=(m_1’, m_2’, ・・・, ) M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K X, X’ f f(X), f(X’) M*=(m1*, m2*, ・・・, ) M=(m1, m2, ・・・, mt) ・・・ Ek Ek Ek It is known that Pr(x≠x*) ~1 f f(x), f(x*) M’=(m_1’, m_2’, ・・・, ) M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K X≠X’ f=random f(X) and f(X’) are independently random This implies that EMAC=PRF M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K x f f(x) Security of EMAC • We proved that EMAC=PRF • Therefore from MAC theorem, EMAC is secure This Talk • • • • • Security of Block Ciphers Encryption Schemes MAC Schemes Tweakable Block Cipher CMAC Tweakable Block Cipher • Was proposed by Listov, Rivest and Wagner at Crypto 2002. • We can obtain many independent PRPs from a single secret key K. c=EK(m) c1= [E]K(tweak T1, m1) c2= [E]K(tweak T2, m2) are independent PRPs, where Ti is publicly known To tell the truth • Kurosawa considered a similar thing at the same time independently • I posted it to ePrint after, citing LRW paper. • Recently Louis Granboulan sent me an email. Email of Louis Granboulan • I am wondering why this paper has not been published. • In my opinion, it contains new and interesting results. (January 12, 2008) ePrint 2002/127 Kaoru Kurosawa, “Power of a Public Random Permutation and its Application to Authenticated-Encryption” I will talk about this paper here. DESX Was proposed by Rivest many years ago to strength the security of DES K2 E_K K2 It has two keys, K and K2 Kilian and Rogaway (’96) proved that the essential key length is Indeed larger than DES. K2 E_K K2 Even and Mansour (’91) showed that DESX is secure even if E_K is publicly accessible. K2 E_K K2 Kurosawa (ePrint02) • Many PRPs can be obtained from a single secret key K2 even if E_K is publicly accessible. • while Even and Mansour showed that a single PRP can be obtained. Proposed Construciton K2=secre key E_K is publicly accessible T_1, …, T_m are publicly known K2・T_m K2・T_1 Q1 … E_K K2・T_1 Qm E_K K2・T_m Theorem Q1, …, Qm are independent PRPs K2・T_m K2・T_1 Q1 … E_K K2・T_1 Qm E_K K2・T_m Corollaries Q1’, …, Qm’ are independent PRPs if D does not have access to Qi-1. K2・T_m K2・T_1 Q 1’ E_K … Qm’ E_K Construction of LRW Both K and K2 = secret keys T_1, …, T_m = publicly known K2・T_m K2・T_1 … E_K K2・T_1 E_K K2・T_m Comparison • LRW construciton is obtained by letting K=secret. • In other words, the proposed construction gives a tweakable block cipher such that E_K is publicly accessible. This Talk • • • • • Security of Block Ciphers Encryption Schemes MAC Schemes Tweakable Block Cipher CMAC EMAC requires 2 key schedulings M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K E_K’ Tag EMAC was improved as follows • XCBC: Black and Rogaway (2000. 6) 1 block-cipher key + 2 other keys • TMAC: Kurosawa and Iwata (2002. 7) 1 block-cipher key + 1 other key • OMAC: Iwata and Kurosawa (2002.12) 1 block-cipher key CMAC How to improve EMAC M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K E_K’ Tag The last E_K can be removed M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K E_K’ Tag If we remove the last E_K M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K E_K’ Tag Replace E_K’ with DESX M=(m_1, m_2, ・・・, m_t) ・・・ K2 E_K E_K E_K Tag =E_K’ From Even and Mansour M=(m_1, m_2, ・・・, m_t) ・・・ K2 E_K E_K E_K Tag Even if D has access to this E_K, red part is a PRP =PRP M=(m_1, m_2, ・・・, m_t) ・・・ fK(M) E_K E_K K2 E_K Tag Further Pr( fK(M)=fK(M’) )=negligible Hence this MAC is a PRF =PRP M=(m_1, m_2, ・・・, m_t) ・・・ E_K E_K K2 E_K Tag Therefore this MAC is secure XCBC is almost this construciton XCBC (Black & Rogaway) M=(m_1, m_2, ・・・, m_t) K2 if |m_t|<128 ・・・ K3 if |m_t|=128 E_K E_K E_K Tag Key=(K, K2, K3) TMAC (Kurosawa and Iwata) M=(m_1, m_2, ・・・, m_t ) K2 if |m_t|<128 ・・・ K2・T if |m_t|=128 E_K E_K E_K Tag Keys=(K, K2): T is a public const. OMAC (Iwata and Kurosawa) M=(m_1, m_2, ・・・, m_t) LT if |m_t|<128 ・・・ LT2 if |m_t|=128 E_K E_K E_K L=E (0…0) K T is a public const. Tag Key =K: From XCBC to OMAC=CMAC • XCBC: Black and Rogaway (2000. 6) 1 block-cipher key + 2 other keys • TMAC: Kurosawa and Iwata (2002. 7) 1 block-cipher key + 1 other key • OMAC: Iwata and Kurosawa (2002.12) 1 block-cipher key CMAC Security of each MAC is proved NIST home page • May 2005. • In SP 800-38B, the CMAC authentication mode is specified for use with any approved block cipher. NIST home page • CMAC is an essentially OMAC submitted by Iwata and Kurosawa. • OMAC is an improvement of the XCBC, submitted by Rogaway and Black, which itself is an improvement of the CBC-MAC algorithm. NIST home page • XCBC efficiently addresses the security deficiencies of CBC-MAC; • OMAC efficiently reduces the key size of XCBC. CMAC • • • • • NIST recommendation CSE (Canada) standard used in Windows XP (SP2) used in Play Station 3 used in AACS developed by IBM, Intel, Microsoft, Desney, Warner, Sony, Toshiba and Matsushita CMAC • IETF RFC4493,4494,4615 • IEEE 802.16e 演習 CBC-MACについて、以下の M=(m1, m2), Tagを基に、偽造せよ。 (m1, m 2) E_K E_K Tag
© Copyright 2025 ExpyDoc