『壹』 摘要演算法如何在SSL中防止數據被篡改
實際應用中特別在一些安全性要求高的通信場景中往往要保證數據不被篡改.但對於一些信息量大,信息數量多的消息直接進行加密解密過程會嚴重消耗性能.因此提出消息摘要演算法,對消息的摘要進行加解密的性能損耗遠小於對消息整體進行加密,並且消息摘要也可以檢測消息是否被篡改.目前著名的摘要演算法有SHA,MD5等.下文是在SSL通信中如何使用摘要演算法防止數據被篡改的簡單理解.
1,假設A有一量長消息需要發送給B,需要對消息進行摘要.首先摘要演算法會對消息整體進行特徵提取.這段特徵值就被稱為消息的摘要.
提取出來的特徵值要能確保消息在作任何一個位置被篡改,篡改多少都能反映出來,即消息被篡改了重新進行摘要操作總能得到與未篡改時不同的特徵值.相反地,不同的特徵值也意味著不同的消息體.但無須通過特徵值還原消息.即特徵值只能反映出消息被篡改了,無法反映出消息在何處被篡改,也無法通過特徵值還原丟失或者被刪除的消息.
2,A使用B的公鑰對計算出來摘要進行加密,並將摘要和消息(消息明文)一並發送給B.
假想A發送給B的消息被C截獲了,此時C對消息明文可見.但C不能解碼出摘要內容(A使用B的公鑰發送的摘要只有B的私鑰可以解密,而B的私鑰只有B才持有).設想此時C對消息修改後重新做摘要,並使用B的公鑰進行加密,再發送給B.此時B端解密出來的摘要已經被篡改,因此C的修改在B端通過了摘要驗證.這樣雖然對消息進行摘要但仍然還是無法保證數據不被篡改.為了解決這個問題.要求A端不能只使用明文進行特徵提取,A端可以使用一些私密信息(只有A和B知曉的消息,C並不知情)與消息明文一起混合提取特徵.這樣雖然C可以獲取明文,但對秘密信息並不知情,C嘗試重新生成摘要時由於缺失私密信息也無法生成被B成功驗證的摘要.這樣使用摘要演算法就防止了第三方對數據的篡改.
『貳』 用java程序實現消息摘要演算法,並生成一個數的消息摘要
import java.security.MessageDigest;
String myinfo="我的測試信息";
MessageDigest alg = MessageDigest.getInstance("MD5");
alga.update(myinfo.getBytes());
byte[] bytes = alga.digest();
『叄』 摘要演算法的特點是什麼
「消息摘要」(Message Digest)是一種能產生特殊輸出格式的演算法,這種加密演算法的特點是無論用戶輸入什麼長度的原始數據,經過計算後輸出的密文都是固定長度的,這種演算法的原理是根據一定的運算規則對原數據進行某種形式的提取,這種提取就是「摘要」,被「摘要」的數據內容與原數據有密切聯系,只要原數據稍有改變,輸出的「摘要」便完全不同,因此基於這種原理的演算法便能對數據完整性提供較為健全的保障。但是,由於輸出的密文是提取原數據經過處理的定長值,所以它已經不能還原為原數據,即消息摘要演算法是「不可逆」的,理論上無法通過反向運算取得原數據內容,因此它通常只能被用來做數據完整性驗證,而不能作為原數據內容的加密方案使用,否則誰也無法還原。
『肆』 說明消息摘要、數字簽名和身份認證這三者之間的關系
分少了,所以我扼要回答:
消息摘要:消息的hash函數,採用不可逆演算法運算後的結果,例如md5,crc等等;
數字簽名:演算法公開,私鑰保密的加密演算法,可以確定作者的身份;
身份認證:通常指基於第三方認證機構的認證方式,一個可信賴的第三方機構提供認證服務。
『伍』 摘要演算法的分類
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位機器做了優化。
『陸』 不同原文用同一個哈希演算法進行處理的消息摘要一定不同嗎
1.哈希演算法對原文的長度理論上是沒有限制的,如果有限制的話,基本上是考慮硬體存儲的問題。
2..哈希演算法大多數是迭代結構,也就是將明文分成相同長度的若干block,給定一個初始值IV,完成一個block的哈希值計算之後,將這個哈希值作為下一個block的初始值,再繼續下一個block哈希值計算,直到最後一個block的計算完成後,輸出的最終結果就是該明文的消息摘要。當然實際使用的哈希演算法還需要掩碼和消息填充等步驟,但基本原理是這樣的。
實際上將長明文壓縮成消息摘要,是一定會有碰撞產生,也就是兩個不同的明文生成相同的哈希值,因為明文和消息摘要的信息量不同。但是所謂的不同原文生成的摘要一定不同,是指在通常的計算條件下,你得到兩個不同的明文生成相同的哈希值的概率非常小,以至於你無法在能夠接受的時間內,或者在計算資源有限的情況下,有效的尋找碰撞,或者偽造消息摘要。
『柒』 什麼是mac它與消息摘要有什麼不同什麼是hmac
消息摘要與MAC的區別,消息摘要只能保證消息的完整性,MAC不僅能夠保證完整性,還能夠保證真實性
『捌』 sha 1演算法生成的摘要是多少位
160位。
SHA-1(英語:SecureHashAlgorithm1,中文名:安全散列演算法1)是一種密碼散列函數,美國國家安全局設計,並由美國國家標准技術研究所(NIST)發布為聯邦數據處理標准(FIPS)。
最初載明的演算法於1993年發布,稱做安全散列標准(SecureHashStandard),FIPSPUB180。這個版本現在常被稱為SHA-0。
它在發布之後很快就被NSA撤回,並且由1995年發布的修訂版本FIPSPUB180-1(通常稱為SHA-1)取代。SHA-1和SHA-0的演算法只在壓縮函數的消息轉換部分差了一個比特的循環位移。
『玖』 描述數字簽名和消息摘要演算法的異同
身份認證就是,像用戶名密碼、動態口令、USB Key認證等輸入等一致。
數字簽名技術是將摘要信息用發送者的私鑰加密,與原文一起傳送給接收者。接收者只有用發送的公鑰才能解密被加密的摘要信息,然後用HASH函數對收到的原文產生一個摘要信息,與解密的摘要信息對比。如果相同,則說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改過,因此數字簽名能夠驗證信息的完整性。
就是一個是用戶自身確認真偽,一個是信息加密確定真偽
『拾』 如何用C語言實現MD5演算法計算一個文本的消息摘要
MD5是不可能逆向的。
王教授的碰撞法是利用了MD5或者SHA1演算法的一個特性,
根據MD5和SHA1等Hash演算法的特點,因為他們是任意長度的字元串變成固定長度的摘要信息。
那麼這里就有可能發生一個問題,就是不同的字元串在理論上是有可能產生相同的摘要信息。
王教授所謂的碰撞法,碰撞的就是不同的字元串所產生的摘要信息是一樣的那些字元串。因此得名碰撞法。 碰撞就是體現在這里。沒有什麼其它的傳神的東西了。根據SHA1和MD5等Hash演算法,在設計時候,設計這個演算法的人認為不同的字元串要產生相同結果的摘要信息的可能性幾乎為零。而王教授則證明了SHA1和MD5等Hash演算法產生的摘要信息規則是可以在比較短時間內被破解的。這樣一來,原始數據的 Integrity 就被打破了。 所謂的破解,也就是體現在這里。
至於破解工具,下面的地址提供一些免費的破解服務,能破解一些簡單的密碼,其實都是採用字典或暴力破解。
www.cmd5.com
www.xmd5.org
我有時去破解一些常用的密碼,有一定的成功率