타원 곡선 암호: Difference between revisions

From CS Wiki
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 2: Line 2:
; ECC, Elliptic Curve Cryptosystem
; ECC, Elliptic Curve Cryptosystem
; RSA의 대안으로 대두된 이산대수의 난해성에 기반한 공개키 암호화 알고리즘
; RSA의 대안으로 대두된 이산대수의 난해성에 기반한 공개키 암호화 알고리즘
* 창시자 : 코블리츠(N.Koblitz), 밀러(V.S.Miller)


* 창시자 : 코블리츠(N.Koblitz), 밀러(V.S.Miller)
== 특징 ==
* RSA보다 키의 비트수를 적게 하면서 동일한 성능을 제공
* RSA보다 키의 비트수를 적게 하면서 동일한 성능을 제공
** 160비트의 ECC가 1024비트의 RSA와 동일한 보안수준
** 160비트의 ECC가 1024비트의 RSA와 동일한 보안수준
Line 9: Line 10:


== 키 생성 과정 ==
== 키 생성 과정 ==
; 곡선의 수식: y<sup>2</sup> = x<sup>3</sup> + ax + b
; (곡선의 수식) y<sup>2</sup> = x<sup>3</sup> + ax + b
[[파일:타원 곡선 암호 연산.png|x250px]][[파일:타원 곡선 암호 연산2.png|x250px]]
[[파일:타원 곡선 암호 연산.png|x250px]][[파일:타원 곡선 암호 연산2.png|x250px]]
* ① 생성 포인트 시작해서 타원곡선의 접선을 그음
* ① 생성 포인트 시작해서 타원곡선의 접선을 그음
Line 34: Line 35:
| 높음
| 높음
|-
|-
| 주요 사용처
| 적용 사례
| 모바일 환경
| [[비트코인]], [[ECDSA]]
(그 외 환경으로 확대 중)
| [[TLS]], [[공인인증서]]
| 유선 환경
|-
|-
| 장점
| 장점
Line 43: Line 43:
| 오랜 기간 입증된 안전성
| 오랜 기간 입증된 안전성
|}
|}
== 활용 ==
* RSA에 비해 우수한 특징이 많으나 특허가 걸려 있어 널리 사용되지 못함
* 현재는 특허가 풀려 자유롭게 사용 가능한 상황
* '''적용 분야'''
** [[비트코인]]
** [[ECDSA]]
** [[ElGamal]]


== 사용 시 주의사항 ==
== 사용 시 주의사항 ==
 
;난수 생성기(Random Number Generator)의 중요성
* RSA에 비교한 ECC의 약점은, 사용되는 짧은 bit수의 Private-Key
* Private-Key는 난수 생성기를 통해서 만들어지며, 난수의 품질이 떨어지면 예측 가능
* '''사례'''
** 2013년, 안드로이드 지갑에 저장된 비트코인 도난 사건
** 안드로이드의 난수 생성기를 사용하여 공격자가 이 난수를 파악하여 Private-Key를 예측
* '''대응'''
** 기밀성이 유지되는 환경에서 품질 높은 난수 생성기 사용
** [[HSM]]과 같이 하드웨어적으로 안전하게 난수를 생성하는 장비 이용 등


== 같이 보기 ==
== 같이 보기 ==
Line 51: Line 67:


== 참고 문헌 ==
== 참고 문헌 ==
* [https://steemit.com/dclick/@eaglekeeneye/-5-bitcoin-2-1544235909120 Bitcoin은 어떻게 신뢰를 얻게 되었나 2
* [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

타원 곡선 암호 연산.png타원 곡선 암호 연산2.png

  • ① 생성 포인트 시작해서 타원곡선의 접선을 그음
  • ② 타원곡선과 만나는 점을 찍음
  • ③ ②번에서의 점과 대칭인 점이 목표점
  • 위의 과정은 반복하기 쉬우나, ③번 목표점 ①번의 생성점을 찾긴 매우 어려움

RSAECC의 비교[edit | edit source]

구분 ECC RSA
속도 빠름 느림
키 길이 짧음
시장점유율 낮음 높음
적용 사례 비트코인, ECDSA TLS, 공인인증서
장점 효율성 오랜 기간 입증된 안전성

활용[edit | edit source]

  • RSA에 비해 우수한 특징이 많으나 특허가 걸려 있어 널리 사용되지 못함
  • 현재는 특허가 풀려 자유롭게 사용 가능한 상황
  • 적용 분야

사용 시 주의사항[edit | edit source]

난수 생성기(Random Number Generator)의 중요성
  • RSA에 비교한 ECC의 약점은, 사용되는 짧은 bit수의 Private-Key
  • Private-Key는 난수 생성기를 통해서 만들어지며, 난수의 품질이 떨어지면 예측 가능
  • 사례
    • 2013년, 안드로이드 지갑에 저장된 비트코인 도난 사건
    • 안드로이드의 난수 생성기를 사용하여 공격자가 이 난수를 파악하여 Private-Key를 예측
  • 대응
    • 기밀성이 유지되는 환경에서 품질 높은 난수 생성기 사용
    • HSM과 같이 하드웨어적으로 안전하게 난수를 생성하는 장비 이용 등

같이 보기[edit | edit source]

참고 문헌[edit | edit source]