타원 곡선 암호: Difference between revisions
From CS Wiki
No edit summary |
|||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:보안]][[분류:암호학]] | [[분류:보안]][[분류:암호학]] | ||
; ECC, Elliptic Curve Cryptosystem | ; ECC, Elliptic Curve Cryptosystem | ||
; 이산대수의 난해성에 기반한 공개키 암호화 알고리즘. | ; RSA의 대안으로 대두된 이산대수의 난해성에 기반한 공개키 암호화 알고리즘 | ||
* 창시자 : 코블리츠(N.Koblitz), 밀러(V.S.Miller) | |||
== 특징 == | |||
* RSA보다 키의 비트수를 적게 하면서 동일한 성능을 | * RSA보다 키의 비트수를 적게 하면서 동일한 성능을 제공 | ||
** 160비트의 ECC가 1024비트의 RSA와 동일한 보안수준 | ** 160비트의 ECC가 1024비트의 RSA와 동일한 보안수준 | ||
** 키 생성 시간이 RSA에 비해 수십배 이상 빠름 | |||
== 키 생성 과정 == | |||
; (곡선의 수식) y<sup>2</sup> = x<sup>3</sup> + ax + b | |||
[[파일:타원 곡선 암호 연산.png|x250px]][[파일:타원 곡선 암호 연산2.png|x250px]] | |||
* ① 생성 포인트 시작해서 타원곡선의 접선을 그음 | |||
* ② 타원곡선과 만나는 점을 찍음 | |||
* ③ ②번에서의 점과 대칭인 점이 목표점 | |||
* 위의 과정은 반복하기 쉬우나, ③번 목표점 ①번의 생성점을 찾긴 매우 어려움 | |||
== [[RSA]]와 [[ECC]]의 비교 == | |||
{| class="wikitable" | |||
! 구분 | |||
! [[ECC]] | |||
! [[RSA]] | |||
|- | |||
| 속도 | |||
| 빠름 | |||
| 느림 | |||
|- | |||
| 키 길이 | |||
| 짧음 | |||
| 김 | |||
|- | |||
| 시장점유율 | |||
| 낮음 | |||
| 높음 | |||
|- | |||
| 적용 사례 | |||
| [[비트코인]], [[ECDSA]] | |||
| [[TLS]], [[공인인증서]] | |||
|- | |||
| 장점 | |||
| 효율성 | |||
| 오랜 기간 입증된 안전성 | |||
|} | |||
== 활용 == | |||
* RSA에 비해 우수한 특징이 많으나 특허가 걸려 있어 널리 사용되지 못함 | |||
* 현재는 특허가 풀려 자유롭게 사용 가능한 상황 | |||
* '''적용 분야''' | |||
** [[비트코인]] | |||
** [[ECDSA]] | |||
** [[ElGamal]] | |||
== 사용 시 주의사항 == | |||
;난수 생성기(Random Number Generator)의 중요성 | |||
* RSA에 비교한 ECC의 약점은, 사용되는 짧은 bit수의 Private-Key | |||
* Private-Key는 난수 생성기를 통해서 만들어지며, 난수의 품질이 떨어지면 예측 가능 | |||
* '''사례''' | |||
** 2013년, 안드로이드 지갑에 저장된 비트코인 도난 사건 | |||
** 안드로이드의 난수 생성기를 사용하여 공격자가 이 난수를 파악하여 Private-Key를 예측 | |||
* '''대응''' | |||
** 기밀성이 유지되는 환경에서 품질 높은 난수 생성기 사용 | |||
** [[HSM]]과 같이 하드웨어적으로 안전하게 난수를 생성하는 장비 이용 등 | |||
== 같이 보기 == | |||
* [[RSA]] | |||
== 참고 문헌 == | |||
* [https://steemit.com/dclick/@eaglekeeneye/-5-bitcoin-2-1544235909120 Bitcoin은 어떻게 신뢰를 얻게 되었나 2] | |||
* [https://www.crocus.co.kr/1226 타원 곡선 암호학(Elliptic Curve Cryptography)] |
Latest revision as of 21:27, 11 May 2021
- ECC, Elliptic Curve Cryptosystem
- RSA의 대안으로 대두된 이산대수의 난해성에 기반한 공개키 암호화 알고리즘
- 창시자 : 코블리츠(N.Koblitz), 밀러(V.S.Miller)
특징[edit | edit source]
- RSA보다 키의 비트수를 적게 하면서 동일한 성능을 제공
- 160비트의 ECC가 1024비트의 RSA와 동일한 보안수준
- 키 생성 시간이 RSA에 비해 수십배 이상 빠름
키 생성 과정[edit | edit source]
- (곡선의 수식) y2 = x3 + ax + b
- ① 생성 포인트 시작해서 타원곡선의 접선을 그음
- ② 타원곡선과 만나는 점을 찍음
- ③ ②번에서의 점과 대칭인 점이 목표점
- 위의 과정은 반복하기 쉬우나, ③번 목표점 ①번의 생성점을 찾긴 매우 어려움
RSA와 ECC의 비교[edit | edit source]
구분 | ECC | RSA |
---|---|---|
속도 | 빠름 | 느림 |
키 길이 | 짧음 | 김 |
시장점유율 | 낮음 | 높음 |
적용 사례 | 비트코인, ECDSA | TLS, 공인인증서 |
장점 | 효율성 | 오랜 기간 입증된 안전성 |
활용[edit | edit source]
사용 시 주의사항[edit | edit source]
- 난수 생성기(Random Number Generator)의 중요성
- RSA에 비교한 ECC의 약점은, 사용되는 짧은 bit수의 Private-Key
- Private-Key는 난수 생성기를 통해서 만들어지며, 난수의 품질이 떨어지면 예측 가능
- 사례
- 2013년, 안드로이드 지갑에 저장된 비트코인 도난 사건
- 안드로이드의 난수 생성기를 사용하여 공격자가 이 난수를 파악하여 Private-Key를 예측
- 대응
- 기밀성이 유지되는 환경에서 품질 높은 난수 생성기 사용
- HSM과 같이 하드웨어적으로 안전하게 난수를 생성하는 장비 이용 등