DSA와 RSA의 차이점은 무엇입니까?


답변:


27

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

RSA
RSA 암호화 및 복호화는 교환
적이므로 메시지 M에 서명하기
위해 RSA 체계 {(e, R), (d, p, q)}
가 주어진 경우 디지털 서명 체계로 직접 사용할 수 있습니다 .
S = M power d (mod R)
서명을 확인하려면 다음을 계산합니다.
M = S power e (mod R) = M power ed (mod R) = M (mod R)

RSA는 암호화 및 디지털 서명 모두에 사용할 수 있습니다. 단순히 지수가 사용되는 순서를 반대로 사용하면됩니다. 서명을 만드는 비밀 지수 (d), 서명을 확인하기위한 공개 지수 (e). 다른 모든 것은 동일합니다.

DSA (Digital Signature Algorithm)
DSA는 ElGamal의 변형이며 Schnorr 알고리즘은 320 비트 서명을 생성하지만 512-1024 비트 보안 보안은 다시 이산 로그 계산의 어려움에 달려 있습니다.

DSA 키 생성은
처음으로 공유 된 글로벌 공개 키 값 (p, q, g) 선택 :
큰 소수 p = 2 전력 L을 선택합니다.
여기서 L = 512 ~ 1024 비트이고 64의 배수입니다.
q를 선택하고, p-1의 160 비트 소수 인자를
선택합니다. g = h를 선택합니다.
모든 h1에 대해 power (p-1) / q
그러면 각 사용자가 개인 키를 선택하고 공개 키를 계산합니다.
choose x compute y = g power x (mod p)

DSA 키 생성은 El Gamal과 관련이 있지만 다소 복잡합니다. 주로 계산 속도를 높이고 결과 서명의 크기를 줄이는 데 사용되는 보조 160 비트 모듈러스 q를 사용하기 때문입니다.



메시지에 서명하기위한 DSA 서명 생성 및 확인 M
무작위 서명 키 생성 k, k 계산
r = (g power k (mod p)) (mod q)
s = k-1. SHA (M) + xr (mod q)
send 서명

을 확인하는 메시지 가있는 서명 (r, s) , 다음을 계산합니다.
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)
v = r이면 서명이 확인됩니다.

서명 생성은 메시지 당 임시 서명 키 k를 사용하는 ElGamal과 다시 비슷하지만 먼저 mod p를 계산 한 다음 mod q를 수행하여 결과 크기를 줄입니다. 해시 함수 SHA의 사용은 여기서 명시 적입니다. 검증은 또한 두 개의 계산을 비교하는 것으로 구성되며, 이는 El Gamal보다 약간 더 복잡하지만 관련이 있습니다.
거의 모든 계산이 mod q이므로 훨씬 빠릅니다.
그러나 RSA와 달리 DSA는 디지털 서명에만 사용할 수 있습니다.

DSA 보안
잠재 의식 채널의 존재는 DSA뿐만 아니라 여러 방식 (임의 번호를 선택해야하는 모든 방식)에 존재합니다. 좋은 알고리즘이 아닌 "시스템 보안"의 필요성을 강조합니다.


참조 링크가 깨졌습니다
Paul Wintz

82

아래 AVA의 답변을 확인하십시오 .

내 예전 대답이 틀린 것 같아


그렇다면 암호화 할 데이터 양이 많으면 RSA를 사용하여 더 빨리 실행 될까요?
WilliamKF

2
아니, 그 반대입니다. DSA는 서명이 더 빠르기 때문에 (수학적으로 암호화와 거의 같음) 많은 양을 암호화하고 자주 해독해야하는 경우 DSA가 더 빠릅니다.
Henri

클라이언트 측에서 암호화해야 할 데이터가 많지만 서버에서는 한 번만 복호화됩니다. 그렇다면 DSA가 여전히 이길까요?
WilliamKF

30
DSA는 암호화하지 않습니다. 반복합니다. DSA는 암호화하지 않습니다. 다음은 퀴즈입니다. DSA에서 "S"는 무엇을 의미합니까?
James K. Polk 회장

4
@GregS RSA가 암호화 할 수있는 것과 DSA가 암호화 할 수없는 것은 대부분 용어의 문제입니다. 우리는 몇 가지 다른 알고리즘을 RSA라고 부르는데, 그 중 일부는 서명 (예 : RSA-PSS), 일부는 암호화 (예 : RSA-OAEP)합니다. 그러나 우리는 그룹 기반 암호화의 모든 알고리즘에 다른 이름을 지정하여 암호화 알고리즘 중 하나 인 ElGamal 암호화를 호출하고 서명 알고리즘 중 하나 인 DSA를 호출했습니다.
CodesInChaos 2013-10-23

24

Btw, DSA로 암호화 할 수없고 서명 만합니다. 수학적으로는 거의 동일하지만 실제로 DSA를 암호화 체계로 사용할 수없고 디지털 서명 체계로만 사용할 수 있습니다.


20

를 참조 man ssh-keygen하면 DSA 키의 길이는 NIST의 FIPS 186-2를 준수하기 위해 정확히 1024 비트로 제한됩니다. 그럼에도 불구하고 이론적으로 더 긴 DSA 키가 가능합니다. FIPS 186-3은이를 명시 적으로 허용합니다. 또한 1024 비트 길이의 RSA 또는 DSA 키로 보안이 더 이상 보장되지 않습니다.

결론적 으로 2048 비트 RSA 키가 현재 최선의 선택입니다.

취해야 할 더 많은 예방 조치

보안 SSH 연결을 설정 하려면 안전한 암호화 키 쌍 기술을 선택 하는 것 이상을 수반 합니다. Edward Snowden의 NSA 폭로를 고려할 때, 이전에 충분하다고 생각했던 것보다 훨씬 더 경계해야합니다.

한 가지 예를 들자면 안전한 키 교환 알고리즘을 사용하는 것도 똑같이 중요합니다. 다음은 현재 최고의 SSH 강화 방법에 대한 좋은 개요입니다 .


일부 이전 버전은 ssh-keygen다른 비트 크기의 키도 허용합니다 (저는 ssh-keygenRHEL에서 생성 된 2048 비트 DSA 키를 사용 합니다).
Samveen

6

그리고 위의 좋은 답변 외에도.

  • DSA는 이산 로그를 사용합니다.
  • RSA는 정수 분해를 사용합니다.

RSA는 Ron R ivest, Adi S hamir 및 Leonard A dleman을 나타냅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.