Bilginin Adresi Ana Sayfa
Forum Anasayfası Forum Anasayfası > Bilgisayar Güvenliği / Computer Security > Güvenlik / Security Makaleleri
  Aktif Konular Aktif Konular RSS - Kriptografi - BÖLÜM 2 (Asimetrik kriptografi)
  SSS SSS  Forumu Ara   Events   Kayıt Ol Kayıt Ol  GiriÅŸ GiriÅŸ

Kriptografi - BÖLÜM 2 (Asimetrik kriptografi)

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
megabros Açılır Kutu Gör
Security Professional
Security Professional
Simge

Kayıt Tarihi: 08-06-2009
Konum: Turkey
Status: Aktif DeÄŸil
Points: 752
Mesaj Seçenekleri Mesaj Seçenekleri   Thanks (0) Thanks(0)   Alıntı megabros Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Kriptografi - BÖLÜM 2 (Asimetrik kriptografi)
    Gönderim Zamanı: 29-03-2011 Saat 10:47

Asimetrik kriptografi

Bildiginiz gibi simetrik kriptografi ayni bilgiyi hem kriptolama hem de dekriptolama işlemi için aynı anahtarı kullanır. Asimetrik kriptografi, yada açık anahtar kriptografi, biri kriptolama diğeri de dekriptolamada kullanilmak üzere iki farklı anahtar kullanır.

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. 


Düzenleyen megabros - 29-03-2011 Saat 10:47
WHİTE HAT
BEYAZ ŞAPKA (BİLGİ NEFERİ)
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu Gör



Bu Sayfa 0.156 Saniyede Yüklendi.