Toplam Sayfa Görüntüleme Sayısı

6 Ekim 2010 Çarşamba

Vigenere Şifresi

Tarihi:
İlk olarak 1553 yılında Giovan Batista Belasa tanıtılmış 16. yüzyılın sonlarında Blaise De Vigenere bu yöntemi düzenleyip kullanmıştır ve bu yöntemin adı “Vigenere şifresi” olarak kalmıştır.

 

Tanımı:
Vigenere şifreleme yönteminden önce anlattığımız şifreleme yöntemlerini kısaca yeniden hatırlarsak, şifreler genel olarak bir alfabede yer değiştirme fonksiyonları ile oluturuluyordu. Buna en basit örnek olarak sezar şifreleme yöntemini verebiliriz. Tabiî bu yer değiştirme algoritmaları ile yazılan şifrelerde olasılık düşüktü ve şifre deneme-yanılma (yineleme) yöntemiyle kırılabilecek tarzdaydı. Vigenere yöntemi ile bu olasılık biraz daha büyültülmüştür. Bu yöntemin en büyük özelliği çoklu alfabe kullanmasıdır. Bundan kastımızı da aşağıdaki tabloya bakarak anlayabiliriz.
<IMG class=resizeimage alt="" src="http://www.mutasyon.net/imx/makaleler/kriptoloji/vigenere_12.gif" onload="" border=0></DIV>
Bu tabloya Vigenere tablosu denilmektedir. Bu yöntemle şifreleme yaparken Vigenere tablosunda periyodik döngüler ile yer değiştirme işlemleri yapılır.. sezar şifreleme yöntemini göz önünde bulundurup tablonun ilk satırına bakarsak arada bir benzerlik göreceğiz. Sezar yöntemine göre burada öteleme (kaydırma – shift) sayımız 0, son satıra göre de 25’dir ve ya 26x26 lık bir matris şeklinde de düşünebiliriz. Bunu birinci satırı bir şerit gibi düşünürsek her seferinde bir yana kaymasıyla oluşan tablo bize vigenere tablosunu verir.
Böylelikle alfabe ile yer değiştirme arasında bire-bir değilde bir-çok bir ilişki sağlamış oluruz.
Yani 26 karakterlik her harfe karşı bir tane 26 karakterlik harf şeridi karşılık gelir. Aslında bu şeridi oluşturan harfler hep aynıdır fakat yerleri kaydırılarak (shift edilerek) değiştirilmiştir.
Burada Vigenere şifreleme yönetiminin iki metodu olan autokey metodu ver keyword metoduna değineceğiz.
Autokey Metodu:
Bir mesajı Vigenere autokey metoduyla şifrelemek için gönderici ve alıcı bir başlangıç anahtarı (priming key) üzerinde anlaşmış olmalıdırlar. Bu başlangıç anahtarı (priming key)
tek harften oluşur. Mesajın şifrelenmeye başlaması için bu anahtara ihtiyaç duyarız. Yöntemimizi tarif edecek olursak; şifrelenecek düz metnimizi bir satıra yazalım. Bunun alt satırına da başlangıç anahtarımızı (priming key) yazalım. Böylece gönderici düz metindeki harfleri ve başlangıç anahtarını kullanarak Vigenere tablosundan şifrelemeyi yapar. Şifreleme işlemi ise düz metindeki harfleri Vigenere tablosunun satır başlarından, başlangıç anahtarımızı da sütun başlarından bakarak bu ikisinin karşılık geldiği (kesiştiği) harfler bizim şifreli metnimizi oluşturur.
Düz metindeki ilk harf ile başlangıç anahtarımızı kesiştirip bir harf buluyoruz. Daha sonra düz metindeki ikinci harfin şifrelenmesi için başlangıç anahtarı olarak bu sefer düz metindeki ilk harfi seçiyoruz yine tablodan bakarak ikinci harf içinde bu şifreleme işlemi yapılır. Böylece üçüncü ve diğer tüm harfler bu mantıkla şifrelenir. Bu söylediklerimizi bir örnek üstünde gösterelim.
<IMG class=resizeimage alt="" src="http://www.mutasyon.net/imx/makaleler/kriptoloji/vigenere_11.gif" onload="" border=0></DIV>
Örnek:
Başlangıç anahtarı (priming key): B
Düz Metnimiz: DEFTER
Şimdi yukarıdaki tarife göre şifreleme işlemine geçelim.
Düz Metin: D E F T E R
B. anahtarı: B D E F T E
Şifreli Metin: E H J Y X V
Böylelikle şifreli metnimizi “EHJYXV” buluruz.
Çözümü
Alıcı olarak elimizde şifreli metnimiz ve daha önce üzerinde anlaştığımız başlangıç anahtarımız var. Yine bir satıra şifreli metnimizi yazıp alt satıra da başlangıç anahtarımızı yazıyoruz. Bu sefer tabloda satır başı olarak başlangıç anahtarımız olarak alıyoruz ve şifreli metnimizdeki karakteri bulana kadar sağa ilerliyoruz. Yani anahtar ile kesişimi şifreli metindeki karakter olan harf bizim düz metnimiz oluyor. İlk harf için bu işlemi yaptıktan sonra. Şifreli metindeki ikinci harfin çözümü için başlangıç anahtarı olarak bu sefer düz metindeki ilk harfi seçiyoruz. Bu işlemleri devam ettirdiğimizde düz metnimizi elde ederiz.
Şifreli Metin: E H J Y X V
B. anahtarı: B D E F T E
Düz Metin: D E F T E R
B ile başladık, kesişimi E olan düz metnimiz D oldu. Başlangıç anahtarı olarak bu sefer D yi alıp işlemleri tekrarladık. Düz metin olarak “DEFTER” `i bulmuş olduk.
Güvenlik:
Kırılması sizinde tahmin edeceğiniz gibi çok basittir. Başlangıç anahtarı olarak alfabede seçilecek 26 karakter vardır. Buda 26 olasılık ile bu şifrelemenin çözülebileceğidir. Onun için bundan daha kuvvetli olan anahtar kelime metodunu (keyword metod) görelim.
Keyword Metodu:
Aslında autokey metoduna biraz benzemektedir fakat orda başlangıç anahtarı olarak bir harf seçerken burada bir kelime seçmekteyiz. Hemen örneğimize geçersek.
Düz metin: DEFTER AL BANA
Anahtar kelime: SORU
Yine bunları alt alta yazalım fakat beşerli harf gurupları halinde olsun.
Düz Metin: D E F T E R A L B A N A
Anahtar: S O RU S O R U S O R U
Şifr. Metin: V S E N W F R F T O E U
D yi satır başından S yi sütun başından seçip kesişim olarak V bulduk. Sonra aynı şekilde E yi satır başından O yu sütun başından seçip S yi bulduk. Bu mantıkla tüm harfleri şifreledik. Şifreli metnimiz “V S E N W F R F T O E U” oldu.
Çözümü:
Şifreli metnin çözümü için yine autokey metodundaki yol izlenir. İlk satıra şifreli metin alt satıra da anahtar kelime yazılır. Yine beşerli guruplar halinde yazalım.
Şifr. Metin: V S E N W F R F T O E U
Anahtar: S O RU S O R U S O R U
Düz metin: D E F T E R A L B A N A
Satır başını S alıp kesişimi V olan harfimizi D düz metin harfimiz oluyor. Böylelikle düz metin bulunmuş oluyor.
Güvenlik:
Autokey metoduna göre çok daha kuvvetlidir. Görüldüğü gibi anahtar kelimenin boyu arttıkça şifreleme daha güçlü olmaktadır.
Vigenere şifresinin kriptoanalizi:
Vigenere şifreleme yönetmi bundan önce bahsettiğimiz yöntemlere göre daha kuvvetli dir fakat günümüz teknolojisini düşünürsek yine çok zayıf kalan bir algoritmadır. Şifreli yazının kırılması için gerekli olan anahtar uzunluğunun bulunmasıdır. Autokey metodunda anahtar uzunlığı 1 olduğu için 26 olasılıkla hemen düz metini elde ediyorduk.anahtar kelime metodunda ise kelime uzunluğu çözümü bulmak için yeterlidir. Şimdi bu algoritmaların kırılması için iki yöntemi ele alacağız. Bunlar Firiedman ve Kasiski testleridir.
Friedman Testi:
Bunu daha çok kapa testi olarak duyarız. 1925`te William F. Friedman tarafından bulunmulştur. Kendisine dayanak olarak şifreli metinde tekrarlanan karakter çiftlerinin baz alarak anahtar kelime uzunluğunu bulmaya çalışır. Gerekli formülleri verecek olursak
<IMG class=resizeimage alt="" src="http://www.mutasyon.net/imx/makaleler/kriptoloji/cryptanalysisfriedman1.jpg" onload="" border=0>
<IMG class=resizeimage alt="" src="http://www.mutasyon.net/imx/makaleler/kriptoloji/cryptnalysisfriedman2.jpg" onload="" border=0>
N(i) ler A,B,C,….,Z nin frekanslarıdır. N ise alfabedeki harf sayısıdır. 0,065 ten bahsedecek olursak; daha önce dediğimiz gibi rast gele seçilmiş iki harf grubunu (AB gibi) tekrarlanma olasılığının bulunmasına dayanır. Rastlantı dizi değeri olarak İngiliz alfabesinde tek harfe göre bu değer 0,077 Türkçe de 0,063 dür. İkili harf grubu için bu değer türkçede 0,059 ingilizcede 0,065 tir işte buna rastlantı dizi değeri diyoruz. Formülde verilen k ise tahmini anahtar uzunluğumuzdur.
Kasiski Testi:
Bu testte Friedman testi gibi anahtar kelime uzunluğunu bulmaya yöneliktir. Bunu bir örnek üzerinde anlatalım.
Düz metin: i have seen many beautiful Works of art over the years but there is one particular painting that impressed me more than any other it is called thescream and it was painted by edvard munch
Anahtar: help
Şifreli Metin: PLLKLWPTUQLCFFPPBXTUBPHDYODDMECIVZPGALPNLEC HIYEIOICTPWZCLTLGAMNJSECEHMYIPRRIOEEXTTCTZWPSTIXDYIEWHRLCFS EWLVTIPWNPSPPSALPHJVPPTEYSPXHPZTLXUXPSICPSCECSTYYRO
Şimdi burada önemli olan şifreli metinde tekrar eden harf gruplarıdır görüldüğü gibi “LCF” ve “ALP” tekrar etmektedir. Şimdi bunlar üzerinden anahtar kelime uzunluğunu bulalım.
Harf grubu
Yeri
Uzaklık
Çarpanlar
LCF
10 98
88
2 4 8 11 22 44 88
ALP
36 116
80
2 4 5 8 10 16 20 40 80
Yeri; şifreli metinde baştan başlayıp sayarak harf gurubunun olduğu yere kadar olan uzunluğu buluyoruz.
Uzaklık; bulduğumuz şifreli metindeki tekrarlanan harf gruplarının bir birine olan uzaklığı.
Çarpanlar; Burada ise bulduğumuz uzaklık sayısının çarpanlarını alıyoruz.
Bu veriler elimizdeyken kelime uzunluğu hakkında 2 , 4 veya 8 dir diye tahmin yürütebiliyoruz. 8 uzun bir kelime 2 de kısa bir kelime olacağından en uygun tahminimiz olarak 4 ü kullanabiliriz.
Şimdi anahtar kelime uzunluğu ile şifreli metnimizi nasıl kıracağımıza bakalım
Şifreli Metin: PLLKLWPTUQLCFFPPBXTUBPHDYODDMECIVZPGALPNLEC HIYEIOICTPWZCLTLGAMNJSECEHMYIPRRIOEEXTTCTZWPSTIXDYIEWHRLCFS EWLVTIPWNPSPPSALPHJVPPTEYSPXHPZTLXUXPSICPSCECSTYYRO
Anahtar uzunluğumuzu 4 olarak almıştık. Buda demektir ki anahtar kelimemizin ilk harfi ile şifreli metnimizin 1,5,9,… karakterleri aynı harf ile şifrelenmiştir.
1. harf PLUFBBYMVALIOPLASHPOTZTYHFLPSAJTPZUICTO
2. harf LWQFXPOEZLEYIWTMEMRETWIIRSVWPLVEXTXCEY
3. harf LPLPTHDCPPCECZLNCYRECPXELETNPPPYHLPPCY
4. harf KTCPUDDIGNHITCGJEIIXTSDWCWIPSHPSPXSSSR
Bundan sonra bir dizi frekans hesabından geçiriyoruz. Aynı örneğin benzeri burada var…
Fakat sizde internette buna benzer çözümlemeler yapmak isterseniz.
http://www.cs.uri.edu/cryptography/classicalvigenerecryptdemo.htm
Adresinden şifreli metinimizi çözmek için gerekli adımları takip edebiliriz.
Önce metin girilir. Harflerin şifreli metinde kaç kez tekrarlandığı bulunur. Rastlantı değişkeni elde edilir. Bizim örneğimiz için (0.05538355693154455) dir.. Sonra keyword uzunluklarımızı gireriz.. Yukarıda bunu 4 olarak belirlemiştik. Sonra 5 girin hatta 3 üde deneyiniz.. Göreceksiniz ki frekans hesabında en yakın değeri 4 de alacaktır. Bundan sonra yine bizim yukarıda ayırdığımız gibi harflerimiz dört guruba ayrılır. Şimdi kesinleştirmiş olduğumuz anahtar kelime uzunluğunu girersek. Karşımıza “help” çıkağını görürüz.. Bundan sonrası da basit zaten…
Kaynaklar:

Hiç yorum yok:

Yorum Gönder