- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密的需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 元件
- 密碼系統的攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力攻擊
- 密碼系統 - 密碼分析技術
- 密碼學的型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰吊銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - 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 密碼
- 密碼學 - 對稱與非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
密碼學 - 分組密碼
分組密碼和流密碼是加密技術根據輸入處理方式劃分的兩大類。分組密碼透過對由 b 位組成的固定大小的輸入塊進行操作,生成大小相同的密文。當輸入超過 b 位時,它會被分解成較小的塊。分組密碼使用各種操作模式來處理不同的用例。
分組大小
在選擇分組大小時,即使任何大小的分組都是可能的,也要牢記以下因素:
避免極小的分組大小 - 假設分組大小為 m 位。然後有 2m 種可能的明文位組合。如果攻擊者發現與某些先前傳送的密文塊匹配的明文塊,他們可以透過建立已傳送的具有該加密金鑰的明文/密文配對的字典來發起一種“字典攻擊”。隨著分組大小的增加,攻擊變得更加困難,因為需要更大的字典。
避免使用非常大的分組大小 - 非常大的分組大小使密碼難以使用。這些明文在加密之前需要填充。
8 位的倍數 - 由於大多數計算機處理器以 8 的倍數處理資料,因此由於易於實現,8 的倍數是首選的分組大小。
分組密碼中的填充
分組密碼對固定大小的分組進行操作,例如 64 位。大多數情況下,明文的長度不是分組大小的倍數。例如,一個 150 位的明文有兩個 64 位的分組和一個 22 位的分組以保持平衡。為了使最後一個分組的長度等於方案的分組大小,必須將其他資料附加到最後一個位分組。在我們的例子中,必須向剩餘的 22 位新增 42 個冗餘位才能建立一個完整的分組。填充是向最後一個分組新增位的過程。
當填充過多時,該過程效率低下。此外,如果填充始終使用相同的位進行,有時可能會使系統容易受到攻擊。
操作模式
分組密碼模式指的是使用秘密程式碼進行加密和解密的各種技術。假設一條訊息被加密成亂碼字母塊。操作模式提供方法來確保訊息在傳輸或儲存期間的安全。以下是一些常見的方法:
ECB(電子密碼本) - 可以將其視為對遇到的每個保險箱使用相同的鎖。每個保險箱(訊息塊)都使用相同的金鑰進行保護,導致訊息中的相同塊在加密後仍然相同。
CBC(密碼分組連結) - 在這裡,想象一下用鏈條連線在一起的保險箱。每個保險箱的鎖取決於前一個保險箱的鎖。這建立了一個強大的鏈條,即使知道訊息的一部分也不會洩露原始訊息,因為加密是相互關聯的。
密碼反饋 (CFB) - 與一次加密整個訊息不同,CFB 對其較小的部分進行加密。這允許對各種長度的訊息進行靈活處理。
輸出反饋 (OFB) - 與 CFB 類似,但 OFB 不是使用加密的訊息部分,而是生成連續的隨機資料流(金鑰流)。此金鑰流與明文混合以建立密文,類似於秘密程式碼的恆定流。
CTR(計數器) - 此模式將分組密碼轉換為流密碼。它使用一個不斷遞增的計數器,為每個塊生成一個唯一的金鑰。此金鑰與明文組合以建立密文。可以將其視為一個滴答作響的計數器,為訊息的每個部分生成新的秘密程式碼。
分組密碼的元件
現代分組密碼包含以下元件:
D-盒 - D-盒是一種置換盒,具有與傳統換位密碼相同的特徵。D-盒會交換位。D-盒有三種不同的型別,如下所示:
直通 D-盒 - 它從 n 個輸入生成、置換並支援 n 個輸出。在這裡,第一個輸入要輸出的是置換後的第二個輸入。輸入的第一個字母更改為第二個,第三個更改為第四個,第四個更改為第三個。有 n! 種可能的對映 D-盒的方法。
壓縮 D-盒 - 壓縮 D-盒是指具有 m 個輸出和 n 個輸入的 D-盒,其中 m<n。許多輸入被阻塞,並且不會發送到輸出。當需要置換位並減少後續步驟所需的位數時,會使用壓縮 D-盒。
擴充套件 D-盒 - 這是一個具有 n 個輸入和 m 個輸出的 D-盒,其中 m>n,或多個輸入連線到多個輸出,當需要位置換並且後續步驟的位數增加時使用。
S-盒 - 這些是替換盒,與替換密碼相同。S-盒接受 n 位字作為輸入,但它也可以輸出 m 位字,其中 m 和 n 不完全相同。
迴圈移位 - 現代分組密碼也包括迴圈移位,可以是左移或右移。在 n 位字中,每個位都向左迴圈移動 m 個位置,刪除最左邊的 m 位,將其變為最右邊的位。
分組密碼的加密和解密
用於加密和解密的分組密碼就像將訊息轉換為加密訊息或程式碼一樣。以下是其工作原理 -
首先,訊息被分成固定大小的塊。每個塊包含一定數量的字元,通常為 64 或 128 位。
然後使用分組密碼技術對訊息的塊進行混淆。此演算法使用金鑰隨機化塊中的字元。金鑰充當自定義配方,確定字元的精確混淆方式。
根據選擇的執行模式,可能會採取其他操作來提高安全性或滿足特殊要求,例如加密大型訊息或確保唯一性。
此過程對訊息的每個塊重複進行,直到整個訊息被加密。
結果是一系列混淆的塊,構成密文。此密文表示原始通訊的加密形式。
用於加密的金鑰需要由某人控制,以便解密訊息並顯示原始文字。如果沒有金鑰,幾乎不可能解碼密文並理解原始訊息。
使用分組密碼的示例
讓我們嘗試一個名為“數字移位器”的分組密碼的示例。
以下是“數字移位器”的工作步驟 -
假設我們有一個金鑰,它是數字 5。
現在我們有一條需要加密的訊息,例如 123456。
並使用數字移位器加密此訊息 -
要加密它
我們將獲取訊息中的每個數字,併為其加上 5。
然後 1 將變為 6,2 將變為 7,3 將變為 8,依此類推。
因此,使用金鑰為 5 的數字移位器加密後,123456 將變為 67891011。
要解密它
現在我們將獲取加密訊息中的每個數字,並從中減去 5。
因此,它將減去每個數字,然後 6 將變為 1,7 將變為 2,8 將變為 3,依此類推。
最後,67891011 的解密訊息將再次變為 123456。
不同型別的分組密碼
雖然有許多不同型別的分組密碼可用,但只有少數為公眾所知。由於某些分組密碼的建立時間比其他分組密碼晚,因此它們的使用和普及程度各不相同。最廣為人知和使用的分組密碼型別如下 -
DES 或數字加密標準 - 在 20 世紀 90 年代,它是一種流行的分組密碼。它現在被認為是失敗的分組密碼的主要原因是其金鑰長度較小。
三重 DES - 另一種基於多個 DES 應用的技術稱為三重 DES。雖然它不如最新的、更快的可用分組密碼有效,但它仍然是一種公認的分組密碼。
高階加密標準 (AES) - 相對較新的高階加密標準 (AES) 分組密碼基於 Rijndael 加密演算法,該演算法在 AES 設計競賽中獲得第一名。
IDEA - 它的塊大小為 64 位,金鑰大小為 128 位,是一種有效且強大的分組密碼。許多程式(包括早期版本的 Pretty Good Privacy (PGP) 協議)都使用 IDEA 加密。由於版權問題,IDEA 方案的採用受到了限制。
Twofish - 此分組密碼方法使用塊大小為 128 位的可變長度金鑰。它是 AES 的決賽入圍者。它的基礎是早期版本的 64 位塊密碼 Blowfish。
Serpent - 它是 AES 競賽的決賽入圍者,包括 128 位的塊大小和 128、192 或 256 位的金鑰長度。與其他分組密碼相比,它的架構更安全,但速度較慢。
因此,DES 和 AES 是兩種最廣泛使用和最重要的分組密碼。
分組密碼的應用
資料加密
在傳輸或儲存期間,分組密碼通常用於加密敏感和私密資料,例如財務資訊和密碼。此過程將可讀資料轉換為混淆的加密格式。加密資料的解密需要透過私鑰進行授權訪問。
檔案和磁碟加密
分組密碼也可用於加密整個磁碟驅動器和檔案,保護其資料免受攻擊者的侵害。諸如 BitLocker 和 TrueCrypt 等加密程式使用分組密碼來保護資料並使其在沒有適當許可權的情況下無法讀取。
虛擬專用網路 (VPN)
VPN 使用分組密碼加密透過網際網路在連線裝置之間傳送的資料。透過這種方式,在傳輸過程中保護資料隱私並防止未經授權的訪問。
安全套接字層 (SSL) 和傳輸層安全性 (TLS)
SSL 和 TLS 協議也使用分組密碼加密在 Web 瀏覽器和伺服器之間透過網際網路傳輸的資料。諸如銀行資訊和登入憑據之類的機密資訊。此加密可防止可能的網路攻擊。
數字簽名
分組密碼用於數字簽名技術,以確保電子文件的真實性和完整性。使用此加密技術建立的每個文件都具有唯一的簽名,可用於確認其真實性並檢測非法更改。
分組密碼的缺點/劣勢
由於以下幾個原因,分組密碼並非在所有情況下都是理想的選擇 -
分組密碼一次只能使用一定數量的資料。如果您擁有的資料量超過此數量,則會變得複雜。
對於相同的資料和金鑰,它們始終生成相同的結果。如果有人識別出模式,這可能很危險。
有時,需要更多詳細資訊來驗證分組密碼。但是,這些附加內容有時會使攻擊者更容易破解程式碼。
處理金鑰時需要格外小心。如果金鑰薄弱或管理不善,則類似於將前門留給駭客敞開。
分組密碼可以以多種方式應用,並且每種方法都面臨著特定的挑戰。做出錯誤的決定或操作不當可能會導致問題。
隨著計算機變得越來越智慧,破解分組密碼的秘密對它們來說變得更加容易。這意味著我們必須不斷尋找新的資料保護方法。