如果我在FPE加密之前重新排序文本,对保持加密安全性的格式有什么影响?
以加拿大邮政编码(字母-数字-字母-数字-数字)为例:
使用邮政编码作为基础36个号码,并应用FF1 (NIST 800-38g测试向量AES128键,没有调整)给出了以下密文:
但原始格式没有保留(最后一个字符不是数字)。
对于加密的安全性,如果我
就像这样:
最终会得到FF1加密的邮政编码:F1D 4E3
发布于 2019-11-22 02:39:44
我会严格地对整个邮政编码执行FF1。这意味着将代码转换为范围\big[0,26\cdot10\cdot26\cdot10\cdot26\cdot10\big)中的一个数字,然后加密、解密并取回它。这是相对简单的基本转换,所以它应该很容易使用除法和余数的数学。
显然,否则您可能会泄漏部分输入的重复。例如,如果我们分别加密第一部分和第二部分,您可能也有Sneezy的邮政编码\mathtt{H0H\space1H0} (\mathtt{H1H\space0H1}已经被邪恶的女巫拿走了)。现在您可以看到\mathtt{H0H}重复了,所以任何知道Sneezy代码的人也会指出圣诞老人代码的第一部分;不太好。
有了许多已知的邮政编码--其中许多可能已经知道--这意味着很快就可以猜出所有的邮政编码。如果一个人是相对独特的,那么它就清楚地表明了该国人口稀少的地区。
其他方案--如你提议的方案--可能也有类似的问题,这在某种程度上取决于邮政编码是如何生成的。通过将整个邮政编码转换为一个数字,可以避免类似这些问题。
https://crypto.stackexchange.com/questions/75926
复制相似问题