1、對稱加密
對稱加密就是加密和解密使用同壹個密鑰。
用數學公示表示就是:
▲加密:Ek(P) = C
▲解密:Dk(C) = P
這裏E表示加密算法,D表示解密算法,P表示明文,C表示密文。
是不是看起來有點不太容易理解?看下圖:
看過間諜局的知友們壹定知道電臺和密碼本的功能。潛伏裏面孫紅雷通過電臺收聽到壹堆數字,然後拿出密碼本比對,找到數字對應的漢字,就明白上級傳達的指令。而軍統的監聽臺沒有密碼本,只看到壹堆沒有意義的數字,這就是對稱算法的原理。
AES就屬於對稱加密 ,常見的對稱加密方法還有DES、3DES、Blowfish、RC2以及國密的SM4。
2、非對稱加密
對稱加密快而且方便,但是有個缺點——密鑰容易被偷或被破解。非對稱加密就可以很好的避免這個問題。
非對稱算法 把密鑰分成兩個 ,壹個自己持有叫 私鑰 ,另壹個發給對方,還可以公開,叫 公鑰 ,用公鑰加密的數據只能用私鑰解開。
▲加密: E公鑰(P) = C
▲解密::D私鑰(C) = P
這下就不用擔心密鑰被對方竊取或被破解了,私鑰由自己保管。
非對稱加密算法核心原理其實就是設計壹個數學難題,使得用公鑰和明文推導密文很容易,但根據公鑰、明文和密文推導私鑰極其難。
RSA 就屬於非對稱加密,非對稱加密還有Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)以及國家商用密碼SM2算法。
3、AES和RSA
AES和RSA都很安全,至少在目前的計算機體系結構下,沒有任何有效的攻擊方式。量子計算機時代,RSA有壹定的破綻,因為利用shro's algorithm,量子計算機窮舉計算質因子速度可以提高N個數量級,能夠在有限的時間內破解RSA密鑰。AES256至少目前並沒有什麽明顯的漏洞。
AES作為對稱加密技術,加密速度很快。 現在高端壹點的CPU都帶有AES-NI指令,可以極快的完成加密和解密。
舉例來說,堅果雲存儲系統采用了intel 的AES-NI加速,在采用AES加密和解密的時候,
單核的性能可以超過 1GB Byte/秒,非常非常快,很適合對大量數據進行加解密。?
但是AES作為對稱加密技術,如何安全的分發密鑰是壹個難題。通過任何方式傳遞密鑰都有泄密的風險。當然,目前我國高大上的量子通信技術或許能很好的解決這個問題。
RSA作為非對稱加密技術的代表, 加解密的速度其實相當慢,只能對小塊的數據進行加解密。但是其非對稱的特點,滿足公鑰可以隨處分發,只有公鑰能解密私鑰加密的數據,只有私鑰能解密公鑰加密的數據。所以很適合用來進行密鑰分發和身份驗證,這兩個應用場景剛好相反。
1)用於對稱秘鑰分發的場景,其他人用公鑰加密對稱的秘鑰,那麽只有授權人才持有私鑰,因此才能解密獲得對應的秘鑰,解決了AES密鑰分發的難題;
2)對於身份驗證的場景,授權人用私鑰加密壹段指令,其他人用公鑰解密對應的數據,驗證對應的指令與之前約定的某些特征壹致(例如,這段話必須使用四川口音,像是堅果雲CEO?
的標準四川口音==),如果壹致,那麽可以確認這個指令就是授權人發出的。
相關趣聞軼事:
RSA除了是壹個偉大的發明,被免費開放給所有互聯網用戶使用。它的發明者還以此成立了壹家名為 RSA Security 的網絡安全公司,這家公司最後被EMC高價收購。這是德藝雙馨的偉大證明, 是“又紅又專”的典範。
RSA的算法是以三個發明者的名字命名的,三位都是成功的數學家,科學家和企業家,其中的排名第壹Ron Rivest,有非常多的傑出貢獻。
RSA是整個互聯網數據安全的基礎,與光纖處於同樣基礎和重要的方式。 大部分的加密和解密的應用都是同時應用RSA和AES。
總結
破解加密的難度除了跟 加密方法 有關,還跟 密鑰長度 以及 加密模式 有很大的關系,就拿AES來說,有AES128和AES256( 代表密鑰長度 ),顯然AES256的安全性能比AES128更高,而AES又要四種模式:ECB、CBC、CFB、OFB( 代表加密模式 )。
RSA1024是屬於非對稱加密,是基於大整數因式分解難度,也就是兩個質數相乘很容易,但是找壹個大數的質因子非常困難。量子計算機時代,RSA有壹定的風險,具體可以參考: 超鏈接
AES256目前沒有明顯的漏洞,唯壹的問題就是如何安全的分發密鑰。
現在大部分的加密解密都是同時應用RSA和AES,發揮各自的優勢,使用RSA進行密鑰分發、協商,使用AES進行業務數據的加解密。