【发布时间】:2011-03-09 01:18:12
【问题描述】:
我需要一种算法,可以将一个 32 位有符号整数一对一映射(即无冲突)到另一个 32 位有符号整数。
我真正关心的是足够的熵,以至于函数的输出看起来是随机的。基本上我正在寻找一种类似于 XOR Cipher 的密码,但它可以生成更多看起来任意的输出。安全不是我真正关心的问题,尽管默默无闻是。
为澄清目的而编辑:
- 算法必须是对称的,这样我就可以在没有密钥对的情况下反转操作。
- 算法必须是双射的,每个 32 位输入数字必须生成一个 32 位唯一数字。
- 函数的输出必须足够晦涩,只在输入中添加一个会对输出产生很大的影响。
示例预期结果:
F(100) = 98456
F(101) = -758
F(102) = 10875498
F(103) = 986541
F(104) = 945451245
F(105) = -488554
就像 MD5 一样,改变一件事可能会改变很多事情。
我正在寻找一个数学函数,所以手动映射整数不是我的解决方案。对于那些询问的人来说,算法速度并不是很重要。
【问题讨论】:
-
您希望算法运行多快?
-
@Scorpi0 编码无所谓,解码应该更快,一般接近公钥密码的速度是可以接受的。
-
@eyazici:如果算法是对称的,编码和解码是一样的。现在你说解码应该更快。你真的需要对称算法吗?
-
@Scorpi0:算法必须是对称的,这样我才能扭转这个过程。我以 PKI 速度作为衡量标准。
-
@eyaici:如果编码函数是双射的,则该过程是可逆的。但是编码和解码功能必须是相同的功能吗?这就是我对“对称”一词的理解。如果您通过“对称算法”表示其他意思,请澄清。
标签: algorithm encryption-symmetric block-cipher bijection