🔐 RSA Nedir ve Neden Güvenlidir?
RSA (Rivest-Shamir-Adleman), herkese açık anahtar kriptografisi (public-key cryptography) yöntemlerinden biridir.
Temel amacı, güvenli olmayan ortamlarda (örneğin internet) güvenli veri iletimini sağlamaktır.
RSA sayesinde, saldırganlar iletişimi dinliyor olsa bile, mesajı çözmeleri mümkün değildir.
⚙️ RSA’nın Dayandığı Matematiksel Temel
RSA, büyük sayıların çarpanlarına ayrılmasının zor olması prensibine dayanır.
-
İki büyük asal sayıyı çarpma işlemi kolaydır.
-
Ancak, bu çarpım sonucunda elde edilen çok büyük bir sayıyı tekrar çarpanlarına ayırmak (faktörlemek) çok zor ve hesaplaması çok pahalı bir işlemdir.
🔢 Örnek:
-
Asal sayı 1:
982451653031
-
Asal sayı 2:
169743212279
-
Çarpımları:
166764499494295486767649
Bu çarpma işlemini bilgisayarla yapmak kolaydır.
Ama 166764499494295486767649
sayısının çarpanlarını bulmak çok daha zordur.
Gerçek RSA uygulamalarında kullanılan asal sayılar genelde her biri 300 basamaklıdır.
Bu yüzden faktörleme işlemi günümüz bilgisayarlarıyla pratik olarak imkânsızdır.
🔑 RSA’da Anahtar Kullanımı
Asimetrik kriptografi mantığı burada da geçerlidir:
Rol | Açıklama |
---|---|
Herkese Açık Anahtar (Public Key) | Herkesle paylaşılır, şifreleme için kullanılır |
Özel Anahtar (Private Key) | Sadece sahibinde bulunur, şifre çözme (decryption) için kullanılır |
Örnek Senaryo:
-
Alice, Bob’a mesaj göndermek istiyor.
-
Bob’un herkese açık anahtarıyla mesajı şifreler.
-
Bu mesajı sadece Bob, özel anahtarıyla çözebilir.
➗ Modüler Aritmetik ve Sayısal RSA Örneği
Kriptografi temellerinde geçen mod işlemi burada hayati önem taşır.
Basit RSA Örneği:
-
Bob iki asal sayı seçer:
p = 157
,q = 199
-
n = p × q =
31243
-
Euler fonksiyonu: ϕ(n) = n - p - q + 1 =
30888
-
e = 163
seçilir → ϕ(n) ile aralarında asal. -
d = 379
bulunur →e × d mod ϕ(n) = 1
Böylece:
-
Public key:
(n, e) = (31243, 163)
-
Private key:
(n, d) = (31243, 379)
Şifreleme:
Mesaj: x = 13
Şifreli hali: y = x^e mod n = 13^163 mod 31243 = 16341
Çözme:
Şifre çözülürken: x = y^d mod n = 16341^379 mod 31243 = 13
Ve Alice’in gönderdiği orijinal değer geri elde edilir.
Not: Gerçek sistemlerde bu hesaplamalar çok daha büyük sayılarla yapılır.
🧩 RSA ve CTF’ler (Capture The Flag)
CTF yarışmalarında RSA’ya sıkça rastlanır.
Genellikle aşağıdaki değişkenler verilir:
Değişken | Açıklama |
---|---|
p, q | Asal sayılar |
n | p × q |
e | Public key’in parçası |
d | Private key’in parçası |
m | Mesaj (plaintext) |
c | Şifreli mesaj (ciphertext) |
Yarışmalarda genellikle c
, n
ve e
verilir; geri kalanları hesaplayıp m
'yi yani mesajı bulman beklenir.
🔧 Araçlar:
-
RsaCtfTool — Otomatik çözümler için çok başarılıdır.
-
rsatool — Anahtar üretimi ve çözümleme için kullanılır.
English Summary
RSA is a public-key encryption algorithm based on the difficulty of factoring large composite numbers. Multiplying two large primes is easy, but factoring their product is computationally hard.
Key Concepts:
-
Public key (n, e) is used to encrypt
-
Private key (n, d) is used to decrypt
-
Security comes from the fact that even if
n
is known, figuring outp
andq
is extremely hard.
RSA in Practice:
-
Pick primes
p
,q
; computen = p × q
-
Compute ϕ(n) and choose
e
such thatgcd(e, ϕ(n)) = 1
-
Find
d
such that(e × d) % ϕ(n) = 1
-
Encrypt with:
c = m^e mod n
-
Decrypt with:
m = c^d mod n
CTF Tips:
Learn to work with:
-
n, e, d, p, q, m, c
Use tools like RsaCtfTool to break weak or misconfigured RSA setups.