본문 바로가기

Blockchain/ETC

Diffie-Hellman key exchange with elliptic curves

Alice와 Bob이 공유 비밀값을 구하기 위한 기본적인 Diffie-Hellman 교환은 다음의 절차를 따른다.

1. Alice와 Bob은 각자 자신의 기본키와 공개키인 (ka, Ka), (kb, Kb)를 생성한다. 서로 공개키를 교환하고, 개인키는 보관한다.

2. 다음의 내용은 명확하다.

S = kaKb = kakbG = kbkaG = kbKa

Alice는 개별적으로 S = kaKb를 연산할 수 있고, Bob은 S = kbKa를 연산할 수 있다. 이는 그들이 공유 비밀값으로서 이 S를 사용할 수 있다.

예를 들어 만일 Alice가 Bob에게 m이라는 메시지를 보내야하는 경우, Alice는 공유 비밀값 S를 h = H(S)와 같이 해싱한다. 그리고 x = m + h를 계산한 뒤, x를 Bob에게 전달한다. Bob은 h' = H(S)를 계산하고, m = x - h'의 계산으로 m이 무엇인지 알 수 있다.

외부의 관찰자는 'Diffie-Hellman Problem'(DHP)으로 인해 공유 비밀값이 무엇인지 쉽게 계산할 수 없는데, S를 Ka와 Kb를 사용하여 계산해내는 것은 매우 어렵기 때문이다. 또한 DLP(Discrete Logarithm Problem)으로 인해 Ka와 Kb에서 ka와 kb를 찾는 것은 거의 불가능하다.

 

참고

Zero-to-Monero-2-0-0

'Blockchain > ETC' 카테고리의 다른 글

HD Wallet: Key Derivation  (0) 2021.02.18