Salı, Ağustos 16, 2011

ortaçağdan beri kripto tekniği

 

Kriptoloji, şifre bilimidir. Çeşitli iletilerin, yazıların belli bir sisteme göre şifrelenmesi, bu mesajların güvenlikli bir ortamda alıcıya iletilmesi ve iletilmiş mesajın deşifresiyle uğraşır.
Günümüz teknolojisinin baş döndürücü hızı göz önünde alındığında, teknolojinin gelişmesiyle ortaya çıkan güvenlik açığının da taşıdığı önem ortaya çıkmaktadır. Kriptoloji; kişiler arası veya özel devlet kurumları arasındaki iletişmelerden, sistemlerin oluşumunda ve işleyişindeki güvenlik boşluklarına kadar her türlü dalla alakalıdır.
Kriptoloji, çok eski ve renkli bir geçmişe sahiptir. Tarihten günümüze bazı şifreleme teknikleri şunlardır:
• Sezar şifrelemesi
• Rotor makinesi (Enigma)
• Açık anahtarlı şifreleme
• Çırpı fonksiyonları
• Veri gizleme teknikleri
Kriptografi, kelime kökeni olarak Yunanca gizli/saklı anlamına gelen kryptós ve yazmak anlamına gelen gráphein kelimesinden türetilmiştir.
Kriptografi, gizlilik, kimlik denetimi, bütünlük gibi bilgi güvenliği kavramlarını sağlamak için çalışan matematiksel yöntemler bütünüdür. Bu yöntemler, bir bilginin iletimi esnasında karşılaşılabilecek aktif ya da pasif ataklardan bilgiyi -dolayısıyla bilgi ile beraber bilginin göndericisi ve alıcısını da- koruma amacı güderler.
Bir başka deyişle kriptografi, okunabilir durumdaki bir bilginin istenmeyen taraflarca okunamayacak bir hale dönüştürülmesinde kullanılan tekniklerin tümü olarak da görülebilir.

KRİPTOGRAFİK SİSTEMLERİN ESASLARI


Esas kelimesi ile bir kriptografik sistem içerisinde kullanılan temel işlevlerden bahsedilmektedir. Bir kriptografik sistem, bilgi güvenliğini sağlamak için bir araya getirilmiş birçok küçük yöntemler bütünlüğü olarak görülebilir. Bu yöntemler yapıları itibarı ile üç ana grupta incelenebilirler:
• Anahtarsız şifreleme
• Gizli anahtarlı şifreleme
• Açık anahtarlı şifreleme
ANAHTARSIZ ŞİFRELEME

Anahtarsız şifreleme, anahtar kullanmayan kriptografik algoritmalar, veya diğer adlarıyla Veri Bütünlüğü ve Özet Fonksiyonları, veri bütünlüğünü garanti etmek için kullanılan MD5, SHA-1, RIPEMD-160 gibi kriptografi algoritmalarının kullandığı yöntemlere verilen isimdir.
Bu özet fonksiyonu algoritmaları veriyi tek yönlü olarak işler ve algoritmanın özelliğine göre belirli bir genişlikte (örn: 128 bit, 512 bit) kriptografik özet çıkartır. Bir anlam bütünlüğü içermeyen ve rasgele seçilmiş sayılar görüntüsü yaratan bu çıktı o dosya veya bilgiye özeldir. Her işlem yapıldığında, hep aynı sonucu verir. Ancak dosya veya bilgide 1 bit değişiklik dahi gerçekleşmesi durumunda bu çıktı (özet çıktısı) tamamen değişir. Böylece iki kontrol arasında veri bütünlüğünde bir değişiklik olup olmadığı anlaşılır. Özet fonksiyonları tek yönlüdür. Terabaytlar boyutunda bir bilgi dahi olsa özeti algoritmanın ön tanımlı anahtar genişliğini geçemez. (örn: 128 bit) ve bu özet fonksiyonundan asıl veriye ulaşılması veya özet fonksiyondan asıl veri ile ilgili bilgi edinilmesi teorik olarak mümkün değildir. Özet fonksiyonlarının anahtar genişlikleri ne kadar fazla ise güvenilirlikleri de o kadar artar. Anahtarın genişliği gerek, iki ayrı verinin özetinin istatistiksel çakışma olasılığını gerekse özet sonucunun değiştirilmiş bir veri ile taklit edilme olasılığını düşürür. Ayrıca algoritmanın yapısal durumu da güvenilirlik ile ilgili karara varılırken mutlaka dikkate alınmalıdır.
Bu algoritmaların hepsinin ortak özelliği girdilerdeki değişiklik karşısında kelebek etkisi davranışı sergilemeleridir.

GİZLİ ANAHTARLI ŞİFRELEME

Kriptografik yöntemlerden, hem şifreleme hem de deşifreleme işlemi için aynı anahtarı kullanan kriptosistemlere verilen isimdir. Simetrik şifreleme olarak da anılabilmektedir.
DES, 3DES, RC5, Blowfish, IDEA, SAFER gibi algoritmalar gizli anahtarlı şifreleme algoritmalarına örnek olarak verilebilir.
Açık anahtarlı şifrelemede ise şifreleme ve deşifreleme işlemlerinde birbiri ile arasında matematiksel bir ilişki olan iki farklı anahtardan faydalanılır.

AÇIK ANAHTARLI ŞİFRELEME

Açık anahtarlı şifreleme (veya asimetrik şifreleme), şifre ve deşifre işlemleri için farklı anahtarların kullanıldığı bir şifreleme sistemidir.

Simetrik Şifreleme ve İmparator Sezar

Örnek verebileceğimiz en basit simetrik şifrelerden biri Sezar Şifresidir. Neredeyse tüm kriptoloji kitaplarının giriş bölümlerinde Sezar Şifresi örneğine rastlarsınız.
Bunu bir örnekle hemen anlatayım:
Mesela göndereceğimiz metne yine M diyelim, bunun şifrelenmeş halinede C diyelim. (ingilizce karakterler göz önüne alınmıştır)
M: “Mutasyonda bir makale”
C: “Nvubtzpoeb cjs nblbmf”
Görüldüğü gibi alfabedeki tüm harfleri sayılara eşit tutarsak (A=1, B=2, C=3...) sonra gönderilen yazıda ve A =>B, B=>C, C=>D, ..., Y=>Z, Z=>A şeklindedir.
Algoritmamızın mantığı şudur: gelen her harfin sayısını bul ve bir ilersindeki sayıyı yerine yaz. (sezar şifresi için).
Sezar Şifresi tek alfabeli yer değiştirme veya permütasyon şifreleri arasında değerlendirir. Çözülmesine gelince de. Türk alfabesini göz önünde tutarsak 28 karakterden oluşacağı için, en fazla 27 ilersindeki harfi alabilir deriz. Buda 27 deneme yapmamıza mal olacaktır. Şifrenin bulunma denemesini ortalama olarak 27/2~=15 de diyebiliriz. Birde yazılan harfin yerine herhangi bir harf konulduğunu düşünürsek bu sefer yaklaşık olarak 28! (yirmi sekiz faktöriyel) kez denemek zorunda kalırız.

AFİN ŞİFRELEME YÖNTEMİ

Simetrik (Sezar şifreleme metodu) şifreleme yöntemi ile yazı üzerinde 27 farklı dönüşüm yapılabiliyordu. Biz İngiliz alfabesini göz önünde tutarsak 26-1=25 dönüşümden söz etmemiz gerekir. Buda simetrik şifreleme yönteminin güvenli olmadığını gösterir. Afin yöntemi ile simetrik şifreleme yöntemi biraz daha genelleştirilmiştir ve güvenlik azda olsa simetrik şifreleme yöntemine göre daha güçlüdür. Tabi bu kağıt kalem kriptolojisinin bir örneği olduğundan bunu günümüz koşullarına göre düşünürsek. Çok çok zayıf bir yöntem olduğunu görürüz. Fakat bu bize kriptolojinin temel mantığını kavratmak için güzel bir örnek teşkil etmektedir.
y=(ax+b)MODm fonksiyonunu göz önüne alalım.
Burada x düz metindeki harflerin sayısal karşılığı, m düz metinde kullanılan alfabenin karakter sayısı, a ve b gizli sayılarımız ve y de fonksiyonumuzun işlem sonucunda aldığı değerdir. Y nin x e geri dönüşümü ise x=ters(a)(y-b)MODm formülü yardımıyla hesaplanır. Ters(a), a ile çarpımının modülo m e göre sonucu 1 olan sayıdır. Bunun kısaca şöyle ifade edebiliriz.
(a*ters(a))MODm=1
Aşağıdaki örnekte gördüğümüz gibi y=11x+4MOD26 şifreleme fonksiyonunu kullandığımız da E ve S harfleri W ve U şeklinde şifreli hallerini alır. Hesap modülo 26 aritmetiğini içerdiğinden, eğer çarpan 26 ile en büyük ortak bölene sahip ise bazı karakterler beklenen sonucu vermeyebilir. Bu yüzden m ve a nın en büyük ortak böleni 1 olmalıdır. Yani aralarında asal olacak şekilde seçmeliyiz.
Örnek:

Farzedelim ki mesaj y=(11x+4)MOD26 fonksiyonu ile şifrelensin. Şifreli metnimiz MONEY. Öncelikle düz metnimizdeki her bir karakterin aşağıda verilen listedeki olduğu gibi 0 ile 25 arasındaki sayısal değerlerini bulmalıyız.

A-0
B-1
C-2
D-3
E-4
.
.
.
Y-24
Z-25 Böylece MONEY metnimizin uygun sayısal değerleri 12, 14, 13, 4 ve 24 tür. Buradaki her bir değer için daha önce belirlediğimiz y=(11x+4)MOD26 fonksiyonunu kullanırsak.
M: y =(11*12+4)MOD26=6 ---- G
O: y =(11*14+4)MOD26= 2 ----- C
N: y=(11*13+4)MOD26=17 ----- R
E: y=(11*4+4)MOD26=22 ----- W
Y: y=(11*24+4)MOD26=8 ----- I
Böylece bulduğumuz şifreli metnimiz “GCRWI” olur.
Şifre çözümü:
Şifre çözümü (deşifreleme) için y fonksiyonunu aşağıdaki gibi değiştirelim.
x=(ters(a)(y-b)MODm deşifreleme fonksiyonumuz
a=11 ve b=4 demiştik.
Böylelikle x=ters(11)(y-4)MOD26 yı elde edebiliriz.
Ters(11)MOD26=19 ve bu şekilde deşifreleme fonksiyonumuz x=19(y-4)MOD26 olur.
Şimde şifreli metnimiz olan “GCRWI” deki her bir karakterin karşılığı olan sayısal değeri tablomuzdan bulalım. 6,2,17,22,8 dir.
G: x=19*(6-4)MOD26=12 ------M
C: x=19*(2-4)MOD26=14 ------ O
R: x=19*(17-4)MOD26= 13 ---- N
W: x=19*(22-4)MOD26=4 ----- E
I: x=19*(8-4)MOD26=24 ------ Y
Bu sayede düz metnimize ulaşırız “MONEY”.
Analiz:
Düz metindeki her bir karakterin y=(ax+b)MODm fonksiyonu ile şifrelendiği bildiğimizden Afin yöntemini iki lineer denklemin çözümüyle kırabiliriz.
Örneğin
“IF” ----- “PQ”
I---P: 8a+b=15MOD26
F---Q: 5a+b=16MOD26
Bu işlemin sonucunda a=17 b=9 çıkar. Böylelikle verilen metin kolayca kırılabilir.

HİLL CİPHER ŞİFRELEME YÖNTEMİ

Hill şifreleme yöntemi bir blok şifreleme örneğidir. Blok şifrelemeyi de şöyle ifade edebiliriz. Düz metni bitişik ve aynı uzunluktaki bloklara bölme, her bloğu şifreleyerek şifreli metin bloklarına dönüştürme ve bu şifreli blokları şifreli metin çıktısı olarak gruplamaktır. Hill şifreleme yöntemi Lester Hill tarafından bulunmuş ve 1929 yılında yayınlanmıştır.
Örnek:
Bir mesajı Hill yöntemi ile belli bir düzen içinde şifrelememiz gerekir. Öncelikle mesajın göndericisi ve alıcısı bir anahtar nxn lik A matrisi üzerinde anlaşmış olmalılardır. Bu A matrisini seçerken dikkat etmemiz gereken bir özellik ise MOD26 ya göre terslenebilen bir matris olmasıdır. Düz metin n uzunluğundaki bloklar şeklinde şifrelenir. Aşağıdaki örnekte A 2x2 lik bir matris ve mesajımız 2 karakterli bloklar halinde şifrelenecektir.
Anahtar Matrisimiz: A=
Mesajımız: MISSISIPI
Öncelikle bloklara bölelim. Bu sayede mesajımız MI-SS-IS-SI-PP-I halini alır.
İlk bloğumuz MI dir. Bu seferde bloğumuzdaki karakterlerin harf tablosundaki yerine göre aldığı değerlerden oluşan matrisimizi oluşturalım. M->12, I->8 olduğundan
dir
Gönderenin hesaplaması gereken ise
A = (mod26) dir
Bu işlem yapıldığında ilk iki karakterin şifreli karşılığı 2 ile 8 olacaktır. Bu değerlerin alfabetik karşılığınada bakıldığında CI çıktısını elde etmiş oluruz.
Bu işlemi düz metnimizdeki her bloğa uygularsak
Düz Metin: MI-SS-IS-SI-PP-IK
Şifreli Metin: CI-KK-GE-UW-ER-OY
Düz metnimizde son bloğa K eklememizin sebebi. Son bloğun uzunluğunu da 2 yapmaktır.
Hill yönteminin en önemli özelliğini de burada görmüş oluruz. S veya P nin yan yana kullanımında S->K olmuş sonradan ise S->E ve S->U olmuştur. Dolayısıyla Hill yöntemi ile düz metindeki karakterleri maskeleyebiliriz.
Şifre Çözümü (Deşifrelenmesi) :
Mesajın deşifrelenmesi için öncelikle anahtar matrisimiz olan A matrisinin tersi hesaplanmalıdır.
(mod 26)
Anahtar matrisin tersi ile şifreli karakter çiftlerinin çarpımı bize düz metni verir.
Anahtar Matrisimiz: A=
Şifreli Metnimiz: CIKKGEUWEROY
Deşifrele için ilk bloğumuzu seçelim CI
A-1 = (mod26) dir
Mesaj deşifrelendiğinde ilk iki karakterin sayısal değeri olan 12 ve 8 sayıları bulunur. Bunlarda CI -> MI demektir. Mesajı alan kişi elinde bulunan şifreli metindeki her bir karakter bloğu için bu işlemi uygular.

VİGENERE ŞİFRESİ

İ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.

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.
(TABLO-1 EKTEDİR)

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.
(TABLO-2 EKTEDİR)

Ö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ÜVENLİK:

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
(EKTEDİR)

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 HIYEIOICTPWZCLTLGAMNJSECEHMYIPRRIOEEXTTCTZWPSTIXDY IEWHRLCFS EWLVTIPWNPSPPSALPHJVPPTEYSPXHPZTLXUXPSICPSCECSTYYR O

Ş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 HIYEIOICTPWZCLTLGAMNJSECEHMYIPRRIOEEXTTCTZWPSTIXDY IEWHRLCFS EWLVTIPWNPSPPSALPHJVPPTEYSPXHPZTLXUXPSICPSCECSTYYR O
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…

ASİMETRİK ŞİFRELEME

Asimetrik şifreleme (public key) yöntemi simetrik şifreleme yönteminin en büyük dezavantjı olan gizli anahtarı (secret key) karşı tarafa, kimsenin öğrenmeden gönderilmesindeki zorluğu ortandan kaldırma adına geliştirilmiştir.
Asimetrik şifrelemede iki adet anahtar oluşturulur. Bu anahtarlar genel anahtar (public key) ve özel anahtar (private key) olarak adlandırılır. Public key ile veri şifrelenir private key ilede sadece şifrelenmiş veri deşiflenip orjinal hale getirilir. Public key olarak belirtilen anahtar umuma açıktır ve herkes tarafından bilinmesinde herhangi bir sakınca yoktur. Çünkü bu anahtarla sadece veri şifrelenir ve bu anahtarla şifrelenmiş veriler ancak ve ancak public key e karşılık oluşturulmuş private key (özel anahtarla ) çözülebilir. Bu itibarla private key in kesinlikle gizli olarak kalması gerekir.
Belirtilen yöntem şu mantıkla çalışır. İki kişi arasında bir veri alışverişi yapıldığını varsayalım (bu iki kişi hemen bütün şifreleme kitaplarında Alice ve Bob diye geçer. Nedendir bilinmez?) Alice, Bob’a şifreli bir mesaj göndermek istemektedir. Bob kendi bilgisayarı üzerinde bir adet public key (şifreleme için) ve bir adet de private key (şifre çözmek için) oluşturur. Ve Bob oluşturmuş olduğu public key i Alice gönderir. Yolda public key in başkaları tarafından görülmesinde herhangi bir sakınca yoktur.(secret key yada simetrik algoritmalardan farkı buradadır.) Çünkü public key sadece şifreleme yapar. Alice Bob’a ait public key ile mesajını şifreler ve şifreli bir şekilde Bob’a yollar. Bob’un elinde de kendisine ait olan public key e karşılık gelen private key vardır (ve bu private key sadece oluşturulmuş olan public key ile şifrelenmiş mesajları çözer ve bu sebebten ötürü hep gizli kalmalıdır.) Bob şifrelenmiş mesajı private key i ile çözerek okur. Yolda metin şifrelenmiş olarak gittiğinden ve private key (özel anahtar) her zaman Bob un elinde gizli bir şekilde tutulduğundan mesajın güvenliği sağlanmıştır.

Alice : Plaint text + Bobs publickey = > Encrypted Text
Oluşturulmuş bu şifreli mesajı Bob’a yolla.

Bob : Encrypted Text + Bobs privatekey => Decrypted Text (Yani Orjinal mesaj)
Biraz da matematik

Bu public/private key çiftini üretmek için özel bir algoritma kullanılır. Bu algoritma ilk kez Amerikalı üç bilim adamı tarafından 1977 yılında geliştirimiştir ve ismini bu üç kişinin baş harflerinden almıştır RSA. Rivest, Shamir, Adleman. (Her ne kadar İngilizler ikici dünya savaşı yıllarında bu tip te bir yöntem keşfettiklerini ve bu yöntemi güvenlik amacıyla kimseye söylemedikleri belirtseler bile RSA yöntem olarak ilk kabul edilmiştir.)

RSA mantık olarak şöyle çalışır.
Tamamiyle asal sayılar üzerinde hareket eder..
Önce bir adet asal sayı seçilir ve buna p sayısı denir. Sonra bir tane daha asal sayı seçilir ve bunada q denir.

p = 3
q = 11 (3 ve 11 asal sayıdır dimi?)

Daha sonra bir adet bu iki sayının çarpımından oluşan N sayısı oluşturulur.
N = (p * q)
N = (3 * 11)
N = 33

Bu N sayısı Modulus olarak kabul edilir. Ve hem public hemde private key in bir parçasını oluşturur.

Daha sonra bir a sayısı oluşturulur ve bu a sayısı p değerinin bir eksiği ve q değerinin bir eksiniğinin çarpımından oluşur.

a = (p -1 ) * (q -1)
a = (3 -1 ) * (11 – 1)
a = 2 * 10
a = 20
sayısı elde edilir.


Daha sonra bir e sayısı oluşturulur ve bu e sayısı a ile herhangi bir ortak böleni olmayan bir sayı olmalıdır.
e = 7 (denebilir)
7 sayısının 20 ile ortak böleni yoktur.

Bu oluşturulan e ve N sayılar public key dir (e Exponent (yani üs) N modulus (yani mod alınacak sayı)

Daha sonra private key i oluşturmak için bir adet d sayısı üretilir ve bu d sayısı e sayısı ile çarpılıp a sayısı ile mod landığında kalanı 1 verecek şekilde bir sayı olmalıdır.

d = ? * e mod a => 1 sonucunda olmadır

bunun matematik teki yazımı şöyledir. d * e = 1 mod a, yani

d * 7 = 1 mod 20
d = 3 sonucu bulunur
çünkü 3 * 7 = 21 mod 20 de 1 sonucunu verir.

Oluşturulan bu d sayısı ile N sayısı da private key dir (d Exponent, N modulus)

Yukarıdaki örnek devam ettirilirse Bob’un kendi adına public ve private key lerini oluşturduğunu fazedelim
Bob un key çifti :
Public key : e = 7 ve N = 33
Private key : d = 3 ve N = 33

Bob oluşturduğu bu keylerden private key i çok iyi bi şekilde saklar. Ve public key i Alice’ e yollar. Alice bu bu public key ile mesajı şu şekilde şifreler. Diyelimki ‘A’ karakterini şifreleyip göndermek istiyor. ‘A’ harfine karşılık gelen herhangibi sayı oluşturur (burada ascii kodları kullanılabilir)

A harfinin sayısal değerini 16 olarak seçelim. 16 sayısını public key de bulunan e sayısı ile üs alır ve N sayısı ile de çıkan sonucun mod unu alır. Yani
X = 16 ^ 7 mod 33
X = 268435456 mod 33
X = 25

16 sayısını (ayni A harfini) 25 sayısına çevirerek Bob’a yollar.

Bob’da almış oluduğu bu 25 sayısını d ile üs alıp, N ile modlar

X = 25 ^ 3 mod 33
X = 15625 mod 33
X = 16 ya geri çevirir. (yani A)

Görüldüğü gibi Alice 16 sayısını şifreleyip 25 e çevirmişti. Bob’da 25 sayısını çözüp 16 sayısına geri çevirdi.

(Burade belirtilen örnekte şifrelemek için 33 sayısına eşit yada büyük bir sayı kullanılmamalıdır. Neden?)

Asimetrik şifreleme metodunun iki güvenliği vardır. Birincisi secret-key yönteminde olduğu gibi gizli bir veriyi karşı tarafa yollmak gerekli değildir. İkisinciside şifrenin çözülmesi için gerekli olan ihtimal sayısı çok fazladır.
Asimetrik bir algoritmanın çözülmesi için gerekli olan, p ve q sayılarının bulunmasıdır. p ve q sayıları bilinen (ve herkese açık olan) public key içerisindeki N sayısından bulunabilir. (nasıl?)
Burada belirttiğimiz örnekte sayıları hesaplayabilelim diye çok küçük asal sayılar seçtik 3 ve 11 gibi. Ancak bu şifreleme metodunda kullanılan sayılar oldukça büyüktür.
128 bitlik şifrelemede ortalama 45 haneli asal sayılar kullanılmaktadır. N sayısını oluşturmak için 45 haneli iki sayının çarpımı bulunmalıdır.
128bit lik bir şifrenin çözülmesi için ihtimal sayısı 2 üzeri 128 dir. Ve bu kadar ihtimal normal bir bilgisayar ile ortalama 2 trilyon yılda çözülür. (Saniyete 1 trilyon işlem yapabilen 1 milyon dolarlık süper bilgisayarlarla bu süre 1190 yıl dır)
Japonyada 64bit bir şifre yaklaşık 100.000 (yüzbin) bilgisayarın paralel bağlanarak ortak çalışması sonucunda yaklaşık 3,5 yılda çözülmüştür.
Bügün internet üzerinde SSL ile kurulu sayfalarda 128bit lik şifreleme kullanılır. (sizin kredi kartı bilgilerinizin korunması için) ve her zaman şifrelemede verinin geçerlilik süresi çözülme süresinden az ise güvendesiniz demektir.
Yani SSL kullanılan bir sayfada şifrelenerek yollanan kredi kartı bilgileriniz 1190 yıldan fazla süre yürürlükte kalmayacağı için 1190 yıl sonra çözülmüş olmasının bir mahzuru yoktur. Özel şifreleme programları ile 4096 bitlik (PGP Corporation - Hard Disk Encryption, File Encryption, Secure ftp Server, Hard Drive Encryption, Enterprise Data Protection - PGP Corporation) şifreleme yapılabilir bu şekilde gerçekleştirilmiş bir şifrenin çözülme ihtimali 2 üzeri 4096 yani yaklaşık olarak 10 üzeri 500 dür. Bu sayının büyüklüğünü anlamak için şöyle bir örnek verilebilir. Dünyada bilinen atom sayısı 10 üzeri 70 dir.
Şifrelemenin Tarihi

Heredot’un anlattıklarına göre eski Yunan’da şifreli bir mesaj gönderilmek istendiğinde, kölelerin kafa derisi üzerinde mesajlar aktarılmaktaydı. Önce bir kölenin kafası traş edilir, daha sonra da ilgili mesaj kafasına kazınır ve saçlarının uzaması beklenirdi. Birkaç ay sonra da köle, hedefine doğru yola çıkar ve gittiği yerde tekrar kafası traş edilerek mesaj okunurdu.

Artık ne kölelerimiz ne de aylar boyu bekleyecek zamanımız var. Ayrıca pek zarif bir fikir olmayan bu yöntem yerine gelişen zaman içerisinde pek çok yeni yöntem keşfedilmiştir. Örneğin Roma imparatoru Julius Sezar generallerine gönderdiği mesajların okunmaması için üç yana kaydırma mantığını kullanan bir şifreleme yöntemi geliştirmiştir. Sezar, mesajlarındaki yazılarda, örneğin “A” harfi yerine “D”, “B” harfi yerine “E” kullanmaktaydı. Oldukça basit ve hedefine ulaşan bu yöntem o çağın şartları için yeterli olmuştur.

Gelişen zaman içerisinde değişen şifreleme yöntemleri birbirini izlemiş, kimi zaman çözülen bir şifre imparatorlukların kaderini değiştirmiştir. Örneğin 1587 yılında İngiliz Kraliçesini devirmek için adamlarıyla haberleşmede kullandığı basit değiştirme yöntemi çözülen İskoçya Kraliçesi, bu hatasını idam edilerek ödemiştir.

1. Dünya savaşında Almanların çözmemesi için bir Amerikan Telefon ve Telgraf şirketinden bir çalışan olan Gilbert Vernam tarafından hazırlanan “bir kerelik bloknot” yöntemi, savaş boyunca Amerika Birleşik Devletleri’nin mesaj güvenliğini sağlamıştır. Bu sistemde şifrelenecek metin ASCII kodundaki karakterlere dönüştürülür ve bir kez şifreyi çözmede kullanılacak gizli anahtar, mesajı okuyan kişi tarafından imha edilirdi. Böylece tek seferlik mesajlaşmalar güvenli bir iletişimi oluştururdu.

2. Dünya savaşında ise filmlere konu olan Enigma makinesi Almanların en güvendiği şifreleme tekniğiydi, ta ki; Ruslara esir düşen bir Alman savaş gemisinde ele geçirilen Enigma makinesinin İngilizlere şifre kırıcılar tarafından çözülmesi, savaşın kaderini değiştirmiştir. Almanların tüm haberleşmesini dinleyen İngilizler, bu bilgi ile uzun süre Almanların ne yapacaklarını erkenden öğrenip ona göre taktik hazırlama şansına sahip olmuşlardır.

Enigma makinesi temel olarak; klavyesinden girilen karakterlerin makine içerisinde birbiri ile değişik şekillerde algoritma oluşturacak şekillerde yazıları kodlayan üç adet diskten oluşmaktaydı. Enigma’daki diskler Almanlar tarafından önce 5’e ve daha sonra da 8’e çıkarılmıştır. Ancak büün bu tedbirler İngilizlerin ilk bilgisayarların atalarından olan, IBM bilgisayar sistemi ile kodları çözmesini engelleyemedi.
Enigma’nın şifresinin çözülmesi ile bilgisayarları yakınlaştıran bu süreç, sonraki zamanlarda bilgisayarların şifreleme işlemlerinde daha çok kullanılması ve günümüzde de vazgeçilmez bir parçası olma durumunu getirmiştir.
Günümüz bilgisayar destekli şifreleme teknikleri oldukça, yüksek bilgi gerektiren karmaşık güvenlik önlemleriyle yoğrulmuş teknikler içerir. Her biri bir öncekinden daha güvenli olduğunu iddia ederken, her geçen gün bir öncekinin nasıl şifresinin nasıl kırıldığına şahit olmaktayız. Dolayısıyla öğrendiğimiz temel yöntem teorik olarak hiçbir şifreleme yönteminin kırılamaz olmadığı ve sonlu bir süre sonunda şifresinin çözüleceğidir. Belki 1 ay belki 1000 ay sonra ama mutlaka tüm şifrelerin çözülebileceği unutulmaması daima tavsiye olunmakta.

Bu yazıda bu şifreleme yöntemlerinden biz kullanıcılar için en etkili kullanılacak alan olan evimizdeki, işyerimizdeki dosya ve klasörlerimizin şifrelenerek korunmasıyla ilgili yazılımlardır. Her birimizin basit ve kullanışlı bir teknikle, şüpheli gözlerden saklanmasını isteyeceğimiz dokümanlar bulunabilir. Örneğin işyerindeki bir satış raporu, veya sevgilimize yazdığımız bir şiirin, bilgisayarımızı kullanan diğer kişilerce görünmesini istememek en doğal hakkımız!

Yalnız dikkat edilmesi gereken en temel nokta, hangi programı kullanırsak kullanalım, şifrelemekte kullandığımız bir parola mutlaka olacaktır. Bu parolayı asla unutmamalı ve başkalarının görebileceği ortalık bir yerde bulundurmamalıyız. Yoksa bütün bu karmaşık matematiksel formüllere dayanan şifreleme mantığının temelinde yatan “insan” faktörü devreye girer ve şifremiz çözülür!

Klasik Şifreleme Teknikleri

Tarih içerisinde değişik teknikler kullanılarak şifreli mesajlar iletilmeye çalışılmıştır. Bir dönem uygulanan kölelerin kafasına kazılan yazılarla mesajlaşma haricinde, şu teknikler de kullanılmaktaydı;
Harf İşaretleme: Bir yazı içerisindeki bazı karakterlerin daha derin kazılmasıyla ancak belli bir açıdan gelecek ışıkla okunan yazılar.
Görünmez Mürekkep: Belirli bir ısıda veya kimyasal bir sıvıya batırılarak okunur hale gelen yazılar.
İğne Delikleri: Yazıdaki belirli karakterler iğne ile delinerek işaretlenmesi temeline dayanıyordu.
Sezar Tekniği: Bilinen en eski “yerine koyma“ tekniğidir. Her harf alfabedeki kendinden üç sonraki harfin yerine konularak yazışmalar yapılmaktaydı.
1-Vigenere ve 2- Autokey şifreleme örnek tablo;
________________

Hiç yorum yok:

Yorum Gönder