Browse Source

타원곡선 암호화까지

iwanhae 3 years ago
parent
commit
e488e3b7bc
9 changed files with 47 additions and 6 deletions
  1. 13 2
      3_상식보충.md
  2. 29 0
      4_지갑과_비트코인_주소.md
  3. 0 0
      5_거래생성및전파.md
  4. 0 0
      6_블록체인.md
  5. 0 0
      7_블록전파.md
  6. 0 0
      8_마무리.md
  7. 5 4
      README.md
  8. BIN
      img/4_1.png
  9. BIN
      img/4_2.png

File diff suppressed because it is too large
+ 13 - 2
3_상식보충.md


+ 29 - 0
4_지갑과_비트코인_주소.md

@@ -0,0 +1,29 @@
+# 지갑과 비트코인 주소
+
+## 비트코인 주소
+
+### 개요
+
+ 은행에서 송금을 하기위해서는 상대방의 계좌번호가 필요하듯이 비트코인에서 거래를 발생하기 위해서는 상대방의 비트코인 주소가 필요하다. 또한 어떤 비트코인 주소의 소유주가 나 자신임을 증명하기 위해서 비트코인은 전자서명에서 공개키를 이용하여 비트코인 주소를 생성하는 방법을 채택하였다.
+
+ 이 파트에서는 어떻게 비트코인 주소가 만들어지는지에 대해서 살펴본다.
+
+### ECDSA
+
+ 비대칭 암호화에 대해서 설명할떄 비트코인은 RSA를 사용하지 않고 ECC를 사용한다고 했던부분 기억하는가? ECC란  Elliptic curve cryptography 의 약자로 한국어로는 **"타원곡선 암호"**정도로 번역되는 존재이다. ECC는 그 원리에 대해서만 설명하는 책이 있을정도로 기초적으로 알아야할 지식이 많고 복잡해서 이 책에서 자세히 다루지 않겠지만 추상적으로나마 표현해보자면 RSA가 두 소수의 곱을 통해 암호화된 어떤 값은 두 소수를 모르면 해독하는데 엄청난 시간이 걸린다는 점을 이용했다면 ECC는 아래 그림과 같은 타원곡선 상에서 알려진 어떤 시작점을 기준으로 특별한 규칙에 따라 n번 움직인 점으로 암호화한 값은 정확히 몇 번 움직였는지 모르면 해독하는데 엄청난 시간이 소모된다는 점을 이용한 암호화 방법이다.
+
+![](./img/4_1.png)
+
+ 비트코인에서 금융권에서 많이 쓰여 이미 안정성이 입증된 RSA를 활용한 전자서명을 사용하지 않고 ECC를 활용한 **ECDSA**를 사용하는 이유는 간단한데, 그것은 바로 RSA보다 더 적은양의 데이터만으로도 RSA보다 뛰어난 안정성을 보장해주기 때문이다.
+
+![](./img/4_2.png)
+
+ 위 도표를 보면 현재 금융권에서 가장 활발히 쓰고있는 RSA2048의 경우 키 크기로2048bits를 사용하면 해독을 해내는데 초당 백만건씩 비교를 해볼때 약 10^20년정도가 걸리지만 ECC의 경우 단 210bits만을 이용해도 같은 10^20년정도가 걸리게 할 수 있으며 당연하게도 만약 ECC가 2048bits를 사용하면 RSA는 같은 수준의 보안을 유지하기위해서는 훨씬더 많은 bits를 사용하는 키가 필요하게 될것이다.
+
+ 현재 비트코인에서 사용하는 ECDSA는 미국립표준기술원(NIST)에서 2000년 중순에 발표한 secp256k1라는 표준을 따른다. 이
+
+## 지갑
+
+### 개요
+
+  비트코인에서는 모든 거래내역이 투명하게 공개된다.  하지만 동시에 익명성을 보장하기위해 비트코인이 접근한 방법은 송금받기위한 비트코인 주소를 1회용으로 사용하게 하는 것이다. 비트코인 주소를 한번쓰고 버리게 하여 결과적으로 해당 주소의 소유주가 현실세계에서 누군지를 특정하는데 방해하는 것이다. 다만 이런과정에서 문제가 발생하는데 현재 내가 보유하고있는 잔액을 파악하기위해 필요한 비트코인 주소가 따로따로 관리하기에는 너무 많아진다는 것이다. 이를 위해 비트코인은 지갑이란 개념을 도입하였다. 초기 비트코인 지갑은 무식하게 모든 주소를 저장하는 방법을 택했지만 그 후 몇가지 트릭을 더하여 지금와서는 사람이 몇개의 단어만 기억해두면 언제 어디서든 여태껏 사용해온 모든 주소를 불러올 수 있게 되었다.

+ 0 - 0
4_거래생성및전파.md → 5_거래생성및전파.md


+ 0 - 0
5_블록체인.md → 6_블록체인.md


+ 0 - 0
6_블록전파.md → 7_블록전파.md


+ 0 - 0
7_마무리.md → 8_마무리.md


+ 5 - 4
README.md

@@ -5,10 +5,11 @@
 - [시작하는글](./1_시작하는글.md)
 - [비트코인에 대한 얘기](./2_비트코인에대한얘기.md)
 - [먼저 알아두고 가야할 개념](./3_상식보충.md)
-- [거래의 생성 및 전파](./4_거래생성및전파.md)
-- [블록체인, 채굴의 시작](./5_블록체인.md)
-- [블록의 전파](./6_블록전파.md)
-- [더 생각해볼것들](./7_마무리.md)
+- [지갑과 비트코인 주소](./4_지갑과_비트코인_주소.md)
+- [거래의 생성 및 전파](./5_거래생성및전파.md)
+- [블록체인, 채굴의 시작](./6_블록체인.md)
+- [블록의 전파](./7_블록전파.md)
+- [더 생각해볼것들](./8_마무리.md)
 
 ### 
 

BIN
img/4_1.png


BIN
img/4_2.png


Some files were not shown because too many files changed in this diff