Bir üniversite öğrencisi olarak ilk karşılaştığımda soyut matematiğin matematikçilere eşsiz gelen problemleri bana oldukça anlamsız görünmüştü. Bir mühendislik öğrencisi sayısının değerine hemen her derste ihtiyaç duyar, ama sayısının aşkın(1) olup olmadığını umursamaz. Ya da bir elementin atom numarasının asal bir sayı olması pek bir şey ifade etmez. Zaten 19. yüzyıl (ve 20. yüzyılın ilk yarısı) matematikçileri için soyut matematik, yalnızca matematik için matematik yapmanın bir yoluydu ve kimse matematik dışı alanlarda uygulama alanı bulacağını düşünmüyordu(2). 20. yüzyıl ortasında elektronik bilgisayarın bulunması ve bilgi saklama ihtiyacı bu durumu kökten değiştirdi . Kriptoloji ile birlikte soyut matematik, gündelik ve somut hayatımızın ayrılmaz bir parçası oldu.

Asal Sayılar Bir Mühendisin Ne İşine Yarar?

Lisede ve üniversite giriş sınavında hesap makinesi yasak olduğundan testlerde verilen sayılar özel seçilir. Genellikle bu sayılar ya çok büyük değildir ya da soru içinde öğrenciden fark etmesi beklenen bir çok sadeleştirme vardır. Bu, hesap makinesi olmayan öğrencilerin hesap yapmasını kolaylaştırır. Tabi ki, bir programcı olarak kredi kartı numaralarını ele geçirmek isteyen birine bu kadar nazik davranmak istemem. Tersine bu kişinin işini olabildiğince zorlaştırmak isterim. Öyleyse test hazırlayanların tam tersi bir strateji izlemeliyim. Seçtiğim sayılar (şifrenin kendisi veya çoğu zaman şifreyi işleyen algoritmanın kullandığı tam sayılar) olabildiğince büyük ve sadeleşmeyen sayılar olmalı. Tutulan sayıların büyük seçilmesinin şifre güvenliğini arttırdığı genellikle bilinir. 128-bitlik(3) bir şifre 64-bitlik olandan daha iyidir. Ama eğer sayının sadeleşmemesini istiyorsam kendinden ve birden başka hiçbir sayıya bölünmeyen sayıları yani asal sayıları tercih etmeliyim. Bu durum sadece bölme işlemi değil yine bölmeye bağlı bir işlem olan mod(4) alma işlemi içinde geçerlidir (mod alma işlemi şifreleme algoritmalarında 128-bitlik sayının 128-bit kalmasını sağladığı için sürekli kullanılırlar.).

SADECE ASAL SAYILAR MI? MATEMATİĞİN ZORLU YOLLARI VE KRİPTOLOJİ

Bütün şifreleme algoritmaları temelde şifrelenecek verinin şifre anahtarı ile matematiksel (toplama, çarpma gibi) bir işleme sokulmasıdır. Örneğin küçük harfler, boşluk, nokta ve virgül’den oluşan bir alfabe belirleyelim (Toplamda 32 karakterimiz var).

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a b c ç d E f g ğ H ı i j k L m
, . z y V ü u t Ş s R p ö O N
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
N O Ö p r s Ş t u ü v y z . ,
M L K j i ı H ğ g f e d ç c b a

 

2. tablo alfabemizin tersten yazılmış şekli. Şifrelenecek verimiz ise “matematiğin zorlu yolları“, yukarıdaki tablodan her harf yerine o harfin altındaki harfi seçersek şifreli metne ulaşırız.

m a t E m a t İ ğ İ n Z O r l u y o l l a r ı
n , ğ V n , ğ R t R m C Ç L i o g c d l o o , i s

 

Şifreli metnimiz “n,ğvn,ğrtrmcçliogcdloo,is“. Alıcı eğer üsteki tabloya sahipse bu işlemi tersten yapacak ve orijinal metne ulaşacaktır. Ama, bu tür bir şifreleme de bazı sorunlarımız var.

1. g karakteri u ya gidiyor ama bunun tersi de doğru. Öyleyse g->u ilişkisini bulan şifre avcısı u->g ilişkisini de bulmuş oluyor ki bu işini oldukça kolaylaştırıyor.

2. Daha önemlisi orijinal metnin son harfini çıkarıp tekrar şifrelersen şifreli metnin son karakterinin çıkmış haline ulaşıyoruz.

“matematiğin zorlu yollar”->”n,ğvn,ğrtrmcçliogcdloo,i”

Bu sayede şifre çözücü tüm metnin şifresine onun parçalarında adım adım ulaşabilir. Oysa metnin her bir karakterinin şifreli metnin tüm karakterlerini etkilediği bir fonksiyon kullansaydım bunu yapamazdı.

Öyleyse, seçtiğim fonksiyon aşağıdaki özellikleri içermeli.

1. Olabildiğince simetri içermemeli.

2. Orijinal metnin her bir öğesi, şifreli metnin tamamını etkilemeli.

3. Fonksiyonun tersi, kendisinden çok daha zor olmalı (Bu şifrenin hızlı yaratılırken, şifre çözücünün işini  zorlaştıracaktır; Örneğin türev almak, integral almaktan çok daha zordur.).

AES (ADVANCED ENCRYPTION STANDARD) (5)

Matematik, bize yukarıdaki özellikleri gösteren bir çok fonksiyon sunar. Ama örnek olarak en yaygın kullanılanlardan biri olarak AES’i gösterebiliriz. AES kendi şifresini ve verinin AES şifresi kadarlık bir parçasını alır ve 4×4 iki matris yaratır. Bu iki matris’e aritmetik işlemleri uygularken bir yandan da iskambil kağıtlarının karıştırılmasına benzer (ama rastgele olmayan bir sistemle) sürekli karıştırır. Bu parça şifrelendikten sonra yine aynı uzunlukta bir veri parçası alır ve aynı işlemi yapar. Bu işlem veri bitene kadar devam eder. AES, Belçikalı Joen Daemen ve Vincent Rijmen tarafından Rijndael adıyla geliştirildi ve ABD’nin Ulusal Standart ve Teknoloji Enstitüsü (NIST) tarafından 2002 yılında benimsendi ve o günden bu yana yaygın olarak kullanılıyor.

DIFFIE HELLMAN ANAHTAR TAKASI(6) ve RSA(7) (RIVEST SHAMIR ADLEMAN) ALGORITMALARI

AES ve benzeri algoritmalar oldukça başarılı algoritmalar olmalarına karşın temel bir problemleri vardır. Hem alıcı hem gönderici aynı şifreyi bilmek zorundadır. Bu göndericinin alıcıya kısmen güvendiği durumlarda sorun çıkarır. Örneğin bağlanıp işlem yaptığınız banka size AES için kullandığı şifreyi veremez. Eğer bunu yaparsa sizin başka müşteri hesaplarına ulaşmanız söz konusudur. Bu sorun başka ve daha karmaşık bir algoritma grubu oluşturulmasına neden oldu. Asimetrik Anahtar Algoritması denilen bu yapıda iki şifre anahtarı var. Birinci anahtarla veriyi şifrelerseniz şifreyi ancak ikinci anahtar çözebiliyor. Eğer ikinci anahtarla şifrelerseniz ise şifreyi açmak için birinci anahtarı kullanmak zorundasınız.  Bu tip algoritmaların birinci tip kullanımı, örneğin banka ve müşteri her ikisi de tek kullanımlık bir şifre ikilisi oluşturup bunlardan birini karşıya gönderirler ve bunu AES şifresini göndermek için kullanırlar. Bağlantı kurulduktan sonra veri AES kullanılarak gönderilip alınır. Buna anahtar takası deniyor. Örnek olarak yaygın kullanılan Diffie-Hellman anahtar takasını inceleyelim.

Öncelikle iki asal sayıya ihtiyacımız var.  p=23, q=5 alalım ve Ayşe’nin Berk’e bir şifre yollamak istediğini düşünelim. Ayşe ve Berk her ikisi de bir gizli anahtar belirler (bunlara a, b diyelim) ama bu anahtarı aradaki birinin ele geçirebileceğini düşünüp birbirlerine göndermezler, ama p ve q’yu birbirlerine gönderirler. Bunun yanında p ve q’yu içeren bir matematiksel fonksiyon kullanarak açık anahtarlarını üretip birbirlerine gönderirler. Bu yeni anahtarı her iki tarafta p ve q’yu içeren başka bir fonksiyona sokar ve iki tarafta gizli bir şifre elde eder (Sa ve Sb diyelim). Ama Diffie-Hellman algoritması öyle bir matematik fonksiyon çifti seçer ki Sa ve Sb aynıdır ve bu şifre hiçbir zaman Ayşe ile Berk arasında birinden diğerine gönderilmediği için AES şifresi olarak kullanılabilir.

Ayşe’nin Bilgisayarı Hattı Dinleyen Şifre Çözücünün Görebildiği Berk’in Bilgisayarı
p = 23 (Ayşe belirledi ve gönderdi) p = 23 p = 23 (Berk aldı)
q = 5 (Ayşe belirledi ve gönderdi) q = 5 q = 5 (Berk aldı)
a = 6 (Ayşe’nin gizli şifresi) b = 15 (Berk’in gizli şifresi)
A = qa mod p = 56mod23=8(Ayşe’nin açık şifresi) B = qb mod p = 515mod23=19(Berk’in açık şifresi)
A=8 (Ayşe gönderir) A=8 A=8 (Berk alır)
B=19 (Ayşe alır) B=19 B=19 (Berk gönderir)
Sa = Ba mod p = 196mod23=2 Sb = Ab mod p = 815mod23=2

 

Sa=Sb ulaşılınca bu değer AES veya benzeri bir simetrik algoritmanın şifresi olarak kullanılır.  Algoritma Withfield Diffie ve Martin Hellman tarafından 1972 yılında bulundu. Hemen ardından çok benzer bir sistemi kullanan RSA algoritması Ron Rivest, Adi Shamir ve Leonard Adleman tarafından 1978 yılında öne sürüldü. Bu algoritma Diffie-Hellman’ın tersine başka bir algoritmanın şifre anahtarını takas etmiyor kendisi bir anahtar çifti ile (biri açık, biri gizli) veriyi şifreliyordu. Bunun yanında Diffie-Hellman’da sabit olan asal sayı çifti her veri parçası gönderiminde rastgele iki büyük asal sayı bulunarak tekrar oluşturuluyordu. Bu tür asimetrik şifreleme bugün bankacılık ve benzer ihtiyaçlarda yaygın olarak kullanılır.

SONUÇ

Matematiğin bazı alanları dışarıdan bakınca o kadar soyut görünür ki “Öğretmenim bunlar gerçek hayatta ne işimize yarayacak?” diye sormadan duramayız.  Açıkçası matematikçilerin çoğu buluşlarını günlük hayatta bir işe yarasın diye değil, onu yiyip bitiren doğaya dair bir merakını gidermek için yapar. Yine de gündelik hayatımız matematiğin en soyut ve en işe yaramaz formül ve kavramlarıyla tıkla basa dolu olduğunu fark edebiliriz. Kriptoloji bize bunun en ilginç örneklerinden birini veriyor.

(1, 2) Tony Crilly, Büyük Sorular / Matematik, Versus Yayınları, 2011 (Bölüm: “Matematiğin Atomları Neden Asal Sayılardır?”)

(3) 1-bit bilgisayardaki 0 veya 1 değerini saklayan en küçük bilgi birimidir. 128-bit içinde 2128 farklı sayı saklayabilirim.

(4) Mod Bölme işleminin kalanını veren aritmetik işlem. 23 mod 4 = 3 sayısını verir.

(5) http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

(6) http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange

(7) http://en.wikipedia.org/wiki/RSA_(algorithm)

(8) Kapak Resmi: http://commons.wikimedia.org/wiki/File:Ternary_Walsh_matrix_27.svg?uselang=tr

 

[box type=”shadow”] Konuk Yazar Hakkında

Ceyhun Çakar

1979 İstanbul doğumlu. 2002 yılında Orta Doğu Üniversitesinde Elektrik ve Elektronik Mühendisliği Lisansını tamamladı. Şu anda Gömülü Yazılım ARGE Yöneticisi olarak çalışıyor. Aynı zamanda Başkent Üniversitesi
Elektrik ve Elektronik Mühendisliği Ana Bilim Dalında yapay zeka ile tanıma sistemleri üzerine Yüksek Lisans yapıyor.

[/box]

yorum

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

  • şu cümleniz
    “Örneğin türev almak, integral almaktan çok daha zordur.)” doğru değil.
    ama tersi doğru.

Konuk Yazarlar

Açık Bilim Çevrimiçi Dergisi'ne konuk yazar olarak katkıda bulunmak ve destek vermek isteyebilirsiniz.