SORU
24 AĞUSTOS 2009, PAZARTESİ


Ne iki mesaj aynı MD5 özeti ve aynı SHA1 Özet kadar şanslı?

Verilen iki farklı mesaj, A ve B (belki 20-80 karakter metin, eğer boyut önemli), ne ihtimali o MD5 özeti Bir aynıdır MD5 özeti BveBir SHA1 Özet B SHA1 özet olarak aynı mı? Yani:

(MD5(A) == MD5(B)) && (SHA1(A) == SHA1(B))

İletileri bir çatışma bulmak amacı ile seçili olmayan hiçbir kötü niyet, yani, varsayalım. Ben sadece bu doğal olarak meydana oran bilmek istiyorum.

Şansı olduğunu düşünüyorum "astronomik," ama bunu doğrulamak için nasıl emin değilim. düşük

Daha fazla bilgi: olası mesajları havuzu boyutu sınırlı, ama büyük (birkaç yüz milyon). Doğum günü paradoksu durumlar için endişeleniyorum.

CEVAP
24 AĞUSTOS 2009, PAZARTESİ


Farz üniforma yayılmasında Aralık MD5 ve SHA-1 sağlamalarının için rasgele dizeleri (değil), varsayıyoruz sadece konuşan iki dizeleri ve bahsetmiyor havuz dizeleri (yani biz önlemek doğum günü paradoksu tipi karmaşıklığı):

Bir MD5 128 bit genişliğindedir, ve SHA-1 160. Yukarıdaki varsayımlar ile, iki dizeleri A ve B de karma çakışıyorsa P çarpışması ihtimali vardır. Bu yüzden

P(both collide) = P(MD5 collides) * P(SHA-1 collides)

Ve

P(MD5 collides) = 1/(2^128)
P(SHA-1 collides) = 1/(2^160)

Bu yüzden

P(both) = 2^-128 * 2^-160 = 2^-288 ~= 2.01 x 10^-87

Yine, eğer bir havuz dizeleri ve yapmaya çalıştığını belirlemek olasılıklar çarpışmalar, havuz, etki alanı birthday paradox ve bu olasılık ettim hesaplanan burada geçerli değildir. Ve karma olması gerektiği gibi tekdüze değil. Gerçekte çok daha yüksek çarpışma hızı zorunda kalacaksın, ama yine de küçük olacaktır.

< / ^ hr .

EDİT

Doğum günü paradoksu bir durumla karşı karşıyayız beri, doğum günü paradoksuna çözüm olarak aynı mantık geçerlidir. Hadi bir karma işlevi açısından bakmak:

N := the number of hashes in your pool (several hundred million)
S := the size of your hash space (2^288)
Therefore,
P(There are no collisions) = (S!)/(S^N * (S - N)!)

Hadi 2^29 (yaklaşık 530 milyon) gibi karma olsa bile güzel bir numara var gibi.

P = (2^288!)/(2^288^(2^29) * (2^288 - 2^29)!)

Kısacası, bu sayı hesaplama hakkında düşünmek istemiyorum. Hatta bu tahmin hakkında gitmek nasıl emin değilim. En azından ölmeden büyük faktöriyel kullanabilen keyfi duyarlıklı bir hesap makinesi gerekir.

Not olasılıkları takip eğri başlayınca, neredeyse 0 N = 1 or 2 ve ulaşmak 1 N >= 2^288 benzer şekli hakkındaki Vikipedi sayfası için doğum günü paradoksu.

Doğum günü paradoksu N = 23 P = .5 ulaşır. Başka bir deyişle, olasılık bir çarpışma 50% N %6 S. Eğer ölçekler (emin değilim eğer öyle), demek ki olacak bir 50% şans, bir çarpışma sırasında sadece 6% 2^288 karıştırır. 2^288 6 %2^284 civarında. N değeri (birkaç yüz milyon) yaklaşamaz. Neredeyse önemsiz S göre, endişelenecek bir şey olduğunu sanmıyorum. Çarpışmalar çok olası değildir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012
  • Truc Minh

    Truc Minh

    23 Ocak 2011