Хеш-функция с контролируемыми коллизиями
- From
- Vladimir Vassilevsky (2:5020/175.2)
- To
- Sergey Kabikov ()
- Date
- 2003-03-04T15:00:06Z
- Area
- RU.ALGORITHMS
From: "Vladimir Vassilevsky" <vlv@fullnet.net>
Hi Sergey,
SK> Необходимо построить функцию, y = f(x), где
SK> 0 <= x < 2^nx
SK> 0 <= y < 2^ny
SK> ny < nx
SK> Т.е. мощность множества значений результата меньше мощности множества
SK> значений аргумента, т.н. функцию с коллизиями.
Имеется наперед заданное множество ключей. Требуется функция F(ключ),
которая == 0 для любого из ключей, и гарантированно != 0 для всех прочих
случаев. Не так ли? :)
SK> Дополнительное требование : по виду самой функции должно быть невозможно
SK> определить правильные у0 и {x0}, т.е. должно существовать множество
SK> приблизительно равномощных пар yi и {xi}, в идеале 2^(nx - ny) таких пар.
SK> Поэтому типовой ответ
SK> if x in {x0}
SK> then y := y0
SK> else y := random(2^ny)
SK> не проходит.
Рабоче - крестьянский метод:
Можно построить { x1 } = Encrypt( {x0} )
Соответственно проверять if(Encrypt(x)) in { x1 }
В качестве Encrypt использовать RSA или другой несимметричный криптоалгоритм.
SK> Мой пока единственный вариант таков :
Боюсь, что для произвольно заданного { x } решения нет и быть не может.
VLV
"Хотели как лучше - получилось как всегда. (с) В. С. Черномырдин"
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)