Java實現文件的RSA和DES加密算法


根據密鑰類型不同將現代密碼技術分為兩類:對稱加密算法(秘密鑰匙加密)和非對稱加密算法(公開密鑰加密)

 

對稱鑰匙加密系統是加密和解密均采用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。

非對稱密鑰加密系統采用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。

 

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位 即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM