타원곡선 디지털서명 알고리즘 편집하기
최신판 | 당신의 편집 | ||
11번째 줄: | 11번째 줄: | ||
==활용== | ==활용== | ||
− | 대표적으로 [[비트코인]]과 [[이더리움]]에서 타원곡선 디지털서명 알고리즘을 사용한다. 이때 사용되는 타원곡선의 매개변수는 | + | 대표적으로 [[비트코인]]과 [[이더리움]]에서 타원곡선 디지털서명 알고리즘을 사용한다. 이때 사용되는 타원곡선의 매개변수는 [[secp256k1]]으로 [[SEC]](Serticom Research)에 정의되어 있다. [[secp256k1]]은 비트코인이 인기를 끈 뒤, 급격히 사용되었으며 구현이 충분히 최적화되면 타곡선보다 30% 이상 속도가 빨라지는 경우가 많다. 정의된 것들은 이러하다. |
a = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 | a = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 | ||
53번째 줄: | 53번째 줄: | ||
publick key는 공개 키이자 복구 키로 이더리움에서는 서명값이 아닌 정수 27 또는 28을 사용한다. | publick key는 공개 키이자 복구 키로 이더리움에서는 서명값이 아닌 정수 27 또는 28을 사용한다. | ||
− | :계산해낸 p의 x 좌표값과 서명 r의 값이 같다면 송신자의 서명이 맞다는 의미로 확인이 끝난다.<ref>그래비티Grabity, 〈[https://blog.naver.com/grabityio/221497780327 타원곡선 암호과 이더리움 전자서명 ( feat. 우주를 줄게 )]〉, 《네이버 블로그》, 2019-03-26</ref><ref>김훈일, 〈[https://brunch.co.kr/@nujabes403/13 타원곡선과 블록체인]〉, 《네이버 brunch》, 2018-08-18</ref> | + | :계산해낸 p의 x 좌표값과 서명 r의 값이 같다면 송신자의 서명이 맞다는 의미로 확인이 끝난다. <ref>그래비티Grabity, 〈[https://blog.naver.com/grabityio/221497780327 타원곡선 암호과 이더리움 전자서명 ( feat. 우주를 줄게 )]〉, 《네이버 블로그》, 2019-03-26</ref> <ref>김훈일, 〈[https://brunch.co.kr/@nujabes403/13 타원곡선과 블록체인]〉, 《네이버 brunch》, 2018-08-18</ref> |
* '''난수생성기와 'K'값의 중요성''' | * '''난수생성기와 'K'값의 중요성''' | ||
− | :타원곡선암호는 개인 키의 비트 수가 적기 때문에 [[난수 생성기]]의 난이도가 낮다면 개인 키를 예측할 수 있는 확률이 증가한다. 또한 비트코인 거래 시 [[암호화]]되지 않은 난수 생성기를 사용해 같은 'K'값으로 디지털서명을 한다면, 그것은 곧 (R, S) 중 R 값이 동일하다는 의미가 되며 그럴 경우 타인이 비트코인 지갑의 개인 키를 알아낼 수 있기 때문에 제대로 된 난수 'K'값을 만드는 것은 몹시 중요하다.<ref> snifikino,〈[https://www.instructables.com/id/Understanding-how-ECDSA-protects-your-data/ Understanding How ECDSA Protects Your Data]〉, 《instructables》</ref> | + | :타원곡선암호는 개인 키의 비트 수가 적기 때문에 [[난수 생성기]]의 난이도가 낮다면 개인 키를 예측할 수 있는 확률이 증가한다. 또한 비트코인 거래 시 [[암호화]]되지 않은 난수 생성기를 사용해 같은 'K'값으로 디지털서명을 한다면, 그것은 곧 (R, S) 중 R 값이 동일하다는 의미가 되며 그럴 경우 타인이 비트코인 지갑의 개인 키를 알아낼 수 있기 때문에 제대로 된 난수 'K'값을 만드는 것은 몹시 중요하다. <ref> snifikino,〈[https://www.instructables.com/id/Understanding-how-ECDSA-protects-your-data/ Understanding How ECDSA Protects Your Data]〉, 《instructables》</ref> |
==규격== | ==규격== |