Block-Cipher
加密中的塊是什麼
對於新手問題,我很抱歉,我是密碼學新手,我很難理解塊是什麼。例如對於 DES 算法,塊大小為 64 位,密鑰等於 2 的 56 次方。有人可以向我解釋一下嗎?也許像我5歲?
許多實用的密碼算法在可變長度輸入上執行。例如,如果您正在加密消息,您希望您的算法能夠處理任何合理長度的消息。
但是密碼學家通常建構能夠處理可變長度輸入的算法的方式是將問題分為兩部分:
- 設計一個僅適用於固定大小輸入的基本算法(通常稱為原語)。
- 設計一個使用原語作為處理可變長度消息的基本建構塊的擴展算法(通常稱為操作模式或僅稱為模式;或有時稱為構造)。
DES 和 AES 是分組密碼,這意味著它們是原語。它們的塊大小(分別為 64 位和 128 位)就是它們每個人在一次呼叫中處理的數據量。擴展器算法通常會將輸入分解為原語支持大小的塊,並使用對塊密碼的單獨呼叫來處理每個塊。
塊大小通常是加密算法的重要安全參數,因為它往往會限制您可以使用相同密鑰安全呼叫原語的次數。例如,由於 DES 具有 64 位塊大小,因此當您使用 DES 或 3DES 時,如果您處理超過 $ 2^{32} $ 具有相同密鑰的塊。所以 AES 的 128 位塊大小是一個很大的改進,因為之後你往往會遇到問題 $ 2^{64} $ 取而代之的是塊,但即使有許多密碼學家也擔心這個數字低得令人不安。