天天看點

加密-常見加密規則

加密

文章目錄

  • 加密
  • ​​對稱加密​​
  • ​​優缺點:​​
  • ​​DES資料加密标準​​
  • ​​AES加密​​
  • ​​非對稱加密​​
  • ​​(RSA、DSA、ECC)​​
  • ​​優缺點​​
  • ​​常見的應用場景​​
  • ​​總結​​
  • ​​3、線性雜湊演算法算法(MD5、SHA1、HMAC)​​
  • ​​SHA-1 與 MD5 的比較​​
  • ​​4、混合加密​​
  • ​​5、Base64​​

對稱加密

優缺點:

優點: 加速密碼快

**缺點:**密鑰的傳遞和儲存是一個問題,參與加密和解密的雙方使用的密鑰是一樣的,這樣密鑰就很容易洩露

在實際的操作過程中,因為都是針對二進制的操作,采取補操作可以用異或操作來代替,另外,在其中的某些步驟還可以那資料和密鑰進行位運算,具體不同加密算法實作不同

對稱加密算法(AES DES 3DES)

對稱加密算法是指加密和解密采用相同的密鑰,是可逆的(即可解密)。

DES資料加密标準

資料加密标準(DES)算法在 1976 年被美國國家标準局定為使用标準,後來被廣泛傳播。目前已經被證明可以被暴力破解。所謂暴力破解,就是周遊所有可能的密鑰解析資料的方法。舉個例子,已知張三和李四傳輸的是中文,加密算法是 DES,那麼拿出一小段資料進行暴力破解,嘗試所有的密鑰,如果能成功解析出中文詞語(詞語在詞庫中可以查到),那麼說明破解成功。

DES 采用的 56 位密鑰,每次計算加密 64 位的資料。

DES 采用的 56 位密鑰,每次計算加密 64 位的資料。在實際的暴力破解過程中,比我上面描述的行為更加複雜。一個通用的暴力破解算法需要較大的算力,一些 DES 的破解算法需要 239-241 次操作。這個數量級的操作,目前還沒有超出人類計算能力的極限,如果顯示卡好一點,或者機器多一些還是可以承受的。

是以後續很多組織開始利用 3 次 DES 操作來增加破解成本,具體的做法是用 3 個 56 位的密鑰組合成一個 168 位的密鑰,對資料進行 3 次 DES 操作,這樣做大大增加了暴力破解的成本。但是目前針對 3DES 仍然有一些攻擊政策,需要 290 次計算和 288 位記憶體,雖然有一定機率被攻破,但是成本非常高。

AES加密

AES加密算法是密碼學中的進階加密标準,采用的是對稱分組密碼體制,密鑰長度的最少支援為128,AES加密算法是美國聯邦政府采用的區塊加密标準,這個标準用來替代原先的DES,已經被多方分析且廣為全世界使用。

非對稱加密

(RSA、DSA、ECC)

非對稱加密算法是指加密和解密采用不同的密鑰(公鑰和私鑰),是以非對稱加密也叫公鑰加密,是可逆的(即可解密)。公鑰密碼體制根據其所依據的難題一般分為三類:大素數分解問題類、​​離散對數​​問題類、橢圓曲線類

加密-常見加密規則

RSA加密算法是基于一個十分簡單的數論事實:将兩個大素數相乘十分容易,但是想要對其乘積進行因式分解極其困難,是以可以将乘積公開作為加密密鑰。雖然RSA的安全性一直未能得到理論上的證明,但它經曆了各種攻擊至今未被完全攻破。

優缺點

優點 : 加密和解密的密鑰不一緻,公鑰是可以公開的,隻需保證私鑰不被洩露即可,這樣就密鑰的傳遞變的簡單很多,進而降低了被破解的幾率。

缺點 : 加密速度慢

RSA加密算法既可以用來做資料加密,也可以用來數字簽名。

–資料加密過程:發送者用公鑰加密,接收者用私鑰解密(隻有擁有私鑰的接收者才能解讀加密的内容)

–數字簽名過程:甲方用私鑰加密,乙方用公鑰解密(乙方解密成功說明就是甲方加的密,甲方就不可以抵賴)

常見的應用場景

非對稱加密算法目前廣泛應用到各個領域,比如

  • HTTPS 協定的握手和交換密鑰過程需要非對稱加密算法;SSH 的通信需要非對稱加密算法。
  • 另外,證書的生程,比如利用證書實作 git 賬号的免密操作也是基于非對稱加密算法。
  • 線上合同、數字貨币的簽名等都需要非對稱加密算法。

總結

對稱加密用同樣的密鑰,安全系數不夠。非對稱加密,用公鑰 + 私鑰的方式加強了安全系數。

那麼是不是我們所有的加密的應用都應該用非對稱加密呢?通常情況,非對稱加密需要更多的運算資源。是以很多協定使用非對稱加密解決最核心的安全問題,再用對稱加密解決其他問題。

以 HTTPS 協定為例,用戶端和伺服器之間會先用非對稱加密交換臨時對稱加密密鑰,然後之後的通信會以對稱加密執行,直到連接配接結束。也就是非對稱加密僅僅存在于 HTTPS 連接配接建立後,用于交換密鑰(對稱加密密鑰)的少數幾次傳輸中。這樣用非對稱加密解決最核心的安全問題:交換對稱加密密鑰;然後利用對稱加密進行資料的傳輸。

3、線性雜湊演算法算法(MD5、SHA1、HMAC)

MD5全稱是Message-Digest Algorithm 5(資訊摘要算法5),單向的算法不可逆(被MD5加密的資料不能被解密)。MD5加密後的資料長度要比加密資料小的多,且長度固定,且加密後的串是唯一的。

适用場景:常用在不可還原的密碼存儲、資訊完整性校驗等。

資訊完整性校驗:典型的應用是對一段資訊産生資訊摘要,以防止被篡改。如果再有一個第三方的認證機構,用MD5還可以防止檔案作者的“抵賴”,這就是所謂的數字簽名應用。

SHA-1 與 MD5 的比較

SHA-1摘要比MD5摘要長32 位,是以SHA-1對強行攻擊有更大的強度,比MD5更安全。使用強行技術,産生任何一個​​封包​​使其摘要等于給定報摘要的難度對MD5是2128數量級的操作,而對SHA-1則是2160數量級的操作。

在相同的硬體上,SHA-1 的運作速度比 MD5 慢。

4、混合加密

由于以上加密算法都有各自的缺點(RSA加密速度慢、AES密鑰存儲問題、MD5加密不可逆),是以實際應用時常将幾種加密算法混合使用。

例如:RSA+AES:

采用RSA加密AES的密鑰,采用AES對資料進行加密,這樣內建了兩種加密算法的優點,既保證了資料加密的速度,又實作了安全友善的密鑰管理。

那麼,采用多少位的密鑰合适呢?一般來講密鑰長度越長,安全性越高,但是加密速度越慢。是以密鑰長度也要合理的選擇,一般RSA建議采用1024位的數字,AES建議采用128位即可。

5、Base64

繼續閱讀