加密演演算法(一)

2020-09-27 09:00:43

加密演演算法初探

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

在這裡插入圖片描述

加密演演算法分類

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

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

加密演演算法的選擇

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

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

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

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

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