RSA algoritması, günümüzde şifreleme ve kriptoloji alanında yaygın olarak kullanılan asimetrik algoritmalardan biridir. Doğru şekilde yapılandırıldığında, veri güvenliği açısından son derece güçlü bir koruma sağlar ve güvenli iletişimin temelini oluşturur.
RSA, 1977 yılında Ron Rivest, Adi Shamir ve Leonard Adleman tarafından geliştirilmiş; adını da geliştiricilerinin soyadlarının baş harflerinden almıştır. Tanıtıldığı günden bu yana, modern kriptografinin yapı taşlarından biri haline gelmiş ve birçok güvenlik sisteminde standart olarak kullanılmaya devam etmiştir.

RSA algoritması; HTTPS gibi güvenli web protokollerinde, dijital imza sistemlerinde ve anahtar paylaşımı gerektiren pek çok güvenlik mekanizmasında aktif olarak kullanılmaktadır. Özellikle güvenli iletişim kurulması gereken ortamlarda, tarafların birbirine gizli bilgileri güvenle aktarabilmesini sağlar.
RSA Nasıl Çalışıyor?
RSA, bir çeşit asimetrik şifreleme algoritması olduğu için iki farklı anahtar ile çalışır: Public Key (açık anahtar) ve Private Key (özel anahtar). Bu anahtarlar matematiksel olarak birbiriyle ilişkilidir ancak açık anahtardan özel anahtara ulaşmak, pratikte mümkün değildir. Çünkü RSA, ilk bakışta basit görünen ancak ciddi hesaplama gücü gerektiren bir matematiksel mantık üzerine kuruludur.
Bir örnek üzerinden adım adım açıklayalım.

1.adım: Ayşe ( alıcı taraf) iki adet asal sayı seçer.
seçilmiş olsun.
2.adım: değeri hesaplanır.
3.adım: Bu aşamada seçtiğimiz iki asal sayı ile Euler Totient (φ) fonksiyonunun değerini hesaplıyoruz.
4.adım: e değeri seçeriz. değeri kuralına uymalı ve φ(n) ile aralarında asal olmalıdır. Ayşe burada değerini seçer.
Bizim örneğimiz için e değeri 7 olsun. Bu değer ile birlikte karşı tarafa gönderilecek olan Public Key (açık anahtar) değeri oluşmuş oldu.
Public Key:
5.adım: Şimdi açık anahtarın çözülebilmesi için bir Private Key (özel anahtar) oluşturuyoruz.
Öklit algoritmasını kullanarak d değerini buluruz. Bu işlemi yapmak için işlemini uygularız.
d değerini bulmak için 192 / 7 işlemini sıfır kalanını verene dek sürdürürüz.
(Bu satır algoritmayı durdurduğu için hesaplarımıza dahil etmeyeceğiz).
Buradan: sonucunu elde ederiz.
Bu da işleminde k ve d’nin birer tam sayı olduğunun ispatı olur.
Şimdi yaptığımız işlemleri geriye doğru açıp d’nin değerini bulalım.
Buradan ve buluyoruz.
Bu sayede sadece Ayşe’de bulunan Private Key değerini 55 olarak buluyoruz.
6.adım: Ali, Ayşe’ye göndereceği mesajı şifreler.
M (Mesaj) = 30 olsun, C de M’nin şifreli hali.
işlemini uygulayıp mesajı şifreleyelim.
değeri çok büyük bir sayıya tekabül ettiği için modüler üs alma yöntemi kullanarak devam edeceğiz.
Yani için kalan değeri 16 olur. değeri için ve buradan da değeri bulunur.
C = 4 olarak şifrelenir.
7.adım: Ayşe kendisine gelen şifreli mesajı çözer.
Mesajı çözmek için işlemini yapmamız gerekir.
C = 4
d = 55
M , bilmiyoruz onu arıyoruz.
n = 221
çok büyük bir değere tekabül ettiği için modüler üs alma yöntemini kullanarak işlemi yapalım.
41 ≡ 4
42 ≡ 16
44 ≡ 16×16 ≡ 35
48 ≡ 35×35 ≡ 120
416 ≡ 120×120 ≡ 35
432 ≡ 35⋅35 ≡ 120
455 = 432.416.44.42.41
455=120×35×35×16×4 = 9,408,000
9,408,000(mod221) = 30
İşlemler sonucunda gizli mesajın 30 olduğu öğrenilir.
Özetle…
Öncelikle iki asal sayı seçerek n ve φ(n) değerlerini hesapladık. Ardından açık anahtar e için uygun bir değer belirledik ve Öklid Algoritması kullanarak bu değerin modüler tersini bulup özel anahtar d’yi elde ettik.
Daha sonra bir mesajı (M) alıp, RSA’nın şifreleme formülü olanifadesiyle şifreledik. Bu işlem sırasında büyük sayılarla uğraşmamak için modüler üs alma yöntemini kullandık.
Şifreleme sonucunda elde edilen şifreli metni (C) bu kez özel anahtar (d) ileformülünü kullanarak çözdük ve başlangıçta gönderilen mesajın eksiksiz şekilde geri geldiğini gördük.
RSA’nın arkasındaki matematiği somut bir örnekle görmek, algoritmanın nasıl çalıştığını anlamayı çok daha kolaylaştırıyor.
Bu yazının, RSA’yı yalnızca bir formül değil, çalışan bir sistem olarak görmenize yardımcı olmasını umuyorum.
Okuduğunuz için teşekkürler.
