Algoritmo bijetivo simétrico para números inteiros

Eu preciso de um algoritmo que possa fazer um mapeamento um para um (ou seja, sem colisão) de um número inteiro assinado de 32 bits em outro número inteiro assinado de 32 bits.

Minha preocupação real é entropia suficiente para que a saída da função pareça aleatória. Basicamente, estou procurando uma cifra semelhante à XOR Cipher, mas que pode gerar saídas com aparência mais arbitrária. A segurança não é minha preocupação real, embora a obscuridade seja.

Edite para fins de esclarecimento:

O algoritmodevo seja simétrico, para que eu possa reverter a operação sem um par de chaves.O algoritmodevo Para ser bijetivo, todo número de entrada de 32 bits deve gerar um número exclusivo de 32 bits.A saída da função deve ser obscura o suficiente, adicionando apenas uma à entrada deve resultar em grande efeito na saída.

Exemplo de resultado esperado:

F (100) = 98456
F (101) = -758
F (102) = 10875498
F (103) = 986541
F (104) = 945451245
F (105) = -488554

Assim como o MD5, mudar uma coisa pode mudar muitas coisas.

Estou procurando uma função matemática, portanto, mapear manualmente números inteiros não é uma solução para mim. Para quem está perguntando, a velocidade do algoritmo não é muito importante.

questionAnswers(11)

yourAnswerToTheQuestion