Симметричный биективный алгоритм для целых чисел

Мне нужен алгоритм, который может сделать взаимно-однозначное сопоставление (то есть без коллизий) 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, изменение одной вещи может изменить многое.

Я ищу математическую функцию, поэтому ручное отображение целых чисел не является решением для меня. Для тех, кто спрашивает, скорость алгоритма не очень важна.

Ответы на вопрос(11)

Ваш ответ на вопрос