본문 바로가기

암호 구현

타원 곡선 암호(ECC) 연산 ECADD, ECDBL

 

ECADD

위의 if와 else if는 0+P를 했을때 P가 나오길 원해서 한 것임

뒤의 scala multiplication시 필요하다고 생각됨

타원 곡선암호에서는 a값에만 좌우됨 b값은 연산시 사라짐으로 추정됨 

ECADD를 구현하고 싶다면 가장 밑의 x3,y3를 구현하면됨

나누기의 경우 inverse를 먼저 구하고 곱하는 과정을 거침

결과 확인을 위해서는 ECDBL이 필요함 그래야 P+2P를 하여 3P의 결과를 확인 할수 있음

 

 

 

ECDBL(EC DouBLe)

ECDBL

 

원래는 x, y의 좌표가 필요하여 새로운 구조체를 만들어 두개의 두 구조체를 가지고 있게 만드려고 했으나 더 불편하였음

코드를 보다 보면 dest가 있는 자리는 앞과 인자가 겹치지 않음

앞에서 인자를 겹치게 하였다가 터졌기에 그런것임

또한 result를 내부에서 선언하여 사용하고 마지막에 memcpy를 사용해 메모리 전달을 해줌

앞으로도 이런 습관을 들일것임

 

 

https://github.com/dlwotjr/ECC

 

GitHub - dlwotjr/ECC: Elliptic curve cryptography

Elliptic curve cryptography. Contribute to dlwotjr/ECC development by creating an account on GitHub.

github.com

전체 코드가 궁금하다면 방문해 주세요