Öyle anla¸sılıyor ki alfabedeki sırayı ezberlemek gerekecek.
Bu sırayı bildi˘ginizi sanıyordum, ama bilgisayar çocukları ola-rak unutmu¸s olabilirsiniz. Ancak ilerde sayılarla çalı¸saca˘gımız için unuttuysanız da zararı yok.
Kaydırma ¸sifresinin kırılması kolaydır. Türkçe alfabede 29 harf ol-du˘gu için toplam 28 deneme ile harflerin kaç adım kadar kaydırıldı˘gı bulunabilir.
Kaydırma ¸sifrelemesi do˘grusal (afin) ¸sifrelemenin özel bir ha-lidir. ¸Simdi do˘grusal ¸sifreleme konusunu ele alalım.
Do ˘grusal ¸Sifreleme
a ve b tamsayılar, n ise birden büyük bir do˘gal sayı olsun. Do˘grusal ¸sifreleme
¸s(x) = a x + b (mod n) formülü ile verilir.
ave b sayıları negatif de olabilir mi? ¸Sifreleme nasıl yapılır?
Evet olabilir. Örne˘gin,
¸s1(x) = 3x + 5 (mod 29) ¸s2(x) = 5x − 4 (mod 26) do˘grusal ¸sifrelemelerdir. 10 sayısını ¸s1ile ¸sifreledi˘ginizde
¸s1(10) ≡ 3 · 10 + 5 ≡ 35
≡ 6 (mod 29), ¸s2 ile ¸sifreledi˘ginizde
¸s2(10) ≡ 5 · 10 − 4 ≡ 46
≡ 20 (mod 26)
çıkar. Artık, 6 sayısı 10’un ¸s1fonksiyonu ile ¸sifrelenmi¸s hali, 20 sayısı ise 10’un ¸s2 fonksiyonu ile ¸sifrelenmi¸s halidir.
Peki hocam, mod n ifadesinde n herhangi bir do˘gal sayı ola-bilir mi?
Do˘grusal ¸sifrelemede n sayısı a ile aralarında asal olan her-hangi bir do˘gal sayı olabilir. Ço˘gu zaman n asal sayı olarak alınır.
E˘ger bir metni ¸sifreliyorsanız metnin yazıldı˘gı alfabeye göre (Türkçe, ˙Ingilizce vs.) ve metnin bölündü˘gü bloklara göre n sayısı seçilmektedir. Ancak yine de a sayısı ile aralarında asallık ko¸sulunun sa˘glanması ge-rekmektedir.
a ile n’nin aralarında asal olması, yani ebob(a, n) = 1 olması neden önemlidir?
Bu ko¸sul ¸sifrelenmi¸s sayının de¸sifre edilmesinde önemlidir, a· x ≡ 1 (mod n) denkleminin x çözümünün olması için gereklidir.
¸
Simdi do˘grusal ¸sifrelemeye dönelim: ¸s(x) = a x + b (mod n).
xsayısı uzunlu˘gu n olan bir alfabenin harflerini temsil etti˘gi için burada x ∈ {0, 1, . . . , n − 1} olmalıdır. a ve b sayılarından yukarıda bahsettik. ¸
Simdi n’ye gelelim. Do˘grusal ¸sifrelemeyi kullanıp x sayısının kolayca ¸sif-relenebilece˘gini gördük. Ancak de¸sifre i¸slemi için ebob(a, n) = 1 ko¸sulu gereklidir. Bu da a x≡ 1 (mod n) denklemiyle ba˘glantılıdır.
a x ≡ 1 (mod n) denklemi ¸sifrelemede çok önemlidir. Burada a tamsayı, n do˘gal sayı, x ise bilinmeyen bir tamsayıdır. a ve n verildi-˘
ginde öyle x tamsayısı arıyoruz ki a x sayısını n’ye böldü˘gümüzde kalan 1 olmalıdır.
Örne˘gin
3x≡ 1 (mod 26) denklemini çözelim.
Bu denklemin bir çözümünün x = 9 oldu˘gu açıktır. Çünkü 3· 9 = 27 ve 27’nin 26’ya bölünmesinden kalan 1’dir.
Do˘grusal ¸Sifreleme 163
Evet. Modüler aritmetik ünitesinden hatırlayaca˘gınız gibi, bu tür denkliklerin sonsuz çözümleri olabiliyordu. Örne˘gin bu denklikte x = 9, x = 35, x = 61, . . . gibi sonsuz tane çözüm vardır. Bu çözümlerin hepsi mod 26’ya göre denktirler. Yani
9≡ 35 ≡ 61 ≡ · · · (mod 26).
Bu sayıların hepsinin 3 katının 26’ya bölümünden kalan 1’dir. ¸
Simdi hangisini alaca˘gız?
¸
Sifreleme açısından en küçük pozitif olanını alaca˘gız.
Denkleme bakarak çözüm var ya da yok diyebilir miyiz?
Evet diyebiliriz. a x ≡ 1 (mod n) denkleminin x çözümü ancak ebob(a, n) = 1 iken vardır, yani a ve n aralarında asal olmalıdır (a ve n’nin 1’den büyük ortak böleni olmaması gerekiyor).
3x ≡ 1 (mod 26) denkleminde 3 ve 26 aralarında asaldır. 2x≡ 1 (mod 26) denkleminde 2 ile 26 aralarında asal de˘gil (2 bu sayıların ortak bölenidir), buna göre denklemin çözümü yoktur.
8x ≡ 1 (mod 15)’in çözümü vardır, çünkü ebob(8, 15) = 1’dir (Bu durumda örne˘gin x = 2 bir çözümdür, çünkü 8· 2 = 16 ≡ 1 (mod 15)’tir). Ancak
9x≡ 1 (mod 30)
denkleminin çözümü yoktur, çünkü ebob(9, 30) = 3= 1’dir.
a x ≡ 1 (mod n) denklemi-nin x çözümünün olması için ebob(a, n) = 1 olmalıdır. Diyelim ki ebob(a, n) = 1’dir. x çözümlerini nasıl bulaca˘gız?
nbüyük sayı oldu˘gunda x’in bulunması için geni¸sletilmi¸s Ök-lid algoritması denilen bir algoritma vardır. Ancak biz küçük nsayılarıyla ilgilenece˘gimiz için deneme-yanılmayla x’i kolayca bulabi-lece˘giz.
Bu a x≡ 1 (mod n) denkleminin ¸sifrelemeyle ne alakası var? x→ ¸s(x) ≡ y (mod n) d( y) ≡ c( y − b) ≡ c(ax + b − b) ≡ cax ≡ 1 · x ≡ x (mod n) y→ d( y) ≡ x (mod n)
Çok alakası var. a x ≡ 1 (mod n) denklemini sa˘glayan x sayısına a’nın n moduna göre tersi denir. Bu sayıya c diyelim, yani a· c ≡ 1 (mod n). Birçok yöntemde de¸sifre i¸slemi için bir sayının belli bir mod’a göre tersinin alınması i¸slemi kullanılmaktadır. Örne˘gin, yukarıda tanımladı˘gımız
¸s(x) = a x + b (mod n) do˘grusal ¸sifreleme için
d( y) = c( y− b) (mod n)
de¸sifre fonksiyonudur, yani gönderilecek sayı ¸s(x) fonksiyonu yardı-mıyla ¸sifrelenip, d( y)’nin yardıyardı-mıyla de¸sifre edilir.
Hocam, birkaç örnek yapsak. . .
Örne˘gin, ¸sifreleme fonksiyonu
¸s(x) = 3x + 10 (mod 29)
olarak verilsin. 25 sayısını ¸sifreleyip göndermek istiyoruz. ¸s(25) = 3· 25 + 10 (mod 29) 3· 25 + 10 = 85 olup 85 ≡ 27 (mod 29) oldu˘gundan, demek ki
¸s(25) = 27 (mod 29)
olur (85’in 29’a bölümünden kalan 27’dir). 27 sayısı 25’in ¸sifrelenmi¸s halidir ve alıcıya gönderilir. Alıcı 27’yi de¸sifre etmek için önce
3x≡ 1 (mod 29)
denklemini çözüyor, yani öyle bir x sayısı arıyor ki 3x’in 29’a bölümün-den kalan 1 olsun. Bu bölümün-denkli˘gi sa˘glayan en küçük pozitif sayının x = 10 oldu˘gunu bulup de¸sifre için
d( y) =10· ( y − 10) (mod 29) fonksiyonunu kullanıyor. Böylece
d(27) = 10· (27 − 10) ≡ 170 ≡ 25 (mod 29) bulunuyor ve bizim gönderdi˘gimiz sayıyı elde etmi¸s oluyor.
Do˘grusal ¸Sifreleme 165
Ancak gönderici ve alıcının hangi ¸s(x) fonksiyonunun kullanı-laca˘gını önceden kararla¸stırmaları gerekiyor.
Evet haklısınız. Ba¸ska bir örnek yapalım. ¸Sifreleme fonksi-yonu
¸s(x) = (8x− 5) (mod 27)
olsun. Zeynep, bu kurala göre x = 11 sayısını ¸sifreleyebilir misin?
¸s(11) ≡ 8 · 11 − 5 ≡ 83
≡ 2 (mod 27)
Demek ki 11 sayısının bu kurala göre ¸sifrelenmi¸si 2 sayısıdır.
¸
Simdi de bu 2 sayısını de¸sifre edelim.
Bari de¸sifreyi de ben yapayım. Hep Zeynep yapıyor. Önce
8x ≡ 1 (mod 27) denklemini çözmem gerekiyor.
ebob(8, 27) = 1 oldu˘gu, yani 8 ile 27 aralarında asal oldukları için, 8x≡ 1 (mod 27) denkleminin çözümü vardır. Ama bunu bulmak biraz zor olacak. Ben ¸simdi ne yapayım?
O kadar da zor de˘gil Gökçe. Aradı˘gın sayının 8 katının 1 ek-si˘gi 27’nin bir katı olacak. Yani aradı˘gın sayının 8 katı, 27’nin bir katından 1 fazla olacak. Örne˘gin 28 olabilir, ya da 2· 27 + 1 = 55, veya 3· 27 + 1 = 82 gibi.
Galiba ¸simdi anlıyorum. Aradı˘gım sayının 8 katı, 28 veya 55 ya da 82 gibi bir sayı. Ama bunlar 8’e bölünmüyor. Biraz daha
ilerleyelim. 4· 27 + 1 = 109, ama o da 8’e bölünmüyor. 5 · 27 + 1 = 136, galiba ¸simdi oldu. 136 sayısı 8’e bölünüyor.
8x = 136 ⇒ x = 17. O zaman de¸sifre fonksiyonunun ifadesini hatırlarsak,
olacaktır.
Bize ¸sifre olarak verilen 2 sayısını de¸sifre fonksiyonunda yerine ya-zarsak
d(2) ≡ 17 · (2 + 5) ≡ 17 · 7 ≡ 119
≡ 11 (mod 27)
(119’un 27’ye bölümünden kalan 11 oldu˘gu için) elde edilir. Böylece ¸sifrelenen 11 sayısını geri kazanmı¸s oluruz.
Arkada¸slar, yukarıda ö˘grendi˘gimiz ¸sifreleme yöntemlerinde gönderici ve alıcı ya aynı anahtarları kullanmı¸stı, ya da alıcı-nın anahtarı göndericinin anahtarlarından kolayca elde ediliyordu. Bu çe¸sit ¸sifreleme yöntemlerine simetrik yöntemler denir. Simetrik ¸sifrele-mede bu anahtarlar gizli kalmalıdır ve gönderici ile alıcının gizli anahtar konusunda anla¸smaları gerekir.
Simetrik ¸sifrelemenin bir di˘ger özelli˘gi ise çok hızlı olmasıdır. Ancak afin ¸sifreleme gizli anahtarlı ¸sifreleme olsa da kolay kırılabilen bir ¸sifrelemedir. ¸Simdi gizli anahtarlı ve zor kırılabilen bir ¸sifrelemeyi ö˘grenece˘giz.