• 29 HAZİRAN 2020
  • Okunma Sayısı: 1349

Ömer Numan ÖZDEMİR - Karaelmas Kriptoloji Takımı

Zonguldak Bülent Ecevit Üniversitesi - [email protected]

 

RSA bir açık anahtarlı (asimetrik) şifreleme yöntemidir. 1977 yılında Ron Rivest, Adi Shamir, ve Leonard Adleman tarafından bulunmuştur. Çalışması ise, iki büyük asal sayının çarpımı üretilir ve seçilen diğer bir değerle birlikte ortak anahtar (Public Key) ilan edilir. Güvenirlik derecesi, şifrelemede kullanılan asal sayıların büyüklüğü ile doğru orantılıdır. Özellikle çok kullanıcısı olan sistemlerde güvenli veri paylaşımına ve sayısal imza ile kimlik doğrulaması (authentication) yapılmasına olanak sağlamaktadır. RSA algoritması anahtar üretimi, şifreleme ve şifre çözme olmak üzere 3 basamaktan oluşmaktadır.


Anahtar Üretimi

RSA için bir ortak anahtar (Public Key) bir de özel anahtar (Private Key) gerekir. Ortak anahtar herkes tarafından bilinir ve mesajı şifrelemek için kullanılır. Bir ortak anahtarla şifrelenmiş mesaj sadece özel anahtarla çözülebilir. Anahtar şu şekilde oluşturulur ;

1. Yeterince büyük iki adet asal sayı seçilir. Bu sayılar p ve q olsunlar.

2. n=pq hesaplanır. Buradaki n sayısı seçilen iki asal sayının çarpımıdır. N sayısı özel ve ortak değerler için mod değeri olarak kullanılacaktır.

3. Bu sayıların totientı hesaplanır. Bu örnek için çarpanların ikisi de asal sayı olduğu için φ(n) = (p-1)(q-1) olarak bulunur. (Totient sayılar teorisinde, bir tam sayının o sayıdan daha küçük ve o sayı ile aralarında asal olan sayma sayı sayısını belirten fonksiyondur.)

4. Hesaplanan totient değeri (φ(n) ) ile aralarında asal olan öyle bir e sayısı alınır ki 1 < e < φ(n) olmalıdır. Bu seçilen e sayısı özel anahtar olarak ilan edilebilir. e sayısı ortak anahtar olarak açıklanır. Küçük olarak seçilen e değerleri şifrelemenin güvenliğini azaltabilir.

5. d gibi bir sayı hesaplanır ki bu sayı için şu denklik geçerli olmalıdır. de ≡ 1 mod ( φ(n) ). Bu d değeri özel anahtar üssü olarak saklanır. Bu sayının hesaplanması sırasında uzatılmış Öklid algoritmasından faydalanılır.

Şifreleme İşlemi


Şifreleme işlemi için Ömer kendi ortak şifresi olan (n,e) ikilisini yayınlar. Bu şifreyi alan Numan aşağıdaki şekilde mesajını şifreler. Şifreleme işlemi şu şekildedir ;
                                                                   c = me mod n
Burada m, şifrelenecek olan açık metin (plain text), e ve n ise Ömer tarafından yayınlanan ortak şifredir.


Şifrenin Açılması


Ömer, Numan tarafından yollanmış olan mesajın açılması sırasında aşağıdaki formülü kullanır;
                                                                   m = cd mod n
Burada açılacak olan şifrelenmiş metin c, Ömer’in hususî şifresi ise d ile gösterilmiştir. n ise mod değeridir.
Rsa şifrelemesi aşağıda gösterilen görseldeki gibidir ;



Rsa için şöyle bir örnek gösterilebilir;


Örnek

  •  İki asal sayı seçilir p = 61 ve q = 53
  •  n değeri hesaplanır n = pq şeklinde n = 61 * 53 = 3233 Totientı hesaplanır φ(n) = (p-1)(q-1) φ(n) = (61-1)(53-1) = 3120
  •  Totient sonucu ile aralarında asal olan ve 1’den büyük bir sayı seçilir e > 1 => e = 17 (3120 ile aralarında asal) , bu sayı aynı zamanda ortak şifredir.
  •  Özel şifre olması için bir d sayısı seçilir: de ≡ 1 mod(n) olacak şekilde d sayısı bulunur , d = 2753 (çünkü 17 * 2753 = 46801 = 1 + 15 * 3120 ) Bu sayının hesaplanması sırasında uzatılmış Öklid yöntemi kullanılmıştır.
  •  Örneğin mesaj olarak 123 gönderilecek olsun: 123^17 mod 3233 = 855 olarak şifreli metin bulunur.
  •  Açacak taraf için tersi işlem uygulanır: 855^2753 mod 3233 = 123 şeklinde orijinal mesaj geri elde edilir.


Avantajları

  •  Simetrik şifreleme, şifrelenmiş veriyi alan tarafın veriyi deşifre edebilmesi için, gizli anahtar paylaşımını gerekli kılar. Ancak RSA asimetrik bir şifreleme tekniği olduğu için gizli anahtarın paylaşılmasına gerek yoktur. Kullanıcıların gizli anahtarlarının saklanması gerekmez. Bu da sistemi büyük bir depolama yükünden kurtarır.
  •  Büyük sayılarla işlem yapmak zor olduğu için güvenilirliği son derece yüksek olan bir şifreleme tekniğidir.

 

Dezavantajları

  •  RSA algoritmasının en büyük dezavantajı, asimetrik bir şifreleme algoritması olması ve büyük sayılarla işlem yapması nedeniyle yavaş olmasıdır.
  • Özellikle kablosuz ağ sistemlerinde bu algoritmanın kullanılması bazı sorunlara yol açabilir. Çünkü bant genişliğini fazlaca tüketir ve sistemi yavaşlatarak performans düşüşüne neden olur.

 

Ek Bilgi

Totient Fonksiyonu: https://tr.wikipedia.org/wiki/Totient
Uzatılmış Öklid Algoritması : http://bilgisayarkavramlari.com/2008/03/20/uzatilmis-oklit-algoritmasi-extended-euclid-algorithm/


Kaynakça


https://bidb.itu.edu.tr/seyir-defteri/blog/2013/09/08/rsa-algoritmas%C4%B1
http://bilgisayarkavramlari.sadievrenseker.com/2008/03/19/rsa/
https://tr.wikipedia.org/wiki/RSA_Algoritmas%C4%B1
https://tr.wikipedia.org/wiki/Totient
http://bilgisayarkavramlari.com/2008/03/20/uzatilmis-oklit-algoritmasi-extended-euclid-algorithm/

TÜM MAKALELER