최근 수정 시각 : 2024-11-04 19:52:43

체(대수학)

유한체에서 넘어옴
[[대수학|대수학
Algebra
]]
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
이론
기본 대상 연산 · 항등식(가비의 이 · 곱셈 공식(통분 · 약분) · 인수분해) · 부등식(절대부등식) · 방정식(/풀이 · (무연근 · 허근 · 비에트의 정리(근과 계수의 관계) · 제곱근(이중근호 · 개방법) · 환원 불능) · 부정 · 불능) · 비례식 · 다항식 · 산술(시계 산술)
수 체계 자연수(소수) · 정수(음수) · 유리수 · 실수(무리수(대수적 무리수 · 초월수) · 초실수) · 복소수(허수) · 사원수 · 팔원수 · 대수적 수 · 벡터 공간
다루는 대상과 주요 토픽
대수적 구조
군(group) 대칭군 · 기본군 · 자유군 · 리 군 · 괴물군 · 점군 · 순환군 · 군의 작용 · 동형 정리 · 실로우 정리
환(ring) 아이디얼
체(field) 갈루아 이론 · 분해체
대수 가환대수 · 리 대수 · 불 대수(크로네커 델타)
마그마·반군·모노이드 자유 모노이드 · 가환 모노이드
선형대수학 벡터 · 행렬 · 텐서(텐서곱) · 벡터 공간(선형사상) · 가군(module) · 내적 공간(그람-슈미트 과정 · 수반 연산자)
정리·추측
대수학의 기본정리 · 나머지 정리 · 유클리드 호제법 · 부분분수분해 · PID 위의 유한생성 가군의 기본정리 · 산술·기하 평균 부등식 · 바이어슈트라스 분해 정리 · 호지 추측미해결 · 가환대수에서의 호몰로지 추측미해결
관련 하위 분야
범주론 함자 · 수반 · 자연 변환 · 모나드 · 쌍대성 · 토포스 이론 · 타입 이론
대수 위상수학 연속변형성 · 사슬 복합체 · 호몰로지 대수학(호몰로지 · 코호몰로지) · mapping class group · 닐센-서스턴 분류
대수기하학 대수다양체 · · 스킴 · 에탈 코호몰로지 · 모티브
대수적 정수론 타원곡선 · 디오판토스 방정식 · 유리근 정리 · 모듈러성 정리
가환대수학 스펙트럼 정리
표현론 실베스터 행렬
기타 및 관련 문서
수학 관련 정보 · 추상화 · 1학년의 꿈 · 노름 · 혼합계산 · 분배법칙 · 교환법칙 · 결합법칙 · 교재 }}}}}}}}}

1. 정의2. 예시
2.1. 분수체(field of fractions)2.2. 체 확장(field extension)2.3. 분해체(splitting field)2.4. 유한체(finite field)
3. 여담

1. 정의

/ field

대수적 구조의 하나로, 간단히 말해 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)의 결괏값을 항상 포함하는 집합을 의미한다.[1] 가장 간단한 체의 예시로는 유리수의 집합 [math( \mathbb Q)], 실수의 집합 [math(\R)], 복소수의 집합 [math(\mathbb C)]가 있다. 그래서 이들이 체라는 것을 강조하고 싶을 때에는 각각 유리수체, 실수체, 복소수체라고 부르기도 한다. 그러나 정수의 집합 [math(\Z)]는 체가 되지 않는데, 정수 사이의 덧셈, 뺄셈, 곱셈까지는 언제나 원활하게 수행할 수 있지만 아무런 두 정수나 뽑아서 나눗셈을 했을 때에는 나누어 떨어지지 않는 경우도 있기 때문이다. 자연수의 집합 [math(\N)]의 경우는 나눗셈은커녕 뺄셈조차도 불가능한 경우가 존재하므로 당연히 체가 되지 않는다.

어떤 집합 [math(F)]가 체가 되기 위해서는 다음 10가지의 조건을 만족시켜야 한다.[2]
  • 집합 [math(F)] 위에 덧셈과 곱셈이 정의되어 있다.
  • (A1) 덧셈에 대해 교환법칙이 성립한다.
  • (A2) 덧셈에 대해 결합법칙이 성립한다.
  • (A3) 덧셈의 항등원 [math(0)]이 존재한다.
  • (A4) [math(F)]의 모든 원소 [math(a)]에 대해 역원 [math(-a)]가 존재한다. 따라서 뺄셈도 항상 가능하다.[3]
  • (M1) 곱셈에 대해 교환법칙이 성립한다.[4]
  • (M2) 곱셈에 대해 결합법칙이 성립한다. 따라서 곱셈만 있는 식에서도 괄호를 쓰지 않아도 된다.
  • (M3) 곱셈의 항등원 [math(1(1\ne0))]이 존재한다.[5][6]
  • (M4) [math(F)]의 [math(0)]이 아닌 모든 원소 [math(a)]에 대해 역원 [math(a^{-1})]가 존재한다. 따라서 [math(0)] 이외의 수로는 항상 나누기를 할 수 있다. 즉, 체에서는 나머지가 존재해서는 안 된다.
  • (D) 덧셈과 곱셈에 대해 좌우 분배법칙이 모두 성립한다.
대수적인 언어로 압축해서 쓰면, [math((F,+,\cdot))]가 단위원(unity, [math(1)])을 포함하는 가환 나눗셈환(commutative division ring with unity)이라는 뜻이다. 즉, 다음과 같은 한 문장으로 압축할 수 있다.
(Th) 단위원 [math(1_R)]을 지니는 가환환 [math(R)]에서 임의의 원소 [math(a(\ne0_R)\in R)]에 대하여, [math(ax=1_R)]을 만족하는 [math(x\in R)]이 존재하는 가환환 [math(R)]은 체이다.
이것이 위의 10가지 조건과 동치임은 조금만 생각해보면 쉽게 보일 수 있다.[7]

역대 수학 천재들의 목록을 나열해 본다면 절대로 빼놓을 수 없는 수학자가 바로 갈루아이다. 이 사람이 바로 체에 관한 이론을 연구하여 아벨이 기존에 증명하였던 것과는 다른 방식으로 5차 이상의 다항식에 대해서는 근의 공식이 존재하지 않는다는 것을 증명하였다.[8] 갈루아는 체와 사이에 존재하는 미묘하고도 심오한 관계를 사용하여 증명을 할 수 있었다. 이에 관한 자세한 설명은 갈루아 이론 문서 참고.

어떤 체의 경우에는 [math(1)]을 더하다 보면 [math(0)]이 나오는 경우가 있다. 체 [math(F)]에서 [math(1)]을 [math(p)]번 더했을 때 [math(0)]이 되도록 하는 가장 작은 자연수 [math(p)]를 [math(F)]의 지표(characteristic)라고 한다. 유리수체 [math(\mathbb Q)], 실수체 [math(\R)], 복소수체 [math(\mathbb C)]의 경우에는 아무리 [math(1)]을 여러 번 더해도 [math(0)]이 되지 않는데, 이런 체의 지표는 [math(0)]으로 정의한다. 지표가 [math(0)]이 아닌 체의 예시로는 유한체가 있다. 지표가 [math(p\ne0)]인 체 [math(F)]에서는 임의의 원소 [math(x\in F)]에 대해

[math(\underbrace{x+x+{\cdots}+x}_{p}=\underbrace{1x+1x+{\cdots}+1x}_{p}=(\underbrace{1+1+{\cdots}+1}_{p})x=0x=0)]

에서 [math(\underbrace{x+x+{\cdots}+x}_{p}=0)]이 성립한다.

2. 예시

위에서 이미 언급한 유리수체, 실수체, 복소수체 이외에도 체가 되는 집합을 다양하게 만들어 낼 수 있다. 본 항목에서는 체의 예시 중 중요한 것들 몇 가지에 대해 간단히 설명한다.

2.1. 분수체(field of fractions)

몫체(field of quotients)라고도 한다. 간단히 말해, 정수환 [math(\Z)]로부터 유리수체 [math(\mathbb Q)]를 만드는 과정을 일반화한 것이다. 아래 내용을 읽기 전에 먼저 유리수의 구성 방법에 대해 읽고 오기를 권장한다.
정역(integral domain) [math(D)]에 대하여 집합 [math(F)]를 [math(F:=(D\times(D\setminus\{0\}))/\sim)]와 같이 정의한다. 여기에서 동치관계 [math(\sim)]는 다음과 같이 정의한다.
  • [math((a,b)\sim (c,d) \Longleftrightarrow ad=bc.)]
이 관계가 동치관계임을 보이자. 반사성과 대칭성은 거의 명백하므로 추이성만 보이면 된다. 만약 [math((a,b)\sim(c,d))]이고 [math((c,d)\sim(e,f))]라고 하면 [math(ad=bc)]이고 [math(cf=de)]이다. 첫 번째 등식의 양변에 [math(f)]를 곱하면 [math(adf=bcf=bde)], 즉 [math(adf=bde)]가 된다. 여기에서 [math(d\neq 0)]이고 [math(D)]는 정역이므로 소거법칙[9]이 성립한다. 따라서 [math(adf=bde)]의 양변에서 [math(d)]를 소거하면 [math(af=be)]를 얻고, 이는 곧 [math((a,b)=(e,f))]를 의미한다. 이것으로 동치관계 [math(\sim)]의 추이성이 증명되었다.
이제 이렇게 정의한 집합 [math(F)] 위에 연산 [math(+)]와 [math(\cdot)]를 아래와 같이 정의하자.
  1. [math(\left[(a,b)\right]+\left[(c,d)\right]=\left[(ad+bc,bd)\right])]
  2. [math(\left[(a,b)\right]\cdot\left[(c,d)\right]=\left[(ac,bd)\right])]
그러면 두 연산 [math(+)]와 [math(\cdot)]는 [math(F)] 위에서 잘 정의되어 있으며, 연산 [math(+)]가 위의 공리 (A1)~(A4)를, 연산 [math(\cdot)]가 위의 공리 (M1)~(M4)와 (D)를 만족함을 확인할 수 있다. 조금 더 자세하게 말하자면, (A1), (A2), (M1), (M2), (D)는 단순 계산이고, (A3)은 [math(+)]에 대한 항등원을 [math(0_F:=\left[(0,1)\right])]로 놓으면 되며, (A4)는 [math(\left[(a,b)\right])]의 [math(+)]에 대한 역원을 [math(-\left[(a,b)\right]:=\left[(-a,b)\right])]로 놓으면 된다. (M3)은 [math(\cdot)]에 대한 항등원을 [math(1_F:=\left[(1,1)\right])]로 놓고, (M4)는 [math(a\ne0)]에 대하여 [math(\left[(a,b)\right])]의 [math(\cdot)]에 대한 역원을 [math(\left[(a,b)\right]^{-1}:=\left[(b,a)\right])]로 놓으면 된다.
따라서 [math((F,+,\cdot))]는 체라는 결론을 얻는다. 여기에 더해서 [math(D)]가 [math(F)]의 자연스러운 부분환이 됨을 증명할 수 있는데, 이는 자연스러운 매장(imbedding) [math(i:D\to F)]를 [math(i(a)=\left[(a,1)\right])]로 정의하면 된다.

2.2. 체 확장(field extension)

대한민국의 중, 고등학교에서 6년 동안 수학 공부를 해온 사람이라면 아마도 [math(a+b\sqrt2)](단, [math(a,b)]는 유리수) 꼴의 수라는 표현에 매우 익숙할 것이다. 아마 이러한 표현을 보는 순간, 무리수 상등이라는 단어도 같이 떠오를 것이다. 정의에 따라 이런 꼴의 수만 모아놓아 만든 집합도 체가 된다. 고등학생은 이미 [math(a+b\sqrt2)] 꼴의 수를 서로 더하고, 빼고, 곱하여도 언제나 다시 똑같은 꼴의 숫자가 되지, 갑자기 [math(a+b\sqrt3)] 꼴의 수가 튀어나올 수는 없다는 것을 이미 잘 알고 있다. 게다가 나눗셈을 하는 경우에도 아무런 문제가 없는데, 다음과 같이 역수를 취해도 [math(\bigl(a+b\sqrt2\bigr)^{-1}=\dfrac{a-b\sqrt2}{a^2-2b^2})]에서 여전히 [math(a+b\sqrt2)] 꼴의 수가 되기 때문이다. 따라서 이러한 꼴의 수들을 모두 모아 놓은 집합은 체가 된다.

이제 이 집합에 이름을 붙여주고자 한다면 어떻게 하는 것이 좋을까? [math(a+b\sqrt2)](단, [math(a,b)]는 유리수) 꼴의 수들의 집합은 간단하게 생각해보면 유리수의 집합 [math(\mathbb Q)]에 새로운 원소 [math(\sqrt2)]를 추가한 것과 같다. 물론, [math(\sqrt2)]라는 원소 단 하나만을 추가해 줬다면, 그건 체가 될 수 없다. 체는 덧셈과 곱셈에 대해 닫혀 있어야 하므로, [math(\sqrt2)]라는 원소를 체에 추가해 주려면, 동시에 [math(b\sqrt2)](단, [math(b)]는 유리수) 꼴의 수도 모두 추가해 줘야 할 것이고, 따라서 [math(a+b\sqrt2)](단, [math(a,b)]는 모두 유리수) 꼴의 수를 모두 추가해야만 한다. 그러므로 우리가 설명하고자 하는 집합은 [math(\mathbb Q)]라는 체가 [math(\sqrt2)]라는 원소를 포함하도록 확장하려고 할 때 자연스럽게 얻어지는 체라는 것을 알 수 있고, 이를 간단하게 [math(\mathbb Q\bigl(\sqrt2\bigr))]로 표기할 수 있다.

이와 같이 새롭게 얻어진 체 [math(\mathbb Q\bigl(\sqrt2\bigr))]를 [math(\mathbb Q)]의 체 확장이라고 부른다. 이것을 알고 나면, 비슷하게 [math(\mathbb Q\bigl(\sqrt3\bigr))]이라는 체도 쉽게 생각할 수 있을 것이다. 더 나아가서, 원소를 여러 개 덧붙여 [math(\mathbb Q\bigl(\sqrt2,\sqrt3\bigr))]이라는 체도 생각해볼 수 있다. 이는 [math(a+b\sqrt2+c\sqrt3+d\sqrt6)](단, [math(a,b,c,d)]는 모두 유리수) 꼴의 수들을 모두 모은 집합이 된다. 또한, [math(\R(i))]는 [math(\mathbb C)]와 같다는 것도 어렵지 않게 이해할 수 있다.

2.3. 분해체(splitting field)

이제 조금 다른 방향에서 [math(\mathbb Q\bigl(\sqrt2\bigr))]를 생각하자. 이때의 키워드는 바로 다항식인수분해이다. [math(x^2-2)]라는 다항식을 생각해보자. 이 다항식의 해는 유리수가 아니므로, 이 다항식을 유리계수 일차다항식 두 개의 곱으로 인수분해하는 것은 절대로 불가능할 것이다. 이처럼 어떤 체에서 더 이상 인수분해할 수 없는 다항식이 있는 경우라면, 언제나 그 체를 확장하여 그 다항식의 해를 가지는 새로운 체를 만들어 낼 수 있다! 그런 체를 만드는 방법은 무엇일까? 바로 다항식의 나머지를 취하는 것이다.

우선, 모든 유리계수 다항식을 모아놓은 집합은 [math(\mathbb Q[x])]로 표기한다. 그리고 인수분해하고자 하는 다항식은 바로 [math(x^2-2)]이다. 이제 우리는 [math(\mathbb Q[x])]의 원소들 중, [math(x^2-2)]로 나눈 나머지가 같은 원소들은 그냥 서로 동일한 것이라고 생각한다. 예를 들어, [math(x^2+x+1)]을 [math(x^2-2)]로 나눈 나머지는 [math(x+3)]이므로, [math(x^2+x+1\equiv x+3)]으로 취급한다. 그렇게 하고 나면, 어떤 다항식이든 이차다항식으로 나눈 나머지는 일차 이하의 다항식이므로, [math(\mathbb Q[x])]의 모든 원소를 어떤 1차 이하의 다항식 [math(a+bx)](단, [math(a,b)]는 유리수)과 동일한 것이라고 생각할 수 있다. 이 다항식 사이의 덧셈, 뺄셈은 그냥 평범한 다항식의 덧셈, 뺄셈을 사용한다. 두 다항식 사이의 곱을 하고 나면 2차 다항식이 만들어질 수도 있는데, 그 경우에는 다시 [math(x^2-2)]로 나눈 나머지를 취한다. 즉, [math(x\cdot x)]는 [math(x^2-2)]로 나눈 나머지가 [math(2)]이므로 [math(x)]라는 다항식을 제곱하면 그것은 [math(2)]가 된다. 마지막으로 나눗셈을 하는 방법을 알아야 하는데, 이것은 조금 복잡하다. 그렇지만 [math(x^2-2)]라는 다항식이 [math(\mathbb Q)]에서는 인수분해가 불가능하다는 사실을 잘 사용하면 어떤 다항식의 역수에 해당하는 다항식을 찾아내는 것도 가능하다. 예를 들어, [math((x)^{-1}\equiv\dfrac{1}{2}x)]이다. 이는 [math(x\cdot\dfrac{1}{2}x=\dfrac{1}{2}x^2=\dfrac{1}{2}\bigl(x^2-2\bigr)+1\equiv1)]에서 옳은 식임을 확인할 수 있다. 따라서, 이렇게 [math(\mathbb Q[x])]에서 [math(x^2-2)]으로 나눈 나머지가 같은 다항식은 같다고 선언한 집합(기호로는 [math(\mathbb Q[x]/\bigl(x^2-2\bigr))]로 쓴다.)은 사칙연산이 잘 정의되므로, 체가 된다. 길게 설명했지만 사실 이 체는 위에서 설명한 [math(\mathbb Q\bigl(\sqrt2\bigr))]와 동일하다. 왜냐하면 [math(x^2-2)]로 나눈 나머지 다항식들의 곱셈과 나눗셈에서 [math(x)]라는 기호는 마치 [math(\sqrt2)]처럼 작용하기 때문이다. 우리는 이미 위에서 [math(x\cdot x\equiv2)]라든지, [math((x)^{-1}\equiv\dfrac{1}{2}x)]라든지 하는 식으로부터 [math(x)]라는 기호가 실은 [math(\sqrt2)]처럼 작동하는 것을 이미 확인했다. 정리하자면, 우리는 [math(\sqrt2)]라는 수의 존재를 전혀 알지 못하고도, [math(x^2-2)]라는 다항식이 해를 가지는 [math(\mathbb Q)]의 체 확장을 이야기함으로써, [math(\mathbb Q\bigl(\sqrt2\bigr))]를 만들어낼 수 있다. 이렇게 새로운 체에서는 [math(x^2-2)]를 분해할 수 있으므로, [math(\mathbb Q[x]/\bigl(x^2-2\bigr))]를 [math(x^2-2)]의 분해체라고 부른다.

어떤 다항식이 그 체에서 인수분해되지 않는다는 것만 확인한다면 동일한 일을 반복할 수 있다. 예를 들어, [math(x^2+x+1)]라는 다항식이 해를 가지는 [math(\mathbb Q)]의 체 확장을 만들고 싶다면, 유리 계수 다항식을 모두 모아놓고, [math(x^2+x+1)]로 나눈 나머지가 같은 다항식은 서로 동일하다고 선언만 하면 된다. 그렇게 얻어지는 체는 물론 [math(x^2+x+1)]의 해인 정석에서 많이 본 [math(\omega=\dfrac{-1+\sqrt3 i}{2})]를 지니고 있을 것이므로 [math(\mathbb Q(\omega))]와 동일한 체가 될 것이다. 그렇지만 이 체를 구성하기 위해 우리는 [math(\omega)]에 대해 알 필요도 없다.

이차다항식의 경우에는 한 번의 체 확장으로 분해체를 얻을 수 있지만, 고차다항식이 주어진 경우에는 이러한 체 확장을 여러 번 해야 할 수도 있다. 그렇지만 매번 해를 1개씩만 구하여도 최대 n번만 이 과정을 반복함으로써 어떤 다항식이든 일차다항식의 곱으로 인수분해하는 새로운 체를 구성할 수 있다.[10] 그렇게 얻어지는 체를 그 다항식의 분해체라고 한다. 또한 이런 식으로 계속해서 체를 확장해갈 경우, 유리수체 [math(\mathbb Q[x])]의 모든 다항식의 근을 포함하는 체를 생각할 수 있는데, 이 체는 [math(\mathbb Q_\mathrm A)]로 표기하고 유리수체의 대수적 폐포(algebraic closure)라고 부르며, [math(\mathbb Q\subsetneq\mathbb Q_\mathrm A\subsetneq\mathbb C)]를 만족한다.

2.4. 유한체(finite field)

지금까지 설명한 체의 예시는 모두 무한집합이었다. 왜냐하면 지금까지 말한 체는 모두 유리수체 [math(\mathbb Q)]를 부분집합으로 갖는데, [math(\mathbb Q)]가 무한집합이기 때문이다. 그렇지만 [math(\mathbb Q)]와는 별개의 근원으로부터 출발한다면 유한집합이 되는 체도 만들 수 있다. 그 별개의 근원이란 다름 아닌 정수환 [math(\Z)]이다. [math(\Z)] 자체는 나눗셈이 항상 잘 떨어지지 않으므로, 그 자신이 체가 될 수 없다는 것을 이미 알고 있다. 따라서 [math(\Z)]를 이용하여 새로운 체를 만들어 낸다는 발상은 꽤 놀라운 것이라고 할 수 있다. [math(\Z)]로부터 체를 만들어내는 방법은 바로 소수 [math(p)]로 나눈 나머지를 관찰하는 것이다.

여기에서는 예시를 들기 위해 [math(p=7)]인 경우를 생각해보자. 이제 정수의 집합 [math(\Z)]의 원소를 모두 모아놓고, 이들 중 [math(7)]로 나눈 나머지가 같은 것은 그냥 같은 것으로 취급한다! 예컨대, [math(15)]를 [math(7)]로 나눈 나머지와 [math(8)]을 [math(7)]로 나눈 나머지는 모두 [math(1)]이므로, 그냥 [math(15)]와 [math(8)]은 같은 수라고 생각하는 것이다. 그리고 이를 표기하기 위해서는 [math(15\equiv8\pmod7)]이라고 쓴다. 한편, [math(5)]와 [math(9)]는 [math(7)]로 나눈 나머지가 다르므로 [math(5\not\equiv9\pmod7)]이라고 쓸 수 있다. 이렇게 하고 나면, 정수를 [math(7)]로 나눈 나머지는 [math(0)]~[math(6)]의 [math(7)]가지만 가능하므로, 원래의 [math(\Z)]는 무한집합이었지만, 이제는 [math(\{0,1,2,3,4,5,6\})]이라는 유한집합이 돼 버렸고, 이를 [math(\mathbb F_7)]로 표기한다. (물론, [math(p)]가 다른 소수인 경우에도 [math(\mathbb F_p)]라고 표기한다.)

이제 [math(\mathbb F_7)]이 체가 된다는 것을 확인하자. 앞서 말했듯이 어떤 집합이 체가 되는지를 확인하려면 덧셈, 뺄셈, 곱셉, 나눗셈이 잘 이루어지는가를 확인하면 된다. [math(\mathbb F_7)]의 덧셈은 [math(\Z)]에서 원래 쓰던 것을 그냥 가져올 것이다. 예를 들어, [math(15+8\equiv23\pmod7)]과 같이 덧셈을 할 때에는 평범한 정수를 더하듯이 더해주면 된다. 뺄셈과 곱셈의 경우도 마찬가지로 원래 정수 [math(\Z)]에서 하던 뺄셈과 곱셈을 [math(\mathbb F_7)]에 이식하는 것이 가능하다.[11]

이렇게 해서 [math(\mathbb F_7)] 위의 덧셈, 뺄셈, 곱셈은 어렵지 않게 할 수 있다는 것을 확인하였다. 이제 마지막으로 남은 것은 이 위에서 나눗셈을 잘 할 수 있는지를 확인하는 것이다. 그런데 이것은 전혀 쉬운 일이 아니다. 왜냐하면 [math(\mathbb F_7)]의 근원이 되는 [math(\Z)] 자체에, 덧셈, 뺄셈, 곱셈만 있었지, 나눗셈은 없었기 때문이다. 나눗셈을 하는 방법은 우리가 새롭게 정의해주어야 하는데, 이때 사용되는 것이 확장된 유클리드 호제법(extended Euclidean algorithm)이다. 확장된 유클리드 호제법이란, 두 정수 [math(a,b)]가 주어졌을 때, 두 수의 최대공약수가 [math(g)]라고 하면, [math(am+bn=g)]가 되는 정수 [math(m,n)]을 언제나 빠르게 찾아낼 수 있는 알고리즘이다. (사실 저러한 정수 [math(m,n)]이 항상 존재한다는 사실부터가 충격과 공포다.) 그러면 이제 [math(\mathbb F_7)] 위에서 나눗셈을 할 수 있다. 나눗셈은 역원을 곱하는 것이므로, [math(0)] 이외의 수가 항상 역수를 가진다는 것을 보이면 그것이 곧 나눗셈을 할 수 있다는 것을 보이는 것과 같다. [math(0)]이 아닌 원소 [math(1,2,3,4,5,6)]에 대해서 각각 역원을 찾으려면 어떻게 해야할까? [math(1)]~[math(6)]은 모두 [math(7)]보다 작은 자연수이고, [math(7)]은 소수이므로, [math(1)]~[math(6)]은 모두 [math(7)]과 서로소이다. 즉, 최대공약수가 [math(1)]이다. 따라서 이 중 [math(3)]의 역원을 계산하고자 한다면, [math(3)]과 [math(7)]을 확장된 유클리드 알고리즘의 입력으로 넣어 준다. [math(3)]과 [math(7)]의 최대공약수는 [math(1)]이므로, 알고리즘은 [math(3m+7n=1)]이 되는 정수 [math(m,n)]을 반환해준다. 그러면 이때의 [math(m)]이 바로 [math(3)]의 역수, 즉 잉여역수가 된다. 왜냐하면 [math(3m\equiv3m+0n\equiv3m+7n\equiv1\pmod7)]이기 때문이다. 실제로 계산을 해보면 [math(3\cdot5=15\equiv1\pmod7)]이므로 [math(3)]의 잉여역수는 [math(5)]가 되는 것을 알 수 있다.

따라서 [math(\mathbb F_7)]은 체가 된다. 그리고 이는 위에서 예시로 보여주었던 체들과는 달리 유한집합이며, [math(\underbrace{1+1+{\cdots}+1}_{7}=7\equiv0\pmod7)]에서 지표가 [math(7)]임을 알 수 있다. 이와 같이 유한집합이 되는 체를 유한체 또는 갈루아 체라고 부른다. 유한체는 이미 수학자들에 의해 완벽한 분류(classification)[12]가 이루어져 있다. 보다 자세히 말하자면, 유한체의 원소의 개수는 모두 [math(p^n)](단, [math(p)]는 소수)의 꼴로 표현되고, 원소 수가 [math(p^n)]개인 체는 오직 하나가 존재한다는 사실이 증명돼 있다.[13][14] 즉, 원소 수가 7개인 체는 위에서 밝혀낸 [math(\mathbb F_7)] 하나뿐인 것이다.

위에서 설명한 방법을 사용하면 원소의 개수가 [math(p)]인 체는 모두 만들어낼 수 있는데, 어떻게 하면 [math(p^n)]개의 원소를 가지는 체를 만들어낼 수 있을까? 이는 조금 더 복잡하지만 정수를 소수로 나눈 나머지를 생각하는 대신, [math(\mathbb F_p)]의 원소를 계수로 가지는 다항식을 [math(n)]차 기약다항식으로 분해하는 방법을 사용해 만들 수 있다. 이번에는 원소가 [math(2)]개인 유한체 [math(\mathbb F_2)]로부터 [math(\mathbb F_4)]를 만드는 과정을 보자. 먼저, [math(\mathbb F_2)]에서 덧셈과 곱셈은 다음과 같이 정의돼 있다.
덧셈 곱셈
{{{#!wiki<colbgcolor=#f5f5f5,#2d2f34> [math(+)] [math(0)] [math(1)]
[math(0)] [math(0)] [math(1)]
[math(1)] [math(1)] [math(0)] }}} {{{#!wiki<colbgcolor=#f5f5f5,#2d2f34> [math(\cdot)] [math(0)] [math(1)]
[math(0)] [math(0)] [math(0)]
[math(1)] [math(0)] [math(1)] }}}

[math(4=2^2)]이므로 [math(\mathbb F_4)]는 [math(\mathbb F_2)]를 계수가 [math(\mathbb F_2)]의 원소인 이차기약다항식으로 분해하는 방식으로 만들 수 있다. 이차기약다항식은 [math(x^2+x+1)]밖에 없으므로,[15] [math(\mathbb F_4)]의 원소는 [math(0)], [math(1)], [math(x)], [math(x+1)]이고, 덧셈과 곱셈은 다음과 같이 다항식의 덧셈, 곱셈 후 [math(x^2+x+1)]로 나눈 나머지로 정의한다. 이렇게 만든 [math(\mathbb F_4)]도 [math(1+1=0)]이므로 [math(\mathbb F_2)]와 같이 지표가 [math(2)]이다.
덧셈 곱셈
{{{#!wiki<colbgcolor=#f5f5f5,#2d2f34> [math(+)] [math(0)] [math(1)] [math(x)] [math(x+1)]
[math(0)] [math(0)] [math(1)] [math(x)] [math(x+1)]
[math(1)] [math(1)] [math(0)] [math(x+1)] [math(x)]
[math(x)] [math(x)] [math(x+1)] [math(0)] [math(1)]
[math(x+1)] [math(x+1)] [math(x)] [math(1)] [math(0)] }}} {{{#!wiki<colbgcolor=#f5f5f5,#2d2f34> [math(\cdot)] [math(0)] [math(1)] [math(x)] [math(x+1)]
[math(0)] [math(0)] [math(0)] [math(0)] [math(0)]
[math(1)] [math(0)] [math(1)] [math(x)] [math(x+1)]
[math(x)] [math(0)] [math(x)] [math(x+1)] [math(1)]
[math(x+1)] [math(0)] [math(x+1)] [math(1)] [math(x)] }}}

위의 예시에서는 기약다항식이 하나뿐이었지만, 다른 경우에는 기약다항식이 여러 개이다. 예를 들어 [math(\mathbb F_8)]을 만들기 위해 계수가 [math(\mathbb F_2)]의 원소인 삼차기약다항식을 찾아보면, [math(x^3+x^2+1)]과 [math(x^3+x+1)]의 2가지가 존재한다. 이 경우, 어떤 다항식을 기준으로 만들어도 체의 유일성에 의해 동형인 유한체가 만들어진다.

유한체의 분류 문제가 완벽하게 해결됐다고 해서 유한체는 비교적 단순한 대상이라는 오해가 있을 수도 있지만, 전혀 그렇지 않다. 예를 들어, 유한체 위에서 곱셈이 잘 정의되기 때문에, 실수에서의 로그와 비슷한 것을 생각하여 [math(\mathbb F_p)] 위에서의 로그를 생각해볼 수 있다. 예를 들어, [math(\mathbb F_7)] 위에서 생각한다면 [math(\log_3 6\equiv3)]이다. 이는 [math(3^3\equiv27\equiv6\pmod7)]이기 때문이다. 그렇지만 이렇게 로그를 계산하는 것은 소수 [math(p)]가 50자리 이상의 큰 수가 되고 나면 더이상 쉬운 문제가 아니다. 이와 같은 것을 이산 로그 문제(DLP)라고 하는데, 양자컴퓨터를 사용하지 않고서는 빠르게 계산하는 방법이 전혀 밝혀지지 않았기 때문에, 심지어는 이를 응용하여 암호 시스템을 만들 수 있을 정도이다!

이산 로그 문제와 소인수분해 문제가 동등함을 쉽게 밝힐 수 있고, 이산 로그 문제의 다항 시간 해법을 알면 다항 시간 내에 끝나는 간편한 소인수분해 알고리즘을 만들 수 있다. 복잡한 정수론적 문제란 곧 새로운 암호 시스템 하나를 의미한다. 잘 알려져 있듯이, 소인수분해의 어려움은 널리 쓰이는 RSA 암호 시스템의 기초가 된다. 그러나 RSA는 양자컴퓨터가 개발되면 공격할 수 있기 때문에, 요즘 수학자들은 양자컴퓨터로도 풀기 어려운 격자(lattice) 문제에 기반하는 다른 암호 시스템의 안전성을 연구하고 있다.

3. 여담

여담으로 주의할 점이 있다면, 대수적으로 닫힌 확대체. 즉 대수적 확대체의 존재성에 대한 증명의 경우는 선택공리 없이는 증명할 수 없다. 정확하게는 모든 체에 대하여 대수적으로 닫힌 체가 존재함을 보이기 위해서는 '부분순서집합의 임의의 사슬이 상계를 가지면 극대원소가 적어도 하나 존재한다'라는 초른의 보조정리를 이용해야 하는데, 이는 선택공리와 동치이기 때문.

[1] 이를 해당 연산에 대해 닫혀있다고 말한다.[2] 보통 수학과, 수학교육과에서 배우는 전공수학 커리큘럼 중 이 분야를 본격적으로 다루는 현대대수학에서는 을 한 학기 가까이 공부하고서 가장 기본적인 덧셈군에다가 이것저것 차근차근 추가하면서 가환군, 등을 거쳐 체의 공리를 마주하기까지의 과정에 최소 한 학기를 써먹지만, 3학년 과정인 현대대수학보다 이른 2학년때 배우는 해석학개론에서는 이 10가지 체의 공리를 첫 학기 첫 수업에서부터 머릿속에 마구 쑤셔 넣고 완비순서체로서의 실수를 구성하는데에만 집중하기 때문에 미적분학이나 집합론 말고는 별다른 기초도 안 갖춰진 2학년생들에게 상당한 컬처쇼크를 선사한다. 2학년 때에는 그냥 암기, 사실 암기조차도 아니고 '당연한 성질'이라고 무심코 넘기던 것이 이렇게 여러 조건을 강화한 것임을 깨닫고 나면 고학년생들은 한번쯤 이불킥을 한다. 그리고 벡터 공간을 가군의 예시로 만나면 이불킥 한번 더[3] (A1)~(A4)는 덧셈에 대해 교환법칙까지 성립하는 가환군의 조건이다.[4] 이게 성립하지 않는 은 꼬인체(skew field)가 된다. 대표적인 예시로 사원수 집합 [math(\mathbb H)]가 있다.[5] 대수학 교과서나 학자에 따라 환의 정의에 이 조건을 포함시키기도 하고 제외하기도 한다.[6] 이게 성립하지 않으면 RNG가 된다. 대표적으로 [math(0)]과 음수를 포함한 짝수가 있다.[7] 가환환이므로 교환법칙에 대해서는 설명할 필요가 없으며, 단위원 [math(1_R)]을 지정하므로 곱셈에 대한 내용은 해결 가능하다. 다만 이 문장만으로는 덧셈에 대한 내용은 조금 끌어내기가 힘든데, [math(a(\ne0_R)\in R)]에서 덧셈에 대한 항등원 [math(0_R)]을 언급하고 있다는 점을 이용하면 된다.[8] 이때 근의 공식이란, 덧셈, 뺄셈, 곱셈, 나눗셈, 및 [math(n)]제곱근의 조합으로만 구성된 수식을 이용하여 방정식의 해를 표현하는 것을 의미한다.[9] [math(z\neq 0)]이고 [math(xz=yz)]이면 [math(x=y)].[10] 이는 대수학의 기본정리의 자명한 귀결로 얻어지는 결과다. 항목의 따름정리 1 참조.[11] 사실 이러한 이식 과정에서 연산 사이에 호환이 잘 이루어지는지를 추가적으로 확인해보아야 한다. 이는 두 정수 [math(a)], [math(b)]가 주어졌을 때, [math(a)]와 [math(b)]를 각각 [math(7)]로 나눈 나머지를 더한 후 [math(7)]로 나눈 나머지를 취한 것과, [math(a+b)]를 [math(7)]로 나눈 나머지를 취한 것이 동일하다는 사실에 기인하고 있다. 곱셈도 마찬가지이다.[12] 분류 문제는 수학의 곳곳에서 발견되는 아주 중요한 문제이다.[13] 존재성 증명: [math(\mathbb F_p)]위의 다항식 [math(x^{p^n}-x=0)]과 이것의 해의 모임 [math(F)]를 생각하자. [math(\text{char}(\mathbb Z_p)=p)]이므로, 임의의 [math(alpha,betain F)]에 대하여 [math((alpha+beta)^{p^n}=alpha+beta)]이다. 나머지 체의 공리들은 쉽게 보일 수 있다. 따라서, [math(F)]는 [math(\mathbb F_p)]위의 다항식 [math(x^{p^n}-x=0)]의 분해체이다.[14] 유일성 증명: [math(|F|=p^n)]인 체 [math(F)]에 대해, [math(F^\times)]는 곱셈군이므로, 모든 [math(\alpha\in F^\times)]에 대해 [math(\alpha^{p^n-1}=\alpha^{\left|F^\times\right|}=1)]이다. 따라서, 모든 [math(\alpha\in F)]에 대해, [math(\alpha^{p^n}-\alpha=0)]이다. 즉, [math(F)]의 모든 원소는, [math(\Z_p)]위의 다항식 [math(x^{p^n}-x=0)]의 근이고, 이 방정식의 차수는 [math(p^n=|F|)]이므로, [math(F)]는 [math(\Z_p)]위의 다항식 [math(x^{p^n}-x=0)]의 분해체이다. 분해체의 유일성에 의해, [math(F)]는 유일하다.[15] 나머지 이차다항식은 각각 [math(x^2=xx)], [math(x^2+1=(x+1)(x+1))], [math(x^2+x=x(x+1))]로 인수분해된다.

분류