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