加密算法

RSA算法是現今使用最廣泛的公鑰密碼算法,也是號稱地球上最安全的加密算法。在瞭解RSA算法之前,先熟悉下幾個術語 
根據密鑰的使用方法,可以將密碼分爲對稱密碼和公鑰密碼 
對稱密碼:加密和解密使用同一種密鑰的方式 

公鑰密碼:加密和解密使用不同的密碼的方式,因此公鑰密碼通常也稱爲非對稱密碼。

RSA的加密過程可以使用一個通式來表達

EmodN密文=明文EmodN

也就是說RSA加密是對明文的E次方後除以N後求餘數的過程。就這麼簡單?對,就是這麼簡單。 
從通式可知,只要知道E和N任何人都可以進行RSA加密了,所以說E、N是RSA加密的密鑰,也就是說E和N的組合就是公鑰,我們用(E,N)來表示公鑰

(E,N)公鑰=(E,N)

不過E和N不並不是隨便什麼數都可以的,它們都是經過嚴格的數學計算得出的,關於E和N擁有什麼樣的要求及其特性後面會講到。順便囉嗦一句E是加密(Encryption)的首字母,N是數字(Number)的首字母

RSA的解密同樣可以使用一個通式來表達

DmodN明文=密文DmodN

也就是說對密文進行D次方後除以N的餘數就是明文,這就是RSA解密過程。知道D和N就能進行解密密文了,所以D和N的組合就是私鑰

(D,N)私鑰=(D,N)

從上述可以看出RSA的加密方式和解密方式是相同的,加密是求“E次方的mod N”;解密是求“D次方的mod N” 
此處D是解密(Decryption)的首字母;N是數字(Number)的首字母。

小結下

  
公鑰(E,N)
私鑰(D,N)
密鑰對(E,D,N)
加密
EmodN密文=明文EmodN
解密
DmodN明文=密文DmodN

MD5加密

.1 概述

Message Digest Algorithm MD5(中文名爲消息摘要算法第五版)爲計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護。該算法的文件號爲RFC 1321R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992.

MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer ScienceRSA Data Security IncRonald L. Rivest開發出來,經MD2MD3MD4發展而來。

MD5用於確保信息傳輸完整一致。是計算機廣泛使用的雜湊算法之一(又譯摘要算法哈希算法),主流編程語言普遍已有MD5實現。將數據(如漢字)運算爲另一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD2MD3MD4

MD5的作用是讓大容量信息在用數字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的字節串變換成一定長的十六進制數字串)。

.2 算法原理

MD5算法簡要的敘述可以爲:MD5512位分組來處理輸入的信息,且每一分組又被劃分爲1632位子分組,經過了一系列的處理後,算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。

MD5算法中,首先需要對信息進行填充,使其位長對512求餘的結果等於448。因此,信息的位長(Bits Length)將被擴展至N*512+448N爲一個非負整數,N可以是零。填充的方法如下,在信息的後面填充一個1和無數個0,直到滿足上面的條件時才停止用0對信息的填充。然後,在這個結果後面附加一個以64位二進制表示的填充前信息長度。經過這兩步的處理,信息的位長=N*512+448+64=(N+1*512,即長度恰好是512的整數倍。這樣做的原因是爲滿足後面處理中對信息長度的要求。

一、什麼是MD5加密

MD5英文全稱“Message-Digest Algorithm 5”,

翻譯過來是“消息摘要算法5”,

由MD2、MD3、MD4演變過來的,

是一種單向加密算法,是不可逆的一種的加密方式。

二、MD5加密有哪些特點?

壓縮性:任意長度的數據,算出的MD5值長度都是固定的。

容易計算:從原數據計算出MD5值很容易。

抗修改性:對原數據進行任何改動,哪怕只修改1個字節,所得到的MD5值都有很大區別。

強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即僞造數據)是非常困難的。

三、MD5應用場景:

一致性驗證

數字簽名

安全訪問認證


DES全稱爲Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法

DES算法的入口參數有三個:Key、Data、Mode。其中Key爲7個字節共56位,是DES算法的工作密鑰;Data爲8個字節64位,是要被加密或被解密的數據;Mode爲DES的工作方式,有兩種:加密或解密。


SHA-256 算法輸入報文的最大長度不超過2^64 bit,輸入按512-bit 分組進行處理,產生 

的輸出是一個256-bit 的報文摘要

SHA加密

.1 概述

SHA是一種數據加密算法,該算法經過加密專家多年來的發展和改進已日益完善,現在已成爲公認的最安全的散列算法之一,並被廣泛使用。該算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解爲取一串輸入碼(稱爲預映射或信息),並把它們轉化爲長度較短、位數固定的輸出序列即散列值(也稱爲信息摘要或信息認證代碼)的過程。散列函數值可以說是對明文的一種指紋或是摘要所以對散列值的數字簽名就可以視爲對此明文的數字簽名。

         安全散列算法SHASecure Hash AlgorithmSHA)是美國國家標準技術研究所發佈的國家標準FIPS PUB 180,最新的標準已經於2008年更新到FIPS PUB 180-3。其中規定了SHA-1SHA-224SHA-256SHA-384,和SHA-512這幾種單向散列算法SHA-1SHA-224SHA-256適用於長度不超過2^64二進制位的消息。SHA-384SHA-512適用於長度不超過2^128二進制位的消息。

.2 原理

SHA-1是一種數據加密算法,該算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解爲取一串輸入碼(稱爲預映射或信息),並把它們轉化爲長度較短、位數固定的輸出序列即散列值(也稱爲信息摘要或信息認證代碼)的過程。

單向散列函數的安全性在於其產生散列值的操作過程具有較強的單向性。如果在輸入序列中嵌入密碼,那麼任何人在不知道密碼的情況下都不能產生正確的散列值,從而保證了其安全性。SHA將輸入流按照每塊512位(64個字節)進行分塊,併產生20個字節的被稱爲信息認證代碼或信息摘要的輸出。

該算法輸入報文的長度不限,產生的輸出是一個160位的報文摘要。輸入是按512 位的分組進行處理的。SHA-1是不可逆的、防衝突,並具有良好的雪崩效應。

通過散列算法可實現數字簽名實現,數字簽名的原理是將要傳送的明文通過一種函數運算(Hash)轉換成報文摘要(不同的明文對應不同的報文摘要),報文摘要加密後與明文一起傳送給接受方,接受方將接受的明文產生新的報文摘要與發送方的發來報文摘要解密比較,比較結果一致表示明文未被改動,如果不一致表示明文已被篡改。

MAC (信息認證代碼)就是一個散列結果,其中部分輸入信息是密碼,只有知道這個密碼的參與者才能再次計算和驗證MAC碼的合法性。




SHA-256 算法輸入報文的最大長度不超過2^64 bit,輸入按512-bit 分組進行處理,產生 

的輸出是一個256-bit 的報文摘要

DES全稱爲Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法

DES算法的入口參數有三個:Key、Data、Mode。其中Key爲7個字節共56位,是DES算法的工作密鑰;Data爲8個字節64位,是要被加密或被解密的數據;Mode爲DES的工作方式,有兩種:加密或解密。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章