비트코인의 원리와 구조 (1) 유한체에 대하여
본 글은 비트코인을 밑바닥부터 학습하고 혼자 정리하기 위해 작성된 글입니다.
틀린 내용이나 오타가 있을 수 있습니다. 지적해주시면 감사하겠습니다.
학습 이유
유한체는 타원곡선 암호를 학습하기 위해 필요한 개념입니다.
타원곡선 암호는 비트코인의 핵심 전자서명과 서명 검증 알고리즘을 이해하는데 필수입니다.
유한체
유한체는 현대대수의 내용으로 우리가 흔히들 접하는 일반대수와 조금 다릅니다.
새로운 수의 체계를 배운다고 생각하고 접근하셔야 합니다.
간단하게 설명하자면,
유한체는 표현할 수 있는 수가 제한되어있습니다.
최대치로 표현할 수 있는 수를 위수라고 합니다.
유한체가 표현할 수 있는 수를 집합으로 묶었을때,
유한체 집합의 위수가 p이면 집합의 원소는 { 0, 1, 2, … p-1 } 로 쓸 수 있습니다.
예를 들어, 위수가 10인 유한체의 집합은
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 입니다.
유한체의 집합은 보통 다음과 같이 표기합니다.
Fp = { 0, 1, 2, … p-1 }
좀 더 개념적으로 들어가보겠습니다.
정의
유한체는 아래의 5가지 성질을 만족하는 2개의 연산자 ( + 덧셈, ㆍ곱셈 ) 을 가진 집합이며 그 집합의 원소 수가 유한하다는 특징이 있다.
성질
다음은 유한체의 성질입니다.
- a와 b가 집합에 속해 있으면, a + b와 aㆍb도 집합안에 있다.
- 집합에 0으로 표기하는 원소가 존재하고 집합 내 다른 원소 a와 + 연산 결과는 a다.
- 집합에 1로 표기하는 원소가 존재하고 집합 내 다른 원소 a와ㆍ연산 결과는 a다.
- 집합의 원소 a와 + 연산 결과가 0이 되게 하는 원소 b가 역시 집합에 속해 있고 이러한 b를 -a로 표기한다.
- 0이 아닌 집합의 원소 a에 대해 aㆍb = 1이 되게 하는 원소 b가 역시 집합에 속해 있고 이러한 b를 a-1로 표기한다.
역시 헷갈립니다.
참고로, 유한체는 위수가 같은 유한체 집합 내의 요소끼리만 연산을 할 수 있습니다.
위수를 7로 가정하고 해석해보겠습니다.
1번을 해석해보면,
위수 7의 유한체 집합 F7 = {0, 1, 2, 3, 4, 5, 6} 내의 요소끼리의 연산 결과값은 F7 내의 요소여야 합니다.
이는 나머지 연산으로 가능합니다.
예를들어, 5와 6을 더하고 결과값에 위수로 나머지 연산을하게 되면,
5 + 6 = 11 % 7 = 4
결과값 4로,
항상 집합 F7 내의 요소들로 닫혀있게 됩니다.
2번과 3번은 각각 덧셈 곱셉에 대한 항등원이 집합내에 존재한다는 뜻입니다.
각각 0과 1입니다.
-
a + 0 = a
-
aㆍ1 = a
4번은 a가 집합내에 존재하면 a의 덧셈에 대한 역원인 -a 역시 집합 내에 있다는 뜻입니다.
이를 이용하여 뺄셈을 정의할 수 있습니다.
5번 역시 a가 집합내에 존재하면 a의 곱셉에 대한 역원인 a-1 역시 집합내에 있다는 뜻입니다.
곱셈에 대한 역원을 이용하여 나눗셈을 정의할 수 있습니다.