如何加密数字数据,使加密函数生成的密文也是数字,Enc[m1] < Enc[m2] where m1 < m2.
我已经查看了所有指向Format Preserving Encryption的引用数量。但是,没有可用的开源代码实现。
有没有办法(加密或编码)可以使用Java或C#隐藏具有上述属性的数据?
我希望将[1 - 50]范围内的数值数据加密到[1000 - 5000]范围内的密文。我正在尝试实现Enabling Search over Encrypted Multimedia Databases中提到的安全倒置索引。
答案 0 :(得分:2)
我认为你在这里有一个基本的矛盾。如果你加密了许多值并以某种方式维持它们之间的排序顺序,那么知道“abc”加密到567并且“abe”加密到569的人就会知道568 =&gt; “ABD”。 (并不是说你的加密算法会那么幼稚,但你会严重削弱你设法设计的任何东西。)
如果您允许数字长于明文,则加密到数字并不困难。 (毕竟,字符本身只是具有特殊含义的数字。)一种简单的方法是将密文解码为八进制,但其他技术会产生稍微更精确的十进制数字表示。