雜湊競猜遊戲系統開發(詳情及案例)丨雜湊競猜遊戲開發原始碼正式版

xiaofufu發表於2023-02-21

雜湊 Hash

Hash ,一般翻譯做雜湊,也有直接音譯為雜湊,就是把任意長度的輸入(又叫做預對映, pre-image),透過雜湊演演算法,變換成固定長度的輸出,該輸出就是雜湊值。
這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,而不可能從雜湊值來唯一的確定輸入值。



單向性(one-way)

單向性(one-way) ,從預對映,軟體開發I35功能7O98開發O7I8  能夠簡單迅速的得到雜湊值,而在計算上不可能 構造一個預對映,使其雜湊結果等於某個特定的雜湊值,即構造相應的 M=J(h)不可行。 這樣,雜湊值就能在統計上唯一的表徵輸入值,因此,密碼學上的 Hash 又被稱為”訊息摘要(message digest)”,就是要求能方便的將”訊息”進行”摘要”,但在”摘要”中無法得到比”摘要”本身更多的關於”訊息”的資訊。

抗衝突性(collision-resistant)

抗衝突性(collision-resistant) ,即在統計上無法產生2個雜湊值相同的預對映。 給定 M,計算上無法找到 M’,滿足 H(M)=H(M’) ,此謂弱抗衝突性; 計算上也難以尋找一對任意的 MM’,使滿足 H(M)=H(M’) ,此謂強抗衝突性。

對映分佈均勻性和差分分佈均勻性

對映分佈均勻性和差分分佈均勻性 ,雜湊結果中,為 0 的 bit 和為 1 的 bit ,其總數應該大致相等; 輸入中一個 bit 的變化,雜湊結果中將有一半以上的 bit 改變,這又叫做”雪崩效應(avalanche effect)”; 要實現使雜湊結果中出現 1bit 的變化,則輸入中至少有一半以上的 bit 必須發生變化。 其實質是必須使輸入中每一個 bit 的資訊,儘量均勻的反映到輸出的每一個 bit 上去; 輸出中的每一個 bit,都是輸入中儘可能多 bit 的資訊一起作用的結果。

雜湊 vs 加密

概括來說,雜湊(Hash)是將目標文字轉換成具有相同長度的、不可逆的雜湊字串(或叫做訊息摘要),而加密(Encrypt)是將目標文字轉換成具有不同長度的、可逆的密文。 從數學角度講, 雜湊和加密都是一個對映。 下面正式定義兩者:

  • 一個雜湊演演算法 R=H(S) 是一個多對一對映,給定目標文字 SH可以將其唯一對映為 R,並且對於所有 SR具有相同的長度。由於是多對一對映,所以 H不存在逆對映 S=J(R) 使得 R轉換為唯一的 S

  • 一個加密演演算法 R=E(S,K E ) 是一個一一對映,其中第二個引數叫做加密金鑰, E可以將給定的明文 S結合加密金鑰K E 唯一對映為密文 R,並且存在另一個一一對映 S=D(R,K D ) ,可以結合 K D 將密文 R唯一對映為對應明文 S,其中 K D 叫做解密金鑰。

常見雜湊函式

MD5 和 SHA1 可以說是目前應用最廣泛的Hash演演算法,而它們都是以 MD4 為基礎設計的。

  • MD4(RFC 1320)是 MIT 的Ronald L. Rivest在 1990 年設計的,MD 是 Message Digest(訊息摘要) 的縮寫。它適用在32位字長的處理器上用高速軟體實現——它是基於 32位運算元的位操作來實現的。

  • MD5(RFC 1321)是 Rivest 於1991年對MD4的改進版本。它對輸入仍以512位分組,其輸出是4個32位字的級聯,與 MD4 相同。MD5比MD4來得複雜,並且速度較之要慢一點,但更安全,在抗分析和抗差分方面表現更好。

  • SHA1是由NIST NSA設計為同DSA一起使用的,它對長度小於264的輸入,產生長度為160bit的雜湊值,因此抗窮舉(brute-force)性更好。SHA-1 設計時基於和MD4相同原理,並且模仿了該演演算法。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2936181/,如需轉載,請註明出處,否則將追究法律責任。

相關文章