三 雜湊演算法概述與部分詳解

2022-08-28 11:45:12 字數 1643 閱讀 5408

概念

雜湊函式沒有金鑰,雜湊函式就是把可變輸入長度串(叫做預對映, pre-image)轉換成固定長度輸出串(叫做雜湊值)的一種函式。

雜湊函式又可稱為壓縮函式、雜湊函式、訊息摘要、指紋、密碼校驗和、資訊完整性檢驗(dic)、操作認證碼(message authentication code, mac)。 雜湊訊息驗證碼(hmac)

用法:可以利用雜湊函式進行資料檔案的完整性校驗。 

數字簽名(見pki)

常用的訊息摘要演算法有:

md5演算法

sha演算法

ripemd演算法

mac:

訊息認證碼(帶金鑰的hash函式)。密碼學中,通訊實體雙方使用的一種驗證機制,保證訊息資料完整性的一種工具。

安全性依賴於hash函式,故也稱帶金鑰的hash函式。訊息認證碼是基於金鑰和訊息摘要【hash】所獲得的乙個值,可用於資料來源發認證和完整性校驗。

1. 傳送者通過mac演算法計算出訊息的mac值,並和訊息一起發給收信者

2. 收信者用同樣的mac演算法計算收到的訊息的mac值,並對比兩者。

hmac:

hash-based message authentication code,利用雜湊演算法,以乙個金鑰和乙個訊息為輸入,生成乙個訊息摘要作為輸出。

a specific construction for calculating a message authentication code (mac) involving acryptographic hash functionin combination with a secretcryptographic key. as with any mac, it may be used to simultaneously verify both thedata integrityand theauthenticityof a message.【主要是為了能讓人對對方身份正確性和訊息有效性進行驗證,與訊息摘要的最大不同,就是有簽名金鑰!】

方法:hmac(k,m) = h((k ⊕ opad) ∥ h((k ⊕ ipad) ∥ m))

中有mac和hmac的具體區別。

hmac是需要乙個金鑰的。所以,hmac_sha1也是需要乙個金鑰的,md5,sha1不需要。

數字簽名協同條件:

雜湊函式:雜湊函式是數字簽名的乙個重要輔助工具, 應用雜湊函式可以生成乙個檔案的,具有固定長度的檔案摘要,從而使數字簽名可以迅速有效地簽名乙個任意長度的檔案。一般地,對檔案的任意小改動,都會改變檔案的雜湊值,從而,秘密的雜湊函式可以用來檢測病毒等對檔案的破壞。

對簽名的攻擊:對數字簽名有各種各樣的欺騙存在,重複使用是乙個典型欺騙,如電子支票,重複的使用具有可怕後果,阻止這種欺騙的有效方法是簽名中包含時間日期標誌。 

數字簽名方案:

-直接數字簽名

-需仲裁的數字簽名 

--使用單鑰技術的仲裁數字簽名

--使用雙鑰技術的仲裁數字簽名

雜湊演算法概述

雜湊用於字串處理 快速判斷兩個字串是否相同 先介紹一下雜湊的思想 ab c 97 p2 98 p1 99 p0 a bc 97 p 2 98 p1 99 p0ab d 97 p2 98 p1 100 p0 a bd 97 p 2 98 p1 100 p 0abcd 97 p3 98 p2 99 p ...

部分雜湊演算法總結

對雜湊方法重新進行調研,右圖是找到的提供有部分原始碼的雜湊方法,這其中包含了比較經典的雜湊方法,比如e2lsh mih,同時也包含有最近幾年一直到13年提出來的一些比較新的雜湊演算法,比如13年提出的有bpbc opq ksh。上面這一段是摘自本小子的週報 本小子這週除改了篇文章,其餘時間幾乎都在打...

雜湊演算法詳解

功能 在o 1 時間內查詢某個區間的子串是什麼 該串的雜湊值 等等 實現方法 類似於字首合,對字串從前到後進行雜湊 void init void hash 查詢 查詢區間 l,r 內字串的雜湊值,has r has l 1 p r l 1 ull get has int l,int r 實現 查詢字...