“密碼”和“操作模式”有什麼區別?
密碼(類似 RIJNDAEL 的名稱)和操作模式(如 ECB)之間有什麼區別?
這不是加密/解密技術的兩個術語嗎?
操作模式是一種明確的方法,我們使用分組密碼(例如 AES)來做更多的事情,而不僅僅是加密一個數據塊。例如,它可能允許我們加密多個數據塊(例如 ECB、CBC 等),為我們提供一些經過驗證的加密(例如 GCM)或加密磁碟儲存的方法(例如 XTS)。
Rijndael、DES 等是分組密碼。這意味著它們提供了一種加密固定數量數據的方法(在 AES 的情況下,它們加密 128 位的塊)。
實際上,您要加密的數據量通常遠大於塊大小。因此,我們要麼需要創建越來越多的幾乎所有大小的分組密碼,要麼我們想出一種使用我們的分組密碼來加密大量數據的方法。這種方法稱為操作模式。
以最簡單的情況為例,考慮 ECB 模式下的 AES。ECB 模式告訴我們,我們需要將明文字元串拆分為 128 位的部分(可能在一些填充方案之後)。然後,每個部分都使用 AES 加密,然後將生成的加密連接起來形成我們的輸出密文。AES 只是對我們提供給它的明文塊進行加密,而 ECB 允許我們加密任意大量的數據。
有關許多不同操作模式的描述和對其優缺點的討論,您可能會對Rogaway 的這篇論文感興趣,第 2.3 節提供了他對操作模式的形式化。
“密碼”是加密和解密數據的算法,而“密碼模式”定義了密碼如何加密和解密數據。
換句話說:密碼是用於加密/解密數據的加密算法,而密碼模式定義了應用密碼的*“操作模式”*。兩者是互補的,可以單獨選擇。
事實上,你可以這樣想:如果你選擇一個密碼,就像選擇你想開什麼車一樣,而選擇一個密碼模式則定義了你想如何駕駛那輛車。
您可能會感興趣的是:如果您不選擇特定的密碼模式,您將始終發現自己使用稱為“ECB”(電子密碼本)的預設密碼模式。
有關不同密碼模式的概述,我想向您指出維基百科的“分組密碼操作模式”文章。
最後但並非最不重要的一點是,我很快總結了兩個範例,以向您展示“密碼”究竟在哪裡發揮作用,以及“密碼模式”在哪裡發揮作用:
**ECB
(預設的經典加密/解密模式;但由於潛在的安全問題,並不推薦。)**
**CBC
(與 ECB 相比,代表一種更安全的加密/解密模式的眾多密碼模式選項之一。)**