一、對(duì)稱加密
1、什么是對(duì)稱加密
對(duì)稱加密算法是一種應(yīng)用比較早,技術(shù)比較成熟的加密算法。在加密和解密的過程中采用相同的一對(duì)密鑰。因此也稱這種加密算法為秘密密鑰算法或單密鑰算法。它要求發(fā)送方和接收方在安全通信之前,先約定好一對(duì)密鑰,然后由雙方各自管理,對(duì)稱加密算法的安全性全依賴于這對(duì)密鑰,如果發(fā)生密鑰泄漏這就意味著所有通過該密鑰加密的數(shù)據(jù)通信安全性得不到保障,任何得到該密鑰的人都可以對(duì)發(fā)送或接收的數(shù)據(jù)進(jìn)行解密,所以這密鑰的保密性對(duì)通信的安全性十分重要。
2、對(duì)稱加密算法特點(diǎn)
特點(diǎn):算法公開、算法簡單計(jì)算量少、加密速度快、加密效率高、由于需要雙方共同維護(hù)一對(duì)相同的密鑰,因此密鑰管理成本高,安全性低。加密和解密是互逆,加密和解密使用同一密鑰
3、常用的對(duì)稱加密算法有:DES、3DES、AES.
DES加密中秘鑰長度必須為8字節(jié),3DES秘鑰長度必須為24,AES加密算法中秘鑰長度必須為16或24或32字節(jié)
二、非對(duì)稱加密
1、什么是非對(duì)稱加密
非對(duì)稱加密算法由一個(gè)公鑰和一個(gè)私鑰組成,公鑰與私鑰都是配對(duì)產(chǎn)生的,當(dāng)使用公鑰進(jìn)行對(duì)數(shù)據(jù)加密時(shí),只有使用對(duì)應(yīng)的私鑰才能將數(shù)據(jù)進(jìn)行解密;同理當(dāng)使用私鑰對(duì)數(shù)據(jù)進(jìn)行加密時(shí),也只能使用對(duì)應(yīng)的公鑰才能解密,因此在加密和解密時(shí)使用的都是不同的密鑰,這樣它的保密性就會(huì)相對(duì)比較高,也解決了對(duì)稱加密算法中需要雙方共享密鑰的不便問題,消除了最終用戶交換密鑰的需要。
2、非對(duì)稱加密算法特點(diǎn)
算法強(qiáng)度復(fù)雜,由于算法復(fù)雜所以加密解密效率比對(duì)稱加密解密慢。
安全性高,由于對(duì)稱加密算法只有一個(gè)密鑰,并且是非公開性的,如果密鑰泄露即影響數(shù)據(jù)安全性,而非對(duì)稱加密算法具有兩個(gè)密鑰,其中一個(gè)是公開的,另外一個(gè)是私密的,這樣就安全性提高很多。
規(guī)則:
【加密】用公鑰加密,私鑰解密
【簽名】用私鑰簽名,公鑰驗(yàn)證
3、非對(duì)稱加密 RSA算法和ECC橢圓曲線算法比較
- 存儲(chǔ)空間占用小。
- ECC的密鑰尺寸和系統(tǒng)參數(shù)與RSA、DSA相比要小得多。
- 安全性高。如最小密鑰長度的要求160位ECC與1024位RSA、DSA有相同的安全強(qiáng)度。
- 計(jì)算量小,速度快。在私鑰的處理速度上(解密和簽名),ECC遠(yuǎn) 比RSA、DSA快得多。
- 帶寬成本小。
4、RSA算法
5、ECC橢圓曲線算法
(1)什么是橢圓曲線算法
橢圓曲線密碼學(xué),簡稱ECC(Elliptic curve cryptography)它是一種建立公開密鑰加密的算法,基于橢圓曲線數(shù)學(xué)理論而實(shí)現(xiàn)的一種非對(duì)稱加密算法。在1985年由Neal Koblitz和Victor Miller分別獨(dú)立提出并應(yīng)用于密碼學(xué)中。ECC被廣泛認(rèn)為是在給定密鑰長度的情況下,最強(qiáng)大的非對(duì)稱算法,對(duì)帶寬要求十分緊的連接中會(huì)十分有幫助。
(2)特點(diǎn)
使用較短的密鑰,占用空間少,并能達(dá)到與RSA同等或更高的安全級(jí)別。
(3)在以太坊中應(yīng)用
由源碼分析以太坊地址生成可見在區(qū)塊鏈上橢圓曲線是使用secp256k1算法生成公私密鑰對(duì)