RSA Şifreleme Algoritması
Asimetrik şifrelemenin teorik altyapısını inceledikten sonra, bu paradigmanın dünyadaki ilk ve en yaygın uygulaması olan RSA (Rivest-Shamir-Adleman) algoritmasını ele alacağız. RSA'in güvenliği, sayı teorisinin en temel ve çözülmesi zor problemlerinden biri olan Büyük Sayıların Asal Çarpanlara Ayırılması (Integer Factorization Problem) ilkesine dayanır. Bilgisayarlar için iki büyük asal sayıyı çarpmak (ileri yön) saliseler alırken, çarpım sonucundan hareketle orijinal asal çarpanları bulmak (geri yön) günümüz işlemcileriyle milyarlarca yıl sürebilir.
📌 Gerekli Matematiksel Ön Bilgiler
RSA adımlarını tam olarak kavrayabilmek için şu iki kavramın hatırlanması hayati önem taşır:
- Euler Totient Fonksiyonu (
): Bir pozitif tam sayısı için, 'den küçük ve ile aralarında asal olan pozitif tam sayıların adedidir. Eğer ve iki farklı asal sayı ise, fonksiyonun çarpanlara ayrılabilme özelliğinden dolayı olur. - Modüler Çarpımsal Ters:
denkliğini sağlayan değeridir. Bu değer Genişletilmiş Öklid Algoritması (Extended Euclidean Algorithm) kullanılarak polinomsal zamanda hızlıca hesaplanır.
🔑 Anahtar Üretim Süreci (Key Generation)
Şifreli mesajı alacak olan taraf (örneğin Alıcı), kendi anahtar çiftini oluşturmak için şu adımları sırasıyla uygular:
- Birbirinden bağımsız, rastgele ve çok büyük iki asal sayı olan
ve seçilir. - Bu iki asal sayının çarpımı olan kamusal modül
hesaplanır: - Bu modüle ait Euler Totient değeri
hesaplanır: aralığında, ile aralarında asal olan bir açık üs (encryption exponent) seçilir: - Seçilen
değerinin mod altındaki çarpımsal tersi olan gizli üs (decryption exponent) hesaplanır:
- Açık Anahtar (
- Public Key): çiftidir ve herkesin erişebileceği şekilde ilan edilir. - Gizli Anahtar (
- Private Key): çiftidir ve alıcı tarafından kesinlikle gizli tutulur. ve değerleri de süreç sonunda güvenli bir şekilde imha edilmelidir.
💡 Önemli Not: Carmichael Totient Fonksiyonu Alternatifi
Teorik anlatımlarda ve akademik kaynaklarda kolay anlaşılması açısından genellikle Euler Totient fonksiyonu (
🔒 Fonksiyonların Tanımı ve Doğruluk İspatı
Tanım: RSA Şifreleme ve Deşifreleme Fonksiyonları
Gönderici, iletmek istediği açık metni
Şifreleme fonksiyonu
Alıcı, güvenli olmayan kanaldan gelen
Teorem: RSA Algoritmasının Doğruluğu (Correctness of RSA)
Her
İspat
Anahtar üretim adımından biliyoruz ki
Bu durumda deşifreleme fonksiyonunun çıktısını üslü sayılar kuralıyla açalım:
Bu ifadenin mod
- Durum 1: Eğer
ise, Fermat'nın Küçük Teoremi (Fermat's Little Theorem) uyarınca olur. O halde eşitliğini yerine koyarsak: - Durum 2: Eğer
ise, bir asal sayı olduğundan sayısı 'nin bir tam katı olmak zorundadır. Bu durumda olur. Sıfırın her pozitif kuvveti sıfır olacağından:
Her iki durumda da
Böylece deşifreleme fonksiyonunun şifreli metni her koşulda orijinal açık metne dönüştürdüğü matematiksel olarak kanıtlanmış olur.
📝 Çözümlü Uygulama
Örnek: Bir RSA kurgusunda başlangıç asalları
💡 Çözümü Göster / Gizle
1. Anahtar Üretimi:
Kamusal modül:
Totient değeri:
Seçilen
değerinin ile aralarında asal olduğu doğrulanır ( ). Gizli üs
hesabı ( ): Genişletilmiş Öklid aritmetiği veya ardışık katlar incelendiğinde; bulunur. olduğundan olarak belirlenir. Açık Anahtar:
Gizli Anahtar:
2. Şifreleme Süreci: Gönderici
Hesabı kolaylaştırmak için üssü parçalayalım:
O halde
3. Deşifreleme Süreci: Alıcı gelen
Ardışık kare alma (Square-and-Multiply) yöntemi ile büyük üssü mod 77'de indirgeyelim:
Daha kolay sayılar için negatif denklikleri (
Mod 77 karşılıkları:
Sonuç: Deşifreleme işlemi tamamlanmış ve orijinal açık metin olan