數字摘要和Hash函式(雜湊函式)

2021-08-02 19:32:08 字數 2419 閱讀 1741

1、數字摘要

數字摘要是將任意長度的訊息變成固定長度的短訊息,它類似於乙個自變數是訊息的函式,也就是hash函式。數字摘要就是採用單項hash函式將需要加密的明文「摘要」成一串固定長度(128位)的密文這一串密文又稱為數字指紋,它有固定的長度,而且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致

一般來說,非對稱加密是用來處理短訊息的,而相對於較長的訊息則顯得有些吃力。當然,可以將長的訊息分成若干小段,然後再分別簽名。不過,這樣做非常麻煩,而且會帶來資料完整性的問題。比較合理的做法是在數字簽名前對訊息先進行數字摘要。

是將任意長度的訊息變成固定長度的短訊息,它類似於乙個自變數是訊息的函式,也就是hash函式。

數字摘要就是採用單項hash函式將需要加密的明文「摘要」成一串固定長度(128位)的密文這一串密文又稱為數字指紋,它有固定的長度,而且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。

乙個hash函式的好壞是由發生碰撞的概率決定的。如果攻擊者能夠輕易地構造出兩個訊息具有相同的hash值,那麼這樣的hash函式是很危險的。一般來說,安全hash標準的輸出長度為160位,這樣才能保證它足夠的安全。 這一加密方法亦稱安全hash編碼法(sha:secure hash algorithm)或md5(md standards for message digest由ron rivest所設計)。該編碼法採用單向hash函式將需加密的明文「摘要」成一串128bit的密文,這一串密文亦稱為數字指紋(finger print),它有固定的長度,且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。這樣這摘要便可成為驗證明文是否是「真身」的「指紋」了。

數字摘要使用:

(1) 被傳送檔案用sha編碼加密產生128bit的數字摘要。

(2) 傳送方用自己的私用金鑰對摘要再加密,這就形成了數字簽名。

(3) 將原文和加密的摘要同時傳給對方。

(4) 對方用傳送方的公共金鑰對摘要解密,同時對收到的檔案用sha編碼加密產生又一摘要。

(5) 將解密後的摘要和收到的檔案在接收方重新加密產生的摘要相互對比。如兩者一致,則說明傳送過程中資訊沒有被破壞或篡改過。否則不然。

2、hash函式(雜湊函式)

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

一些著名的hash演算法,md5 和 sha1 可以說是目前應用最廣泛的hash演算法,而它們都是以 md4 為基礎設計的。

這裡簡單說一下:

1) md4

md4(rfc 1320)是 mit 的ronald l. rivest在 1990 年設計的,md 是 message digest 的縮寫。它適用在32位字長的處理器上用高速軟體實現--它是基於 32位運算元的位操作來實現的。

2) md5

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

3) sha1

sha1是由nist nsa設計為同dsa一起使用的,它對長度小於2^64位的輸入,產生長度為160bit的雜湊值,因此抗窮舉(brute-force)性更好。sha-1 設計時基於和md4相同原理,並且模仿了該演算法。

美國****局(nationalsecurityagency,簡寫為nsa)美國國家標準與技術研究院(national institute of standards and technology,nist)

hash主要用於資訊保安領域中加密演算法,它把一些不同長度的資訊轉化成雜亂的128位的編碼裡,叫做hash值. 也可以說,hash就是找到一種資料內容和資料存放位址之間的對映關係。hash演算法在資訊保安方面的應用主要體現在以下的3個方面:

1)檔案校驗

我們比較熟悉的校驗演算法有奇偶校驗和crc校驗,這2種校驗並沒有抗資料篡改的能力,它們一定程度上能檢測並糾正資料傳輸中的通道誤碼,但卻不能防止對資料的惡意破壞。

md5 hash演算法的"數字指紋"特性,使它成為目前應用最廣泛的一種檔案完整性校驗和(checksum)演算法,不少unix系統有提供計算md5 checksum的命令。

2)數字簽名

hash 演算法也是現代密碼體系中的乙個重要組成部分。由於非對稱演算法的運算速度較慢,所以在數字簽名協議中,單向雜湊函式扮演了乙個重要的角色。對 hash 值,又稱"數字摘要"進行數字簽名,在統計上可以認為與對檔案本身進行數字簽名是等效的。而且這樣的協議還有其他的優點。

3)鑑權協議

如下的鑑權協議又被稱作"挑戰--認證模式:在傳輸通道是可被偵聽,但不可被篡改的情況下,這是一種簡單而安全的方法。

Hash(雜湊函式)

hash,一般翻譯做雜湊 雜湊,或音譯為雜湊,是把任意長度的輸入 又叫做預對映pre image 通過雜湊演算法變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來確定唯一的輸入值。簡單的說就...

單向雜湊函式 Hash

1.5 常用的單向雜湊函式 單向雜湊函式 獲取訊息的指紋 在刑事偵查中,偵查員會用到指紋。通過將犯罪現場採集的指紋與指紋庫比對,或與嫌疑人的指紋進行比對,就能夠知道誰與案件有關聯 在計算機中,有時候也會用到 指紋 當需要比較兩條訊息是否一致時,通常不必對訊息內容比較,直接比較它們的 指紋 就行。單向...

訊息摘要 雜湊(hash) 加鹽

hashlib 演算法介紹 python的hashlib提供了常見的摘要演算法,如md5,sha1等等。什麼是摘要演算法呢?摘要演算法又稱雜湊演算法 雜湊演算法。它通過乙個函式,把任意長度的資料轉換為乙個長度固定的資料串 通常用16進製制的字串表示 摘要演算法就是通過摘要函式f 對任意長度的資料da...