SORU
4 Ocak 2010, PAZARTESİ


'neden bu dizeleri en kısa çifti ne bir çarpışma MD5?

Ne dize uzunluğu için bir çarpışma olasılığı hakkında endişelenmenize gerek kalmadan bir MD5 karma olarak kullanılması mümkün müdür?

Bu muhtemelen bir karma ikinci kez (çarpışma) görünene kadar uzunluğu arttıkça belirli bir karakter kümesi olası her dize bir MD5 hash oluşturarak hesaplanmış olur. Bir çarpışma olmadan bir dize Olası maksimum uzunluğu çarpışması çiftinin uzun bir karakter daha az olacaktır.

Bu zaten MD5, SHA1, vb için test edildi mi?

CEVAP
6 Aralık 2010, PAZARTESİ


Güncelleme

İronik olarak, ben sonra bir kaç hafta önceki cevap, iki Çinli araştırmacılar, Tao Xie ve Dengguo Feng, published a new single-block collision for MD5 gönderildi. Şu ana kadar kağıt haberim yoktu. Tek bir MD5 blok giriş boyutu 64 bayt veya 512 bit olduğu anlamına gelir. Girişler çoğunlukla aynı olduğunu unutmayınsadece 2 bit farklı.

Onların metodoloji Ocak 2013 yılına kadar, ama çarpışma onların şimdi doğrulanabilir, gazeteden numaraları kullanarak yayımlanmış olsun

>>> from array import array
>>> from hashlib import md5
>>> input1 = array('I',  [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,0x6503cf04,
    0x854f709e,0xfb0fc034,0x874c9c65,0x2f94cc40,0x15a12deb,0x5c15f4a3,0x490786bb,
    0x6d658673,0xa4341f7d,0x8fd75920,0xefd18d5a])
>>> input2 = array('I', [x^y for x,y in zip(input1,
    [0, 0, 0, 0, 0, 1<<10, 0, 0, 0, 0, 1<<31, 0, 0, 0, 0, 0])])
>>> input1 == input2
False
>>> md5(input1).hexdigest()
'cee9a457e790cf20d4bdaa6d69f01e41'
>>> md5(input2).hexdigest()
'cee9a457e790cf20d4bdaa6d69f01e41'

Güncelleme:Gazete, Mart 2013'te yayınlandı: Tao Xie and Fanbao Liu and Dengguo Feng - Fast Collision Attack on MD5

Eğer oynamak için daha fazla oda varsa ancak, birkaç kilobayt çarpışmalar normal bir bilgisayarda saat içinde hesaplanabilir -- hesaplamak için ÇOK daha hızlıdır.

Eski cevap

Bir önceki en kısa çarpışma 128 bu giriş -- bayt, 1024 bit değeri en az iki MD5 blokları kullanılmış. İlk blokta bir önek keyfi saldırgan tarafından seçilebilir, gerisi hesaplanmış olur ve anlamsız görünür.

İşte iki farklı çarpışması giriş örneği, Python kendiniz deneyin:

>>> from binascii import unhexlify
>>> from hashlib import md5
>>> input1 = 'Oded Goldreich\nOded Goldreich\nOded Goldreich\nOded Go'   unhexlify(
... 'd8050d0019bb9318924caa96dce35cb835b349e144e98c50c22cf461244a4064bf1afaecc582'
... '0d428ad38d6bec89a5ad51e29063dd79b16cf67c12978647f5af123de3acf844085cd025b956')
>>> len(input1)
128
>>> md5(input1).hexdigest()
'd320b6433d8ebc1ac65711705721c2e1'
>>> input2 = 'Neal Koblitz\nNeal Koblitz\nNeal Koblitz\nNeal Koblitz\n'   unhexlify(
... '75b80e0035f3d2c909af1baddce35cb835b349e144e88c50c22cf461244a40e4bf1afaecc582'
... '0d428ad38d6bec89a5ad51e29063dd79b16cf6fc11978647f5af123de3acf84408dcd025b956')
>>> md5(input2).hexdigest()
'd320b6433d8ebc1ac65711705721c2e1'

Bu üretme iki özel girişi 215-düğüm Playstation 3 küme, by Mark Stevens:) 2 gün sürdü

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bethliebert

    bethliebert

    23 EKİM 2008
  • filmurfreakur

    filmurfreaku

    29 Mart 2007
  • Julian Smith

    Julian Smith

    31 EKİM 2006