Jaka jest różnica między DSA a RSA?


Odpowiedzi:


27

Odnosząc się, https://web.archive.org/web/20140212143556/http://courses.cs.tamu.edu:80/pooch/665_spring2008/Australian-sec-2006/less19.html


Szyfrowanie i deszyfrowanie RSA RSA są przemienne,
dlatego mogą być używane bezpośrednio jako schemat podpisu cyfrowego,
biorąc pod uwagę schemat RSA {(e, R), (d, p, q)}
do podpisania wiadomości M, oblicz:
S = M potęga d (mod R),
aby zweryfikować podpis, oblicz:
M = S moc e (mod R) = M moc ed (mod R) = M (mod R)

RSA może być używany zarówno do szyfrowania, jak i podpisów cyfrowych, po prostu odwracając kolejność, w jakiej są używane wykładniki: tajny wykładnik (d) do tworzenia podpisu, wykładnik publiczny (e) dla każdego, kto weryfikuje podpis. Wszystko inne jest identyczne.

DSA (Digital Signature Algorithm)
DSA jest wariantem algorytmów ElGamala i Schnorra, który tworzy 320-bitowy podpis, ale z bezpieczeństwem 512-1024-bitowym ponownie opiera się na trudności w obliczaniu logarytmów dyskretnych. Generacja klucza DSA jest dość powszechnie akceptowana


pierwsze wspólne globalne publiczne Kluczowe wartości (p, q, g) są wybierane:
wybierz dużą
liczbę pierwszą p = 2 potęgę L, gdzie L = 512 do 1024 bitów i jest wielokrotnością 64
wybierz q, 160 bitowy czynnik pierwszy z p-1
wybierz g = h power (p-1) / q
dla dowolnego h1,
wtedy każdy użytkownik wybiera klucz prywatny i oblicza swój klucz publiczny:
wybierz x oblicz y = g moc x (mod p)

Generowanie kluczy DSA jest powiązane, ale nieco bardziej złożone niż El Gamal. Głównie z powodu zastosowania dodatkowego 160-bitowego modułu q używanego do przyspieszenia obliczeń i zmniejszenia rozmiaru wynikowej sygnatury.

Tworzenie i weryfikacja podpisu DSA w

celu podpisania wiadomości M
generuje losowy klucz podpisu k, k oblicz
r = (moc g k (mod p)) (mod q)
s = k-1.SHA (M) + xr (mod q)
send podpis (r, s) z wiadomością

do weryfikacji podpisu, oblicz:
w = s-1 (mod q)
u1 = (SHA (M) .w) (mod q)
u2 = rw (mod q)
v = (g power u1.y power u2 (mod p)) (mod q)
jeśli v = r to podpis jest weryfikowany

Tworzenie podpisu jest ponownie podobne do ElGamala z użyciem tymczasowego klucza podpisu dla wiadomości k, ale najpierw wykonuje się obliczenie mod p, a następnie mod q, aby zmniejszyć rozmiar wyniku. Zauważ, że użycie funkcji skrótu SHA jest tutaj jawne. Weryfikacja obejmuje również porównanie dwóch obliczeń, które są nieco bardziej złożone niż El Gamal, ale są związane.
Zauważ, że prawie wszystkie obliczenia są mod q, a zatem są znacznie szybsze.
Ale w przeciwieństwie do RSA, DSA może być używane tylko do podpisów cyfrowych

Bezpieczeństwo DSA
Kanał podprogowy istnieje w wielu schematach (takich, które wymagają losowego wyboru), nie tylko w DSA. Podkreśla potrzebę „bezpieczeństwa systemu”, a nie tylko dobrego algorytmu.


link do twojego referencji jest uszkodzony
Paul Wintz

82

Sprawdź odpowiedź AVA poniżej .

Moja stara odpowiedź wydaje się błędna


Czy to oznacza, że ​​jeśli ilość danych do zaszyfrowania jest duża, będzie działać szybciej przy użyciu RSA?
WilliamKF

2
Nie, na odwrót. DSA jest szybsze w podpisywaniu (które matematycznie jest mniej więcej równe szyfrowaniu), więc jeśli musisz dużo szyfrować i często odszyfrowywać, DSA jest szybsze.
Henri

Wiele danych do zaszyfrowania po stronie klienta, ale są one odszyfrowane tylko raz na serwerze, więc czy DSA nadal wygrywa?
WilliamKF

30
DSA nie szyfruje. Powtarzam, DSA nie szyfruje. Oto quiz: Co oznacza „S” w DSA?
Prezydent James K. Polk

4
@GregS RSA może szyfrować, a DSA nie jest w stanie szyfrować, jest głównie kwestią terminologiczną. Nazywamy kilka różnych algorytmów RSA, z których część jest znakiem (np. RSA-PSS), część z nich szyfruje (np. RSA-OAEP). Ale każdemu algorytmowi w kryptowalutach grupowych nadaliśmy inną nazwę, nazywając jeden z algorytmów szyfrujących ElGamal encryption i jednym z algorytmów podpisu DSA.
CodesInChaos

24

Przy okazji, nie możesz szyfrować za pomocą DSA, tylko podpisuj. Chociaż są one matematycznie równoważne (mniej więcej), w praktyce nie można używać DSA jako schematu szyfrowania, a jedynie jako schemat podpisu cyfrowego.


20

W odniesieniu do man ssh-keygen, długość klucza DSA jest ograniczona do dokładnie 1024 bitów, aby zachować zgodność ze standardem NIST FIPS 186-2. Niemniej jednak teoretycznie możliwe są dłuższe klucze DSA; Standard FIPS 186-3 wyraźnie na to zezwala. Co więcej, bezpieczeństwo nie jest już gwarantowane w przypadku kluczy RSA lub DSA o długości 1024 bitów.

Podsumowując, klucz RSA 2048-bitowy jest obecnie najlepszym wyborem.

WIĘCEJ ŚRODKÓW OSTROŻNOŚCI

Ustanowienie bezpiecznego połączenia SSH to coś więcej niż wybranie technologii bezpiecznych par kluczy szyfrowania. W świetle rewelacji Edwarda Snowdena NSA trzeba być jeszcze bardziej czujnym niż to, co wcześniej uznano za wystarczające.

Aby wymienić tylko jeden przykład, równie ważne jest użycie bezpiecznego algorytmu wymiany kluczy . Oto ładny przegląd aktualnych najlepszych praktyk hartowania SSH .


Niektóre starsze wersje ssh-keygenpozwalają również na klucze o innych rozmiarach bitowych (ja sam używam 2048-bitowego klucza DSA wygenerowanego przy użyciu ssh-keygenRHEL).
Samveen

6

A oprócz powyższych fajnych odpowiedzi.

  • DSA używa logarytmu dyskretnego.
  • RSA używa faktoryzacji całkowitej.

RSA oznacza Ron R ivest, Adi S hamir i Leonard A dleman.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.