2010-04-02 13 views
5

Birisinin ayrıntılı bir şekilde açıklayabileceğini merak ettim, tam bir acemiye benzeyecek şekilde zincirlerin nasıl çalıştığını, ancak programlamanın alaka düzeyi ile.Zincirler Rainbow tablolarda nasıl çalışır?

Bir zincirin 16 bayt uzun olduğunu anlıyorum. 8 bayt başlangıç ​​noktasını işaretler ve 8 ucu işaretler. Ayrıca, dosya adında, 2400 zincir uzunluğuna sahip olduğumuzu da anlıyorum. Bu, başlangıç ​​noktanız ile son noktamız arasında sadece 16 baytlık açık metinler olduğu anlamına geliyor? Bu nasıl çalışıyor? Bu 16 baytta 2400 hash'larımı ve net metinleri nasıl alabilirim, ya da bunu yanlış anladım mı?

Yardımınız büyük beğeni topluyor.

Teşekkürler.

Not: İlgili makaleleri okudum ve bu konuya birazcık baktım. Sanırım bu dişlileri döndürmek için önemli bir şey eksik.

+0

Parolaları kırmak için yardıma mı ihtiyacınız var? – bmargulies

+0

no, açık metinler ve karmaları oluşturmak için başlangıç ​​ve bitiş noktalarının nasıl kullanıldığını anlamak isterim. Ekleyerek 64 bit int'nin bir dizeye nasıl dönüştürüldüğünü de anlarım. Sadece 2400 karma nereden geldiğini anlamak istedim. –

cevap

3

Karma zinciri için başlangıç ​​noktasını bilmek, karma ve küçült işlevini art arda uygulayarak tüm aracıları ve son noktayı hesaplayabilirsiniz.

Zinciri karma bir parola aramak istediğinizde uç noktası gelir. Zincir uzunluğuna kadar hash-ve-azaltmak uygulayın; Her aşamada, ara puanınızın, hesapladığınız herhangi bir zincirin uç noktasıyla eşleşip eşleşmediğine bakın. Öyleyse, şifreyi içeren zinciri buldunuz. Daha sonra, zincirin nereden başladığını biliyorsunuz çünkü başlangıç ​​noktasını saklıyorsunuz ve böylece bir kere karma olduğunda hash değerini veren şifreyi bulmak için zincirden öne doğru yürüyebilirsiniz.

Tam gökkuşağı tablosu işlemi, bu tür aramaları uygular, ancak karma çarpışmalardan kaçınmak için farklı küçültme işlevleri ailesiyle birlikte; Ayrıntılarda pek iyi değilim.

+0

Bu, hashın zincirin son noktası için hiçbir zaman hesaplanmadığı anlamına mı geliyor? Benim anlayışım şudur: Zincir karma işlevi sona ermediği için hiçbir zaman uygulanmamıştır (https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Rainbow_table1.svg/1200px-Rainbow_table1) .svg.png) [Wikipedia makalesi] 'den (https://en.wikipedia.org/wiki/Rainbow_table). Yoksa burada bir şey mi özlüyorum? –

+0

İşte, tam olarak, zincirlerin nasıl hesaplandığını açıklayan iyi bir [crypto.stackexchange] yanıtı (https://crypto.stackexchange.com/a/5901/53497). –