Ако имаш съобщение с размерност N (бита) и m е цяло число такова, че N>m и m е размерността на хеша, продуциран от съответната хеш-функция, то броят възможни съобщения е 2^N. Броят хеш резултати върху съобщенията ще е 2^m. Това означава, че на всеки хеш ще съответства на 2^(N-m) различни съобщения, едно от които е оригиналното. Ако сега някой атакува и измени съобщението така, че то да съвпадне с едно от {2^(N-m)-1} съобщения, хеша ще се запази непроменен и проверяващия няма да може да усети фалшификацията. Вероятността това да се случи е около:
[2^(N-m)-1]/[2^N-1]
което е приблизително (като порядък) 2^(-m). Тази вероятност е по-малка на практика, защото (както каза Минко Марков преди мен) фалшификацията трябва да е смислена.
Приложено конкретно за нашия случай това може да звучи така, все едно в номера на картата или в ЕГН-то да се появят смиволи, които да не съответстват на цифрите от десетичната бройна система, които ние ползваме при описанието на информационните полета (може да има и други "дефекти").
Поздрави Весо
Да, така е. Видях, че дължината на съобщението е по-малка от дължината на хеша от съобщението, така че всъщност проблемът е както каза Минко Марков хеш-функцията да е инективна (за неизкушените в математиката - инективна функция е такава, която за всеки две различни стойности на аргументите си приема две различни стойности). Демек исках да попитам SHA1 инективна функция ли е, когато е изпълнено |dom(SHA1)| <= |range(SHA1)| ?
поздрави, Сава
============================================================================ A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers). http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html ============================================================================