
- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密的需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 元件
- 密碼系統的攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力破解攻擊
- 密碼系統 - 密碼分析技術
- 密碼學型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰吊銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - Feistel 分組密碼
- 分組密碼的操作模式
- 分組密碼的操作模式
- 電子密碼本 (ECB) 模式
- 密碼分組連結 (CBC) 模式
- 密碼反饋 (CFB) 模式
- 輸出反饋 (OFB) 模式
- 計數器 (CTR) 模式
- 經典密碼
- 密碼學 - 反向密碼
- 密碼學 - 凱撒密碼
- 密碼學 - ROT13 演算法
- 密碼學 - 換位密碼
- 密碼學 - 加密換位密碼
- 密碼學 - 解密換位密碼
- 密碼學 - 乘法密碼
- 密碼學 - 仿射密碼
- 密碼學 - 簡單替換密碼
- 密碼學 - 簡單替換密碼的加密
- 密碼學 - 簡單替換密碼的解密
- 密碼學 - 維吉尼亞密碼
- 密碼學 - 維吉尼亞密碼的實現
- 現代密碼
- Base64 編碼與解碼
- 密碼學 - XOR 加密
- 替換技術
- 密碼學 - 單字母替換密碼
- 密碼學 - 單字母替換密碼的破解
- 密碼學 - 多字母替換密碼
- 密碼學 - Playfair 密碼
- 密碼學 - 希爾密碼
- 多字母替換密碼
- 密碼學 - 一次性密碼本密碼
- 一次性密碼本密碼的實現
- 密碼學 - 換位技術
- 密碼學 - 柵欄密碼
- 密碼學 - 列置換
- 密碼學 -隱寫術
- 對稱演算法
- 密碼學 - 資料加密
- 密碼學 - 加密演算法
- 密碼學 - 資料加密標準
- 密碼學 - 三重 DES
- 密碼學 - 雙重 DES
- 高階加密標準
- 密碼學 - AES 結構
- 密碼學 - AES 變換函式
- 密碼學 - 位元組替換變換
- 密碼學 - 行移位變換
- 密碼學 - 列混淆變換
- 密碼學 - 輪金鑰加變換
- 密碼學 - AES 金鑰擴充套件演算法
- 密碼學 - Blowfish 演算法
- 密碼學 - SHA 演算法
- 密碼學 - RC4 演算法
- 密碼學 - Camellia 加密演算法
- 密碼學 - ChaCha20 加密演算法
- 密碼學 - CAST5 加密演算法
- 密碼學 - SEED 加密演算法
- 密碼學 - SM4 加密演算法
- IDEA - 國際資料加密演算法
- 公鑰(非對稱)密碼學演算法
- 密碼學 - RSA 演算法
- 密碼學 - RSA 加密
- 密碼學 - RSA 解密
- 密碼學 - 建立 RSA 金鑰
- 密碼學 - 破解 RSA 密碼
- 密碼學 - ECDSA 演算法
- 密碼學 - DSA 演算法
- 密碼學 - Diffie-Hellman 演算法
- 密碼學中的資料完整性
- 密碼學中的資料完整性
- 訊息認證
- 密碼學數字簽名
- 公鑰基礎設施
- 雜湊
- MD5(訊息摘要演算法 5)
- SHA-1(安全雜湊演算法 1)
- SHA-256(安全雜湊演算法 256 位)
- SHA-512(安全雜湊演算法 512 位)
- SHA-3(安全雜湊演算法 3)
- 雜湊密碼
- Bcrypt 雜湊模組
- 現代密碼學
- 量子密碼學
- 後量子密碼學
- 密碼學協議
- 密碼學 - SSL/TLS 協議
- 密碼學 - SSH 協議
- 密碼學 - IPsec 協議
- 密碼學 - PGP 協議
- 影像與檔案加密
- 密碼學 - 影像
- 密碼學 - 檔案
- 隱寫術 - 影像
- 檔案加密和解密
- 密碼學 - 檔案加密
- 密碼學 - 檔案解密
- 物聯網中的密碼學
- 物聯網安全挑戰、威脅和攻擊
- 物聯網安全的加密技術
- 物聯網裝置的通訊協議
- 常用的加密技術
- 自定義構建加密演算法(混合加密)
- 雲加密
- 量子密碼學
- 密碼學中的影像隱寫術
- DNA 密碼學
- 密碼學中的一次性密碼 (OTP) 演算法
- 區別
- 密碼學 - MD5 與 SHA1
- 密碼學 - RSA 與 DSA
- 密碼學 - RSA 與 Diffie-Hellman
- 密碼學與密碼學
- 密碼學 - 密碼學與密碼分析
- 密碼學 - 經典與量子
- 密碼學與隱寫術
- 密碼學與加密
- 密碼學與網路安全
- 密碼學 - 流密碼與分組密碼
- 密碼學 - AES 與 DES 密碼
- 密碼學 - 對稱與非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
密碼學 - 密碼分組連結 (CBC) 模式
密碼分組連結 (CBC) 模式是一種分組密碼,它將一系列位元作為一個整體或一個塊進行加密,並將密文或加密金鑰應用於整個密碼學塊。密碼分組連結使用特定字元長度的初始化向量 (IV)。其主要特徵之一是它使用連結,這是一種工作技術,使密文塊的解密依賴於其之前的每個塊。因此,緊接在密文之前的塊的密碼學具有其之前所有塊的所有有效性。
密文的一個塊中的單個位元密碼學錯誤會影響所有後續塊的解密。密文塊的順序可以更改,這會破壞解密過程。在密碼分組連結中,每個明文塊基本上是在與緊接其之前的密文塊進行異或 (參見 XOR) 後,使用密碼學進行加密的。
只有當使用相同的加密金鑰和初始化向量 (IV) 對相同的明文或原始文字塊進行加密,並且密文塊順序保持不變時,相同的密文塊才會產生預期的結果。由於 XOR 過程掩蓋了明文模式,因此它優於電子密碼本模式。
當使用相同的加密金鑰加密兩條通訊時,初始化向量 (IV) 應該有所不同。雖然某些應用程式可能發現它有用且唯一,但初始化向量不一定需要儲存或保密。
由於 ECB 損害了一些安全或隱私標準,因此密碼分組連結或 CBC 是 ECB 的改進或更復雜的版本。在與密碼學的初始明文塊進行異或後,CBC 中的前一個密文塊被髮送作為輸入到後續加密過程。簡單來說,前一個密文塊和當前明文或原始文字塊的 XOR 輸出被加密以建立密文塊。
過程如下所示:

操作
上圖顯示了 CBC 模式的工作原理。步驟如下:
頂部暫存器應載入 n 位初始化向量 (IV)。
將頂部暫存器中的資料值與 n 位明文塊進行異或。
使用金鑰 K 使用底層分組密碼加密 XOR 操作的輸出。
繼續此過程,直到所有明文塊都透過將密文塊饋送到頂部暫存器進行處理。
為了解密它,IV 資料與第一個解密的密文塊進行異或。為了解密下一個密文塊,前一個密文塊也被新增到替換 IV 的暫存器中。
CBC 模式的分析
在 CBC 模式下,前一個密文塊和當前明文塊被組合,然後使用金鑰對結果進行加密。然後,解密是相反的過程,其中在當前密文被解密後,將前一個密文塊新增到結果中。
CBC 相對於 ECB 的優點是,當 IV 更改時,相同的訊息可以使用不同的密文。不利的一面是,連結效應導致傳輸錯誤在解密期間傳播到一些後續塊。
需要注意的是,CBC 模式為眾所周知的原始資料身份驗證系統提供了基礎。因此,它有利於需要對稱加密和資料原始身份驗證的應用程式。
CBC 模式的位寬
下表顯示了 CBC 模式提供的介面的位寬:
明文 | 密文 | 密碼金鑰 | IV | |
---|---|---|---|---|
CBC-DES | 64 | 64 | 64 | 64 |
CBC-AES128 | 128 | 128 | 128 | 128 |
CBC-AES192 | 128 | 128 | 192 | 128 |
CBC-AES256 | 128 | 128 | 128 | 128 |
密碼分組連結 (CBC) 模式是利用分組密碼演算法的常見分組密碼操作模式。在此版本中,它能夠處理高階加密標準 (AES) 和資料加密標準 (DES)。AES 的密碼金鑰長度應為 128/192/256 位,DES 的密碼金鑰長度應為 64 位。另一個缺點是,儘管現實世界中的文字具有各種長度,但我們的工作模式僅支援固定大小的單位(單個塊為 64 或 128 位)。因此,在加密或解密之前,需要將提供給此原語的最終文字塊填充到 128 位。
CBC 模式的公式
如果將其寫成公式,則此方法可以表示為:
Ci = EK(Bi ⊕ Ci-1)
其中 Ci-1 是對應於 Bi-1 的密碼,EK 是使用金鑰 K 的塊加密技術。
注意:在上面的公式中,假設 C0 是初始化向量。
同樣,CBC 可以透過使用以下方法進行解密:
Bi = DK(Ci)⊕(Ci-1)
其中 DK 代表使用金鑰 K 的塊解密技術。
對於解密,將使用相同的初始化向量 (C0)。
安全挑戰
此方案的主要屬性如下:
如果傳遞的訊息的哪怕一個位元發生更改或丟失,則將損壞一個額外的特定塊。這種損害不會影響其他塊。
如果密文中丟失或添加了一個位元,則位元和塊邊界將移動,從而導致所有後續密碼學密文塊的解碼不正確。
該因素能夠將塊附加到解密訊息的末尾,從而使用原始文字或明文對其進行增強。
優點
密碼分組連結 (CBC) 模式具有以下幾個優點:
當輸入資料的大小超過一個塊(通常對於 AES 來說是 128 位或 16 位元組)時,CBC 模式執行良好。任何長度的訊息都可以透過將其分割成塊並連線起來進行加密和解密。
儘管 CBC 本身無法提供身份驗證,但它可以與數字簽名或 HMAC(基於雜湊的訊息身份驗證程式碼)結合使用,以確保加密資料的完整性和有效性。CBC 透過結合身份驗證和加密,可以提供完整的安全解決方案。
在密碼分析方面,CBC 通常比 ECB(電子密碼本)模式更安全。當使用 CBC 時,攻擊者更難以識別加密資料中的模式,因為每個密文塊都依賴於其前面的塊。因此,CBC 在保護私有資料免受攻擊或解密嘗試方面更有效。
缺點
密碼塊連結 (CBC) 模式無法進行併發加密是其缺點之一。在 CBC 模式下,每個明文塊在加密前都會與前一個密文塊進行異或運算。這使得當前塊的加密依賴於前一個密文塊。由於每個塊的加密都依賴於前一個塊的加密完成,因此無法併發或並行加密後續塊。與可以同時對多個塊進行併發加密的模式(如電子密碼本 (ECB) 或計數器 (CTR) 模式)相比,CBC 模式中加密的順序性會導致加密效能下降。但是,由於其安全優勢和對各種加密場景的相容性,CBC 模式儘管存在此限制,但仍然被廣泛使用。