RSA Algoritmasında Prime Sayı Seçimi ve Güvenlik

RSA Algoritmasında Prime Sayı Seçimi ve Güvenlik
mustafa
Mesaj: 1
02.05.2025 21:18

Merhaba arkadaşlar,

Kriptoloji dersimde RSA algoritması üzerine bir proje hazırlıyorum. Algoritmanın çalışma prensibini anladım ancak güvenlik açısından kafama takılan bir konu var.

RSA algoritmasında kullanılan p ve q asal sayılarının büyüklüğü güvenliğe doğrudan etki ediyor bildiğim kadarıyla. Projemde 1024-bit anahtar kullanmayı düşünüyorum.

Sorularım şunlar:
1. Günümüz standartlarında güvenli bir RSA uygulaması için önerilen anahtar boyutu nedir?
2. p ve q sayılarının birbirine yakın olması bir güvenlik açığı oluşturur mu?
3. Prime sayı üretimi için önerilen bir yöntem var mı?

Cevaplarınız için şimdiden teşekkürler.

Son düzenleme: 02.05.2025 21:21
Cevaplar (3)
miray
02.05.2025 21:18
Mesaj: 1
Katılım: 05.2025

Merhaba mustafa,

Güzel sorular sormuşsun, RSA güvenliği için kritik noktaları yakalamışsın.

1. Günümüz standartlarında güvenli bir RSA uygulaması için minimum 2048-bit anahtar boyutu önerilmektedir. 1024-bit anahtarlar artık teorik olarak kırılabilir kabul ediliyor. Kritik uygulamalar için 3072 veya 4096-bit kullanılması daha güvenlidir.

2. p ve q sayılarının birbirine çok yakın olması gerçekten bir güvenlik zafiyetidir. Fermat faktörizasyon yöntemi, birbirine yakın p ve q değerlerini daha kolay faktörize edebilir. İdeal olarak, p ve q'nun aynı bit uzunluğunda olması ama değer olarak oldukça farklı olması önerilir.

3. Prime sayı üretimi için "Miller-Rabin Primality Test" gibi olasılıksal algoritmalar kullanılır. Rastgele büyük bir sayı üretip, bu testi geçene kadar devam edersiniz. Ayrıca:
   - p ve q'nun güçlü asal sayılar olması önerilir
   - (p-1) ve (q-1)'in de büyük asal faktörleri olmalı
   - |p| ≈ |q| olmalı (bit uzunlukları yaklaşık aynı)
   - |p-q|'nun büyük olması gerekir

Bir not daha: Modern uygulamalarda RSA genellikle AES gibi simetrik algoritmalara anahtar değişimi için kullanılır, büyük veri şifrelemesi için direkt kullanılmaz.

Projende başarılar dilerim!

Son düzenleme: 02.05.2025 21:19
sadikcan
02.05.2025 21:19
Mesaj: 1
Katılım: 04.2025

miray'ın söylediklerine ek olarak şunları da belirtmek isterim:

RSA anahtarı oluştururken dikkat edilmesi gereken başka hususlar da var:

1. Low private exponent attack: Özel üs (d) çok küçük seçilirse Wiener saldırısına maruz kalabilir.

2. Aynı modülüsü (n) farklı üslerle (e) kullanmak tehlikelidir. Bu durum, ortak modül saldırılarına yol açabilir.

3. Proje için standart bir kütüphane kullanmanı öneririm (OpenSSL gibi), kendi implementasyonunu yaparken bile anahtar üretimi için güvenilir kütüphaneler tercih edilmelidir.

4. Asal sayıları seçerken NIST tarafından önerilen bir rastgele sayı üreteci (CSPRNG) kullanmak önemlidir.

Projen için kaynak olarak NIST'in SP 800-57 dökümantasyonuna bakabilirsin, kriptografik anahtar yönetimi hakkında detaylı bilgi veriyor.

Son düzenleme: 02.05.2025 21:28
Konu Sahibi
mustafa
02.05.2025 21:21
Mesaj: 1
Katılım: 04.2025

miray ve mustafa, değerli bilgileriniz için çok teşekkür ederim!

Verdiğiniz bilgiler doğrultusunda:
1. Anahtarımı 2048-bit olarak güncelleyeceğim
2. p ve q değerlerinin birbirinden uzak olmasına dikkat edeceğim
3. OpenSSL kütüphanesini kullanarak anahtar üretimini güvenli bir şekilde yapacağım

Mobil uygulamamda RSA'yı sadece AES anahtarını transfer etmek için kullanacağım, büyük verileri AES ile şifreleyeceğim.

Cevap yazabilmek için giriş yapmalısınız.