根據密鑰類型不同將現代密碼技術分為兩類:對稱加密算法(秘密鑰匙加密)和非對稱加密算法(公開密鑰加密)
對稱鑰匙加密系統是加密和解密均采用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。
非對稱密鑰加密系統采用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。
1 對稱加密算法
對稱加密算法用來對敏感數據等信息進行加密,常用的算法包括:
DES(Data Encryption Standard): 數據加密標准,速度較快,適用於加密大量數據的場合。
3DES(Triple DES): 是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard): 高級加密標准,是下一代的加密算法標准,速度快,安全級別高;
2 對稱算法
常見的非對稱加密算法如下:
RSA: 由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm): 數字簽名算法,是一種標准的 DSS(數字簽名標准);
ECC(Elliptic Curves Cryptography): 橢圓曲線密碼編碼學。
3 加密算法的選擇
前面簡單介紹了各種對稱和非對稱加密算法,那我們在實際使用的過程中究竟該使用哪一種比較好呢?
我們應該根據自己的使用特點來確定:
由於非對稱加密算法的運行速度比對稱加密算法的速度慢很多,當我們需要加密大量的數據時,建議采用對稱加密算法,提高加解密速度。
對稱加密算法不能實現簽名,因此簽名只能非對稱算法。
由於對稱加密算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定着他的安全性,因此當數據量很小時,我們可以考慮采用非對稱加密算法。
在實際的操作過程中,我們通常采用的方式是:采用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。
如果在選定了加密算法后,那采用多少位的密鑰呢?一般來說,密鑰越長,運行的速度就越慢,應該根據的我們實際需要的安全級別來選擇。
一般來說,RSA 建議采用 1024位 的數字,ECC 建議采用 160位,AES 采用 128位 即可。