본문 바로가기

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에게 전달한..
HD Wallet: Key Derivation 키를 유도하는 방식은 크게 3가지로 나누어진다. 첫번째는 부모 개인키에서 자식 개인키를 유도하는 경우, 두번째는 부모 공개키에서 자식 공개키를 유도하는 경우, 세번째는 부모 개인키에서 자식 공개키를 유도하는 경우이다. 부모 개인키에서 자식 개인키 유도 부모 개인키에서 유도할 때는 강화된 방식으로 유도하는 경우 부모의 개인키를 직접적으로 해시 함수의 입력값으로 사용하지만 일반 유도 방식에서는 부모의 개인키를 공개키로 전환하여 공개키를 입력 값으로 하여 자식키를 유도한다. 키를 유도할 때는 부모의 확장된 키(부모키, 부모의 체인 코드), 인덱스가 사용된다. CKDpriv((kpar, cpar), i) → (ki, ci) (kpar: 부모의 개인키, cpar: 부모의 체인 코드, i: 인덱스, ki: i번째 ..