天天看點

資訊加密技術介紹資訊加密介紹對稱加密介紹非對稱加密組合加密參考資料

介紹資訊加密

資訊加密是實作資料保密性的手段。

資訊加密(Encryption)是将明文資訊轉換為密文資訊,使之在缺少特殊資訊時不可讀的過程。隻有擁有解密方法的對象,經由解密過程,才能将密文還原為正常可讀的内容。

現代的資訊加密方式可以分為對稱加密 和 非對稱加密。

  • 對稱加密:在加密和解密時,使用相同的密鑰。
  • 非對稱加密:在加密和解密時,使用不同的密鑰。

現代的密碼學算法的安全性,取決于密鑰的保密性和算法的安全性,而不是算法的保密性。

技術是為了解決問題而生的,資訊加密技術的作用是:對資料進行加密,将明文轉換成密文,以防止未經授權的使用者通路資料。

介紹對稱加密

對稱加密

對稱加密在加密和解密時使用相同的密鑰。

資訊加密技術介紹資訊加密介紹對稱加密介紹非對稱加密組合加密參考資料

對稱加密算法有:RC4、DES、3DES、AES、ChaCha20 等。前三種算法(RC4、DES、3DES)目前已經被認為是不安全的加密算法,通常它們被禁止使用,目前常用的隻有 AES 和 ChaCha20。

  • AES(Advanced Encryption Standard,進階加密标準):AES 的密鑰長度可以是 128、192 或 256 位。它是 DES 算法的替代者。它的安全強度很高,性能也很好,而且有的硬體還會對它做特殊優化,是以 AES 非常流行,是應用最廣泛的對稱加密算法。
  • ChaCha20:ChaCha20 是 Google 設計的一種對稱加密算法。ChaCha20 的密鑰長度固定為 256 位。純軟體運作性能要超過 AES,曾經在移動用戶端上比較流行,但 ARMv8 之後也加入了 AES 硬體優化,是以現在不再具有明顯的優勢,但仍然算得上是一種不錯的對稱加密算法。

對稱加密的優劣局限:

  • 對稱加密的加密效率較高,但是安全性較低。
  • 對稱加密支援分組模式,加密明文的長度不受限,可直接用于大量資料的加密。
  • 對稱加密涉及 “密鑰交換” 問題:對稱加密需要通信雙方在通信之前先通過另一個安全的管道交換共享的密鑰。對稱密鑰一旦被竊,其所作的加密将即時失效。

分組模式

對稱加密中有一個 “分組模式” 的概念。

由于加密明文的長度與密鑰的長度在安全上具有相關性,通俗地說就是多長的密鑰決定了它能加密多長的明文:

  • 如果明文太短,就需要進行填充,然後再進行加密;
  • 如果明文太長,就需要進行分組,每個分組分别進行加密。

為什麼需要分組模式:加密明文的長度不固定,而一次加密隻能處理特定長度的一塊資料,這就需要進行疊代,以便将一段很長的資料全部加密,而疊代的方法就是分組模式。

最早的分組模式有:ECB(電子密碼本)、CBC(密碼分組連結)、CFB(密碼回報)、OFB(輸出回報)等,但這些分組模式都陸續被發現有安全漏洞,是以現在基本都不怎麼用了。

最新的分組模式被稱為 AEAD(Authenticated Encryption with Associated Data),在加密的同時增加了認證的功能,常見的是 GCM、CCM 和 Poly1305。

介紹非對稱加密

非對稱加密

非對稱加密在加密和解密時,使用不同的密鑰。非對稱加密需要兩個密鑰,一個是 公鑰(public key),一個是 私鑰(private key)。

公鑰可以公開,可任意向外釋出;私鑰不可以公開,必須由使用者自行嚴格秘密保管,絕不透過任何途徑向任何人提供,也不能透露給被信任的要通信的另一方。

公鑰 和 私鑰有個特别的 “單向” 性:雖然它們兩個都可以用來加密 和 解密,但公鑰加密後隻能用私鑰解密;私鑰加密後隻能用公鑰解密。

  • 如果是想防止别人通路資料,也就是資料加密,那麼使用公鑰加密、私鑰解密。這樣,即使公鑰在網上被截獲,如果沒有與其比對的私鑰,也無法解密。
  • 如果是想防止其他人冒充資訊發送者、僞造消息,那麼使用私鑰加密、公鑰解密。這樣,隻有私鑰持有者才能加密資料。數字簽名技術、WebAuthn 就是使用私鑰加密、公鑰解密。
資訊加密技術介紹資訊加密介紹對稱加密介紹非對稱加密組合加密參考資料

常見的非對稱加密算法有:RSA、ECC(Elliptic Curve Cryptography,橢圓曲線密碼學)等。

  • RSA :RSA 的安全性基于 “整數分解” 的數學難題,它使用兩個超大素數的乘積作為生成密鑰的材料,想要從公鑰推算出私鑰是非常困難的。RSA 密鑰的長度推薦使用 2048 位以上(256 位元組)
  • ECC:ECC 的安全性基于 “橢圓曲線離散對數” 的數學難題,使用特定的曲線方程和基點生成公鑰和私鑰,ECC 的子算法 ECDHE 用于密鑰交換,ECDSA 用于數字簽名。

作用 & 優劣局限

技術是為了解決問題而生的,非對稱加密解決了對稱加密的 “密鑰交換” 問題。

對稱加密需要通信雙方在通信之前先通過另一個安全的管道交換共享的密鑰。對稱密鑰一旦被竊,其所作的加密将即時失效。非對稱加密就是為了解決 “密鑰交換” 這個問題而設計的。非對稱加密,如果使用公鑰加密、私鑰解密,那麼即使公鑰在網上被截獲,如果沒有與其比對的私鑰,也無法解密。

非對稱加密的優劣局限。

  • 非對稱加密的安全性較高,但是加密效率較低:非對稱加密在在計算上相當複雜(非對稱加密基于大數運算,比如大素數 或者 橢圓曲線,是複雜的數學難題),非對稱加解密的性能遠遠不比對稱加密。
  • 非對稱加密的明文長度受限:非對稱加密的效率較低,導緻了現在的非對稱加密算法都沒有支援分組模式。是以主流的非對稱加密算法都隻能加密不超過密鑰長度的資料,這就決定了非對稱加密不能直接用于大量資料的加密。

組合加密

由于非對稱加密的加解密效率低,不支援分組模式,不能直接用于大量資料的加密,是以,一般在實際情況下,往往通過非對稱加密來随機建立臨時的對稱秘鑰,然後通過對稱加密來傳輸大量的主體資料。

這種由多種加密算法組合的應用形式,就被稱為 “密碼學套件”,非對稱加密在這個場景中發揮的作用被稱為 “密鑰協商”。

技術是為了解決問題而生的,組合加密解決了非對稱加密 和 對稱加密存在的問題,組合加密結合了非對稱加密 和 對稱加密的優點。

  • 非對稱加密存在的問題:加解密的效率低、明文長度受限,不能直接用于大量資料的加密;
  • 對稱加密存在的問題:涉及 “密鑰交換” 問題
  • 非對稱加密的優點:安全性較高
  • 對稱加密的優點:加密效率較高、支援分組模式,明文長度不受限,可直接用于大量資料的加密

參考資料

加密 - 維基百科,自由的百科全書 (wikipedia.org)

公開密鑰加密 - 維基百科,自由的百科全書 (wikipedia.org)

24 | 固若金湯的根本(上):對稱加密與非對稱加密 (geekbang.org)

極客時間 (geekbang.org)

繼續閱讀