數據摘要演算法
Ⅰ 帶密鑰的消息摘要演算法——數據簽名演算法
數字簽名演算法可以看做是一種帶有密鑰(公鑰+私鑰)的消息摘要演算法,也就是說,數據簽名演算法是非對稱加密演算法和消息摘要演算法的結合體。該演算法包含簽名和驗證兩項操作,遵循 「私鑰簽名,公鑰驗證」 的簽名/驗證方式。
1、甲方構建密鑰對,並能公布公鑰給乙方。
2、甲方想乙方發送數據需要附加簽名。
3、乙方使用公鑰和簽名驗證數據。
RSA數字簽名演算法主要可以分為:MD、SHA兩類。該演算法公鑰通常要比私鑰短。
RSA數字簽名示例:
在實現層面上,可以認為DSA演算法實現就是RSA演算法實現的精簡版。DSA演算法僅支持SHA系列消息摘要演算法。
DSA數字簽名示例:
ECDSA演算法相對於傳統簽名演算法具有速度快、強度高、簽名短等優點。微軟操作系統及辦公軟體的序列號驗證就使用了該演算法。
ECDSA演算法示例:
Ⅱ 摘要演算法的介紹
數據摘要演算法是密碼學演算法中非常重要的一個分支,它通過對所有數據提取指紋信息以實現數據簽名、數據完整性校驗等功能,由於其不可逆性,有時候會被用做敏感信息的加密。數據摘要演算法也被稱為哈希(Hash)演算法、散列演算法。
Ⅲ 摘要演算法的分類
1、CRC8、CRC16、CRC32
CRC(Cyclic Rendancy Check,循環冗餘校驗)演算法出現時間較長,應用也十分廣泛,尤其是通訊領域,現在應用最多的就是 CRC32 演算法,它產生一個4位元組(32位)的校驗值,一般是以8位十六進制數,如FA 12 CD 45等。CRC演算法的優點在於簡便、速度快,嚴格的來說,CRC更應該被稱為數據校驗演算法,但其功能與數據摘要演算法類似,因此也作為測試的可選演算法。
在 WinRAR、WinZIP 等軟體中,也是以 CRC32 作為文件校驗演算法的。一般常見的簡單文件校驗(Simple File Verify – SFV)也是以 CRC32演算法為基礎,它通過生成一個後綴名為 .SFV 的文本文件,這樣可以任何時候可以將文件內容 CRC32運算的結果與 .SFV 文件中的值對比來確定此文件的完整性。
與 SFV 相關工具軟體有很多,如MagicSFV、MooSFV等。
2、MD2 、MD4、MD5
這是應用非常廣泛的一個演算法家族,尤其是 MD5(Message-Digest Algorithm 5,消息摘要演算法版本5),它由MD2、MD3、MD4發展而來,由Ron Rivest(RSA公司)在1992年提出,被廣泛應用於數據完整性校驗、數據(消息)摘要、數據加密等。MD2、MD4、MD5 都產生16位元組(128位)的校驗值,一般用32位十六進制數表示。MD2的演算法較慢但相對安全,MD4速度很快,但安全性下降,MD5比MD4更安全、速度更快。
在互聯網上進行大文件傳輸時,都要得用MD5演算法產生一個與文件匹配的、存儲MD5值的文本文件(後綴名為 .md5或.md5sum),這樣接收者在接收到文件後,就可以利用與 SFV 類似的方法來檢查文件完整性,絕大多數大型軟體公司或開源組織都是以這種方式來校驗數據完整性,而且部分操作系統也使用此演算法來對用戶密碼進行加密,另外,它也是目前計算機犯罪中數據取證的最常用演算法。
與MD5 相關的工具有很多,如 WinMD5等。
3、SHA1、SHA256、SHA384、SHA512
SHA(Secure Hash Algorithm)是由美國專門制定密碼演算法的標准機構—— 美國國家標准技術研究院(NIST)制定的,SHA系列演算法的摘要長度分別為:SHA為20位元組(160位)、SHA256為32位元組(256位)、 SHA384為48位元組(384位)、SHA512為64位元組(512位),由於它產生的數據摘要的長度更長,因此更難以發生碰撞,因此也更為安全,它是未來數據摘要演算法的發展方向。由於SHA系列演算法的數據摘要長度較長,因此其運算速度與MD5相比,也相對較慢。
SHA1的應用較為廣泛,主要應用於CA和數字證書中,另外在互聯網中流行的BT軟體中,也是使用SHA1來進行文件校驗的。
4、RIPEMD、PANAMA、TIGER、ADLER32 等
RIPEMD是Hans Dobbertin等3人在對MD4,MD5缺陷分析基礎上,於1996年提出來的,有4個標准128、160、256和320,其對應輸出長度分別為16位元組、20位元組、32位元組和40位元組。
TIGER由Ross在1995年提出。Tiger號稱是最快的Hash演算法,專門為64位機器做了優化。
Ⅳ 摘要演算法有哪些
摘要演算法常見的有MD5、SHA1、SHA256等。
摘要演算法應用范圍:
摘要演算法是一種用於生成文本或數據摘要的演算法,通常通過對輸入的文本或數據進行壓縮和提煉,生成簡潔且具有代表性的摘要信息。摘要演算法可以對長篇文章、新聞報道、論文等文本進行自動摘要,提取出其中最重要和關鍵的信息,幫助用戶快速了解文本的主題和要點。
在資料庫查詢過程中,如果數據量龐大,可以使用摘要演算法對資料庫中的數據進行摘要提取。通過摘要信息,可以加快資料庫查詢的速度和效率。在大規模數據集中,存在大量重復的文件,這可能導致存儲浪費和數據處理的困難。
摘要演算法可以生成唯一的文件指紋或哈希值,用於判斷文件是否重復,從而進行文件去重。摘要演算法被廣泛用於數據的完整性驗證和數字簽名。通過生成數據的摘要信息,可以驗證數據在傳輸過程中是否被篡改,並且可以確保數據的來源和完整性。