DSA ve RSA arasındaki fark nedir?


Yanıtlar:


27

Başvuran, https://web.archive.org/web/20140212143556/http://courses.cs.tamu.edu:80/pooch/665_spring2008/Australian-sec-2006/less19.html

RSA
RSA şifreleme ve şifre çözme değişmeli
olduğundan
,
bir M mesajını imzalamak için bir RSA şeması {(e, R), (d, p, q)} verilen bir dijital imza şeması olarak doğrudan kullanılabilir , hesaplayın:
S = M güç d (mod R)
bir imzayı doğrulamak için, hesaplayın:
M = S power e (mod R) = M power ed (mod R) = M (mod R)

RSA, hem şifreleme hem de dijital imzalar için, basitçe üslerin kullanıldığı sırayı tersine çevirerek kullanılabilir: imzayı oluşturmak için gizli üs (d), herkesin imzayı doğrulaması için ortak üs (e). Diğer her şey aynıdır.

DSA (Dijital İmza Algoritması)
DSA, ElGamal ve Schnorr algoritmalarının bir varyantıdır, ancak 512-1024 bit güvenlik ile güvenlik, ayrık logaritmaları hesaplamanın zorluğuna dayanır

DSA Anahtar Üretimi,
ilk olarak genel olarak paylaşılır anahtar değerleri (p, q, g) seçilir:
büyük bir asal p = 2 güç L seçin,
burada L = 512 ila 1024 bit ve 64'ün katıdır
q seçin, p-1'in 160 bitlik asal çarpanı
g = h'yi seçin
Herhangi bir h1 için power (p-1) / q ,
sonra her kullanıcı bir özel anahtar seçer ve kendi genel anahtarını hesaplar:
x hesaplama y = g güç x (mod p) seçin

DSA anahtar oluşturma, El Gamal ile ilgilidir, ancak biraz daha karmaşıktır. Çoğunlukla, hesaplamaları hızlandırmaya ve ortaya çıkan imzanın boyutunu azaltmaya yardımcı olmak için kullanılan ikincil 160 bitlik modül q'nun kullanılması nedeniyle.



Bir mesajı imzalamak için DSA İmza Oluşturma ve Doğrulama M
rastgele imza anahtarı oluşturur k, k hesaplama
r = (g güç k (mod p)) (mod q)
s = k-1. SHHA (M) + xr (mod q)
gönder imza (r, s)

bir imzayı doğrulamak için mesajla , hesaplayın:
w = s-1 (mod q)
u1 = (SHA (M) .w) (mod q)
u2 = rw (mod q)
v = (g güç u1.y güç u2 (mod p)) (mod q)
v = r ise imza doğrulanır

İmza oluşturma, mesaj başına geçici imza anahtarı k kullanımıyla yine ElGamal'a benzer, ancak sonucun boyutunu küçültmek için önce mod p sonra mod q hesaplanır. Karma işlevi SHA'nın kullanımının burada açık olduğunu unutmayın. Doğrulama ayrıca, yine El Gamal'den biraz daha karmaşık, ancak El Gamal ile ilişkili olan iki hesaplamayı karşılaştırmaktan ibarettir.
Neredeyse tüm hesaplamaların mod q olduğunu ve dolayısıyla çok daha hızlı olduğunu unutmayın.
Ancak, RSA'nın aksine, DSA yalnızca dijital imzalar için kullanılabilir

DSA Güvenliği
Bir bilinçaltı kanalının varlığı, yalnızca DSA'da değil, birçok şemada (rastgele bir sayı seçilmesi gereken herhangi biri) mevcuttur. Yalnızca iyi bir algoritmanın değil, "sistem güvenliğinin" gerekliliğini vurgular.


referansınızın bağlantısı kesildi
Paul Wintz

82

AVA'nın aşağıdaki yanıtını kontrol edin .

Eski cevabım yanlış görünüyor


Peki bu, şifrelenecek veri miktarı büyükse, RSA kullanılarak daha hızlı çalışacağı anlamına mı geliyor?
WilliamKF

2
Hayır, tam tersi. DSA imzalamada daha hızlıdır (matematiksel olarak şifrelemeye az çok eşittir), bu nedenle çok fazla şifrelemeniz ve sık sık şifre çözmeniz gerekiyorsa, DSA daha hızlıdır.
Henri

İstemci tarafında şifrelenecek çok fazla veri var, ancak sunucuda yalnızca bir kez şifresi çözülür, yani DSA yine de kazanır mı?
WilliamKF

30
DSA şifreleme yapmaz. Tekrar ediyorum, DSA şifreleme yapmaz. İşte bir test: DSA'daki "S" ne anlama geliyor?
Başkan James K. Polk

4
@GregS RSA'nın şifreleyebilmesi ve DSA'nın şifreleyememesi çoğunlukla bir terminoloji sorunudur. Birkaç farklı algoritmaya RSA diyoruz, bunlardan bazıları işaretler (örn. RSA-PSS), bazıları şifreli (örn. RSA-OAEP). Ancak grup tabanlı kriptodaki her algoritmaya farklı bir ad verdik, şifreleme algoritmalarından biri olan ElGamal şifrelemesi ve imza algoritmalarından biri olan DSA adını verdik.
CodesInChaos

24

Btw, DSA ile şifreleyemezsin, sadece imzala. Matematiksel olarak eşdeğer (aşağı yukarı) olsalar da, DSA'yı pratikte bir şifreleme şeması olarak, yalnızca dijital imza şeması olarak kullanamazsınız.


20

Referans olarak man ssh-keygen, bir DSA anahtarının uzunluğu, NIST'in FIPS 186-2 ile uyumlu kalması için tam olarak 1024 bit ile sınırlandırılmıştır. Bununla birlikte, daha uzun DSA anahtarları teorik olarak mümkündür; FIPS 186-3 bunlara açıkça izin verir. Ayrıca, 1024 bit uzunluğundaki RSA veya DSA anahtarlarıyla güvenlik artık garanti edilmemektedir.

Sonuç olarak, 2048 bitlik bir RSA anahtarı şu anda en iyi seçimdir.

ALINACAK DİĞER ÖNLEMLER

Güvenli bir SSH bağlantısı kurmak, güvenli şifreleme anahtarı çifti teknolojisini seçmekten daha fazlasını gerektirir . Edward Snowden'ın NSA ifşaatlarına göre, daha önce yeterli kabul edilenden daha da ihtiyatlı olmak gerekiyor.

Sadece bir örnek vermek gerekirse, güvenli bir anahtar değişim algoritması kullanmak da aynı derecede önemlidir. İşte mevcut en iyi SSH sertleştirme uygulamalarına güzel bir genel bakış .


Bazı eski sürümleri, ssh-keygendiğer bit boyutlu anahtarlara da izin verir (ben kendim ssh-keygen, RHEL'de oluşturulan 2048 bitlik bir DSA anahtarı kullanıyorum ).
Samveen

6

Ve yukarıdaki güzel cevaplara ek olarak.

  • DSA, Ayrık logaritma kullanır.
  • RSA, Tamsayı Ayrıştırmayı kullanır.

RSA, Ron R ivest, Adi S hamir ve Leonard A dleman'ın kısaltmasıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.