加密算法及區別

加密技術

常用的加密算法總體可以分爲兩類:單項加密和雙向加密,雙向加密又分爲對稱加密和非對稱加密,因此主要分析下面三種加密算法:

對稱加密算法、非對稱加密算法和單項加密算法(Hash算法)。

雙向加密即明文加密後形成的密文,可以通過逆向算法還原出明文。而單向加密只是對信息進行了摘要計算,不能通過算法逆向生成明文。

單向加密技術採用單向散列函數(或稱爲哈希(Hash)函數/散列函數),可將任意長度的消息散列形成固定長度的散列值(即消息摘要),用於被用戶私鑰加密後生成數字簽名,保證數據的完整性和不可否認性。

單向加密從嚴格意思上說不能算是加密的一種,而只是摘要算法,常見的單向加密技術有BASE64(一種編碼形式)、MD5、SHA、HMAC(消息認證碼)。

雙向加密技術可以分爲 對稱加密 與 非對稱加密 兩種。

(1)對稱加密:即加密與解密用的是同一把祕鑰,常用的對稱加密技術有DES、AES等。
(2)非對稱加密:加密與解密用的是不同的祕鑰,常用的非對稱加密技術有RSA等

1、對稱加密算法(AES、DES、3DES)

對稱加密算法是指加密和解密採用相同的密鑰,是可逆的(即可解密)。

AES加密算法是密碼學中的高級加密標準,採用的是對稱分組密碼體制,密鑰長度的最少支持爲128。AES加密算法是美國聯邦政府採用的區塊加密標準,這個標準用來替代原先的DES,已經被多方分析且廣爲全世界使用。

優點:加密速度快

缺點:密鑰的傳遞和保存是一個問題,參與加密和解密的雙方使用的密鑰是一樣的,這樣密鑰就很容易泄露。

2、非對稱加密算法(RSA、DSA)

非對稱加密算法是指加密和解密採用不同的密鑰(公鑰和私鑰),因此非對稱加密也叫公鑰加密,是可逆的(即可解密)。

RSA加密算法是基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但是想要對其乘積進行因式分解極其困難,因此可以將乘積公開作爲加密密鑰。雖然RSA的安全性一直未能得到理論上的證明,但它經歷了各種攻擊至今未被完全攻破。 

優點:加密和解密的密鑰不一致,公鑰是可以公開的,只需保證私鑰不被泄露即可,這樣就密鑰的傳遞變的簡單很多,從而降低了被破解的機率。

缺點:加密速度慢

RSA加密算法既可以用來做數據加密,也可以用來數字簽名。

--數據加密過程:發送者用公鑰加密,接收者用私鑰解密(只有擁有私鑰的接收者才能解讀加密的內容)

--數字簽名過程:甲方用私鑰加密,乙方用公鑰解密(乙方解密成功說明就是甲方加的密,甲方就不可以抵賴)

3、Hash加密算法(MD5)

MD5全稱是Message-Digest Algorithm 5(信息摘要算法5),單向的算法不可逆(被MD5加密的數據不能被解密)。MD5加密後的數據長度要比加密數據小的多,且長度固定,且加密後的串是唯一的。

適用場景:常用在不可還原的密碼存儲、信息完整性校驗等。

信息完整性校驗:典型的應用是對一段信息產生信息摘要,以防止被篡改。如果再有一個第三方的認證機構,用MD5還可以防止文件作者的“抵賴”,這就是所謂的數字簽名應用。

4、混合加密

由於以上加密算法都有各自的缺點(RSA加密速度慢、AES密鑰存儲問題、MD5加密不可逆),因此實際應用時常將幾種加密算法混合使用。

例如:RSA+AES:

採用RSA加密AES的密鑰,採用AES對數據進行加密,這樣集成了兩種加密算法的優點,既保證了數據加密的速度,又實現了安全方便的密鑰管理。

那麼,採用多少位的密鑰合適呢?一般來講密鑰長度越長,安全性越高,但是加密速度越慢。所以密鑰長度也要合理的選擇,一般RSA建議採用1024位的數字,AES建議採用128位即可。

5、Base64

嚴格意義講,Base64並不能算是一種加密算法,而是一種編碼格式,是網絡上最常見的用於傳輸8bid字節代碼的編碼方式之一。

Base64編碼可用於在HTTP環境下傳遞較長的標識信息,Base編碼不僅不僅比較簡單,同時也據有不可讀性(編碼的數據不會被肉眼直接看到)。

 

 

算法選擇:對稱加密AES,非對稱加密:ECC,消息摘要: MD5,數字簽名:DSA

對稱加密算法(加解密密鑰相同)

詳解各種加密算法的區別

非對稱算法(加密密鑰和解密密鑰不同)

詳解各種加密算法的區別

散列算法比較

詳解各種加密算法的區別

對稱與非對稱算法比較

詳解各種加密算法的區別

算法選擇(從性能和安全性綜合)
對稱加密: AES(128位),
非對稱加密: ECC(160位)或RSA(1024),
消息摘要: MD5
數字簽名:DSA
輕量級:TEA、RC系列(RC4),Blowfish (不常換密鑰)
速度排名(個人估測,未驗證):IDEA <DES <GASTI28<GOST<AES<RC4<TEA<Blowfish

簡單的加密設計: 用密鑰對原文做 異或,置換,代換,移位

詳解各種加密算法的區別

詳解各種加密算法的區別

常見加密算法
1、DES(Data Encryption Standard):對稱算法,數據加密標準,速度較快,適用於加密大量數據的場合;
2、3DES(Triple DES):是基於DES的對稱算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高;
3、RC2和RC4:對稱算法,用變長密鑰對大量數據進行加密,比 DES 快;
4、IDEA(International Data Encryption Algorithm)國際數據加密算法,使用 128 位密鑰提供非常強的安全性;
5、RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的,非對稱算法;
6、DSA(Digital Signature Algorithm):數字簽名算法,是一種標準的 DSS(數字簽名標準),嚴格來說不算加密算法;
7、AES(Advanced Encryption Standard):高級加密標準,對稱算法,是下一代的加密算法標準,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael 算法;
8、BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;
9、MD5:嚴格來說不算加密算法,只能說是摘要算法;
10、PKCS:The Public-Key Cryptography Standards (PKCS)是由美國RSA數據安全公司及其合作伙伴制定的一組公鑰密碼學標準,其中包括證書申請、證書更新、證書作廢表發佈、擴展證書內容以及數字簽名、數字信封的格式等方面的一系列相關協議。
11、SSF33,SSF28,SCB2(SM1):國家密碼局的隱蔽不公開的商用算法,在國內民用和商用的,除這些都不容許使用外,其他的都可以使用;
12、ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。
13、TEA(Tiny Encryption Algorithm)簡單高效的加密算法,加密解密速度快,實現簡單。但安全性不如DES,QQ一直用tea加密。

轉載自https://www.jiamisoft.com/blog/22169-jiami-39.html

https://blog.csdn.net/wishfly/article/details/88548190

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