Small values with non-uniform distribution encoded as large values with uniform distribution Given a non-uniformly distributed set of 32-bit values (for example), is there a way to reversibly encode each one as a 128-bit value (for example) where they'd be approximately uniformly distributed in that larger 128-bit space?
Block ciphers do this as I understand it but they require a key and are computationally expensive due to security concerns. If I didn't want security, just the property of approximate uniform distribution and increased size, is there a more efficient way?
LFSR based
Since you want some simple not necessary secure than here one solution based on the LFSRs.
Let assume that each of your inputs has a length of 32-bit. Now, choose a maximal binary LFSR of length 128 ( yes not 32). Fill the LFSR's first 96-bit with 0s and the last 32 with your data. Now, run the LFSR $x$ times where $x&gt;128$. Now take the next 128-bit as the mapping of 32-bit to 128-bit.
Maximal LFSR's with length $L$ generates all binary sequences of length $L$, except the all-zero case, in their periods. Your data will be the starting point on the sequence of length $2^{128}-1$ and the values will be not the same.
You can get your value back by running the LFSR in reverse. This is easy since you know the tap points. Otherwise, you will need 256-bits to construct the LFSR with the Berlakamp-Massey algorithm.
OTP based
A more simple solution based on OTP;
Generate a random 128-bit, and x-or you inputs by repeating 4 times. You did not want security, and this can map your input into 128-bit random. You can get your value back by x-oring the 128-bit key and taking the first 32-bit.
Block cipher based
Block ciphers are a family of permutations and with a fixed key, you select only one permutation from the family. Otherwise, selecting a random permutation and storing is infeasible, you need $2\cdot 2^{128}$ space to store. With the key, you can transfer back and forth. Also with the expected PRP of the block cipher, you can achieve good randomness, too.
AES is quite fast, especially with AES-NI can reach GB/s. Fix a key and use AES. This is quite easy since you can use OpenSSL tools to achieve this.