Bilgiyi kriptolamada kullanilan anahtara açýk anahtar (public key) adý verilir. Açýk anahtar sahibi tarafindan herkese yayimlanibilir. Bilgiyi dekriptolamada kullanilan anahtara özel anahtar (private key) ve gizli tutulur.
Eger birisine gizli bir mesaj yollamak isterseniz göndermeden önce o kisinin açik anahtarini kullanarak kriptolayip gönderebilirsiniz. Alici kendi özel anahtarini kullanarak mesaji açabilecektir. Ve eger alici cevap vermek isterse yine sizin açik anahtariniz bulup göndermeden önce onunla kriptolayacaktir.
Açik anahtariniza herkes ulasabilir fakat onunla size gelen mesajlari açamazlar. Bunun sebebi sadece o açik anahtara ait özel anahtarin mesaji açabilmesidir. Benzer olarak, açik anahtarda eger bilgi sadece eger kendisine ait özel anahtar ile kriptolanmissa açabilir.Bilgiyi göndermeden önce kendi özel anahtariniz ile kriptolayabilirsiniz. Sizin açik anahtarinizin bu mesajin açilip okunmasinda kullanilabilecegi bilindiginden mesaji gizli tutmak için yeterli degildir. Fakat mesaji alan sizin açik anahtariniz ile açarsa onun sizin özel anahtariniz ile kriptolandigýna emin olabilir. Böylelikle asimetrik kriptografi mesajin dogrulugunu garanti etmede kullanilabilir. Alicinin açik anahtari ve kendi özel anahtarinizin kombinasyonu ile yapilan bir kriptolama mesajin hem dogrulugunu hemde gizliligini saglayacaktir.
Bazi açik anahtar kriptolama sistemleri sadece mesajin dogrulugu için kullanilir. Sifrelenmesinde kullanilmaz. Bunlara Tersine döndürülemeyen açik anahtar kriptosistemleri (irreversible public key cryptosystems) adi verilir. Kimlik tanilama ve kriptolama modlarinda çalisan açik anahtar kriptolama sistemlerine de Ters döndürülebilir açik anahtar kriptosistemleri adi verilir.
Bir anahtarin yaratilmasi rastgele bir sayi ile basladigindan, rastgele numara yaratimi islemin en önemli parçalarindan biridir. Eger bu önem gözardi edilirse rastgele sayilar kriptografik sistemin en güçsüz parçasi haline gelir. Diger bir deyisle, rastgele numara güçlü olmali, bir saldirganin tahmin edebilmesi zor olmalidir. Bir anahtar yaratmak istediginizde, kendiniz bir rastgele numara seçmezsiniz. Bunun yerine numara bir pseudo-random numara algoritmasi ile rastgele bir kaynak (seed) seçilerek yaratilir. Bu rastgele kaynagin tamamen gelisigüzel olmasi önemlidir. Aksi takdirde bir saldirganin kaynagi tahmin edebilmesi, pseudo-random numarayi ortaya çikarmasi ve özel anahtari üretip gizli mesajlari okumasi mümkündür. Bir resistor`deki elektrik gürültüsü gibi çevre gürültüsü rastgeledir ve rastgele numara üretmede kaynak olarak kullanilabilir.
Rastgele bir sayi üretmek için bu çevre gürültüsü uygun bir hash fonksiyonu ile isleme sokulur.
Bazi makinalarin özel donanim gürültü üreticileri vardir. Fakat mümkün oldugunda gerçek çevre gürültüsünü kullanmak daha iyidir.
Ilk asimetrik yada açik anahtar kriptografi sistemi 1976 yilinda Stanford üniversitesindeki iki arastirmaci tarafindan bulundu. Whitfield Diffie ve Martin Hellman herkese açik bir haberlesme kanalinda paylasilan özel anahtari gelistirme ve takas etmek için bir sistem buldular.
Diffie-Hellman anahtar takas sistemi kriptolama ve dekriptolama için bir metod degildir. Taraflar arasinda kriptografik anahtarlarin takas sistemidir.
Diffie-Hellman takas sistemiyle iki taraf bazi genel nümerik degerlere karar verir ve her iki tarafda bir anahtar yaratir. Sonra anahtarlarin matematiksel dönüsümlerini takas ederler. Böylece iki tarafda üçüncü bir anahtari (oturum anahtari)ni hesaplayabilirler. Ve bu her iki takas edilmis degeride bilen bir saldirgan tarafindan dahi kolayca bulunamaz. (Bir oturum anahtari sadece belirli bir baglanti oturumu için kullanilir ve sonra atilir.)
ElGamal, Diffie-Hellman anahtar takasina dayali bir açik anahtar kriptolama sistemidir. Kriptolama ve dijital imzalar için kullanilabilir.
Asimetrik kriptografide 'eliptik egri açik anahtar kriptosistemleri' diye yeni bir alan daha çikti.
Eliptik egri sistemlerinin çalismasi yavasti fakat hesaplama teknolojilerindeki gelismelerle daha uygun hale geldiler. Hernekadar diger oturmus sistemler kadar test edilmemis olsada digerlerine nazaran daha güvenli olduklari düsünülür.
1978`de bulunan RSA, yaraticilarinin bas harflerini almistir: Ronald Rivest, Adi Shamir ve Leonard Adleman. RSA günümüzde en çok kullanilan açik anahtar algoritmasidir. Ayrica RSA en çok test edilen algoritmalardan biridir. RSA hem bilgi sifrelemede hemde dijital imza sistemlerinde kullanilabilir. Kullanilan anahtarlar yeteri kadar uzun oldugunda güvenli oldugu düsünülür. RSA sistemindeki anahtarlar kullanilan belirli uygulamaya göre herhangi bir uzunlukta olabilir.
Açik anahtar kriptografi simetrik kriptografi kullanimindan daha yavas olabilir. Bunun sebebi açik anahtar kriptografi`de kullandiginiz anahtarlarin daha uzun olmasi gerektiginden ve algoritmanin daha çok islemci gücünü ihtiyaç duymasindandir.
Özel anahtar kriptosistemi gibi bir açik anahtar kriptosistemi de, eger anahtar olmadan sifreliyazi`yi açmak imkansiz ise güvenlidir. Ayrica açik anahtar bilgisiyle özel anahtari bulmak imkansiz olmali. Bu gün kullanimda olan bütün açik anahtar kriptosistemleri, çok güçlü bilgisayarlar tarafindan bile, hatiri sayilir bir süre içerisinde çözülmesi imkansiz belirli matematik problemlerine dayanir. Bu tip problemlerden biri çok genis bir sayinin asal çarpanlarini bulmaktir. Bir sayinin asal çarpanlari sonuç olarak sayiyi veren asal sayilardir. (Hatirlayacaginiz gibi bir asal sayi sadece kendisine ve bire bölünebilen sayilardir.) Örnegin 91`in asal çarpanlari 7 ve 13`tür. Fakat 899 gibi bir numarayi ele aldiginizda numara büyüdükçe asal çarpanlarini bulmayi hesaplamaninda zorlastigini görebilirsiniz. (ek bilgi: 899`un asal çarpanlari 29 ve 31 dir) RSA açik anahtar sistemine matematiksel olarak iki genis asal sayiyi asal çarpanlarina ayrirarak saldirabilirsiniz. Eger bu iki asal çarpani bulabilirseniz bunlari özel anahtar numarasi için kullanabilirsiniz. Anahtar yaratmada genis numaralar kullanmak bu yöntemi zorlastiriyor ve pratikte asal çarpanlarina ayirmayi imkansiz hale getiriyor. Örnegin; teorik olarak 512-bitlik bir anahtarin asal çarpanlarini 1 MIPS (saniyede 1 milyon islem) lik bir bilgisayarla bulmaniz mümkün fakat 420bin yil sürecegi hesaplanmistir. Buna ragmen 512-bitlik anahtarlar potensiyel olarak güçsüz olarak düsünülmektedir. 1024-bitlik anahtarlar pek çok amaç için yeterli derecede güçlü olarak görülmektedir.
Eger gelecekte genis rakamlarin asal çarpanlarini bulmak için yeni ve hizli bir yöntem bulunursa RSA sistemide güvensiz hale gelecektir. Fakat su an RSA bu tip saldirilardan hiçbir sekilde etkilenmemektedir. Sebebi ise, anahtar için kullanilan 'modulus' boyutu gelisen teknolojiye ayak uyduracak sekilde arttirilabilir.
Bir anahtar uzunlugu seçerken sadece güvenligi degil performansi da düsünmelisiniz. Anahtar boyutu büyüdükçe bilgiyi kriptolama ve dekriptolamada ihtiyaç duydugu isleme gücüde artar. Bir açik anahtar sistemini kirmanin sistematik olmayan yollarindan biri, mesajlarini okumak istediginiz kisinin özel anahtarini ele geçirmektir. Örnegin, eger özel anahtar kullanicinin bilgisayari gibi belli bir yerde saklaniyorsa çalinmasi mümkündür. Yada anahtari bilen baska birisinden temin edilebilir.
Bazi saldirganlar matematiksel metodda bir kural açigi bularak anahtari kirmayi umarlar. Ayrica RSA ve Diffie-Hellman`in çesitli uygulamalarina karsi gerçeklestirilebilen yeni zamanlama saldirilari gibi, yeni tipte saldirilar hacker`lar tarafindan gelistirilmektedir.
RSA Algoritmasý
Asimetrik kriptografi`de bir özel anahtar, onu esleyen açik anahtarin tersidir. Bir açik anahtar algoritmasi sadece eger bir kisinin açik anahtarindan özel anahtari (uzun bir süre içinde) bulunamiyorsa güvenli sayilir. RSA algoritmasinda özel anahtarin açik anahtardan bulunamamasinin sebebi büyük sayilarin asal çarpanlarini bulmadaki zorluktandýr. RSA algoritmasindaki diger önemli bir konsept, aralarýnda asal çarpanlardýr (relatively prime factors). Eger iki sayi birbirlerinin carpanlari sekilde yazilamiyorlarsa bu iki rakama `aralarinda asal` denilir. Ornegin, 3 ve 7 rakamlarý aralarýnda asaldýrlar cunku 3, 7`nin bir carpani degildir. Fakat, 3 ve 6 aralarinda asal degildirler, zira 3, 6`nin bir carpanidir (6=3*2).
RSA algoritmasi modüler matematik kullanir. Yani, sadece sifirdan baslayan ve belirli bir sayiya kadar (o sayi dahil degil) olan sayilar (modulus) kullanilir. Eðer modulus olarak 20 kullanýlýyorsa denklik baðýntýsý gereði 20 sayýsý yerine 0 (mod 20) kullanýrsýnýz, 21 yerine de 1 (mod 20) kullanýrsýnýz. Benzer þekilde 39 sayýsý 19 (mod 20) , 40 da 0 (mod 20) olarak yazýlýr.
Bu tip bir denklem kullanarak bir rakamýn modüler terimlerle nasýl ifade edilebileceðini bulabilirsiniz. Matematikte 1 sayýsýný üreten iki rakam bir diðerinin tersidir. Modüler matematikte de ayný kural geçerlidir. Örneðin, eðer modulus 20 ise, 3 ve 7 rakamlarý birbirinin tersidir. Bunun sebebi, 3*7=21 ve 21 rakamý 1 mod 20 olarak gösterilir.
Kullandýðýnýz modulus yarattýðýnýz her bir anahtar seti için farklý olabilir. Bir modulus seçmek için rastgele iki büyük asal sayý seçersiniz, p ve q. Ýkisini birbiriyle çarptýðýnýzda, çýkan sonuç, n, sizin kriptolama ve dekriptolama modulus`unuzdur. Üslü ifade (exponent), e, olarak bilinen, n`den küçük deðerde bir açýk anahtar deðeri seçersiniz. Bu sayýnýn asal olmasý gerekmiyor fakat tek sayý olmalý. Açýk anahtar deðeri, e, (p-1)(q-1) e iliþkili asal olmak zorundadýr.
Bir düzyazý mesajý (m) þifreliyazýya (c) çevirmek için bu formülü kullanýrsýnýz. Elde edilen þifreliyazýyý açabilmek için açýk anahtarýn tersini bulmalýsýnýz. Buda özel anahtar (d). Bu formül ile de dekriptolayabilirsiniz.
d yi bulmak için modulus n yi deðil farklý bir modulus kullanýrsýnýz, (p-1)(q-1). Özel anahtar açýk anahtarýn tersi olduðundan bu denklemde bir sorun yaþanmaz.
Açýk anahtar e ve özel anahtar d arasýndaki ters iliþki RSA algoritmasýnýn þifreliyazýyý orjinal mesaja baþarýlý bir þekilde çevirmesini saðlar. Eðer özel anahtar d yi bilmiyorsanýz açýk anahtar e ile kriptolanmýþ þifreliyazýyý açamazsýnýz. Fakat açýk anahtar e sizde ise ve ayrýca modulus n in asal çarpanlarý p ve q yu da biliyorsanýz bu denklemi kullanarak özel anahtarý kolayca bulabilirsiniz. Bu yüzden p ve q yu gizli tutmak önemlidir.
Eðer sadece açýk anahtar e yi ve modulus n i biliyorsanýz özel anahtarý hesaplayabilmeniz için önce modulus un asal çarpanlarýný bulmanýz gerekir. Fakat yeterli derecede büyük sayýlar kullanýldýðýnda asal çarpanlarýn bulunmasý nerdeyse imkansýzdýr.
Küçük rakamlar kullanan örnek bir RSA algoritmasý örneði inceleyelim. Diyelimki açýk anahtar deðeriniz, e, olarak 3`ü seçtiniz. p=5 ve q=11 seçip birbiriyle çarparak modulus n i hesapladýnýz. p ve q için geçerli sayýlar seçtiðinizi test etmek içinde e nin (p-1)(q-1) e iliþkili asal olduðunu kontrol ettiniz.
Açýk anahtar e nin tersi olan özel anahtar deðeri d yi bulmanýz gerekiyor. 27 rakamý bu denklemi saðlaycaktýr (3*27=81=1 mode 40), bu yüzden d=27 dir. Þimdi açýk anahtar e nin neden (p-1)(q-1) e iliþkili asal olduðunu daha iyi anlamýþsýnýzdýr.
Eðer e (p-1)(q-1) in bir çarpaný olursa 1 mod (p-1)(q-1) in çarpaný olamaz. Ve eðer e 1 mod (p-1)(q-1) in çarpaný deðilse modüler olarak tersi yoktur ve bu sebepten özel anahtar deðildir. Artýk RSA algoritmasý ile bir düzyazý mesajý kriptolayabilirsiniz. Düzyazý mesajýnýz, m, 2 olsun. m`i kriptolamak için bu formülü kullanýrsanýz, çýkan þifreli yazý, c, 8 olacaktýr. Þifreliyazýyý bu formül ile açtýðýnýzda sonuç 2 mod 55 olarak orjinal düzyazýyý verecektir.
Mesajlarý açýk anahtar algoritmasý ile kriptolamak ve açmak simetrik sistemden çok daha fazla iþlem gücü harcar. En hýzlý RSA çipi 512-bitlik asallar kullandýðýnda saniyede 600kbit çýktý verebilir. Benzer DES donaným uygulamalarý 1000 ile 10000 kat daha hýzlýdýr. Ve DES yazýlým uygulamalarý RSA algoritmasýndan 100 kat daha hýzlý kriptolama yapar.
Simetrik kriptografiden yavaþ olmasýna raðmen açýk anahtar kriptolama daha güvenlidir. Örneðin, eðer simetrik kriptolama kullanarak bir mesaj gönderirseniz, her alýcýya özel anahtarýnýzý göndermek için güvenli bir yol bulmanýz gerekir. Simetrik kriptografi kullanýmýnda kendiniz ve her alýcý arasýndaki haberleþme için kullanýlacak anahtar konusunda özel olarak anlaþmanýz gerekir. Fakat açýk anahtar kriptografi cok yönlüdür. Açýk anahtarý bilinen herhangi birine, önceden bir anlaþma yapmadan gizli mesajlar gönderebilirsiniz. Açýk anahtar sistemleri çoðu zaman özel anahtarýn güvenli olarak gönderilmesi için dijital zarf (digital envelope) yaratýlmasýnda kullanýlýrlar.
Bir dijital zarf yaratmak için mesajý kendi gizli anahtarýnýzla þifreleyip alýcýya gönderirsiniz. Alýcý mesajý açmak için paylaþýlan gizli anahtara ihtiyaç duyar ve ona gizli olarak göndermeniz gerekir. Paylaþýlan gizli anahtarý alýcýnýn açýk anahtarý ile kriptolayarak açýk að üzerinden gönderebilirsiniz.
Dijital zarf zaman kazandýrýr çünkü mesajýn kendisi deðil sadece paylaþýlan gizli anahtarýn asimetrik kriptografi ile þifrelenip açýlmasý gerekir.
Saygýlar.