Algorithm-Design

是否有長度保持加密方案?

  • May 20, 2019

是否有一種保留長度的加密方案,它保留輸入大小的長度,使得輸入純文字的長度與輸出密文的長度相同?

正如@fgrieu 提到的,您所追求的是FPE。他連結的論文在一個非常小的域上處理 FPE,但看起來您對加密較長的字元串感興趣。

為此,您需要一個寬分組密碼。與傳統的分組密碼不同,這些密碼通常允許不同的輸入長度,這是一個優勢。它們符合您不透露共享前綴/後綴的標準。範例(其中任何一個都是安全的):EME、EME2、HCTR、HEH、TET、PEP。追踪一個好的實現可能是有問題的;我不知道任何副手。包括 EME/EME2 在內的一些已獲得專利(但可以根據“合理、非歧視性”條款獲得許可)。根據模式的不同,它們的執行速度大約是標準加密算法的一半。

在提供機密性方面,Bellare 和 Rogaway 的結果(“Encode-then-encipher encryption: How to exploit nonces or redundancy in plaintexts for effective cryptography”)表明,只要你能保證所有的plantexts,你就可以免費獲得它是不同的(例如,它們已經以某種方式編碼了不同的序列號)。這些密碼洩露的唯一資訊是明文長度,以及明文是否重複。

您說真實性不是問題,但也許值得注意的是,如果明文包含您在解密時檢查的某種冗餘類型,您可以相當便宜地獲得它。

最後,這些算法是可調整的密碼,這意味著需要額外的輸入,稱為調整。您可以使用任何隨附標題中的(元)數據作為調整(或僅使用固定字元串)。同樣,如果每次調整都不同,那麼即使重複明文,您也有保密性。但此時可能更容易,例如,從標頭中獲取 64 位隨機數並將其用作計數器模式 IV 的高位。

可以使用 Luby Rackoff 構造(基於 Feistel 網路)設計長度(和格式)保留加密方案

雖然有多種變體可以實現(尤其是加密的 FFX 模式),但 Naor 和 Reigold 完成了一項更值得注意的工作**$$ 1 $$**. 他們通過使用成對獨立函式 (PWIP) 為經典 Feistel 網路引入了另一層,證明這比經典版本更安全。

我們最近重新設計了他們的工作並提出了一種新的 FNR 加密模式**$$ 2 $$**這是實際的任意長度分組密碼算法做同樣的事情。可以使用這種方案建構格式保留加密。這是 Naor 和 Reingold 作品的變體。

**$$ 1 $$**Naor、Moni 和 Omer Reingold。“關於偽隨機排列的構造:重新審視 Luby-Rackoff。” 密碼學雜誌 12.1 (1999): 29-66。

$$ 2 $$ http://eprint.iacr.org/2014/421

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