看起来随机的可逆数学函数

时间:2019-03-03 21:36:29

标签: math encryption integer

我想要一个数学函数y = f(x),其中x和y是32位整数,这样

  1. 通过某些函数x = g(y)可逆
  2. 序列f(1),f(2),f(3),...看起来是随机的

我曾考虑过使用某个常量密钥进行XOR,但这看起来似乎是随机的。我也可以使用DES或AES。但是这些似乎过分了。

有没有更简单的东西?

2 个答案:

答案 0 :(得分:1)

尝试使用分组密码,例如Skip32。但是请注意,这始终会将一个值加密为另一个值,因此您需要记住,重复输入会导致输出重复,可能会将信息泄露给对手。

否则,您可以查看保留格式的加密。有几种方法可以将分组密码的大小减半,例如3DES,它具有更高的安全裕度(如果使用三个随机密钥,则为112位),例如使用Feistel网络。

“草皮布丁密码”是一种奇怪的密码,它具有可配置的块大小。但是,该密码的安全性值得怀疑,并且至少没有进行足够的研究。

答案 1 :(得分:0)

问了这个问题之后,我找到了一个不同的解决方案(将哈希添加到我的顺序键上)。但这仍然是一个有趣的问题。而且我认为最好的答案是实现一个简单的分组密码算法。有几个examples here