본문 바로가기
정보 보안/보안 기본 개념

ECC 암호화 기법 - 공개키 생성 알고리즘

by tryotto 2020. 3. 9.

# ECC 암호화 기법 - 공개키 암호화 기법



- 배경 : 


      1) RSA 기법의 경우, 안정성은 어느정도 보장이 되지만, 개인키의 비트 수가 길어야 안정성이 보장된다

> why? 어느정도 짧은 길이의 경우, 수학적으로 봤을때 해킹 가능성이 높았음

> 이를 보완하기 위해선, 비트 수 자체를 늘리면 됐다 (자연스럽게 보안성이 증가함)

      

      2) 그러나 시대가 변하면서, 휴대폰/컴퓨터 등 소형 기기에서도 보안성을 요구하게 됨


      3) 이런 기기들에서 비트수를 무작정 늘릴 수 없음 (비트 수를 모두 감당하기 위해선 너무 무거워짐)




- 전체적인 매커니즘 (동영상 참조 : https://www.youtube.com/watch?v=gAtBM06xwaw )


      1) 첫 시작지점인 A 와, 특정 시점에서의 결괏값 E 가 주어진다고 하자

    

      2) 이때, A와 E 는 외부로 공개 되어도 상관없는, 일종의 공개키 쌍이라고 할 수 있다

    

      3) 그러나 이 쌍이 있어도, A 가 E 를 도출하기까지 필요한 타원곡선 곱의 횟수를 추론하기가 매우 힘들다


      4) 이때, "타원 곡선 곱의 횟수" 자체를 개인키로 설정!

> 얼핏 봐도 알 수 있듯, 횟수 자체를 개인키로 설정해버린다면

   굳이 개인키의 비트 수를 어마어마하게 늘릴 필요가 없다


> 횟수가 적어도 충분히 아주 다양한 값들을 커버 가능하다

> 횟수라는 성질 자체뿐만 아니라, ECC 알고리즘은 어느 정도의 threshold 를 설정해뒀기 때문에

   공개키의 원소인 E 값이 무한정 커지는 것을 방지한다

> 따라서, 비트 수를 엄청나게 줄일 수 있따

> 뿐만 아니라, 이렇게 threshold 를 설정해두는걸 "갈루아 필드" 라고 하는데,

   이 기법때문에 안정성이 조금 더 올라간다고 알려져있다



- 의의 : 

      RSA 와 같은 성능, 그러나 적은 비트수 요구

      > threshold 를 설정한 것, 그리고 "횟수"를 비밀키로 설정한 것 때문



- 단점 :

     1) 초기 seed 값이 매우 중요하다

> 만약, randomness 가 나쁠경우, 해킹 시도에 매우 취약하다

> 아주 다양한 랜덤 값을 산출하는 Random Number Generator 가 필수적으로 필요함

ex) 비트코인의 경우, 이 취약점을 이용해서 털린적이 한 번 있다

 

     2) 이론적인 기반이 부족하다 : 왜 안정적인지, 왜 해킹이 어려운건지에 대한 수학적 기반이 부족함