简单整数加密

tlo*_*lin 5 language-agnostic algorithm cryptography

是否有一个简单的算法来加密整数?也就是说,函数E(i,k)接受n位整数和密钥(任何类型)并产生另一个不相关的n位整数,当它被馈入第二函数D(E(i)时, k)(连同键)产生原始整数?

显然,您可以执行一些简单的可逆操作,但它们似乎都产生了明显相关的输出(例如,连续输入会导致连续输出).当然,还有加密强大的标准算法,但它们不能产生足够小的输出(例如32位).我知道任何32位加密技术都可能是强制性的,但我并不是在寻找加密强大的东西,只是看起来像是随机的东西.从理论上讲,它应该是可能的; 毕竟,我可以通过随机配对每个整数来创建一个字典.但是我希望能有一点内存密集的东西.

编辑:谢谢你的回答.简单的XOR解决方案不起作用,因为类似的输入将产生类似的输出.

leo*_*loy 10

这不等于块大小= 32位的块密码吗?

不是很受欢迎,因为它很容易打破.但理论上可行.以下是Perl中的一个实现:http://metacpan.org/pod/Crypt :: Skip32

更新:另请参阅格式保留加密

更新2:RC5支持32-64-128位的块大小

  • FPE正是我想要的,谢谢! (3认同)