32位随机映射函数

时间:2013-12-04 18:41:03

标签: random cryptography

我正在寻找一个将32位整数映射到另一个整数的函数f。该函数应该是双射的,虽然映射看起来应该是随机的,但要求加密安全。还有一个重要的额外要求:还应该有一个易于计算的函数g,它是f的反函数。 <{1}}可以与g相同,但不是必需的。

2 个答案:

答案 0 :(得分:3)

鉴于非加密要求,有许多选项,包括:

  • XOR(Ilya提到)
  • 位旋转(f:向右旋转N位,g:向左旋转N位)
  • 加法/减法(没有溢出检查,因此int.MaxValue + 1映射到int.MinValue和int.MinValue - 1映射到int.MaxValue)
  • A block cipher(好的电话@Thomas,我专注于简单的: - )

答案 1 :(得分:0)

与此同时,我找到了解决问题的理想方法:使用线性同余生成器。它们很容易逆转,并且根据我的需要,排列看起来足够随意。