Encryption

小塊大小密碼的低複雜度實現(< 64 位)

  • May 17, 2014

搜尋“small blocksize cipher”會發現許多關於該主題的討論,主要是指 FPE。

這個特別建議使用 AES 作為 Feistel 網路的輪函式。

問題是在某些嵌入式設備上,AES 的使用過於復雜,因此需要在密碼強度和復雜性之間進行權衡。

在尋找基於 Feistel 且複雜度較低的密碼時,TEA 密碼似乎是一個不錯的選擇,但它使用 64 位塊大小。

對於一個 64 位以下的數據塊,比如 44 位,通過使用 22 位遮罩 (0x3FFFFF) 屏蔽每個 Feistel 輪的輸出來調整 TEA 似乎可以正常工作。

問題是,以這種方式掩蔽是否會破壞 TEA 算法?(除了由於較小的塊大小而減弱)

這可能沒問題。它確實有一些重要的副作用/警告:

  • 有效密鑰長度減少到 86 位。只有 4 個關鍵字中的每一個的低 22 位是重要的,因此只有 88 位的密鑰材料是相關的。然後,TEA 的已知等效密鑰屬性進一步將有效密鑰長度減少到 86 位。
  • 44 位塊寬度窄得令人不舒服。如果您加密的密碼超過大約 $ 2^{22} $ 數據塊。即使你加密了這麼多數據的一小部分,仍然有可能出現問題:如果你加密 $ b $ 數據塊,大約有一個 $ b^2/2^{45} $ 出現某種問題的機會。
  • 由於等效鍵,TEA 不適合建構散列函式。

您是否考慮過使用分組密碼以外的東西?也許是流密碼?你有什麼需求?

引用自:https://crypto.stackexchange.com/questions/6349