Şifreleme Cryptography Giriş Şifrelemenin temel konusu, temel olarak, iki kişinin güvenli olmayan bir kanal üzerinden üçüncü bir kişinin konuşulan metni anlamasına imkan vermeyecek şekilde haberleşmesini sağlayacak mekanizmaları içermektedir. Bu kanal bir telefon kanalı yada bilgisayar ağı olabilir. Konuşan kişilerin birbirlerine gönderdikleri metin genel olarak ham metin (plaintext) olarak adlandırılır ve bu bilgi, sayısal, Türkçe, İngilizce gibi herhangi bir içerikte olabilir. Yani kısaca ham metnin yapısı tamamen gelişi güzeldir. Haberleşen kişilerden ilki göndereceği veriyi, daha önceden belirlenmiş bir anahtar ile şifreler (şifreli metin-ciphertext) ve kanal üzerinden diğerine yollar. Kanalı gözleyebilen bir üçüncü kişi şifrelenmiş bu metni görebilecek ancak ne olduğunu anlamayacaktır. Oysa kanal sonundaki asıl alıcı, ham metnin hangi anahtar ile şifrelendiğini bildiğinden, ters bir algoritma ile şifreli metinden ham metni elde edebilir. Tanım: Bir şifreleme sistemi aşağıdaki şartları sağlayan (P,C,K,E,D) beşlisinden oluşur. - P, mümkün olabilecek ham metin kümesidir. - C, mümkün olabilecek şifreli metin kümesidir. - K, kullanılabilecek anahtar kümesidir. - Her k Є K için, e k Є E yı sağlayan bir şifreleme kuralı ve d k Є D yi sağlayan bir şifre çözüm (decryption) kuralı vardır. Her x Є P için d k (e k (x)) = x eşitliğini sağlayan şifreleme ve şifre çözme fonksiyonları mevcuttur. Ali ve Veli güvensiz kanal üzerinden güvenli bir şekilde haberleşmek isteyen iki kişi iseler, aşağıdkai protokol ü yürüterek bu haberleşmeyi sağlarlar. Mehmet Ali Sifreleyici Sifre Cozucu x y x Veli K Guvenli Kanal Anahtar Kaynagi
İlk olarak Ali ve Veli k Є K olan rastgele bir anahtar seçerler. Bu, Ali ve Velinin sadece birbirleriyle oldukları bir ortamda seçilirki, Mehmet in bu anahtarı öğrenme şansı olmasın. Ali, Veliye bir mesaj göndereceği zaman bu anahtarı kullanarak metni şifreler. Metnin x = x 1 x 2 x 3...x n olan bir katar dizisi olduğunu düşünelim. Şifrelenmiş metin (ciphertext) y ise y = y 1 y 2 y 3...y n olacaktır. y i = e k (x i ) 1 i n. Açık olarak görülmektedirki he şifreleme fonksiyonu e k birebir fonksiyon olma özelliğini taşımalıdır. (injective-one to one). Yani kesinlikle y = e k (x 1 ) = e k (x 2 ) olabilecek bir durum meydana gelirse (x 1 x 2 ), Velinin y yi x 1 emi yoksa x 2 yemi dönüştüreceğini bilmesi olanaksızdır. Kaydırmalı Şifreleme (Shift Cipher) Bu bölümde basit şifreleme tekniklerinden olan ve modüler aritmetiğe dayalı bir şifreleme tekniğinden bahsedeceğiz. Tanım: ave b nin birer pozitif tamsayı olduğunu kabul edelim. Eğer m, b-a yı tam bölüyorsa a b (mod m) olarak yazılabilir. Bu yazılış biçimi, a, modül m ye göre a ya denktir diye okunur. a ve b yi m ye böldüğümüzü farzedelim. Açıktırki kalan, 0 ile m-1 arasında bir sayıdır. a = q 1 m+r 1 ve b = q 2 m+r 2 olarak yazılabilir. 0 r 1 m-1 ve 0 r 2 m-1. Buradan açıkca görülüyorki sadece ve sadece r 1 = r 2 ise a b (mod m) yazılabilir.a nın m ye bölünmesinden kalanı parantez kullanmadan a mod m olarak gösterelim (örneğin yukarıda r 1 ). Bu nedenle, sadece ve sadece a mod m = b mod m ise a b (mod m) yazılabilir. a yerine a mod m yazarsak a, mod m ye indirgenmiştir denir. Z m yi {0,1,...,m-1} setinden oluşmuş ve çarpma ve toplamayı içeren bir küme olarak düşünelim. Z m de çarpma ve toplama işlemleri aynen gerçek aritmetik toplama ve çarpma işlemlerinin mod m ye indirgenmiş halleridir. Örneğin 11x13 ü Z 16 da hesaplamaya çalışalım. 11x13 = 143. 143 ü mod 16 ya indirgemek için yapmamız gereken bilinen çarpma ve toplama işlemlerine göre 143 ü yazmaktır. 143 = 8x16+15. Böylece 143 mod 16 =15 ve Z 16 da 11x13 = 15 tir yazılabilir. Zm de toplama ve çarpma, kapalılık(closed),birleşme (associative),değişme (commutative) özelliklerine sahiptir. (Kanıtlamaya çalışınız) Ayrıca, toplama da 0, çarpmada 1 etkisiz elemandır. Kaydırmalı şifreleme aşağıdaki gibi tanımlanır. P = C = K = Z 26, 0 K 25 e k (x) = x + K mod 26 d k (y) = y K mod 26 (x,y Є Z 26 )
İngilizce alfabedeki karakter sayısı baz alınarak 26 sayısı oluşturulmuştur. Kaydırmalı şifreleme d k (e k (x)) = x eşitliğini her x için (burada 26 farklı karakter) sağlar. Alfabedeki her harf e 0 ile 25 arasında, A 0, B 1, C 2...Z 25 olacak şekilde bir sayı denk getirilir. Örnek: Anahtar olarak K = 11 olarak seçildiğini ve ham metnin aşağıdaki gibi olduğunu düşünelim. wewillmeetatmidnight İlk önce yapılması gereken, ham metindeki her karakteri yukarıda belirttiğimiz tamsayılara denkleştirmektir. 22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19 Bir sonraki adım, bu değerlere, mod 26 ya göre 11 eklemektir. 7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4 Son olarak, bu sayısal değerleri yine yukarıdaki denklikleri kullanarak harflere çevirirsek şifrelenmiş metin olarak: elde edlir. HPHTWWXPPELEXTOYTRSE Veli, kendisine gelen şifreli metni çözmek için, önce harfleri sayılara denkleştirir, sonra bu sayılardan 11 çıkarır (mod 11 e göre), son olarakta oluşan sayıları yine harflere denk getirerek ham metni elde eder. Görüldüğü gibi kaydırmalı şifrelemenin güvenli olduğu söylenemez. Çünkü en fazla 26 farklı anahtar olma ihtimali vardır ve herhangi biri bu anahtarları deneme yanılma ile ortalama 13 farklı anahtarı deneyerek şifrelenmiş metinden ham metni elde edebilir. Sağlamalı Şifreleme (Subsitution Cipher) Diğer bir şifreleme tekniği uzun yıllar kullanılan sağlamalı şifrelemedir. Bu teknikte C ve D setleri 26 harfli ingiliz alfabesi olarak alınır. Sağlamalı şifrelemede şifreleme ve şifre çözme işlemlerini alfabetik karakterlerin bir permütasyonu olarak düşünebiliriz. π rastgele bir permütasyon olsun. Buna göre sağlamalı şifreleme aşağıdaki şekilde formulize edilebilir.
P = C = K = Z 26, K 26 alfabetik karakterin bütün permütasyonunu içeren bir kümedir. K daki her π permütasyonu için aşağıdakiler yazılabilir. e π (x) = π(x) d π (y) = π -1 (y) π -1, π nin ters permütasyonudur. Anlaşılırlık açısından ham metni küçük, şifrelenmiş metni büyük harflerle gösterelim. π rastgele bir permütasyon olsun. Buna göre sağlamalı bir şifreleme aşağıdaki şekilde öreneklendirilebilir. a b c d e f g h i j k l M X N Y A H P O G Z Q W B T n o p q r s t u v w x y z S F L R C V M U E K J D I Yani e π (a) = X, e π (b) = N,... Şifre çözme fonksiyonu yukarıdaki permütasyonun tersidir. Yani şifre çözme fonksiyonu aşağıdaki tablodaki gibi gösterilebilir. A B C D E F G H I J K L M d l r y v o h e z x w p t N O P Q R S T U V W X Y Z b g f j q n m u s k a c i Yani d π (A) = d, d π (B) = l,... Ham metni toplantibuguniptal olarak alırsak ve anahtar olarak yukarıdaki permütasyonu kullanırsak şifreli metin MFLBXSMZNUOUSZLMXB olacaktır. Görüldüğü gibi sağlamalı şifrelemede anahtar bir permütasyondur.bütün permütasyonların sayısı 26! dir ki bu sayı 4x10 6 dan daha büyük bir sayıdır. Dolayısı ile deneme yanılma ile bu anahtarı bulmak etkin bir yöntem değildir.ancak sağlamalı şifrelemede anahtarı çok daha etkin yöntemlerle bulmak mümkündür.
Çok Katarlı Şifreleme (The Vigenere Cipher) Hem kaydırmalı hemde sağlamalı şifrelemede anahtar bir kez seçildikten sonra her alfanumerik karakter yalnız ve yalnız bir alfanumerik karaktere dönüştürülür. Bu yüzden bu tip şifreleme yöntemleri monoalphabetic olarak adlandırılırlar. Bu yöntemde de yine daha önce bahsedilen A 0, B 1, C 2...Z 25 denkleştirmeleri kullanılır. Her K anahtarı, keyword olarak isimlendirilen m uzunluğundaki alfabetik karakter ile eşleştirilir. Bu şifreleme aynı anda m uzunluğunda karakteri şifreler. Aşağıda buna bir örnek verilmiştir. m=6 olsun ve keyword ise CIPHER olarak seçilsin. Buna göre K = (2,8,15,7,4,17) olacaktır. Ham metni de thiscryptosystemisnotsecure. Bundan sonra yapılması gereken, ham metni 6 uzunlukta katarlar halinde yazmak, sonra her katarı 6 uzunluklu K ile mod 26 ya göre toplamaktır. 19 7 8 18 2 17 24 15 19 14 18 24 2 8 15 7 4 17 2 8 15 7 4 17 21 15 23 25 6 8 0 23 8 21 22 15 18 19 4 12 8 18 13 14 19 18 4 2 2 8 15 7 4 17 2 8 15 7 4 17 20 1 19 19 12 9 15 22 8 25 8 19 20 17 4 2 8 15 22 25 19 şifreli metin VPXZGIAXIVWPUBTTMJPWIZITWZT olarak bulunur. Çok katarlı şifrelemede m uzunluğundaki keyword lerin sayısı 26 m dir. Örneğin m nin 5 seçilmesi halinde anahtar uzayı 1.1x10 7 den büyük bir alanı kaplayacaktır. Bilgisayar için olmasa da elle bu anahtarı deneme yanılma ile bulmaya çalışmak oldukça uzun bir süre gerektirir. Bu tip şifreleme teknikleri polyalphabetic olarak isimlendirilebilir. Permütasyon Şifreleme (The Permutation Cipher) Daha önce anlatılan şifreleme tekniklerinde ham metin anlaşılması mümkün olmayan yeni alfabetik karakterle ile yer değiştiriyordu. Permütasyon şifrelemede ham metin değiştirilmez bunun yerine karakterlerin katar içindeki sırası değiştirilir. Burada da yine alfabetik karakterler kullanılır ve mod 26 ya göre işlemler yapılır.aşağıda permütasyon şifrelemenin formülize edilmiş şekli verilmiştir.
m, pozitif tam sayı. P = C = K = (Z 26 ) m K, {1,2,...m} nin bütün permütasyonlarını içeren küme. π anahtarı için (gelişigüzel seçilen bir permütasyon) e π (x 1,...x m ) = (x π(1), x π(2),... x π(m) ) d π (y 1,...y m ) = (y π -1 (1), y π -1 (2),... y π -1 (m) ) π -1, π nin ters permütasyonudur. Örnek. M = 6 seçilsin. π olarak aşağıdaki permütasyon seçilsin. π -1 aşağdaki gibi olur. 1 2 3 4 5 6 3 5 1 6 4 2 1 2 3 4 5 6 3 6 1 5 2 4 Ham metin olarak shesellsseashellsbytheseashore in verildiğini kabul edelim. Ham metin öncelikle altılık gruplara ayrılır. sesel lsseas hellsb ythese ashore Her grup verilen π permütasyonuna göre yeniden düzenlenir. EESLSH SALSES LSHBLE HSYEET HRAEOS Böylece şifreli metin EESLSHSALSESLSHBLEHSYEETHRAEOS Olarak bulunur. Şifre çözme işlemi için π -1 permütasyonu kullanılır.
Otoanahtar Şifreleme (Autokey Cipher) Bir diğer şifreleme metodu anahtar ın ham metinden elde edildiği yöntemdir. P = C = K = Z 26. z 1 =k ve z i = x i-1 (i 2) e k (x) = x + z mod 26 d k (y) = y z mod 26 (x,y Є Z 26 ) k = 8 ve ham metin de rendezvous olarak seçilsin. Ham metni pozitif tam sayılara dönüştürürsek, 17 4 13 3 4 25 21 14 20 18 elde edilir.anahtar katarı da 8 17 4 13 3 4 25 21 14 20 olarak elde edilir. Şimdi mod 26 ya göre ekleme yaparsak 25 21 17 16 7 3 20 9 8 12 olarak elde edilirki şifreli metin de ZVRQHDUJIM olarak elde edilir. Şifre çözme işlemi için ise sırasıyla şu işlemler yapılır. Önclikle şifrelenmiş metin pozitif tamsayılara çevrilir. 25 21 17 16 7 3 20 9 8 12 Daha sonra x i ler hesaplanır. x 1 = d 8 (25) = 25-8 mod 26 = 17 x 2 = d 17 (21) = 21-17 mod 26 = 4,... Böylelikle her seferinde ham metnin karakterleri elde edilir. Görüldüğü gibi bu şifreleme tekniğinde sadece 26 farklı anahtar olabileceğinden güvensizdir. Suat Uğurlu, suat@suatugurlu.com 2002