Block-Cipher
給定正常塊大小的強塊密碼,您能否創建具有小塊大小的強塊密碼?
假設我想要一個強大的 20 位分組密碼。換句話說,我想要一個函式,它需要一個密鑰(假設密鑰是 128 位),並實現從 20 位到 20 位的排列。排列集應接近隨機選擇的大小子集 $ 2^{128} $ 其中 $ 2^{20}! $ 20 位的排列。
我不希望你從頭開始建構一個新的塊密碼。相反,假設您有一個像 AES(128 位塊大小,128 位密鑰大小)這樣的“強”塊密碼,並使用它來建構您的 20 位密碼。
當然,您的構造應該是實用的(即,您應該能夠以合理的時間和記憶體在兩個方向上執行它)。
您正在尋找的內容可以使用現有的格式保留加密(FPE) 方案來完成。通常,FPE 方案將現有的強算法(如 AES)轉換為可在任意大小的集合上執行的分組密碼。例如,FPE 可以將 15 位整數加密為其他 15 位整數(例如信用卡號,這是使用 FPE 的常見原因之一)。這些方案中的大多數可以很容易地適應集合 [0…2^20),通常不需要特殊更改。有關詳細資訊,請參閱本文或此維基百科文章。
我假設您知道任何 20 位分組密碼都存在嚴重的內在弱點(例如,在 CBC 模式下使用它會發生衝突),並且有特定原因需要 20 位排列。