IMO the risk is not to have a non reversible key, but to hide this "a bit". with a small number of output bits there are not many options.
some approaches - take a prime number p large then the name space and smaller than the space to hold the result, take a generator g of the multiplicative group, and compute output = (g ** input) mod p. for all 1 < input < p you can iterate this using different primes, add some "magic" bijectif functions, permutation of bits etc. - take a fixed secret, and encrypt with des => 8 octets. - if your key space is large, 16 octets, you an hmac with 1 billion times md5 of the input or something like than. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN