日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

密码学基础知识(六)Hash函数与消息认证

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 密码学基础知识(六)Hash函数与消息认证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hash函數和消息認證

先說Hash

哈希函數,可以將任意長度的消息壓縮為某一固定長度的消息摘要函數。一句話,Hash簡直了。

當然有逆天的一面就有大缺點,過程不可逆。傻了吧,哈哈。

Hash的性質:

1.????(逆天特性)應用于任意長的消息,產生固定長的輸出(散列值,消息摘要,數字指紋隨便你叫什么了);

2.????(單向性)對于給定消息x,H(x)很容易得出。但是對于給定z,尋找H(x)=z是不可行的;

3.????(安全特性)抗弱碰撞性:有x,找一個y,使得H(x)=H(y)計算不可行;抗強碰撞性:尋找(x,y),使得使得H(x)=H(y)計算不可行。

4.????(雪崩性)雪崩效應,散列值的每一位都與消息的每一位有關,相近的消息,輸出很大差別。

Hash:

?????? 帶密鑰的Hash和不帶密鑰的Hash。區別在于前者一個輸入,后者兩個:消息+密鑰。后者一般用于產生消息認證碼MAC。

Hash應用:

1.數據完整性驗證:由于雪崩性,稍有改動一對比就發現了;2.產生數字簽名:計算H(m),然后私鑰加密;3.密鑰推導:天生單向性;4.偽隨機數生成。

簡單說下Hash函數的攻擊方法:

?????? 第一類生日攻擊:

????????????? 就是說,n個輸入,其中有一個輸出H(x),那我要多少個y才能使H(y)=H(x)的概率達到0.5?

????????????? 答案是2/n個。假如輸出為m位長,那么就有2m個輸出。引出了第二類生日攻擊

?????? 第二類生日攻擊:

????????????? k~=2m/2,說明了散列值不能小于128位啊。

?????? 模差分攻擊:

????????????? 最有效的方法,也叫比特追蹤法。這個假期研究研究。

?

再額外提下基于分組密碼的Hash函數:

?????? 可以用CBC和CFB。

由于這種基于加密體制的Hash函數經不起攻擊,所以大多都用另一類,即構造復雜的非線性關系實現單向性。這就產生了那些著名的算法和那些著名的事。

?

MD5算法:

?????? 輸入消息:長度小于264,以512位一組。

?????? 輸出消息:128位

過程:

1.消息填充:將消息長度填充至差64位就是512的倍數。那64位是表示填充長度的,是先從低位表示填充長度的。

?????? 2.填充后的消息是512的倍數,然后按512分組,每組又是16個32位長的字。

?????? 3.初始化中間結果:128位的緩存區來存儲中間結果,對其初始化4個32位長的寄存器分別存放四個固定的整數。

?????? 4.迭代壓縮:每個分組經壓縮函數HMD5處理。

???????????????????? 那就說說這個壓縮函數,HMD5有四輪處理,四個輪函數結構相同但是邏輯函數不同。

5.????輸出:最后一個HMD5的輸出即為消息摘要。

?

HMD5

?????? 四輪處理過程,每輪都對緩沖區16輪迭代運算。

?

SHA:

?????? 與MD5一脈相承,來自MD4,真名SHA-1。

?????? 輸入消息:長度小于264,以512位一組。

?????? 輸出消息:160位

過程:

1.消息填充:(跟MD5一樣)將消息長度填充至差64位就是512的倍數。那64位是表示填充長度的,是先從位表示填充長度的。

?????? 2.填充后的消息是512的倍數,然后按512分組,每組又是16個32位長的字。

?????? 3.初始化中間結果:160位的緩存區來存儲中間結果,對其初始化5個32位長的寄存器分別存放五個固定的整數。

?????? 4.迭代壓縮:四輪處理,每輪20迭代,也是邏輯函數不同

5.? 輸出:最后一個分組的輸出即為160位的消息摘要。

?

在壓縮函數上看兩者區別:

?????? MD5直接用分組的16個字作為迭代,SHA則將16字擴展為80字。

?

MD5和SHA算法必然相似,哥倆嘛,

?

?

消息認證碼MAC:

?????? 驗證信息來源的真實性;驗證消息的完整性。

?

很顯然,Hash函數很適合設計MAC。所以有了HMAC:

?????? 累了,休息一會。



總結

以上是生活随笔為你收集整理的密码学基础知识(六)Hash函数与消息认证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。