[알고리즘]RSA(Rivest–Shamir–Adleman)와 ECC(Elliptic Curve Cryptography) 알고리즘 비교
안녕하세요 윈서트입니다.
PKI(공개키 기반구조)는 인터넷 통신과 컴퓨터 네트워크의 보안을 관리한다. PKI의 핵심기술은 두 개의 키 – 공개키 와 개인키 – 사용에 필요한 암호화 기술이다.
공개키와 개인키는 한 쌍으로 메시지를 암호화하고 암호를 해독한다. 이 방식을 비대칭 암호화라고 한다. 반면 대칭 암호화는 한 개의 키로 암호화하고 암호를 해독하는 방식이다. 비대칭 암호화의 장점은 공개 키는 외부에 공개되지만 개인 키는 사용자 장치에 안전하게 저장되어 보안성이 높다.
공개키 암호화 방식
공개키는 메시지를 암호화할 때 사용하는 임의의 숫자 문자열로 구성된다. 지정된 수신인만이 공개키와 한 쌍인 개인키를 사용하여 암호화된 메시지를 해독하여 읽어낼 수 있다. 두 개의 키가 한 쌍으로 구성될 때 복잡한 암호화 알고리즘을 사용하여 만들어지기 때문에 무작위로 공격하는 해커의 방법에 방어할 수 있다.
공개 키의 길이가 암호화 강도를 결정한다. RSA키는 2048 비트로 SSL 인증서, 디지털 서명 및 기타 디지털 인증서에 사용된다. 이는 CA/Browser Forum(인증 기관과 브라우저 협의체)는 정의한 암호화 강도이다.
PKI는 웹 사이트, 모바일 앱, 온라인 문서 및 이들과 연결된 장치를 확인하는 디지털 인증서를 가능하게 한다. 일반적인 사례 중 하나는 TLS(Transport Layer Security)/ SSL(Secure Socket Layer)이다. 이는 안전한 웹 검색을 지원하는 HTTPS 프로토콜의 기본이다. 디지털 인증서는 응용 프로그램 코드 서명, 디지털 서명, 디지털 ID 및 보안의 다른 측면을 포함한 광범위하게 적용된다.
PKI 키 생성의 세가지 기본 알고리즘
1. RSA(Rivest–Shamir–Adleman) 알고리즘은 1977년 론 리베스트, 아디 샤미르, 레너드 애들먼에 의해 개발되었다. 공개 키와 개인 키를 활용한 최초의 알고리즘이다. RSA는 다양한 키 길이가 있지만 현재 대부분의 웹 사이트에서 2048비트 RSA를 표준으로 사용한다.
2. DSA(디지털 서명 알고리즘 )는 RSA와는 다른 알고리즘(모듈식 지수 및 이산 로그 기반)으로 공개키/개인키를 생성하나 동일한 수준의 보안을 제공한다.
3. ECC(Elliptic Curve Cryptography)는 타원 곡선 암호화를 이용한 알고리즘으로 최근에 개발된 암호화 방법이다. RSA와 DSA보다 짧은 키 길이로 동등한 수준의 암호화 강도를 제공한다.
여러 암호화 알고리즘을 동시에 지원할 수 있다. 예를 들어 Apache 서버는 동일한 서버에서 RSA 및 DSA 생성 키를 모두 지원할 수 있다. 이를 통해서 기업 보안 방식을 강화할 수 있다.
RSA와 DSA 비교
RSA와 DSA는 공개키와 개인키를 생성하기 위해 서로 다른 수학 알고리즘을 사용하지만 암호화 강도는 동등하다
1) 성능 및 속도
- RSA는 암호화 및 서명에 있어 속도가 빠르고 DSA는 암호 해독과 확인에 있어 속도가 빠르다. RSA는 키 생성은 속도가 느리지만 키가 한번 생성되면 몇 개월 또는 몇 년을 사용하기 때문에 사용 부분에선 유리하다.
2) SSH 프로토콜 지원 여부
- RSA는 SSH과 최신 버전의 SSH2도 호환되지만 DSA는 SSH2에서 작동한다. 참고로 SSH가 최근 보안에 있어서 취약하다.
3) 미국연방 정부 승인
- DSA는 미국 연방 정부의 승인을 받았다. 연방 기관에 서비스를 제공하는 기업의 경우 DSA 사용이 유리하다.
사용 사례,
산업 및 규제 환경에서 RSA와 DSA는 유사한 암호화 강도를 제공한다. 또한 두 알고리즘은 Nettle, OpenSSL, wolfCrypt, Crypto+, Cryptob을 포함한 인터넷 프로토콜과 동등하게 호환된다.
ECC와 RSA/DSA 비교
ECC와 RSA/DSA의 큰 차이점은 ECC가 동일한 키 크기로 더 큰 암호화 강도를 제공한다는 점이다.
ECC 알고리즘은 상대적으로 짧은 키 길이에도 동일한 암호화 강도를 얻을 수 있다. 예를 들어, RSA 2048 비트가 필요한 암호화 강도를 ECC는 224 비트만 사용한다. 또한 키가 더 짧기 때문에 웹 페이지 로딩 시간이 빨라질 수 있다. 하지만 짧은 키 길이는 데이터 암호화 및 해독 처리 능력이 낮으므로 제한된 성능의 모바일 장치, 사물 인터넷 및 사례에 적합하다.