evo真人(中国)

文章橫幅PC版
文章橫幅iPad版
文章橫幅手機版

單項散列函數的設計方法

TIME:2018-10-23 16:22  click: 217 次 來源: 未知

單向散列函數的原理較簡單,同時因它也不要求可逆,因此,設計自由度一般比較大,基本的設計方法有三種。

1.使用公開密鑰密碼算法

一般能以CBC模式用公開密鑰算法加密消息,並得到最後一個密文分組當做散列值。

若丟掉用戶的保密密鑰,此時的散列值會不能解密,即它達到了散列函數的單向性要求。

儘管在恰當的假定下,可表明此類散列函數是安全的,不過通常情況下其計算速度特別慢。此類散列函數不實用。

2.使用對稱分組算法

用對稱分組密碼算法的CBC或CFB模式得到散列值。它用個不變的密鑰加密消息,再讓最後的密文分組作散列值進行輸出。這時,若分組算法是安全的,則單向函數也將是安全的。

另外,還可將消息當做密鑰,而把上一個分組拿到的散列值作分組算法的輸入,用類似CBC模式的方法加密,最後得到的密文分組作散列值輸出。設消息一共含N個分組m1,m2,…,mN,用h,代表到第i個分組時的散列值,h代表最後的散列輸出。則可表述如下。

h0=IV

hi=Emi(hi-1)

h=hN

其中,IV是初始向量。

這類設計已經提出來一些方案,如Quisquater-Girault算法、MDC2與MDC4、GOST散列函數等。

3.直接設計單向散列函數

此類單向散列函數不基於隨意哪個假定與密碼體制,它由直接構造複雜的非線性關係實現單向性要求。這類算法典型的有:MD2、MD4、MD5、SHA-1、PIPE-MD和HAVAL等。現今,直接設計單向散列函數的措施被普遍關注,是較流行的一種設計方法。

上一篇:橢圓曲線密碼體制的優點 下一篇:密鑰管理技術的开展