[密码学] 杂凑函数
文章目錄
- 基本概念
- 雜湊函數(shù)的定義
- 雜湊函數(shù)的應(yīng)用
- 安全屬性
- 基本屬性
- 安全屬性
- 通用攻擊方法
- 碰撞攻擊
- 生日攻擊
- 常見結(jié)構(gòu)
- 一般模型
- 主要構(gòu)造方法
- 基于分組密碼
- 單倍長度
- 多倍長度
- 定制雜湊函數(shù)
- MD結(jié)構(gòu)
- 定義
- MD強(qiáng)化
- MD結(jié)構(gòu)的安全性
- MD結(jié)構(gòu)的長度擴(kuò)展攻擊
- 多碰撞(t-碰撞)攻擊
- 海綿結(jié)構(gòu)
- 常見的雜湊函數(shù)算法
- SHA-256(MD結(jié)構(gòu))
- 消息填充
- 壓縮函數(shù)
- 示意圖
- 消息擴(kuò)充方案
- 函數(shù)f
- SHA-3算法 Keccak(海綿結(jié)構(gòu))
基本概念
雜湊函數(shù)的定義
?①又稱Hash函數(shù)、哈希函數(shù),y=H(x);?
?②將任意長度的消息x壓縮為固定長度的雜湊值(哈希值、指紋值)y;
雜湊函數(shù)的應(yīng)用
?①檢測(cè)消息完整性;
?②構(gòu)建偽隨機(jī)函數(shù);
?③用作偽隨機(jī)函數(shù)發(fā)生器;
?④用于數(shù)字簽名,提高數(shù)字簽名的速度;
?⑤電子簽名等認(rèn)證方案的關(guān)鍵技術(shù);
?⑥比特幣;
?⑦工作量證明;
?⑧區(qū)塊鏈的起源性技術(shù);
安全屬性
基本屬性
?①壓縮性
??應(yīng)用于任意大小的數(shù)據(jù)塊,產(chǎn)生定長的輸出。
?②有效性
??對(duì)任意給定的消息x,計(jì)算H(x)是容易的。
安全屬性
??抗原像(單向性):給定H和任一個(gè)像y,其對(duì)應(yīng)的輸入未知,找到一個(gè)原像x滿足H(x)=y是計(jì)算上不可行的。
??抗第二原像(抗弱碰撞):給定H和任一個(gè)消息x,找另一個(gè)消息x’(x≠x‘),滿足H(x)=H(x’)是計(jì)算上不可行的。
??抗碰撞(抗強(qiáng)碰撞):給定H,找到任意兩個(gè)不同的消息x和x’,滿足H(x)=H(x’)是計(jì)算上不可行的。
????一般來說**!!!!!滿足抗碰撞,就暗含著滿足抗第二原像;滿足抗第二原像,就暗含著抗原像!!!!!**
??抗長度擴(kuò)展攻擊:給定雜湊值H(M)和消息的長度|M|,找到h’和z滿足H(M|z)=h’是計(jì)算上不可行的。
??此外,還要考慮增強(qiáng)目標(biāo)抗碰撞特性,偽隨機(jī)函數(shù)攻擊等。
通用攻擊方法
碰撞攻擊
?尋找x,x’,滿足h(x)=h(x’)且x≠x’
?如果能找到雜湊函數(shù)的碰撞,就意味著兩個(gè)不同的文件可以產(chǎn)生相同的“指紋”,從而偽造簽名。
?主要方法:生日攻擊、特殊方法(針對(duì))
生日攻擊
找到一對(duì)碰撞的理想復(fù)雜度為2^(n/2)
?若能夠以小于2^(n/2)的復(fù)雜度找到一對(duì)碰撞,則認(rèn)為h被破解
常見結(jié)構(gòu)
一般模型
?迭代處理,通過處理固定長度的連續(xù)分組來雜湊任意長度的輸入。
主要構(gòu)造方法
根據(jù)迭代壓縮函數(shù)f的不同:
?①基于數(shù)學(xué)困難問題;
?②基于分組密碼:雜湊值長度等于分組長度
?????????雜湊值長度大于分組長度:MDC-2,MDC-4等
?③定制雜湊函數(shù):MD4,MD5;SHA-{0,1,224,256,384,512}等
基于分組密碼
優(yōu)點(diǎn):
?①基于較為成熟的分組密碼算法;
?②假如系統(tǒng)中已經(jīng)有了分組密碼的一個(gè)有效實(shí)現(xiàn),把它作為雜湊函數(shù)的中心元件,幾乎不需附加代價(jià)
缺點(diǎn):
?實(shí)現(xiàn)效率一般不如定制雜湊函數(shù)
單倍長度
多倍長度
定制雜湊函數(shù)
優(yōu)點(diǎn):可選擇利于快速實(shí)現(xiàn)的基本運(yùn)算
缺點(diǎn):難以進(jìn)行安全性證明;出現(xiàn)時(shí)間短,設(shè)計(jì)理念不夠成熟
MD結(jié)構(gòu)
定義
MD強(qiáng)化
為了進(jìn)一步提高安全性,對(duì)消息填充進(jìn)行的強(qiáng)化
MD結(jié)構(gòu)的安全性
!!!易于構(gòu)造二次碰撞!!!
MD結(jié)構(gòu)的長度擴(kuò)展攻擊
多碰撞(t-碰撞)攻擊
海綿結(jié)構(gòu)
常見的雜湊函數(shù)算法
SHA-256(MD結(jié)構(gòu))
?①M(fèi)D結(jié)構(gòu);
?②SHA-2系列:
??根據(jù)輸出雜湊值長度的不同劃分為:SHA-224/256/384/512多個(gè)版本;
??在不同版本中,消息分塊長度/壓縮函數(shù)步數(shù)/常數(shù)選擇也是不同的
?③SHA-256
??消息分塊為512比特;鏈接值CV長度為256比特;輸出的雜湊值長度為256比特
消息填充
壓縮函數(shù)
?其中,ROT表示循環(huán)移位,SH表示移位,R表示右移,右上角數(shù)字表示移動(dòng)的位數(shù)
示意圖
消息擴(kuò)充方案
函數(shù)f
SHA-3算法 Keccak(海綿結(jié)構(gòu))
總結(jié)
以上是生活随笔為你收集整理的[密码学] 杂凑函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [密码学] 高级加密标准AES
- 下一篇: [密码学] 流密码