Asymmetric Key Encipherment의 대표적인 암호화 기법 중 하나인 ECC(Elliptric Curve Cryptography)에 대한 포스팅을 할 것이다.
Elliptric Curve를 이용한 암호화 기법 중 대표적인 기법은 Elgamal 암호 시스템이 있다.
Elgamal 암호 시스템
Key Generation
-
Ep(a,b)를 선택한다.
타원 곡선 함수 방정식 y2=(x3+ax+b)modp에서 p, a, b를 선택한다는 뜻 이다.
-
타원 곡선에서 임의의 좌표 e1을 선택한다.
e1=(x1,y1)
-
개인키 d를 선택한다.
-
공개키가 되는 e2=(x2,y2)를 계산한다.
e2=d∗e1
-
공개키: e1, e2, Ep
개인키: d
Encryption
-
Plain Text인 P는 타원 곡선의 좌표가 된다.
r은 salt로 임의의 수 이다.
-
Cipher Text는 C1, C2로 2개이다.
C1=r∗e1
C2=P+r∗e2
Decryption
- 개인키(d)를 이용하여 decryption 한다.
P=C2−(d∗C1)
Decryption 방정식 증명
P=C2−(d∗C1)
=P+r∗e2−(d∗r∗e1)
=P+(r∗d∗e1)−(r∗d∗e1)
=P+0
=P
Elgamal 암호화의 문제점
평문(P)이 타원 곡선의 점(좌표)가 되어야 한다.
따라서 타원 곡선의 점과 plain text를 mapping 하기 어렵다는 한계가 존재한다.