MD5全稱"message-digest algorithm 5"(信息-摘要演算法)。
90年代初由MIT計算機科學實驗室和RSA Data Security Inc聯合開發。
MD5演算法採用128位加密方式,即使一台計算機每秒可嘗試10億條明文,要跑出原始明文也要1022年。在802.1X認證中,一直使用此演算法。
加密演算法之二---ELGamal
ELGamal演算法是一種較為常見的加密演算法,他基於1984年提出的公鑰密碼體制和橢圓曲線加密體系。即能用於數據加密,又能用於數字簽名,起安全性依賴於計算有限領域上離散對數這一數學難題。
著名的DSS和Schnorr和美國國家標准X9.30-199X中ELGamal為唯一認可加密方式。並且橢圓曲線密碼加密體系增強了ELGamal演算法的安全性。
ELGamal在加密過程中,生成的密文長度是明文的兩倍。且每次加密後都會在密文中生成一個隨即數K。
加密演算法之三---BlowFish
BlowFish演算法由著名的密碼學專家部魯斯·施耐爾所開發,是一個基於64位分組及可變密鑰長度[32-448位]的分組密碼演算法。
BlowFish演算法的核心加密函數名為BF_En,為一種對稱演算法,加密強度不夠。
加密演算法之四---SHA
SHA(即Secure Hash Algorithm,安全散列演算法)是一種常用的數據加密演算法,由美國國家標准與技術局於1993年做為聯邦信息處理標准公布,先版本SHA-1,SHA-2。
SHA演算法與MD5類似,同樣按2bit數據塊為單位來處理輸入,但它能產生160bit的信息摘要,具有比MD5更強的安全性。
SHA收到一段明文,然後以不可逆方式將它轉為一段密文,該演算法被廣泛運用於數字簽名及電子商務交易的身份認證中。(
Ⅱ 常用的加密演算法有哪些
對稱密鑰加密
對稱密鑰加密 Symmetric Key Algorithm 又稱為對稱加密、私鑰加密、共享密鑰加密:這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單的相互推算的密鑰,對稱加密的速度一般都很快。
分組密碼
分組密碼 Block Cipher 又稱為「分塊加密」或「塊加密」,將明文分成多個等長的模塊,使用確定的演算法和對稱密鑰對每組分別加密解密。這也就意味著分組密碼的一個優點在於可以實現同步加密,因為各分組間可以相對獨立。
與此相對應的是流密碼:利用密鑰由密鑰流發生器產生密鑰流,對明文串進行加密。與分組密碼的不同之處在於加密輸出的結果不僅與單獨明文相關,而是與一組明文相關。
DES、3DES
數據加密標准 DES Data Encryption Standard 是由IBM在美國國家安全局NSA授權下研製的一種使用56位密鑰的分組密碼演算法,並於1977年被美國國家標准局NBS公布成為美國商用加密標准。但是因為DES固定的密鑰長度,漸漸不再符合在開放式網路中的安全要求,已經於1998年被移出商用加密標准,被更安全的AES標准替代。
DES使用的Feistel Network網路屬於對稱的密碼結構,對信息的加密和解密的過程極為相似或趨同,使得相應的編碼量和線路傳輸的要求也減半。
DES是塊加密演算法,將消息分成64位,即16個十六進制數為一組進行加密,加密後返回相同大小的密碼塊,這樣,從數學上來說,64位0或1組合,就有2^64種可能排列。DES密鑰的長度同樣為64位,但在加密演算法中,每逢第8位,相應位會被用於奇偶校驗而被演算法丟棄,所以DES的密鑰強度實為56位。
3DES Triple DES,使用不同Key重復三次DES加密,加密強度更高,當然速度也就相應的降低。
AES
高級加密標准 AES Advanced Encryption Standard 為新一代數據加密標准,速度快,安全級別高。由美國國家標准技術研究所NIST選取Rijndael於2000年成為新一代的數據加密標准。
AES的區塊長度固定為128位,密鑰長度可以是128位、192位或256位。AES演算法基於Substitution Permutation Network代換置列網路,將明文塊和密鑰塊作為輸入,並通過交錯的若干輪代換"Substitution"和置換"Permutation"操作產生密文塊。
AES加密過程是在一個4*4的位元組矩陣(或稱為體State)上運作,初始值為一個明文區塊,其中一個元素大小就是明文區塊中的一個Byte,加密時,基本上各輪加密循環均包含這四個步驟:
ECC
ECC即 Elliptic Curve Cryptography 橢圓曲線密碼學,是基於橢圓曲線數學建立公開密鑰加密的演算法。ECC的主要優勢是在提供相當的安全等級情況下,密鑰長度更小。
ECC的原理是根據有限域上的橢圓曲線上的點群中的離散對數問題ECDLP,而ECDLP是比因式分解問題更難的問題,是指數級的難度。而ECDLP定義為:給定素數p和橢圓曲線E,對Q=kP,在已知P,Q 的情況下求出小於p的正整數k。可以證明由k和P計算Q比較容易,而由Q和P計算k則比較困難。
數字簽名
數字簽名 Digital Signature 又稱公鑰數字簽名是一種用來確保數字消息或文檔真實性的數學方案。一個有效的數字簽名需要給接收者充足的理由來信任消息的可靠來源,而發送者也無法否認這個簽名,並且這個消息在傳輸過程中確保沒有發生變動。
數字簽名的原理在於利用公鑰加密技術,簽名者將消息用私鑰加密,然後公布公鑰,驗證者就使用這個公鑰將加密信息解密並對比消息。一般而言,會使用消息的散列值來作為簽名對象。
Ⅲ 電子合同中的數字簽名防篡改,有什麼原理
在公鑰密碼學中,密鑰是由公開密鑰和私有密鑰組成的密鑰對。數字簽名就是用私有密鑰進行加密,接收方用公開密鑰進行解密。由於公開密鑰不能推算出私有密鑰,所以公開密鑰不會損壞私有密鑰的安全,公開密鑰無需保密可以公開傳播,而私有密鑰必須保密。
因此,當某人用其私有密鑰加密信息,能夠用TA的公開密鑰正確解密就可以肯定該消息是經過某人簽字的,因為其他人的公開密鑰不可能正確解密該加密信息,其他人也不可能擁有該人的私有密鑰而製造出該加密過的信息。
就其實質而言,數字簽名是接收方能夠向第三方證明接收到的消息及發送源的真實性而採取的一種安全措施,其使用可以保證發送方不能否認和偽造信息。
數字簽名的主要方式是:報文的發送方從報文文本中生成一個散列值(或報文摘要),發送方用自己的私有密鑰對這個散列值進行加密來形成發送方的數字簽名,然後這個數字簽名將作為報文的附件和報文一起發送給報文的接收方,報文的接收方首先從接收到的原始報文中計算出散列值(或報文摘要),接著再用發送方的公開密鑰來對報文附加的數字簽名進行解密,如果兩個散列值相同,那麼接收方就能確認該數字簽名是發送方的。
Ⅳ MP4A文件校驗採用摘要演算法的哪一種 怎麼破解校驗
}
consume_id = g_buffer[out];
printf("%d begin consume proct %d\n", num, consume_id);
g_buffer[out] = -1;
out = (out + 1) % BUFFSIZE;
printf("%d end consume proct %d\n", num, consume_id);
pthread_mutex_unlock(&g_mutex);
sem_post(&g_sem_full);
sleep(1);
}
Ⅳ 摘要演算法的特點是什麼
「消息摘要」(Message Digest)是一種能產生特殊輸出格式的演算法,這種加密演算法的特點是無論用戶輸入什麼長度的原始數據,經過計算後輸出的密文都是固定長度的,這種演算法的原理是根據一定的運算規則對原數據進行某種形式的提取,這種提取就是「摘要」,被「摘要」的數據內容與原數據有密切聯系,只要原數據稍有改變,輸出的「摘要」便完全不同,因此基於這種原理的演算法便能對數據完整性提供較為健全的保障。但是,由於輸出的密文是提取原數據經過處理的定長值,所以它已經不能還原為原數據,即消息摘要演算法是「不可逆」的,理論上無法通過反向運算取得原數據內容,因此它通常只能被用來做數據完整性驗證,而不能作為原數據內容的加密方案使用,否則誰也無法還原。
Ⅵ 什麼是報文摘要演算法
本文描述了MD5報文摘要演算法,此演算法將對輸入的任意長度的信息進行計算,產生一個128位
長度的「指紋」或「報文摘要」,假定兩個不同的文件產生相同的報文摘要或由給定的報文摘要產生
原始信息在計算上是行不通的。MD5演算法適合用在數據簽名應用中,在此應用中,一個大的文件必
須在類似RSA演算法的公用密鑰系統中用私人密鑰加密前被「壓縮」在一種安全模式下。
MD5演算法能在32位機器上能以很快的速度運行。另外,MD5演算法不需要任何大型的置換列表。
此演算法編碼很簡潔。MD5演算法是MD4報文摘要演算法的擴展。MD5演算法稍慢於MD4演算法,但是在設
計上比MD4演算法更加「保守」。設計MD5是因為MD4演算法被採用的速度太快,以至於還無法證明
它的正確性,因為MD4演算法速度非常快,它處在遭受成功秘密攻擊的「邊緣」。MD5後退了一步,
它舍棄了一些速度以求更好的安全性。它集中了不同的評論家提出的建議,並採取了一些附加的優化
措施。它被放在公共的地方以求公眾的評論意見,它可能當作一個標准被採納。
作為基於OSI的應用,MD5的對象標識符是:
md5OBJECTIDENTIFIER::=
iso(1)member-body(2)US(840)rsadsi(113549)digestAlgorithm(2)5}
在X.509類型AlgorithmIdentifier[3]中,MD5演算法參數應該包括NULL類型。
2 術語和符號
本文中一個「字」是32位,一個「位元組」是8位。一系列位串可看成是一系列位元組的普通形式,
其中的連續的8位看成一個位元組,高位在前,同理一系列位元組串可看成是一系列32位的字,其中每
個連續的4個位元組當作一個字,地位在前。
我們定義x_i代表「x減去I".如果下劃線左邊的是一個表達式,則用括弧括住,如:
x_{i+1}。同樣我們用^代表求冪,這樣x^i則代表x的i次冪。
符號「+」代表字的加,X<<<s代表32位的值X循環左移s位,not(X)代表X的按位
補運算,XvY表示X和Y的按位或運算,XxorY代表X和Y的按位異或運算,XY代表
X和Y的按位與運算。
3 MD5演算法描述
我們假設有一個b位長度的輸入信號,希望產生它的報文摘要,此處b是一個非負整數,b也可
能是0,不一定必須是8的整數倍,它可能是任意大的長度。我們設想信號的比特流如下所示:
m_0m_1...m_{b-1}
下面的5步計算信息的報文摘要。
(1)補位
MD5演算法是對輸入的數據進行補位,使得如果數據位長度LEN對512求余的結果是448。即數
據擴展至K*512+448位。即K*64+56個位元組,K為整數。補位操作始終要執行,即使數據長度LEN
對512求余的結果已是448。
具體補位操作:補一個1,然後補0至滿足上述要求。總共最少要補一位,最多補512位。
(2)補數據長度
用一個64位的數字表示數據的原始長度b,把b用兩個32位數表示。那麼只取B的低64位。
當遇到b大於2^64這種極少遇到的情況時,這時,數據就被填補成長度為512位的倍數。也就是說,
此時的數據長度是16個字(32位)的整數倍數。用M[0...N-1]表示此時的數據,其中的N是16
的倍數。
(3)初始化MD緩沖器
用一個四個字的緩沖器(A,B,C,D)來計算報文摘要,A,B,C,D分別是32位的寄存器,初
始化使用的是十六進製表示的數字
A=0X01234567
B=0X89abcdef
C=0Xfedcba98
D=0X76543210
(4)處理位操作函數
首先定義4個輔助函數,每個函數的輸入是三個32位的字,輸出是一個32位的字。
X,Y,Z為32位整數。
F(X,Y,Z)=XYvnot(X)Z
G(X,Y,Z)=XZvYnot(Z)
H(X,Y,Z)=XxorYxorZ
I(X,Y,Z)=Yxor(Xvnot(Z))
這一步中使用一個64元素的常數組T[1...64],它由sine函數構成,T[i]表示數組中的第i個元
素,它的值等於經過4294967296次abs(sin(i))後的值的整數部分(其中i是弧度)。T[i]為32位
整數用16進製表示
Ⅶ 一個文件的MD5值怎麼看的
需要使用輔助工具"文件MD5值查看器 "才能查看。文件MD5值查看器(MD5 Free File Hasher)是一款小巧的文件MD5值查看工具,使用簡單載入文件,就能查看到該文件的MD5值
使用步驟:
下載完成後運行軟體
點擊"selecta file"選擇要查看md5文件
選擇後,"md5 hash"文本框就會顯示出當前文件md5值
MD5叫信息-摘要演算法,是一種密碼的演算法,它可以對任何文件產生一個唯一的MD5驗證碼,每個文件的MD5碼就如同每個人的指紋一樣,都是不同的,這樣,一旦這個文件在傳輸過程中,其內容被損壞或者被修改的話,那麼這個文件的MD5碼就會發生變化,通過對文件MD5的驗證,可以得知獲得的文件是否完整。
Ⅷ 文件MD5值是什麼
MD5信息摘要演算法一種被廣泛使用的密碼散列函數,可以產生出一個128位(16位元組)的散列值(hash value),用於確保信息傳輸完整一致。
MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於1992年公開,用以取代MD4演算法。這套演算法的程序在 RFC 1321 標准中被加以規范。
(8)文件摘要演算法擴展閱讀
1991年,Rivest開發出技術上更為趨近成熟的MD5演算法。它在MD4的基礎上增加了"安全帶"(safety-belts)的概念。雖然MD5比MD4復雜度大一些,但卻更為安全。
這個演算法很明顯的由四個和MD4設計有少許不同的步驟組成。在MD5演算法中,信息-摘要的大小和填充的必要條件與MD4完全相同。
Den boer和Bosselaers曾發現MD5演算法中的假沖突(pseudo-collisions),但除此之外就沒有其他被發現的加密後結果了。
參考資料來源:網路-MD5值
Ⅸ 摘要演算法的分類
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位機器做了優化。