Bundan iki günce önce “Data Security” dersime çalışırken, internette veri güvenliği ile ilgili yazılmış onlarca dökümandan yararlandım. Bu dökümanların bazıları çok açıklayıcı ve kolay bir dilde yazılmış olmasına rağmen bazıları gerçekten karışık ve anlaşılması için temel bilgi gerektiren yazılardı. Tahmin edersiniz ki bu makalelerin çoğu İngilizceydi. Ben de bir öğrenci olarak, karşılaştığım sorunları ve anlaşılması zor yerleri daha kolay tesbit edeceğimi düşünüp, bildiğim ve araştırdığım kadarıyla, Veri Güvenliği hakkında Türkçe bir kaynak hazırlamak istedim. Türkçe terimleri kullanmaya dikkat ettim, fakat anlaşılır olması ve karışıklıkları önlemek için İngilizce'sini de yazdım.İlk yazı dizisi şifrelemenin tarihçesi hakkında.
Umarım faydalı olur ….
Şifrelemenin Önemi
Biraz basitten başlayalım, şifremelenin yapılmadığı veya çok zayıf olduğunu bir dünya hayal edelim. Bu dünyada biraz bilgisayar bilen neler mi yapabilir ? Mesela çok uzaklaradn telefon konuşmalarınızı rahatça dinleyebilir, kablosuz klavye kullanıyorsanız yazdıklarınızı çevrenizdeki bir yerde çayını içerken okuyabilir. Kablosuz internetiniz de artık halka açık sayılır. İnternette e-ticaret sitelerinde kredi kartını kullanarak alışveriş yapmak, dışarıya “Ev boş” yazıp, kapıyı açık bırakmak kadar güvenli hale gelir.
Örnekleri biraz daha ileri boyuta götürürsek, işin içine askeri bilgiler, devlet güvenliği giriyor. Bunun en güzel örneklerinden biri Enigma’dır. 1. Dünya Savaşı”nda yüksek önem taşıyan mesajları diğer devletler tarafından kırılan Almanlar, daha savaş bitmeden bir Enigma’yı geliştirip 2. Dünya Savaşı için kullanıma hazırladılar. Bu gönderilen mesajlar o kadar önemliydi ki , şifreleri kırmak için bir çok ülke kendi içinde özel bir bölüm oluşturup, Enigma’nın kırılması için çalıştı. Almanya’nın savaşı kaybetmesinde bu mesajların kırılmasının çok büyük önemi olduğu söylenir. Öyleki Almanlar’ın saldıracağı yerler, birliklerin yerleri enigma'nın kırılması ile sağlandı bu da savaşın akışını değiştirdi.
Şifrelemenin Tarihçesi ve Basit Şifreleme Algoritmaları
Şifrelemenin çok çok önce (+4500 yıl) mısırlılar tarafından kullanıldığı söylenir. Daha sonra yunananlılar ve romalılar kullanmıştır. İlkel yöntemlerden sevdiğim bir kaçına örnek vermek istiyorum. İlk olarakn eskiden yunanlılar özel mesaj göndermek istediğinde, kölelerin başını kazıyıp (saçlarını kesip yani !), mesajı yazdıktan sonra saçlarının uzamasını bekliyorlarmış. Mesajı okumak için yine saçlarını kesiyorlarmış. İkincisi de , şerit halindeki bir bezin sopaya sarılıp mesajın yazılmasından sonra, aradaki boşlukların rastgele karakterlerle doldurulması idi. Eğer bu gizli mesajımız başkasının eline geçerse, büyük ihtimalle bir şey anlamayacak. Bunu çözmesi için ancak aynı yarı çapa sahip bir silindir şeklin etrafına sarıp okuması lazım.
Tarihte bilinen en eski yöntemlerinden biri de sezar (Caesar Cipher) şifrelemesidir. Bu şifreleme bir kelimede ki her harfin 3 harf sağa kaydırılması ile oluşuyordu. Örneğin (İngiliz alfebesi ile);
“abc” kelimesi 3 sağa kaydırarak şifrelersek:; a=>d , b=>e, c=>f haline dönüşür ve yeni kelime
“def” olur.
“acik” kelimesi için bir sağa kaydırmalı yeni kelime “dfln” ‘dir.
Daha detaylı bilgiyi ve örnekleri bu sitede bulabilirsiniz. http://www.simonsingh.net/The_Black_Chamber/caesar.html
Eğer biraz daha tarihte ilerlersek karşımıza Gilbert Vernam’ın bulduğu ve ünlü tek kullanımlık şerit (one time pad) algorithması çıkar. Bu algorithmanın kırılması imkansız (matematiksel olarak) olarak tanımlanıyor. Şifrelemeside oldukça basit, elinizdeki metin ile aynı uzunluktaki rastgele karakterlere sahip bir metni topluyor ve şifrelenmiş metin elde ediyor. İki metini toplamak ne demek ? Şöyle ki her harfin alfabedeki sırası toplanıyor örneğin B = 1 D=3 (ingiliz aflabesi) a+d = 4 yani E eder. (A=0 kabul ediyoruz.)
Peki alfabedeki harf sayısından fazla toplam çıkarsa ne olucak ? Yani H(7)+Z(23) = ?(30) sonucunca ne yapacağız ? Bu durumda İgilizce'de aflabe 26 harfli olduğundan 30. harfin karşılığı yoktur. Bu yüzden mod(26) işlemi uygulayacağız. Böylece H(7)+Z(23) = 30%26 = 4 çıkacaktır oda E harfine karşılık gelir. Şifreyi çözmek içinde bütün adımları tersten yapmamız yeterli olur. Örneğin şifreli metinimiz E(4) ise ve anahtarımız (şifrelemede toplanan metin) Z(23) ize yapcağımız işlem (4-23)%26= 7 yani H olacaktır. Aslında bu şifreleme sezar şifrelemesi ile çok yakın. Sezar şifrelemesinde her harfi 3 sağa kaydırırken(D harfi ile toplarken), bu algorithmada her harfi rastgele sayılar kadar kaydırıyoruz yani farklı karekterler ile topluyoruz. Şimdi genel bir örnek çözersek.
Kelimemiz: acik
Anahtarimiz: nrdy
a(0) c(2) i(8) k(10)
n(13) r(17) d(3) y(24)
a+n=13, c+r=19, i+d=11, k+y=34%26= 8
Şifrelenmiş metinimiz: n(13) t(19) l(11) i(8)ntli’dir. Şimdide anahtarı kullanarak çözelim.
Şifrelenmiş metin: ntli
Anahtar: nrdy
n(13) t(19) l(11) i(8)
n(13) r(17) d(3) y(24)
13-13=0, 19-17=2, 11-3=8 8-24=-16%26=10
Düz metinimiz: acik. Kırılmasının imkansız olması, deneme yanılma yöntemleri ile birden fazla anlamlı kelime çıkma ihtimalidir. Diyelimki şifreli metinimiz şifremizi kırmak isteyen birinin eline geçti. “ntli” şifrelenmiş metinimizin harflerini rastgele kaydırarar 4 harfli bütün kelimeleri elde elebiliriz. Bu yüzden kırılması imkansız deniyor (matematiksel olarak).
Geçmişte kullanılan bir kaç basit algorithma ve şifrelemenin tarihi hakkında artık bilgi sahibisiniz. Diğer yazımda, biraz daha günümüz şifreleme türlerine giriş ve simetrik anahtar şifreleme (Symmetric key cryptography) hakkında bilgiler bulabileceksiniz.
Hepinize iyi çalışmalar …