加密演算法(一)

tangYi0_0發表於2020-09-25

加密演算法初探

參考:https://blog.csdn.net/qq_31878855/article/details/69396791

在這裡插入圖片描述

加密演算法分類

常見的加密演算法可以分成三類:對稱加密演算法、非對稱加密演算法和Hash演算法。

  • 對稱加密演算法
    加密和解密用的是同一串金鑰,如果金鑰發生改變就必須一起改變。
  • 非對稱加密演算法
    非對稱金鑰就是加密和解密所用到的金鑰不一樣,也稱為公私鑰加密。公鑰用來加密,私鑰用來解密。單向加密的話,加密方持有公鑰,解密方持有私鑰。雙向加密的話,兩方交換公鑰即可。這可真巧妙,就是加密有點慢。
  • Hash演算法
    Hash演算法特別的地方在於它是一種單向演算法,使用者可以通過Hash演算法對目標資訊生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標資訊。就是說你可以根據源資料推出一串唯一的數字,但是根據這串數字是沒有辦法推出源資料的。

加密演算法的選擇

我們應該根據自己的使用特點來確定,由於非對稱加密演算法的執行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的資料時,建議採用對稱加密演算法,提高加解密速度。

對稱加密演算法不能實現簽名,因此簽名只能非對稱演算法。

由於對稱加密演算法的金鑰管理是一個複雜的過程,金鑰的管理直接決定著他的安全性,因此當資料量很小時,我們可以考慮採用非對稱加密演算法。

在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的金鑰,然後用對稱加密演算法加密資料,這樣我們就整合了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理金鑰的優點。

如果在選定了加密演算法後,那採用多少位的金鑰呢?一般來說,金鑰越長,執行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。

相關文章