鏈客,有問必答!!
雜湊函式是密碼學中的乙個重要分支,該函式是一類數學函式,它可以在有限的合理時間內,將任意長度的訊息變換成固定長度的二進位制串,且不可逆,這個輸出值就是雜湊值,也叫雜湊值或訊息摘要。以hash函式為基礎的hash演算法,在數字簽名,實現資料完整性,merkle樹資料儲存和檢索等方面有著廣泛的應用。
在位元幣系統中使用了兩個密碼學hash函式,乙個是sha256,另乙個是ripemd160。ripemd160主要用於生成位元幣位址,sha256是位元幣鏈上幾乎所有加密演算法的hash函式。
技術原理
hash函式也叫雜湊函式,雜湊函式。它是一種單向密碼機制,也就是只能加密,而不能解密。數學表示式可以為:h=h(m),其中h是雜湊函式,m是要加密的資訊,h是輸出的固定長度的雜湊值。運算過程是設定乙個初始向量,對訊息補長到演算法要求長度,將補長後的訊息拆分成n份資料塊,n份資料塊與初始向量通過hash演算法進行迭代迴圈運算,最終得到固定長度的hash值。
hash函式具有以下特點:
壓縮性:對任意長度的資訊加密成固定長度的hash值;
單向性:hash函式的數學原理沒有逆運算,所以不能將hash值轉換成加密前的資訊;
抗碰撞性:hash函式的運算過程相當複雜,包含多種數**算和大量變數迴圈運算,要滿足兩個不同的訊息產生相同的hash值幾乎不可能發生;
高靈敏性:任何微小的輸入都有可能對輸出產生巨大的影響。
典型的hash函式有兩類:訊息摘要演算法(md5)和安全雜湊演算法(sha)。
hash碰撞
理想的hash函式對於不同的輸入得到兩個不同的hash值。在實際中,如果存在兩個不同的資訊m,m'使h(m)=h(m'),那麼就稱m和m'是該函式的乙個碰撞。簡言之,hash碰撞是指兩個不同的訊息在同乙個雜湊函式作用下,產生兩個相同的雜湊值。
為了保證資料安全性和不可篡改性,實際hash演算法要足夠複雜使其有很強的hash抗碰撞性。
hash抗碰撞性分為兩種:一種是弱抗碰撞性,即指定的訊息x和函式h,去求訊息y,使h(x)=h(y)在計算上是不可行的;另乙個是強抗碰撞性,即給定函式h,對於任意一對不同的訊息x和y,使得h(x)=h(y)在計算上也是不可行的。
雜湊函式密碼學
鏈客,有問必答!雜湊函式是密碼學中的乙個重要分支,該函式是一類數學函式,它可以在有限的合理時間內,將任意長度的訊息變換成固定長度的二進位制串,且不可逆,這個輸出值就是雜湊值,也叫雜湊值或訊息摘要。以hash函式為基礎的hash演算法,在數字簽名,實現資料完整性,merkle樹資料儲存和檢索等方面有著...
密碼學之雜湊
雜湊 雜湊函式 md5 sha1 sha256 512 對稱加密演算法 des 3des aes 高階密碼標準,美國 局使用的加密演算法 ps 蘋果內部的鑰匙串訪問用的就算aes。非對稱加密演算法 rsa1 資料不可反算 不可逆運算 2 演算法公開。3 對相同的資料加密,得到的結果是一樣的。4 對不...
密碼學 雜湊演算法
在日常生活中,每個人去銀行 坐火車都需要身份證證明自己的身份。身份證存在的目的就是要證明我真的是我。同樣在網路中,乙個檔案是否被改過 更改之後就是新的檔案 需要乙個 身份證 證明,這裡就需要了 hash 演算法了。為了滿足上述要求,需要 hash 演算法滿足如下特點 1 md5,即 message ...