카테고리 없음

ECC란 무엇인가...?

총알 2024. 4. 3. 23:42
728x90

ECC(Elliptic Curve Cryptography) 알고리즘은 타원 곡선 기반의 암호화 방식으로 RSA와 동일하게 공개키 방식을 사용한다. ECC 알고리즘이 등장하게 된 배경으로는 RSA 암호화 방식의 경우 암호키의 길이를 늘리면 보안강도가 강화되지만 연산 속도가 느려지는 단점이 있어서 이를 보안하기 위해 제안된 암호화 방식이다.

 

대칭키(AES) RSA 타원곡선(ECC)
80 1024 160
112 2048 224
128 3072 256
192 7680 384
256 15360 512

 

위의 표는 같은 키 길이(bit)의 알고리즘을 사용했을 때의 성능을 비교한 것인데 ECC의 알고리즘의 키 길이가 512일 때와 RSA의 알고리즘의 키 길이가 15360일 때의 성능이 거의 동일하다. 이처럼 작은 길이의 키로 높은 보안강도를 갖춘 것으로 확인할 수 있다.

 

이어서 ECC알고리즘에서 사용되는 타원곡선 방정식에 대해서 알아보자.

타원곡선 방정식은 아래와 같은 형태의 방정식으로 정의된다.

곡선 타원 방정식

 

a, b 값에 따라서 아래와 같은 그래프 모양이 나오게 되는데

 

아래와 같은 방정식의 경우 첨점, 교차점이 존재하는데 이런 경우에는 타원 곡선 암호에서는 사용이 불가능한데 그 이유는 동일 점 덧셈을 할 수 없기 때문이다.

 

그래서 a, b의 조건은 아래 조건에 만족해야하는데 그런 경우에는 비특이 타원곡선이라고 한다.

a, b의 조건

 

이어지는 내용을 알아보기에 앞서 아래 내용들을 우선 살펴보자

비특이 타원 곡선의 특징
  1. 첨점과 교차점이 존재하지 않는다.
  2. x축과 대칭하는 y값이 있다.
  3. 임의의 두점 P와 Q를 연결하는 직선에는 반드시 다른 한 점이 더 존재한다.
    2개의 점을 연결한 선 위에는 교차점이 하나더 있다는 의미이다.(점 3개)
타원 곡선에서의 점의 정의
  1. 점 P = (x, y)의 좌표
  2. 점 0 = (x, 0)의 좌표
  3. 점 -P = (x, -y)의 좌표
    이 위치는 비특이 타원 곡선에서 반드시 존재
  4. 어떤 진석이 y축과 평행할 때 만나는 무한점이라고 정의
  5. 무한점의 대칭점은 점 0(2번)이라고 정의
점의 덧셈 연산
  • a. R = P + Q
  • b. R = P + P
    P와 Q의 값이 같을 경우
  • c. 무한대 = P + (-P)
    타원 곡선에서의 점의 정의에서 2번에 해당

 

이렇게 ECC에서 사용되는 타원 곡선 방정식과 그것의 특징들을 알아봤는데,

이제 우리가 알아본 것들로 ECC에서 어떻게 활용해서 키를 생성하고 사용하는지를 알아보자.

 

우선 키생성에 사용되는 방정식은 아래와 같다.

  • 생성자(G): 타원 곡선 상의 임의의 점
  • 개인키(d) : P보다 적은 소수이며, 난수생성기로 생성한다.
  • 공개키(Q): 개인키로부터 연산한다.

공개키 Q의 경우 d x G인데 G를 d번 더한 것에 대한 결괏값으로 이해하면 될 것 같다.

위의 수식에서 x와 G를 이용해서 Q를 구하는 것은 쉽지만,

G(생성자)와 Q(공개키)를 안다고해서 d(개인키) 값을 유추하는 건 어렵다.

 

ECC에 대해서 알아보면서 짧게 공부하고 ECC의 종류에 대해서 알아보려고 했는데

생각보다 내용이 길어져서 ECC 종류와 그 종류에 대한 특징은 다음에 나눠서 다뤄봐야겠다.

728x90