如果您愿意使用加密技术并依靠加密假设并接受方向独立性的计算概念,那么格式保留加密(FPE)可能会有所帮助。让我来勾勒出几种不同的构造。ķ
(通过“的计算概念 -wise独立”,我的意思是有一个合理的运行时间没有对手能分辨从 -wise独立排列,除了可以忽略不计的优势,这些方案将不会是理论上信息。 -明智的独立,但假设所有可见的计算都在计算范围内,则它们将“基本上与明智的一样好”。)σ ķ ķ ķķσķķķ
一个实用的方案,对于较小的ñ
特别是,使用FPE构造来构建具有签名的分组密码(伪随机置换,PRP)。对于小于的值,可能最好的方案是使用固定轮数(例如10)和取自AES的PRF的轮函数的Feistel构造。为单个值评估的运行时间将是 AES调用。每次AES调用均在恒定时间内运行。Ñ 2 128 σ ķ(我)我Ô (1 )σķ:[ n ] → [ n ]ñ2128σķ(我)一世O (1 )
最后,请注意,任何伪随机排列都自动独立于方向。特别是,卢比-拉科夫(Luby-Rackoff)定理保证,如果AES是安全的,则在至少3轮后,如果,您将获得(大约)向独立性。随着越来越多的回合,很可能会有更强的结果,而是定理更难证明和较为明显的技术,尽管它被广泛认为回合的恒定数量应足以获得极高的安全性(并因此基本上完美 -所有合理值的明智独立性)。ķ ķ « Ñ 1 / 4 ķ ķķķķ « Ñ1 / 4ķķ
将其推广到更大的ñ
当更大时,事情变得更奇怪了,因为单位成本的RAM模型隐式地免费允许多达并行。对我来说,尚不清楚在此模型中PRP的成本应该是多少(恒定吗?随增加而增加?我不知道)。ñnØ (LGn )ñ
第三种可能的构造
令为略大于的RSA模数。将定义为的子组,其中包含Jacobi符号为的元素。定义由2 n G (Z / m Z )米2 nG + 1 π :G ^ → ģ(Z/mZ)∗+1π:G→G
π(x)=x3MOD 米。
接下来,定义为σ
σ(i)=g(π(f(i)),
其中是随机双射2独立哈希函数。f,g
我怀疑在类似RSA的假设下,这种构造有可能(大约)独立于方向。我没有证据,只是一种直觉。的主要已知正则性是乘同态的:。我不知道任何其他相关的规律性,甚至不知道依赖。在之前和之后应用独立于2的散列可证明消除了这种规律性:如果是除乘法同态之外的向独立性,则2向独立散列似乎应该提供完整的π π (X Ý )= π (X )π (Ý )ķkππ(xy)=π(x)π(y)kπ ķ ķ ķππkk明智的独立性。但是,从方向独立性的证明来看,这是超粗略和光年。k
请注意,您需要使用格式保留的加密技术(例如,循环技术)来确保在而不是在上起作用。该方案应具有(预期)运行时间,以在给定输入上选择来评估。G (Z / m Z)O (1 )σ (i )i f ,gf,gG(Z/mZ)O(1)σ(i)if,g
同样,从某种意义上讲,这种候选构造通过依赖于在时间内对位数字进行运算的能力来滥用单位成本RAM模型,对于较大的值,这在实际上并不合理。实践。(对于较小值,这种最后的构造将是不安全的,因此,这种最后的方法从根本上依赖于大的机制,以便它有工作的机会...正是单位成本RAM模型最有效的机制可疑。)O (1 )n n nlgnO(1)nnn
我自由地承认这是一个延伸,但是我提到了它,以防触发一些寻求更好解决方案的灵感。
例如,可能有可能用合适的椭圆曲线组替换,这样超过(回想一下,椭圆曲线组通常使用加法表示法而不是乘法表示法)。这样做的好处是,如果正确选择椭圆曲线组,行为就像一个“黑匣子组”,这并不是完全没有道理的,我认为这可能实际上暗示将是明智地独立于“乘性同态所隐含的效应”。我尚未准备好完整的结构建议(缺少的部分是如何选择π (X )= Ë X ģ ģ ģ π ķ ģ ˚F ,克ķGπ(x)=exGGGπkG以及如何构造以及如何证明独立性),但可能可以通过某种方式将各个部分组合在一起。f,gk