RSA Algoritması (Şifreleme yöntemi)

fft83_mf2028972

Kriptoloji, şifre bilimidir. Çeşitli iletilerin, yazıların belli bir sisteme göre şifrelenmesi, bu mesajların güvenlikli bir ortamda alıcıya iletilmesi ve iletilmiş mesajın deşifre edilmesidir.

Günümüzde ülkemizde birçok güvenlik ihlali ile karşı karşıyayız. Telefonla konuşmalarınızın, mesajlaşmalarınızın güvenlik garantisini kim veriyor size? Geçtiğimiz günlerde ülkemiz eski Cumhurbaşkanı Abdullah GÜL’ ün kriptolu telefonunun bile çok uzun bir süre dinlendiğini herkes biliyor. Dolayısıyla bu tür tehditlere karşı güçlü önlemler almak gerekiyor.

Varsayalım ki banka hesabınızda milyon dolarlar cinsinde paranız var. İhtiyacı olan bir arkadaşınıza Müşteri no ve şifrenizi iletmeniz gerekiyor. Ve güvenliğinizden şüphe duyuyorsunuz. Ne yaparsınız?

** Bilgilerinizi şifreli bir şekilde göndermek istersiniz. Bir şeyi ima edersiniz veya değiştirirsiniz.

Sizlere en güvenli şifreleme algoritmalardan biri olan RSA’ yı anlatacağım. Emin olmamakla birlikte duyduğum kadarıyla RSA ile ilgili bir hikaye aktarayım 🙂

20090919003337

Birbirini seven 2 matematik öğrencisi varmış. Kızın babası çok asi ve çocuğun varlığından haberi olduğu için kızını okula göndermiyormuş. Bu iki genç birbiri ile şifreli bir şekilde mektuplaşıyorlarmış. Sezar şifreleme algoritmasına benzer bir şekilde şifreleme fonksiyonu oluşturmuşlar. Mesela (x+10) gibi bir fonksiyona göre ‘a’ harfi 1.harf olduğu için x+10′ dan 11.harf ‘k’ temsil oluyormuş. Yani askım yazmak yerine kcusx gibi bir yazışma sağlıyorlar ve bunu fonksiyonun tersini alarak çözüyorlarmış. (x-10) Kızın zeki babası bunun farkına varmış ve şifreleme fonksiyonlarını keşfederek tersini alıp mesajı çözmeye başlamış. Kızına büyük cezalar verdikten sonra görüşmeleri de bir o kadar zorlaşmış. Bizim genç ne yapacağını bilemez duruma gelmişken elinde kalem bir şeyler karalar olmuş. Sonradan RSA adı verilen yöntemi bulmuş ve sevdiğine hep bu şekilde şifreleme yaparak mektup atmaya başlamış. Kızın babası da bir türlü işin içinden çıkamamış. Sonra bu iki gence nolmuş bilmiyorum ama haberleşmeyi sağlamışlar 🙂 Kulaktan dolma misali böyle bir hikayeye tanık oldum fakat RSA adını Ron Rivest, Adi Shamir ve Leonard Adleman’ in soyadlarından alıyor. 3 arkadaştan önce bu algoritma çok önceleri bulunmuş ama yüksek hızlı bilgisayarlar olmadığı için açıklığa kavuşmamıştır.

publickey

Wikipedia‘ ya  göre RSA

RSA, güvenliği tam sayıları çarpanlarına ayrımanın algoritmik zorluğuna dayanan bir tür Açık anahtarlı şifreleme yöntemidir. 1978’de Ron Rivest, Adi Shamir ve Leonard Adleman tarafından bulunmuştur. Bir RSA kullanıcısı iki büyük asal sayının çarpımını üretir ve seçtiği diğer bir değerle birlikte ortak anahtar olarak ilan eder. Seçilen asal çarpanları ise saklar. Ortak anahtarı kullanan biri herhangi bir mesajı şifreleyebilir, ancak şu anki yöntemlerle eğer ortak anahtar yeterince büyükse sadece asal çarpanları bilen kişi bu mesajı çözebilir. RSA şifrelemeyi kırmanın çarpanlara ayırma problemini kırmak kadar zor olup olmadığı hala kesinleşmemiş bir problemdir. Daha fazla bilgi

 

Sizlere Şimdi RSA Algoritmasını 5 adımda anlatacağım.

  1. İki tane birbirinden farklı asal sayı seçmemiz gerekiyor.(Hikayeden aklınızda kalsın p erkek için q kız için olsun 🙂 )      p=5 , q=7 olsun diyelim ki. 
  2. Bir N sayımız olacak ve bu sayı p ve q çarpımı olsun. N=P*Q => N=5*7=35 olur.
  3. Birde Q(n) sayımız olacak, bu ise p ve q ‘un bir eksiklerinin çarpımı. Q(n)=(p-1)*(q-1) => Q(n)= 4*6=24
  4. Bir anahtar sayı seçeceğim. (e sayısı) Bu sayı benim açık anahtar dediğim ibareyi oluşturacak. Bu sayıyı seçerken şu kurala dayanacağım. 1< e <Q(n) ve e sayısı Q(n) ile aralarında asal olmak zorundaDiyelim ki e=5 olsun.
  5. Şifreleme anahtarım (açık anahtarım) e ise ,

bilgi^e Mod N= ŞİFRELİ MESAJ

bilgi= 4 sayısı olsun.

e=5 olarak seçilmişti.

4^5 Mod 35= 9 olarak şifrelendi.

Yani 4 sayısının şifreli hali 9 oldu. (Bu sayı bir harfte olabilirdi. Alfabede 29 harf olduğu düşünülürse 4 rakamı d’ ye denk gelir. Ama şifreli halde 9. harf yani ı’ yı temsil eder.)

Şu anda şifreli mesaj oluşturmuş olduk. Peki bunu nasıl çözeceğiz? Kapalı anahtarımız yani şifre çözücü anahtara ihtiyacımız var. Bunun içinde öklid algoritması kullanacağız ve gcd(Q(n), e) ifadesinin 1 olma durumunu inceleyeceğiz. Daha fazla bilgi

Burdan yola çıkarak ,

gcd(Q(n), e)= r*n+ t*e olacaktır. sayısı bize d’ yi verecektir. Yani e*d=1 Mod N olacaktır. Fazla detaya girmeden işleme geçeyim.

24=5*(4)+4     => buradan , 4=24 + 5*(-4) olur.

5=4*(1)+1     => buradan , 1= 5 + 4(-1) olur.

Denklemleri birbiri cinsinden yazalım,

1= 5+ 24*(-1)+ 5*(-1*-4)

1= 24*(-1)+ 5*(5)

t=d=5 olmuştur. Şimdi şifreli mesaja 

ŞİFRELİ MESAJ^d Mod N= GERÇEK MESAJ işlemi uygulayacağız.

9^5 Mod 35= 4 yani d harfi de denilebilir.

Melih Hilmi ULUDAĞ

Fırat Üniversitesi, 2014

Yazılım Mühendisliği

Kaynaklar:
http://tr.wikipedia.org/wiki/
http://fatihozkaynak.blogspot.com

One thought on “RSA Algoritması (Şifreleme yöntemi)

Bir cevap yazın

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