Format-Preserving
為什麼 BPS FPE 算法中的調整長度是 64 位?
這個調整是否總是相同的長度(64 位)?
為什麼他們選擇 64 位的長度進行調整?
從論文中:
我們表示 $ f $ 內部函式的輸出位數 $ F $
和
我們首先劃分 64 位的調整 $ T $ 分成兩個 32 位子調整 $ T_L $ 和 $ T_R $
加
我們表示 $ L_i $ (分別。 $ R_i $ ) 應用輪次後的左(右)分支值 $ i $ .
附註
請注意,由於我們對輸入數量的限制 $ s $ -整數,我們始終確保每個分支都可以在一個 $ (f − 32) $ 位字。
對,所以現在看一下密碼定義的一部分:
…
$ L_{i+1} = L_i \boxplus F_K ((T_R \oplus i) \times 2^{f −32} + R_i) \mod s^l; $
…
雖然乘法用點表示,而不是 $ \times $ . 同樣對於狀態的計算 $ R_{i+1} $ 當然。
基本上,這會將調整轉移到最重要的 32 位,剩下的留給狀態。現在 $ F $ 可以是 AES、HMAC-SHA-2 或TDES。TDES 的塊大小為 64 位。如果調整大小為 128 位,則不會有任何空間留給 $ R $ 或者 $ L $ 構成內部狀態。
因此,調整大小使得調整的重複不太可能,並且當加密使用 64 位塊密碼時,它仍然可以有效地使用。如果調整幅度更大,則施工效率會降低,直至該方案根本不起作用。