Encryption

數字密碼學

  • December 2, 2015

是否有任何算法能夠安全(對稱)加密 M 位數字消息(N < M)中的 N 位數字?我對 N = 10 和 M = N + 3 的特定情況特別感興趣。我嘗試了最著名的算法,如 DES 和 AES,但沒有成功。有誰知道有這樣的限制加密消息的方法?

一種方法是使用格式保留加密方法。

這是一種對稱加密方法,旨在將(可能)小消息轉換為大小完全相同的加密消息。例如,它可能需要 13 個十進制數字的字元串,並將它們加密成 13 個十進制數字的字元串。

一種這樣的方法是NIST SP 800-38G中的 FF3 方法;如果你設置 radix=10,那麼它可以加密一個 13 位數字的字元串,給你一個 13 位數字的字元串(這正是你想要的)。

這是您在範例中使用它的方式:您將使用您的 $ N=10 $ 位數,並將其擴展到 $ M=13 $ 通過附加 3 個 0 的數字。然後,您將您的 13 位字元串(和密鑰)交給 FPE 算法進行加密,它會給您另一個 13 位字元串;那是你的密文。解密則相反;FPE解密這13位數字,然後去掉最後三個0(如果不是0,則密文無效)

現有的加密消息的技術不能用偶數個基數表示;但是,由於您的消息可以,因此沒有理由涉及這些。

800-38G中的三種方法都可以處理radix=10;我建議使用 FF3,因為 NIST 草案中為 FF1 列出的虛擬碼是錯誤的(他們的解密程式碼與其加密程式碼不完全相反;是的,NIST 知道這一點),並且 FF2 知道(學術)弱點。

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