32ビットの符号付き整数を別の32ビットの符号付き整数に1対1でマッピング(つまり、衝突なし)できるアルゴリズムが必要です。
私の本当の懸念は、関数の出力がランダムに見えるように十分なエントロピーです。基本的に私はXOR暗号に似た暗号を探していますが、それはより任意に見える出力を生成することができます。あいまいさはありますが、セキュリティは私の本当の関心事ではありません。
明確にするために編集します。
- キーペアなしで操作を元に戻すことができるように、アルゴリズムは対称である必要があります。
- アルゴリズムは全単射である必要があり、32ビットの入力番号ごとに32ビットの一意の番号を生成する必要があります。
- 関数の出力は十分にあいまいである必要があります。入力に1つだけ追加すると、出力に大きな影響を与えるはずです。
期待される結果の例:
F(100)= 98456
F(101)= -758
F(102)= 10875498
F(103)= 986541
F(104)= 945451245
F(105)= -488554
MD5と同じように、1つのものを変更すると、多くのことが変更される可能性があります。
私は数学関数を探しているので、整数を手動でマッピングすることは私にとって解決策ではありません。質問している人にとって、アルゴリズムの速度はそれほど重要ではありません。