Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
спасет collision-resistant hash-function 08.12.02 00:35 Число просмотров: 3590
Автор: RElf <M> Статус: Member Отредактировано 08.12.02 00:36 Количество правок: 1
|
> > А почему бы просто не положить H[i](X) = f(i||X), где f > > какая-нибудь фиксированная хэш-функция нужной размерности? > > Т.е. приписываем i к данным X слева ("конкатинируем" i и > > X), и от всего этого считаем значение f. > > Да, подобная идея была в моей голове. Но я не такой спец в > этом вопросе, и боюсь я, что не сработает это. Тут все > начинает зависеть от f, не так ли? > > Например, пусть f(X) = X % P (остаток от деления X на P).
Это плохой пример. Нужно смотреть в сторону collision-resistant (collision-free) хэш-фукнций. Ссылка внизу.
> Пусть все X одной длины. i|X обобщим как A*i + B*X. > > H[i](X) = (A*i + B*X) % P > > Поищем H[n](X) - H[m](X) по модулю P: > ((A*n + B*X) % P - (A*m +B*X) % P) = (A*(n-m)) mod P, т.е. > H[n](X) == H[m](X) + (A*(n-m) % P) + t*P, где t 0, 1 или -1 > > Вобщем нужны функции, которые бы друг через друга очень > сложно выражались... > А лучше никак :), только не понятно, что это значит... > Но, определенно, если взять H[i](X) := A % Pi, и Pi попарно > различные простые, тогда все намного лучше! Правильно?
Не факт. Если например положить P равным произведению Pi (или простому числу того же порядка), то получиться примерно тоже самое.
> Кто нибудь представляет себе, что будет, если f - это MD5? > Можно ли выразить значение MD5(A*x + B) через MD5(x)?
Вряд ли. По крайней мере это криптографический хэш, что, в частности, подразумевает отсутствие функциональных закономерностей между MD5(A*x+B) и MD5(x). Хотя это не доказано.
Посмотри Chapter 9 "Hash Functions and Data Integrity" в
Handbook of Applied Cryptography
|
|
|