Добре де, нека няма, признавам се за победен

'>
Вземаме случаят с MD5.
Сметките обаче пак не излизат правилни, 2^64 е вероятността за колизия на хешовете при две произволни съобщения. В случая обаче не смятаме директно възможността при два файла да се получат еднакви хешове, а възможността това да се случи по принцип с която и да е двойка файлове.
Една предварителна сметка: 2^64 е приблизително равно на 2*10^19.
Значи ако например има 10000 файла, то има C= 10000! / 2*(10000-2)! = (10000*9999)/2 = 5000*9999 - приблизително 50 милиона комбинации от два файла от тези 10000, върху които да смятаме възможността за колизия. Следователно, общата вероятност да се случи колизия на хешовете измежду някоя двойка файлове от тази файлова система става приблизително:
5*10^7 / 10^19 = 5 / 10^12 = 1/2*10^11
или едно на 200.000.000.000, уаааа, наистина е много малко вероятно да стане, не съм го очаквал.
Ще сметна само какво ще стане със 100.000 файла, просто за справка:
C=100000!/2!*(100000-2)! = 100000*99999/2=50000*99999
= 4.999.950.000 = (appr.) 5.000.000.000= 5*10^9
P(колизия)=5*10^9/10^19=5/10^10=1/2^9 = 1 на 2.000.000.000.
Съответно при един милиона файла, вероятноста става едно на (хм) 20 милиона.
Всъщност SHA1 в този случай трябва да излезе сериозно по-добър вариант, не е далече от ума, ще добави няколко нули към вероятността...