20 Ekim 2012 Cumartesi

Kriptografi

En basit tanımıyla kriptografi, mesajın harflerin değiştirilmesi ile içeriğinin gizlenmesi işlemidir. Harflerin yer değiştirmesinde kullanılan şablona (örneğin a=k, b=l, c=m, d=n, vb.) anahtar, ve anahtarın kullanılmasıyla elde edilen okunamayan, anlaşılması zor metine “ciphertext” denilmektedir. Numaralarda harfler gibi yerine koyulan karakterler olarak kullanılabilmektedir.

Numaraların karıştırılması için kullanılan matematiksel  işlemler dizisine “encryption”  algoritması denilmektedir. Basit bir algoritmaya örnek olarak her sayının kendisinin solundaki  sayının kare kökü ile çarpılmasını uygulayan algoritmayı gösterebiliriz. Çocuklar arasında kullanılan basit bir “encryption” algoritması olarak “Kuş dili” gösterilebilir. Bu algoritmada kelimenin uygun yerine -ga  eki getirilerek yeni kelimeler oluşturulmaktadır.(Örnek:oynamak=ogoynagamak, çalışmak=çagalıgışmak). “Endüstriyel-Güçlü” algoritmalar elbette kriptoanaliz kullanarak çözmenin çok fazla vakit alacağı karmaşıklıktadır. 
Anahtarı kullanarak düzmetini “encrypt” ederiz, “ciphertext” i düzmetine çevirmenin en kolay yolu anahtarı kullanarak yaptığımız işlemlerin tersini “ciphertext” e uygulamaktır. Anahtar yok ise anahtarın bulunması ve kodun kırılması bayağı zor olacaktır ve kriptoanaliz teknikleri kullanılmasını gerektirecektir.

İnsanlar kelimeleri yazmaya başlar başlamaz, bu kelimeleri meraklı gözlerden saklamaya da başladılar. Kriptotarihçi David Kahn antik Mısır’da 4000 yıllık tarihe sahip gizli hiyeroglifleri incelemiştir. Çağlar boyunca icat edilen sayısız kripto sistemler genellikle mürekkep ve kalem tasarımı olmuştur, genellikle zekice olan bu sistemler “kırılamaz” payesini nadir olarak alabilmişlerdir. Karmaşıklıkları sadece kalem ve kağıt kullanarak uygulanacak algoritma için gereken zaman ile kısıtlıydı. 

En ilginç erken kripto sistemlerden biri M. Ö. 400 yıllarında Spartalılar tarafından geliştirilmiş olan “scytale” denilen sistemdir. Bu sistemde bir mesajı “encrypt” etmek için uzun bir parşömen yada papirüs silindirik bir sopa etrafına sarılıyordu. Gizlenecek mesajın kelimeleri uzunlamasına sopa üzerine, her bir şerit turunda 1 harf gelecek şekilde yazılıyordu. Daha sonra  şerit açılır ve kaldırılırdı böylece anlamsız harflerin oluşturduğu metin ortaya çıkardı. Mesajın “decrypt” edilebilmesi için gereken kritik şart “encrypt” işleminde kullanılan silindirle  aynı çapa  sahip silindir kullanılması şartıydı. Farklı çaptaki silindirler anlamsız metinlerin ortaya çıkmasına sebep oluyordu.

Bu alanda 20. yüzyıla kadar ciddi bir ilerleme olmadı. 20. yüzyılda askeri olarak yaşanan gelişmeler genellikle güvenli olmayan telefon ve radyo hatlarının kullanımını gerektirdiğinden güçlü kripto sistemler, kod üretimi ve kırma teknolojilerinde yoğun yatırımlar ortaya çıktı. 

Çağın ilk zamanlarında otomatik olarak “encrypt” ve “decrypt” işlemini yapan mekanik makineler ortaya çıktı, ayrıca bunlar yüksek askeri daireler dışında bilinmez olarak kaldı. Bu makineler daha uzun, daha güvenli anahtarlar ve daha karmaşık algoritmalara olanak sağladı. Böylece daha uzun, daha karmaşık mesajların göreceli olarak daha yüksek dereceli “surity”  ile kolayca kırılamayan “encryption” ve “decryption” edilebilmesine olanak  sağladı. 

İttifak devletlerinin ünlü Alman “Enigma” ve Japonların “Purple” kodlarını kırmaları  -bu iki olay elektro mekanik “encryption/decryption” makinelerinin kullanılmasına bağlıdır- II. Dünya Savaşının sonucunu belirleyen faktörler olarak görülür. 

Nasıl mekanik “encryption” kriptografi alanında dev bir adım ise, savaştan sonra bilgisayarın keşfi ve geliştirilmesi de kriptografiyi tamamen yeni bir boyuta sürükleyen bir adımdı. Böylece anahtarlar daha uzun, “cipher”lerde daha karmaşık olabildi. Anahtar  Yönetimi olarak bilinen anahtar seçimi, dağıtımı ve kurulumu böylece tamamen otomatikleşti.

Bunlar güvenliğin gelişmesi ve kullanımının artmasına sebep oldu. Ayrıca önceden ordunun elinde hep gizli kalan kriptografi gizliliğini yitirdi. Bu ayrıca, istenmeyen antikriptografik, kırıcı faaliyetlerin artmasına sebep oldu.

Kağıt, Kalem Sistemleri
Bir metini meraklı gözlerden saklamak için yapılan ve en fazla bilinen yöntem olarak bir metini alıp bu metindeki her harfi farklı bir karakterle yer değiştirerek yaptığımız yöntemi  örnek olarak gösterebiliriz. Aşağıdaki örnekte bu yöntemin uygulanması daha iyi anlaşılacaktır:

ABCÇD EFG ĞHIİ JKL MNOÖP RSŞ TUÜ VYZ
----- --- ---- --- ----- --- --- ---
$7+Q@ ?)/ 2X3: !8J 9%6*& 15= (;4 {[\
yukarıdaki alfabe kullanıldığı zaman;
Bana biraz para gönder lütfen cümlesi
7$%$ 7:1$\ &$1$ /*%@?1 J4(?% 

şekline dönüşecektir. 

Bu yönteme yerine koyma (“substitution”) denilir ve geçmişi antik çağlara dayanır.  Kullanılabilecek diğer yöntem ise “transposition”(yerlerini değiştirme) denilen ve antik çağlarda da kullanılmış olan yöntemdir. Bu yöntemde harflerin başka karakterlerle betimlenmesi yerine mesajın içerisinde yerlerinin değiştirilmesi yönteminden yararlanılır ve böylece metindeki sıraları korunmaz. Fakat yazarken kullanılan yöntem bilinirse aynı yöntemle çözülebilir. Bu yönteme gösterilebilecek en iyi örnek Spartalıların “scytale”  yöntemi olacaktır.

Basit Yerine Koyma Yöntemi Kriptoanalizi
Aşağıda harflerin tutarlı bir şekilde başka harflerle değiştirilmesi sonucu elde edilmiş olan kısa bir mesaj örneği görülmektedir:

DRODUDCD EDJÖL EMU OŞCĞAU EZ EMU OAGAO YHTYRMR HYHJMĞH
HÖÖM ODĞDU HB EMU FDPM EMU  ĞMEHO EMU GHVPH EMU CZRDO EMU
GAUAO SOZÖ BH HÖÖM ODĞDU İAEUHÖMOYMU

21 Bu mesajı herhangi biri nasıl okuyabilir?
İşte bu soruya cevap verecek olan alan kriptoanaliz alanıdır. Ve bu soruyu aşağıda anlatıldığı şekilde çözecektir. 
İlk aşamada kullanılması gereken en önemli olgu Türkçe’de bazı harflerin(diğer tüm dillerde olduğu gibi) daha çok kullanılmasıdır. Türkçe’de en çok görülen harf A dır. Onu sırası ile E, İ, N ve R izlemektedir. 
Bu olguya göre ilk önce mesajdaki harflerin sayısını buluruz:

A  B   C   D    E   F   G   Ğ   H   İ   J   L   M    O    Ö   P   R   S   Ş   T   U    V  Y   Z
6   2    3   11  11   1   3    5   13  1   2   1   15   11   7    2    5   1   1    1   14   1   3    3

Bilgisayarda yazdığım bir programla Türkçe bir romanın içerdiği karakterlerin frekanslarını aşağıdaki şekilde buldum:

A:%11. 9624 B:% 2. 8141 C:% 1. 1079 Ç:% 1. 2112 D:% 5. 1645 E:% 8. 1245
 F:% 0. 3527 G:% 1. 5124  Ğ:% 1. 0603 H:% 1. 0989 I:% 5. 5219  İ:% 8. 0499
 J:% 0. 0107 K:% 4. 8574 L:% 5. 6274 M:% 3. 8047 N:% 7. 0825 O:% 2. 6755
Ö:% 0. 9093 P:% 0. 9786 R:% 6. 5908 S:% 2. 8852  Ş:% 1. 6305 T:% 2. 6681
 U:% 3. 9686 Ü:% 2. 1213 V:% 1. 1253 Y:% 3. 5586 Z:% 1. 5247 

Bu frekansları sıralayıp yazarsak:

A:%11. 96 I:% 5. 52 S:% 2. 88 Z:% 1. 52  Ğ:% 1. 06
E:% 8. 12 D:% 5. 16 B:% 2. 81 G:% 1. 51 P:% 0. 97
İ:% 8. 04 K:% 4. 85 O:% 2. 67 Ç:% 1. 21 Ö:% 0. 90
N:% 7. 08  U:% 3. 96 T:% 2. 66 V:% 1. 12 F:% 0. 35
R:% 6. 59 M:% 3. 80 Ü:% 2. 12 C:% 1. 10 J:% 0. 01
L:% 5. 62 Y:% 3. 55  Ş:% 1. 63 H:% 1. 09

Bu frekansla mesaj arasında bağlantı kurarsak:

15: M  6: A
14: U  5: Ğ, R
13: H  3: G, Y, Z, C
11: D, E, O 2: B, P, J
7  : Ö  1:F, İ, L, S, Ş, T, V

Bu aşamadan sonra frekanslarla bu değerleri eşitlemeye başlayabiliriz:
Cipher       : MUHÖA
----------------------
Düzmetin  :  AEİRL

Bu aşamadan sonra şifreli metinde bu değerleri yerine koyup tahminlemeler yapmaya  başlayabiliriz. Bu şekilde bulduğumuz bazı tahminler şifrelenmiş metini çözmemize yardımcı olacak ve hızlı bir şekilde sonuca gidebileceğiz. Bu şekilde çözmek bulmaca sayfalarında sık  rastlanan  şifreli bulmacalara benzemektedir. Orada harfler yerine sayılar kullanılıyor ve başlamak için bir kelime ile karşılığı olan sayı dizisi veriliyor. Bizim kullandığımız yöntemin zorluğu elimizde hiçbir kelimenin karşılığının olmamasıdır. 

“Transposition”(Yer Değiştirme) Yöntemleri
Yer değiştirme yöntemleri ile elde edilen şifrelemeler yerine koyma yöntemine göre daha zayıf şifreler oluşturur. Bu yöntemde daha kısa sürede metine ulaşma olasılığı daha yüksektir. Buna rağmen yer değiştirme metotları içlerinde güvenli olurlar ve bunları bilmek faydalıdır. Daha sonra bu yöntemlerle yerine koyma yöntemlerinin karışımı yöntemlerle güvenilirliği yüksek şifreleme yöntemleri geliştirilebilir. 

En iyi bilinen yer değiştirme yöntemi aşağıdaki  şekilde çalışan tek kolonsal yer değiştirmedir:
Bir anahtar kelime kullanarak (örnekte PAYLAŞIM) bu anahtardaki her harfe 1 ile başlayan, alfabetik sıralarına göre atanan ve aynı harflere sıralı numara vererek numara atanır. Daha sonra mesaj anahtarın altına her harfin altına bir harf gelecek şekilde yazılır.
Daha sonra harflerin numara sırasına göre kolonlar alınıp yan yana yazılır;

P  A  Y  L  A  Ş I  M
6  1  8  4  2  7  3  5
----  ----  ---- ---- ---- ---- ---- ----
B  U  R  A  D  A  G  İ
Z  L  İ B  İ R  M  E
S  A  J  B  U  L  U  N
U  Y  O  R

Bu tablo aşağıdaki gizli metini oluşturur:

ULAY DİU GMU ABBR İEN BZSU ARL RİJO

Elbette bu şekilde kolonları belirten boşluklarla metini yazmak akıllıca değildir. 
Kolon sayısı bilinse bile bu şekilde yazılmış bir mesajı çözmek bayağı zordur.  İlk yapılması gereken metinin içerdiği harf sayısına bakmak ve her kolonun içerdiği kelime sayısını bulmak olmalıdır. Bu örnekte 28 harf vardır. 8 kolon için ilk 4 kolonun 4 harf, diğer 4 kolonun ise 3 harf içerdiği anlaşılır. Bu  şekilde yazarken nerede duracağımızı biliriz. Ve okumak için soldan sağa gidebiliriz. 

Bu şekilde yer değiştirilen metin neredeyse eşit uzunlukta düzenli bölümlere ayrıldığı için çift kolonsal yer değiştirme bile “multiple anagramming” e gerek kalmadan kırılabilir.“Multiple Anagramming”:aynı uzunlukta, aynı anahtarla  şifrelenmiş çok sayıda mesaj kullanarak yer değiştirmenin kırılması için mantıklı harf çiftleri oluşturan kolonları eşleştirme yöntemidir. 

Diğer bir yer değiştirme yöntemi General Luigi Sacco’nun bir kitabında anlatılan ve kolonsal yer değiştirmenin bir çeşidi olan ve farklı bir  şifreli metin üreten aşağıdaki yöntemdir:

P  A  Y  L  A  Ş I  M
6  1  8  4  2  7  3  5
----  ----  ---- ---- ---- ---- ---- ----
B  U
R  A  D  A  G
İ Z  L  İ B  İ R
M  E  S  A
J  B  U  L  U  N  U  Y
O
R

Gizli metin:UAZEB GBU RU AİAL Y BRİMJOR İN DLSU

Bu yöntemde ilk satır 1 numaralı harfe kadar, 2. satır 2 numaralı harfe kadar, . . , n.
Satır n numaralı harfe kadar dolduruluyor ve harf sıralarına göre kolonlar yazılıp şifreli mesaj üretiliyor. 
Bu  şekilde kolonsal yer değiştirmenin sürekli farklı çeşitleri üretilip kullanılıyor, böylece sürekli aynı şifrelemenin kullanılmasıyla oluşacak çözme süresinin kısalığının önüne geçiliyor.

Hiç yorum yok:

Yorum Gönder