Подскажите, пожалуйста, идею для генерации последовательности уникальных числовых ключей, то есть, отображения исходной натуральной последовательности на некоторую другую. Условия:
1. Исходные числовые величины сравнительно небольшие, в пределах одной-нескольких тысяч.
2. Получаемые числа должны быть в пределах 5-6 десятичных цифр.
3. Генерируемая последовательность должна быть по видимости хаотичной - по ключам не должно быть с ходу понятно, какое из них получилось из бОльшего, а какое из меньшего исходного значения.
4. Простой алгоритм прямой проверки (без перебора предшествующих значений), является ли ключ правильным, а также получения по ключу исходного индекса.
Навскидку пришедший в голову вариант: в соответствии с правилами кода Хэмминга к 11 разрядам исходного значения добавить еще 4 разряда избыточности, а затем некоторая манипуляция, связанная с перестановкой разрядов. Если так, то в каком порядке лучше переставлять разряды? Или есть другие идеи?
Спасибо.