密碼散列函式

密碼散列函式

密碼散列函式(Cryptographic hash function),又譯為加密散列函式,是散列函式的一種。它被認為是一種單向函式,也就是說極其難以由散列函式輸出的結果,回推輸入的數據是什麼。這樣的單向函式被稱為“現代密碼學的馱馬”。這種散列函式的輸入數據,通常被稱為訊息(message),而它的輸出結果,經常被稱為訊息摘要(message digest)或摘要(digest)。在信息安全中,有許多重要的套用,都使用了密碼散列函式來實現,例如數字簽名,訊息認證碼。

簡介

密碼散列函式是一種單向散列函式,將任意長度的訊息壓縮到某一固定長度的訊息摘要,一個理想的密碼散列函式應該有四個主要的特性:對於任何一個給定的訊息,它都很容易就能運算出散列數值。難以由一個已知的散列數值,去推算出原始的訊息。在不更動散列數值的前提下,修改訊息內容是不可行的。對於兩個不同的訊息,它不能給與相同的散列數值。單向散列函式生成的信息摘要是不可預見的,訊息摘要看起來和原始的數據沒有任何的關係。而且,原始數據的任何微小變化都會對生成的信息摘要產生很大的影響 。它的模型為:

密碼散列函式 密碼散列函式

密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式
密碼散列函式 密碼散列函式

其中, 是待處理的明文,可以為任意長; 是單向散列函式, 是生成的報文摘要,它具有固定的長度,並且和 的長度無關。其中 具有以下的單向性質:給 和 ,很容易計算 ;給定 和 ,很難計算 ,甚至得不到的 任何訊息;給定 ,要找兩個不同的和,使得在計算上是不可行的。

散列函式

散列函式(Hash function)又稱散列算法、哈希函式,是一種從任何一種數據中創建小的數字“指紋”的方法。散列函式把訊息或數據壓縮成摘要,使得數據量變小,將數據的格式固定下來。該函式將數據打亂混合,重新創建一個叫做散列值(hash values,hash codes,hash sums,或hashes)的指紋。散列值通常用一個短的隨機字母和數字組成的字元串來代表。好的散列函式在輸入域中很少出現散列衝突。在散列表和數據處理中,不抑制衝突來區別數據,會使得資料庫記錄更難找到。所有散列函式都有如下一個基本特性:如果兩個散列值是不相同的(根據同一函式),那么這兩個散列值的原始輸入也是不相同的。這個特性是散列函式具有確定性的結果,具有這種性質的散列函式稱為單向散列函式。但另一方面,散列函式的輸入和輸出不是確定對應關係的,如果兩個散列值相同,兩個輸入值很可能是相同的,但也可能不同,這種情況稱為“散列碰撞(collision)”,這通常是兩個不同長度的輸入值,刻意計算出相同的輸出值。輸入一些數據計算出散列值,然後部分改變輸入值,一個具有強混淆特性的散列函式會產生一個完全不同的散列值。

套用

數字簽名(又稱公鑰數字簽名,Digital Signature)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑑別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證,但法條中的電子簽章與數字簽名,代表之意義並不相同,電子簽章用以辨識及確認電子檔案簽署人身份、資格及電子檔案真偽者。而數字簽名則是以數學算法或其他方式運算對其加密,才形成電子簽章,意即使用數字簽名才創造出電子簽章。數字簽名不是指將簽名掃描成數字圖像,或者用觸摸板獲取的簽名,更不是落款。數字簽名了的檔案的完整性是很容易驗證的(不需要騎縫章、騎縫簽名,也不需要筆跡鑑定),而且數字簽名具有不可抵賴性(即不可否認性),不需要筆跡專家來驗證。數字簽名套用了公鑰密碼領域使用的單向函式原理。單向函式指的是正向操作非常簡單,而逆向操作非常困難的函式,比如大整數乘法。這種函式往往提供一種難解或懷疑難解的數學問題。公鑰密碼領域具備實用性的三個懷疑難解問題為:質數分解,離散對數和橢圓曲線問題。

在密碼學中,訊息認證碼(Message authentication code,縮寫為MAC),又譯為訊息鑑別碼、檔案訊息認證碼、訊息鑑別碼、信息認證碼,是經過特定算法後產生的一小段信息,檢查某段訊息的完整性,以及作身份驗證。它可以用來檢查在訊息傳遞過程中,其內容是否被更改過,不管更改的原因是來自意外或是蓄意攻擊。同時可以作為訊息來源的身份驗證,確認訊息的來源。訊息認證碼的算法中,通常會使用帶密鑰的散列函式(HMAC),或者塊密碼的帶認證工作模式(如CBC-MAC)。信息鑑別碼不能提供對信息的保密,若要同時實現保密認證,同時需要對信息進行加密。

相關詞條

熱門詞條

聯絡我們