现代密码学5.1--哈希函数定义
現(xiàn)代密碼學(xué)5.1--哈希函數(shù)定義
- 密碼學(xué)的假設(shè)
- 抗碰撞哈希函數(shù)定義
- 與數(shù)據(jù)結(jié)構(gòu)中定義的哈希函數(shù)的不同
- 哈希函數(shù)的密鑰
- 安全性:抗碰撞哈希函數(shù)>抗二次原像/抗目標(biāo)碰撞哈希函數(shù)>抗原像哈希函數(shù)
- 抗碰撞的
- 抗二次原像/抗目標(biāo)碰撞的
- 抗原像的
- 安全性強(qiáng)弱
- 安全性與攻擊難度
博主正在學(xué)習(xí)INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯(cuò)誤請(qǐng)指正。整理成一個(gè)系列現(xiàn)代密碼學(xué),方便檢索。
- 第二章定義了完美安全及其對(duì)應(yīng)的密碼方案“一次一密”,
- 第三章介紹了
- 3.1-3.3 計(jì)算安全,PRG和基于PRG構(gòu)造的滿(mǎn)足計(jì)算安全的密碼方案;
- 3.4-3.5 CPA安全,PRF和基于PRF構(gòu)造的滿(mǎn)足CPA安全的密碼方案
- 3.6 基于PRG和PRF構(gòu)造的流密碼和分組密碼;
- 3.7 CCA安全,對(duì)非CCA安全密碼方案的攻擊
- 第五章將介紹哈希函數(shù),而5.1節(jié)先介紹哈希函數(shù)的定義。
密碼學(xué)的假設(shè)
密碼學(xué)是基于假設(shè)的一門(mén)學(xué)科,
- 最基礎(chǔ)的假設(shè)是P≠NPP\neq NPP?=NP
- 更強(qiáng)一點(diǎn)的是單向函數(shù)存在
- 更強(qiáng)一點(diǎn)的是PRFPRFPRF存在
- 更強(qiáng)一點(diǎn)的是抗碰撞哈希函數(shù)存在
- 更強(qiáng)的是公鑰加密算法存在
抗碰撞哈希函數(shù)定義
- 將任意長(zhǎng)度的長(zhǎng)的輸入字符串映射到固定長(zhǎng)度的短的輸出字符串
- 抗碰撞:x≠x′x\neq x'x?=x′,H(x)=H(x′)H(x)=H(x')H(x)=H(x′)
與數(shù)據(jù)結(jié)構(gòu)中定義的哈希函數(shù)的不同
-
- 數(shù)據(jù)結(jié)構(gòu)中的哈希函數(shù):最小化碰撞;
- 密碼學(xué)中的哈希函數(shù):抗碰撞是一個(gè)必要條件
-
- 數(shù)據(jù)結(jié)構(gòu)中的哈希函數(shù):元素選擇獨(dú)立于哈希函數(shù),也不需要考慮是否會(huì)導(dǎo)致碰撞;
- 密碼學(xué)中的哈希函數(shù):元素選擇需要考慮哈希函數(shù)以及是否會(huì)導(dǎo)致碰撞
哈希函數(shù)的密鑰
- keyed哈希函數(shù)/有密鑰的哈希函數(shù)
- Hs(x)=defH(s,x)H^s(x)\overset{def}{=}H(s,x)Hs(x)=defH(s,x)
- 這里的密鑰與其他密鑰至少有兩個(gè)不同:
- 不是所有字符串都對(duì)應(yīng)有效密鑰,HsH^sHs可能不是一個(gè)抗碰撞哈希函數(shù)(所以往往有一個(gè)專(zhuān)門(mén)的keyGen函數(shù)生成有效密鑰)
- 密鑰sss是公開(kāi)的
- unkeyed哈希函數(shù)/無(wú)密鑰的哈希函數(shù)
- 從理論上來(lái)說(shuō),這種哈希函數(shù)不是抗碰撞的:沒(méi)有密鑰,則一定存在一個(gè)破解算法知道這個(gè)固定的key,硬編碼這種碰撞對(duì)(x,x′)(x,x')(x,x′)到破解算法中
- 從實(shí)踐上來(lái)說(shuō),還是抗碰撞的:雖然有這樣一個(gè)破解算法,但在多項(xiàng)式時(shí)間內(nèi)找不到
安全性:抗碰撞哈希函數(shù)>抗二次原像/抗目標(biāo)碰撞哈希函數(shù)>抗原像哈希函數(shù)
抗碰撞的
給定密鑰sss,PPT敵手不能找到一個(gè)碰撞對(duì)(x,x′)(x,x')(x,x′),x′≠xx'\neq xx′?=x使得Hs(x′)=Hs(x)H^s(x')=H^s(x)Hs(x′)=Hs(x),則稱(chēng)Hs(x)H^s(x)Hs(x)是抗碰撞的。
抗二次原像/抗目標(biāo)碰撞的
給定密鑰sss和一個(gè)均勻xxx,PPT敵手不能找到一個(gè)x′≠xx'\neq xx′?=x使得Hs(x′)=Hs(x)H^s(x')=H^s(x)Hs(x′)=Hs(x),則稱(chēng)Hs(x)H^s(x)Hs(x)是抗二次原像的 / 抗目標(biāo)碰撞的 / target-collision resistance / Second-preimage resistance。
抗原像的
給定密鑰sss和一個(gè)均勻隨機(jī)字符串yyy,PPT敵手找不到一個(gè)xxx使得Hs(x)=yH^s(x)=yHs(x)=y,則稱(chēng)Hs(x)H^s(x)Hs(x)是抗原像的 / preimage resistance。
安全性強(qiáng)弱
-
如果一個(gè)哈希函數(shù)是抗碰撞的,則一定是抗目標(biāo)碰撞的
- 給定x′x'x′,如果敵手能找到x≠x′x\neq x'x?=x′,使得H(x)=H(x′)H(x)=H(x')H(x)=H(x′)(不抗目標(biāo)碰撞的)
- 則敵手找到碰撞對(duì)(x,x′)(x,x')(x,x′)(不抗碰撞的)
- 逆否命題:如果一個(gè)哈希函數(shù)不抗目標(biāo)碰撞,則一定不抗碰撞
-
如果一個(gè)哈希函數(shù)是抗目標(biāo)碰撞的,則一定是抗原像的
- 給定yyy,如果敵手能找到xxx,使得Hs(x)=yH^s(x)=yHs(x)=y(不抗原像的)
- 則對(duì)于給定的x′x'x′,計(jì)算y=Hs(x′)y=H^s(x')y=Hs(x′),能找到xxx,使得Hs(x)=yH^s(x)=yHs(x)=y(不抗目標(biāo)碰撞的)
- 逆否命題:如果一個(gè)哈希函數(shù)不抗原像,則一定不抗目標(biāo)碰撞
安全性與攻擊難度
- 如果一個(gè)哈希函數(shù)
- 是抗目標(biāo)碰撞的,
- 不是抗碰撞的
- 則敵手在抗目標(biāo)碰撞層面不能攻擊它
- 在抗碰撞層面可以攻擊它
總結(jié)
以上是生活随笔為你收集整理的现代密码学5.1--哈希函数定义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 现代密码学3.7--CCA安全
- 下一篇: 现代密码学5.2--域扩张:Merkle