Şifreli Metin
http://www.istihza.com/blog/this-modulu-icindeki-sifreli-metin.html/ adresindeki yazıda Python’daki this modülü içinde yer alan şifreli bir metinden ve bu metnin Python yardımıyla nasıl çözüleceğinden söz ettik.
Sizce o şifreli metni, kesinlikle Python’dan yararlanmadan, sadece İngilizce bilgisi kullanarak çözme imkanı var mı? Yani diyelim ki elinizde sadece bu şifreli metin var ve bildiğiniz tek şey bu metnin İngilizce olduğu… Bir de metindeki “Gur” kelimesinin “The” anlamına geldiğini biliyoruz. Böyle bir durumda acaba bu metin nasıl çözülür?
Metnimiz şu:
“Gur Mra bs Clguba, ol Gvz Crgref. Ornhgvshy vf orggre guna htyl. Rkcyvpvg vf orggre guna vzcyvpvg. Fvzcyr vf orggre guna pbzcyrk. Pbzcyrk vf orggre guna pbzcyvpngrq. Syng vf orggre guna arfgrq. Fcnefr vf orggre guna qrafr. Ernqnovyvgl pbhagf. Fcrpvny pnfrf nera’g fcrpvny rabhtu gb oernx gur ehyrf. Nygubhtu cenpgvpnyvgl orngf chevgl. Reebef fubhyq arire cnff fvyragyl. Hayrff rkcyvpvgyl fvyraprq. Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff. Gurer fubhyq or bar– naq cersrenoyl bayl bar –boivbhf jnl gb qb vg. Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh’er Qhgpu. Abj vf orggre guna arire. Nygubhtu arire vf bsgra orggre guna *evtug* abj. Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg’f n onq vqrn. Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn. Anzrfcnprf ner bar ubaxvat terng vqrn — yrg’f qb zber bs gubfr!”
Bulmaca meraklılarına hodri meydan!…
Gur’ün The olduğunu bilmemize gerek yok. Harflerin yoğunluk analizini yaparsak ve bu analizi İngilizcede en çok kullanılan harflerle karşılaştırırsak kolayca şifreyi çözmüş oluruz
Yada the, and, a, an gibi kelimeleri biraz incelemeyle çıkartabiliriz. Sonunda harfleri yerine yerleştirip aradaki boşlukları mantık kullanarak doldurabiliriz.
Önceki yazıyı okumamam gerekiyordu
onu okuduktan sonra sözlüğe bakarak çözdüm ben olayı
Alfabeyi ikiye bölüyo ve karşılık gelen karakterle değiştiriyor.
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
Aynen bu şekilde
Dediğim gibi önceki yazıdan esinlendim
and -> naq gibi.
Buldum
d = {} for c in (65, 97): for i in range(26): d[chr(i+c)] = chr((i+13) % 26 + c) print "".join([d.get(c, c) for c in s])Modül dosyasına bakmak yeterli
Sağol Melen kardeş, işin bütün büyüsünü bozdun!…
Bu arada sen buralarda ne yapıyorsun? Askerde değil miydin?
Hava değişimi verdiler 3 ay