现代密码学5.3--Hash and MAC
生活随笔
收集整理的這篇文章主要介紹了
现代密码学5.3--Hash and MAC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現代密碼學5.3--Hash and MAC
- 構造
- 安全性證明
博主正在學習INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯誤請指正。整理成一個系列現代密碼學,方便檢索。
- 第二章定義了完美安全及其對應的密碼方案“一次一密”,
- 第三章介紹了多種安全定義
- 3.1-3.3 計算安全,PRG和基于PRG構造的滿足計算安全的密碼方案;
- 3.4-3.5 CPA安全,PRF和基于PRF構造的滿足CPA安全的密碼方案
- 3.6 基于PRG和PRF構造的流密碼和分組密碼;
- 3.7 CCA安全,對非CCA安全密碼方案的攻擊
- 第四章介紹消息驗證碼/MAC
- 4.1節介紹了什么是消息完整性
- 4.2節介紹MAC的定義以及安全性定義
- 第五章介紹哈希函數
- 5.1節介紹了哈希函數的定義
- 5.2節介紹了域擴張:固定長度輸入→\rightarrow→任意長度輸入
- 5.3節將介紹基于Hash和固定長度輸入MAC構造的任意長度輸入MAC
構造
- ΠH=(\Pi_H=(ΠH?=(GenH,H)_H,H)H?,H):輸出長度為l(n)l(n)l(n)的哈希函數
- Π=(\Pi=(Π=(Mac, Vrfy))):固定長度l(n)l(n)l(n)信息的MAC
- Π′=(\Pi'=(Π′=(Gen’,Mac’,Vrfy’))):任意長度信息
用ΠH=(\Pi_H=(ΠH?=(GenH,H)_H,H)H?,H), Π=(\Pi=(Π=(Mac, Vrfy)))構造Π′=(\Pi'=(Π′=(Gen’,Mac’,Vrfy’)))。
- Gen’:輸入1n1^n1n,隨機選擇k∈{0,1}nk\in \{0,1\}^nk∈{0,1}n,運行GenH(1n)_H(1^n)H?(1n)獲得sss,密鑰是k′=<k,s>k'=<k,s>k′=<k,s>
- Mac’:輸入密鑰<k,s><k,s><k,s>和明文m∈{0,1}?m\in \{0,1\}^*m∈{0,1}?,輸出t←t\leftarrowt← Mack(Hs(m))_k(H^s(m))k?(Hs(m))
- Vrfy’:輸入密鑰<k,s><k,s><k,s>,明文m∈{0,1}?m\in \{0,1\}^*m∈{0,1}?,MAC tag ttt,當僅當Vrfyk(Hs(m),t)=1_k(H^s(m),t)=1k?(Hs(m),t)=1,輸出1。
安全性證明
條件
- 固定長度信息MAC是安全的
- 哈希函數是抗碰撞的
結論
- 任意長度信息MAC是安全的
證明思路
- 令QQQ為已經問過的集合,假設敵手A\mathcal{A}A可以對一個新信息m??Qm^*\notin Qm?∈/?Q偽造一個有效的tag
- 分成兩種情況來考慮:Hs(m?)=Hs(m)H^s(m^*)=H^s(m)Hs(m?)=Hs(m)和Hs(m?)≠Hs(m)H^s(m^*)\neq H^s(m)Hs(m?)?=Hs(m),定義事件"coll"為"?m∈Q,Hs(m?)=Hs(m)\exists m\in Q, H^s(m^*)=H^s(m)?m∈Q,Hs(m?)=Hs(m)"
- Pr[Mac-forgeA′,Π′=1_{\mathcal{A'},\Pi'}=1A′,Π′?=1]
===Pr[Mac-forgeA′,Π′(n)=1∧_{\mathcal{A'},\Pi'}(n)=1\wedgeA′,Π′?(n)=1∧ coll]+Pr[Mac-forgeA′,Π′(n)=1∧coll ̄_{\mathcal{A'},\Pi'}(n)=1\wedge \overline{coll}A′,Π′?(n)=1∧coll]
≤\le≤Pr[coll]+Pr[Mac-forgeA′,Π′(n)=1∧coll ̄_{\mathcal{A'},\Pi'}(n)=1\wedge \overline{coll}A′,Π′?(n)=1∧coll] - 只需要證明
- Pr[coll]≤\le≤negl
- Pr[Mac-forgeA′,Π′(n)=1∧coll ̄_{\mathcal{A'},\Pi'}(n)=1\wedge \overline{coll}A′,Π′?(n)=1∧coll]≤\le≤ negl
證明過程
- 要證明Pr[coll]≤\le≤negl
- 只需證明Pr[Hash-collC,ΠH(n)=1_{\mathcal{C},\Pi_H}(n)=1C,ΠH??(n)=1]=Pr[coll]
- 通過A′\mathcal{A'}A′構造C\mathcal{C}C
- 只需證明Pr[Hash-collC,ΠH(n)=1_{\mathcal{C},\Pi_H}(n)=1C,ΠH??(n)=1]=Pr[coll]
- 要證明Pr[Mac-forgeA′,Π′(n)=1∧coll ̄_{\mathcal{A'},\Pi'}(n)=1\wedge \overline{coll}A′,Π′?(n)=1∧coll]≤\le≤ negl
- 只需證明Pr[Mac-forgeA,Π(n)=1_{\mathcal{A},\Pi}(n)=1A,Π?(n)=1]=Pr[Mac-forgeA′,Π′(n)=1∧coll ̄_{\mathcal{A'},\Pi'}(n)=1\wedge \overline{coll}A′,Π′?(n)=1∧coll]
- 通過A′\mathcal{A'}A′構造A\mathcal{A}A
- 只需證明Pr[Mac-forgeA,Π(n)=1_{\mathcal{A},\Pi}(n)=1A,Π?(n)=1]=Pr[Mac-forgeA′,Π′(n)=1∧coll ̄_{\mathcal{A'},\Pi'}(n)=1\wedge \overline{coll}A′,Π′?(n)=1∧coll]
總結
以上是生活随笔為你收集整理的现代密码学5.3--Hash and MAC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现代密码学4.2--消息验证码/MAC
- 下一篇: 现代密码学5.4--对哈希函数的攻击