개요
최근에, 장단점에 대한 수많은 토론이 있었다 RSA[01]
및 ECDSA[02], 암호화 커뮤니티에서. 시작되지 않은 사람들에게는
가장 널리 사용되는 디지털 서명 알고리즘
정통한 사실을 따라 가기가 매우 어려울 수 있습니다. 이 기사는
두 알고리즘의 단순화 비교를 시도하십시오. 그러나 이것은 아닙니다
심도 깊은 기술 에세이, 더 참을성이없는 독자는
토론 요약이 포함 된 빠른 TL; DR 테이블에 대한 기사.
ECDSA 대 RSA
ECDSA 및 RSA는 다음에서 사용하는 알고리즘입니다. public key cryptography시스템,
메커니즘을 제공하기 위해 인증. 공개 키 암호화는
키 쌍을 사용하는 암호화 시스템 설계 과학 : 공개
키 (따라서 이름)는 누구에게나 자유롭게 배포 할 수 있습니다.
일치하는 private key소유자에게만 알려집니다. 입증
개인 키로 서명 된 메시지가
특정 개인 키 소유자가 생성합니다. 에 사용되는 알고리즘
인증은 통칭하여 디지털 서명 알고리즘 [04].
이러한 알고리즘은 비교적 간단한 복잡한 수학 문제에 의존합니다.
반대로 비현실적이지만 한 가지 방법으로 계산합니다. 이것은
개인에 대한 지식없이 디지털 서명을 위조하는 공격자
키와 같이 정수와 같은 다루기 힘든 수학 문제를 해결해야합니다.
알려진 효율적인 솔루션이없는 인수 분해 [05].
이 계정에는 사용할 수있는 효율적인 솔루션이 없기 때문에
기본적인 수학 문제, 암호화 알고리즘의 평가는
와 함께 구현 세부 사항에 대해서만 발생
그들이 제공하는 보안 수준. 이를 위해이 섹션에서는
XNUMX 개 (또는 XNUMX 개)의 계량 메트릭을 사용하여 RSA 및 ECDSA를 비교합니다. 각 메트릭
누구에게나 중요한 의미와 함께 자체 섹션에 소개되어 있습니다.
두 알고리즘 사이에서 결정하려고합니다.
양자
RSA는 수년간 공개 키 암호화의 업계 표준이었습니다.
지금. 대부분의 SSL /TLS 인증서는 RSA 키로 서명되고 있습니다.
지금까지 대부분의 CA가 ECDSA 기반 지원을 구현했지만
인증서,이 오래 지속 채택 많은 레거시 시스템으로 이어졌다
RSA를 지원합니다. 따라서 공급 업체가 이전 버전과의 하위 호환성을 요구하는 경우
클라이언트 소프트웨어의 경우 RSA로 서명 된 인증서를 사용해야합니다. 요즘,
그러나 대부분의 최신 고객은 ECDSA에 대한 지원을 구현했습니다.
가까운 시일 내에이 호환성 제약 조건을 제거 할 수 있습니다.
표준 성숙도
RSA는 SSL /TLS ECDSA가 소개되는 동안 1994 년에 [06]
의 사양에서 TLS 1.2 년 v2008 [07]. 이 나이 차이는
모범 사례를 설명하는 표준 성숙도의 차이
각 알고리즘. RSA 표준은 광범위하게 연구되어 왔지만
감사, ECDSA는 그다지 관심을 보지 못했습니다. 최근에 이것의 옹호
주요 CA의 알고리즘과 최신 SSL /TLS 고객이
더 광범위한 연구 결과가 발표되었지만 여전히
비교적 새로운 계획. 이것은 발견되지 않은 디자인 결함 또는
미래에 잘못된 구현이 공개되고 있습니다.
키 크기 대 보안 수준 비율
보안 수준 [08]는 강도를 나타내는 암호화의 메트릭입니다.
암호화 기본 또는 기능의. 일반적으로 "비트"로 측정됩니다.
공격자가 공격을 수행하기 위해 수행해야하는 작업 수를 나타냅니다.
보안. 이 메트릭은 효능을 비교하기위한 정량화 방법을 제공 할 수 있습니다
다양한 암호 시스템. 공개 키 크기도 강조해야합니다.
비트 단위로 측정되지만 완전히 다른 개념입니다.
키의 물리적 크기.
이와 관련하여 일반적인 RSA 2048 비트 공개 키는 다음과 같은 보안 수준을 제공합니다.
112 비트 그러나 ECDSA는 224 비트 크기의 공개 키만 있으면
동일한 112 비트 보안 수준. 키 크기의이 놀라운 차이는
중요한 의미. 키 크기가 작을수록 더 적은 대역폭이 필요합니다.
SSL /TLS ECDSA 인증서는 모바일에 이상적입니다.
신청. 또한 이러한 인증서는 많은 장치에 저장할 수 있습니다
더 제한적인 메모리 제약, m /TLS 스택
많은 리소스를 할당하지 않고 IoT 장치에서 구현됩니다. 출판
연구에 따르면 ECDSA가 임베디드에서 구현하는 것이 더 효율적이라는 것이 밝혀졌다 [09]
장치.
성능 및 시간 복잡성
알고리즘은 특정 목표를 달성하는 방법을 설명하는 추상적 인 요리법입니다.
컴퓨터 과학에서 그들의 성과는
이 미리 정해진 결말에 도달하는 데 필요한 기본 작업
질환. 이러한 측정 항목을 시간 복잡성. 다른 입력 이후
크기는 다른 작업 수를 요구하며, 시간 복잡도는 보통
입력 크기의 함수로 표현됩니다.
문제의 알고리즘은 모두 같은 시간이 소요됩니다
나누기 및 곱하기와 같은 수학 연산. 따라서 입력 크기
(이 경우 키 크기) 가장 중요합니다.
성능에 영향을 미치는 요소. 두 알고리즘을 비교하려면
메시지 서명과 서명 확인으로 구분됩니다. 대부분
실제 구현에서 RSA는 ECDSA보다 훨씬 빠릅니다.
서명하는 동안 속도는 느리지 만 서명 확인
보안 수준이 높아질수록 상황이 복잡해집니다. 예를 들어
112 비트 보안 수준의 공통 구성, RSA에는 2048 비트 필요
224 비트 키가 필요한 ECDSA와 비교 128 비트의 다음 공통 레벨에서 RSA
3072 비트 키가 필요하지만 ECDSA는 256 비트 만 필요합니다. 이로 인해 RSA의
ECDSA는 약간만 영향을받는 반면 성능은 크게 저하됩니다. 같이
이 스케일링 문제의 결과, RSA는
보안 요구 사항이 지속적으로 증가하면
ECDSA는 미래의 사실상의 솔루션입니다.
포스트 퀀텀 저항
쇼어 알고리즘 [10]은 RSA 키를 사용하여 잘 알려진 알고리즘입니다.
양자 컴퓨터. (공용) 실제 구현은 없기 때문에
이러한 기계, 다음은 공개 키의 미래에 대한 추측입니다
암호화. 이 글을 쓰는 순간, Shor의 최고의 구현은
알고리즘은 15 비트 키 RSA 암호화를 물리 칠 수 있습니다. 이것은 들리지 않지만
양자 컴퓨팅, RSA에 대한 연구가 점점 더 많아 질수록
언제든지 심각한 문제가 발생할 수 있습니다.
타원이기 때문에 ECDSA 옹호자들이 빨리 축하해서는 안됩니다.
커브 암호화 또한 취약하다 [11] Shor의 수정 된 버전
연산. 따라서 양자 컴퓨터에 의해 두 암호가 모두 깨질 수 있다면
유일한 객관적인 척도는 그러한
공격. 공개 연구에 따르면 RSA 2048 비트 키에는 4098 쿼 비트가 필요합니다.
ECDSA 5.2 비트 키와는 달리 256 조 Tofolli 게이트가 패배
2330 큐 비트 (126 억 Tofolli 게이트) 만 필요합니다. 따라서 RSA는 더
이론적 인 양자 기계를 사용하여 파손하기가 비쌉니다.
결론
이 비교가 결코 포괄적 인 것은 아니지만,
RSA는 최고의 디지털 서명으로서의 입지를 합리적으로 얻었습니다.
대부분의 인증서 응용 프로그램에 대한 알고리즘. 그러나 기술은 항상
더 예측할 수없는 방식으로 발전함에 따라 보안 인식 및 요구 사항도
증가. XNUMX 년 전에 임베디드 장치 보안은
허구와 요즘 안전한 커뮤니케이션은 모든 세계에서 필수 아이템입니다.
신청. 그 결과 ECDSA가 비교적 젊어도 누구나
SSL /에서 인증을위한 표준으로 RSA를 대체할지 추측TLS
구현.
독자가 여전히 어떤 알고리즘을 선택할지 결정할 수 없다면
ECDSA 및 RSA (대체 메커니즘으로)를 모두 지원하기위한 솔루션
암호화 커뮤니티가 승자에게 정착합니다. 향후이 기사 섹션을 확인하십시오.
사용법 안내.
TL; DR 테이블
메트릭 | RSA | ECDSA |
---|---|---|
양자 | ? | |
성숙 | ? | |
키 사이즈 | ? | |
퍼포먼스 | ? | |
스케일링 | ? | |
P / Q 저항 | ? |
참고자료
- [01] RSA 알고리즘
- [02] ECDSA 알고리즘
- [03] 공개 키 암호화
- [04] 디지털 서명 알고리즘
- [05] NP 복잡성
- [06] SSL v.0.0 RFC
- [07] TLS v.1.2 RFC
- [08] 보안 수준
- [09] 임베디드 시스템 용 RSA 대 ECC
- [10] 쇼르의 알고리즘
- [11] ECDL에 대한 양자 자원 추정치