유한체(3)
-
[밑바닥비트코인] 4. 유한체와 타원곡선
이전 장에서 유한체와 타원곡선이 무엇인지 각각 살펴보았다. 유한체라 함은 여러 조건(덧셈에 닫힘, 항등원, 역원의 존재... 등)을 만족하는 유한개의 원소를 가진 집합이고, 타원 곡선에서는 점 덧셈이라는 것을 하는데, 우리가 익히 알고있는 실수 간의 덧셈의 방식이 아니라 특이하게 수행되는 연산방식을 말한다. 놀랍게도, 실수체 뿐만 아니라 유한체 위에서 타원곡선이 정의될 수 있다. 다시말해 유한체끼리의 점덧셈이 가능하다는 의미이다. 유한체와 타원곡선 유한체 위에서 정의된 타원곡선은 조금 특이하게 생겼다. 출처 : https://cse.unl.edu/~ssamal/crypto/EEECC.php '곡선'이라는 말이 무색하게도 점들이 여러군데 산재해있음을 확인할 수 있다. 하지만 이러한 유한체의 타원곡선의 특성..
2021.07.12 -
[밑바닥비트코인] 2. 유한체의 연산
유한체에서의 연산은 기존 우리가 알고있는 연산과는 조금 다른 방식으로 수행된다. 유한체 연산의 바탕이 되는 나머지 연산에 대해서 살펴보고 유한체 연산하는 방법을 알아보겠다. 나머지 연산 나머지 연산은 어떤 수 A를 B로 나눠서 생긴 나머지를 연산한다. >>> a = 10 >>> b = 4 >>> a % b 2 10 = 4*2 + 2 이므로 몫 2 나머지 2 중에 나머지인 2를 출력한다. 나머지 연산은 음수에 대한 값도 가능하다. >>> -19 % 3 2 >>> -44 % 12 4 >>> -43 % 12 5 -19 나누기 3은 몫이 -7, 나머지가 2이다. 쉽게 생각하면 나누는 수(12)를 해당 음수(-44)와 가장 가까우면서 더 작은 수(-48)로 만들었을 때의 차이를 계산한다고 보면 된다. 유한체의 연..
2021.07.04 -
[밑바닥비트코인] 1. 유한체(Finite field)
[밑바닥비트코인]이 붙은 게시물은 모두 를 참조하였음을 밝힙니다. 이번 장에서는 비트코인에서 쓰이는 암호화 기법을 이해하기 위해서 선행되어야하는 수학적 기반들에 대해서 살펴보도록 하겠다. 유한체(Finite field) 유한체의 조건은 다음과 같다. 1. 집합에서 +, * 연산에 대해서 닫혀있다. 2. 집합 내에 0으로 표기하는 원소가 존재하여, 집합 내의 원소 a에 대해 a+0 = a 를 만족한다. (+에 대한 항등원) 3. 집합 내에 1으로 표기하는 원소가 존재하여, 집합 내의 원소 a에 대해 a*1 = a 를 만족한다. (*에 대한 항등원) 4. a+b = 0 을 만족시키는 원소 b가 집합 내에 존재하고 이를 -a로 표기한다. (+에 대한 역원 존재) 5. a*b = 1 을 만족시키는 원소 b가 집..
2021.07.04