2011-10-17 26 views
5

Bir kripto tehdidi için bir şifre kırmak için bir tepe tırmanma algoritması ile canlılığı test etmek için bir algoritmaya (herhangi bir programlama diline) ihtiyacım var. Algoritma, bir rasgele şifre çözmenin (boşluk içermeyen) bir İngilizce metni (henüz tamamlanmamış kelimeler için de puan vererek!) Veya sadece rastgele bir karakter dizisi olduğunu ne kadar muhtemel olduğunu test etmelidir.Brute-Force dil tespiti

Geliştirdiğim birkaç algoritma ile denedim ama çok iyi değildiler.

Araştırmalarım:

Bir bilmece M4 kripto projesi (http://www.bytereef.org/m4_project.html) de kullanmak istediğim Sinkov istatistiklerini kullanır.

Bulduğum tek şey, aradığım Sinkov log ağırlığı analizini içeren bir Java çerçevesi olan "quebra -pedra" belgesinin bir belgesiydi.

http://www.google.com/m?client=ms-android-samsung&source=android-home#q=Quebra-pedra+framework+java

Ama çerçeveyi indirmek için nerede bulamadım. Ayrıca Sinkov testinin herhangi bir uygulamasını veya tanımını bulamadım.

Herhangi bir ipucu için memnuniyet duyarım. Teşekkürler.

cevap

5

Sinkov istatistikleri hakkında bir şey bilmiyorum, ancak doğal dil işlemenin dil modelleri tam olarak istediğiniz şeyi yapabilir, metinleri İngilizceye ne kadar benzediğine göre puanlayabilir.

Burada basit bir karakter bigram yazdım, takip etmesi oldukça kolay olmalı.

https://github.com/rrenaud/Gibberish-Detector

+0

Yorumunuz için teşekkür ederiz. Markov zincirlerini bilmiyordum, ama bigramların skorunu hesaplama konusunda da aynı fikre sahiptim. Kendi formülü ile yaşadığım problem, gerçek metin ile çöp arasındaki mesafenin çok küçük olmasıydı. Markov zincirleri hakkında daha fazla bilgi edinmek için kodunuza bakacağım. –

+0

Meslektaşım, rrenaud'un projesini Java'ya çevirdi, bu durumun herkes için yararlı olması durumunda https://github.com/paypal/Gibberish-Detector-Java – Eyal