본문으로 건너뛰기

5장. 유한체

개요​

군·환·체의 대수 구조, GF(p) 유한체, 다항식 산술, GF(2ⁿ) 유한체, 기약 다항식, 생성원

유한체(Finite Field)는 AES, 타원 곡선 암호 등 다수의 암호 알고리즘에서 핵심적인 역할을 한다. 이 장에서는 군·환·체의 대수 구조를 기초부터 쌓아 올려 GF(p)\text{GF}(p)와 GF(2n)\text{GF}(2^n)을 이해한다.

학습 목표

  • 군(Group), 환(Ring), 체(Field)를 구분한다.
  • GF(p)\text{GF}(p) 유한체를 정의한다.
  • 일반 다항식 산술, ZpZ_p 계수 다항식 산술, GF(2n)\text{GF}(2^n) 모듈러 다항식 산술의 차이를 설명한다.
  • GF(2n)\text{GF}(2^n) 유한체를 정의한다.

5.1 군 (Groups)​

군 {G,∙}\{G, \bullet\}은 이항 연산 ∙\bullet이 정의된 집합 GG로, 다음 공리를 만족한다.

공리이름내용
A1닫힘 (Closure)a,b∈G⇒a∙b∈Ga, b \in G \Rightarrow a \bullet b \in G
A2결합법칙 (Associative)a∙(b∙c)=(a∙b)∙ca \bullet (b \bullet c) = (a \bullet b) \bullet c
A3항등원 (Identity)a∙e=e∙a=aa \bullet e = e \bullet a = a인 e∈Ge \in G 존재
A4역원 (Inverse)a∙a′=a′∙a=ea \bullet a' = a' \bullet a = e인 a′∈Ga' \in G 존재

아벨 군 (Abelian Group)​

위 공리에 교환법칙(A5: a∙b=b∙aa \bullet b = b \bullet a)이 추가되면 아벨 군이다.

순환 군 (Cyclic Group)​

GG의 모든 원소가 고정 원소 aa의 거듭제곱 aka^k로 표현되면 순환 군이다. 이때 aa를 **생성원(Generator)**이라 한다. 순환 군은 항상 아벨 군이다.


5.2 환 (Rings)​

환 {R,+,×}\{R, +, \times\}은 덧셈과 곱셈이 정의된 집합으로, 다음을 만족한다.

조건설명
A1–A5덧셈에 대해 아벨 군
M1곱셈에 대해 닫힘
M2곱셈의 결합법칙
M3분배법칙: a(b+c)=ab+aca(b+c) = ab + ac

환의 하위 분류​

구조추가 조건
가환환 (Commutative Ring)M4: 곱셈의 교환법칙
정역 (Integral Domain)M4 + M5(곱셈 항등원) + M6(영인자 없음)

Zn={0,1,…,n−1}Z_n = \{0, 1, \ldots, n-1\}에서 모듈러 산술을 적용하면 가환환이 된다.


5.3 체 (Fields)​

체 {F,+,×}\{F, +, \times\}은 정역에 곱셈 역원(M7)을 추가한 구조이다.

a≠0⇒∃ a−1∈F  s.t.  a⋅a−1=1a \neq 0 \Rightarrow \exists\, a^{-1} \in F \;\text{s.t.}\; a \cdot a^{-1} = 1

동치 정의:

  1. 덧셈에 대해 아벨 군
  2. 0을 제외한 원소가 곱셈에 대해 아벨 군
  3. 분배법칙 성립

군·환·체 공리 요약​

공리군아벨 군환가환환정역체
A1–A4✓✓✓✓✓✓
A5 (교환)✓✓✓✓✓
M1–M3✓✓✓✓
M4 (교환)✓✓✓
M5 (항등원)✓✓
M6 (영인자 없음)✓✓
M7 (곱셈 역원)✓

5.4 유한체 GF(p)​

유한체의 위수​

유한체의 원소 수(위수)는 반드시 소수의 거듭제곱 pnp^n 형태이다. 이를 갈루아 체(Galois Field) GF(pn)\text{GF}(p^n)으로 표기한다.

GF(p)의 정의​

소수 pp에 대해 GF(p)=Zp={0,1,…,p−1}\text{GF}(p) = Z_p = \{0, 1, \ldots, p-1\}이고, 모든 산술은  mod p\bmod p로 수행한다.

pp가 소수이면 ZpZ_p의 모든 0이 아닌 원소가 pp와 서로소이므로 곱셈 역원이 존재하여 체가 된다.

GF(2) — 가장 단순한 유한체​

+01
001
110
×01
000
101

GF(2)\text{GF}(2)에서 덧셈은 XOR, 곱셈은 AND와 동일하다.

GF(p)에서 곱셈 역원 구하기​

확장 유클리드 알고리즘으로 계산한다.

ax+by=1  ⇒  y=b−1 mod aax + by = 1 \;\Rightarrow\; y = b^{-1} \bmod a

예시: GF(1759)\text{GF}(1759)에서 550−1550^{-1}

  • 확장 유클리드 알고리즘 적용: 1759x+550y=11759x + 550y = 1
  • 결과: y=355y = 355
  • 검증: 550×355 mod 1759=1550 \times 355 \bmod 1759 = 1 ✓

5.5 다항식 산술​

다항식의 정의​

f(x)=anxn+an−1xn−1+⋯+a1x+a0=∑i=0naixif(x) = a_n x^n + a_{n-1} x^{n-1} + \cdots + a_1 x + a_0 = \sum_{i=0}^{n} a_i x^i

다항식 산술의 세 가지 분류​

분류계수 집합모듈러 다항식용도
일반 다항식 산술실수, 정수 등없음기초
ZpZ_p 계수 다항식GF(p)\text{GF}(p)의 원소없음중간 단계
모듈러 다항식 산술GF(p)\text{GF}(p)의 원소m(x)m(x)로 나머지GF(2n)\text{GF}(2^n) 구성

다항식 나눗셈​

f(x)=q(x)⋅g(x)+r(x)f(x) = q(x) \cdot g(x) + r(x)

  • deg⁡(q)=deg⁡(f)−deg⁡(g)\deg(q) = \deg(f) - \deg(g)
  • deg⁡(r)≤deg⁡(g)−1\deg(r) \leq \deg(g) - 1

r(x)=0r(x) = 0이면 g(x)g(x)는 f(x)f(x)의 **인수(factor)**이다.

GF(2) 위의 다항식​

GF(2)\text{GF}(2)에서는 덧셈과 뺄셈이 동일하다 (1+1=1−1=01 + 1 = 1 - 1 = 0).

예시: f(x)=x7+x5+x4+x3+x+1f(x) = x^7 + x^5 + x^4 + x^3 + x + 1, g(x)=x3+x+1g(x) = x^3 + x + 1일 때

  • f(x)+g(x)=x7+x5+x4f(x) + g(x) = x^7 + x^5 + x^4
  • f(x)÷g(x)f(x) \div g(x): 몫 x4+x5+x+1x^4 + x^5 + x + 1, 나머지 00 → g(x)∣f(x)g(x) \mid f(x)

기약 다항식 (Irreducible Polynomial)​

체 FF 위에서 f(x)f(x)가 더 낮은 차수의 두 다항식의 곱으로 표현될 수 없으면 기약(irreducible)이라 한다. 정수에서의 소수에 대응된다.

예시: x3+x+1x^3 + x + 1은 GF(2)\text{GF}(2) 위에서 기약

다항식의 GCD​

유클리드 알고리즘을 다항식에 확장 적용한다.

gcd⁡[a(x),  b(x)]=gcd⁡[b(x),  a(x) mod b(x)]\gcd[a(x),\; b(x)] = \gcd[b(x),\; a(x) \bmod b(x)]


5.6 유한체 GF(2ⁿ)​

필요성​

nn비트 데이터를 처리하는 암호 알고리즘에서 나눗셈을 사용하려면 2n2^n개 원소를 가진 체가 필요하다. Z2nZ_{2^n}에 모듈러 산술을 적용해도 체가 되지 않으므로, 다항식 산술 기반의 GF(2n)\text{GF}(2^n)을 구성한다.

구성 방법​

GF(2n)\text{GF}(2^n)의 원소는 GF(2)\text{GF}(2) 위의 차수 n−1n-1 이하 다항식 전체이다. 총 2n2^n개 원소가 존재한다.

산술 규칙:

  1. 계수 산술은  mod 2\bmod 2 (XOR)
  2. 곱셈 결과가 차수 nn 이상이면 차수 nn의 기약 다항식 m(x)m(x)로 나머지 계산

표현 방법​

다항식의 각 계수를 비트로 나타내면 nn비트 정수로 표현 가능하다.

x6+x4+x2+x+1  ⟷  01010111  ⟷  {57}x^6 + x^4 + x^2 + x + 1 \;\longleftrightarrow\; 01010111 \;\longleftrightarrow\; \{57\}

덧셈​

계수별  mod 2\bmod 2 덧셈 = 비트별 XOR

{57}⊕{83}={D4}\{57\} \oplus \{83\} = \{D4\}

곱셈​

AES에서 사용하는 GF(28)\text{GF}(2^8)의 기약 다항식: m(x)=x8+x4+x3+x+1m(x) = x^8 + x^4 + x^3 + x + 1

xx와의 곱셈 (xtime 연산):

x⋅f(x)={(b6b5b4b3b2b1b0 0)b7=0(b6b5b4b3b2b1b0 0)⊕(00011011)b7=1x \cdot f(x) = \begin{cases} (b_6 b_5 b_4 b_3 b_2 b_1 b_0\, 0) & b_7 = 0 \\ (b_6 b_5 b_4 b_3 b_2 b_1 b_0\, 0) \oplus (00011011) & b_7 = 1 \end{cases}

1비트 좌측 시프트 후, 최상위 비트가 1이면 (00011011)(00011011)과 XOR한다.

일반 곱셈: xtime을 반복 적용하고 중간 결과를 XOR로 합산한다.

예시: {57}×{83}\{57\} \times \{83\}

{57}×{83}={57}×[{01}⊕{02}⊕{80}]\{57\} \times \{83\} = \{57\} \times [\{01\} \oplus \{02\} \oplus \{80\}] ={57}⊕{AE}⊕{38}={C1}= \{57\} \oplus \{AE\} \oplus \{38\} = \{C1\}

이는 다항식으로 x7+x6+1x^7 + x^6 + 1에 해당한다.

곱셈 역원​

확장 유클리드 알고리즘을 다항식에 적용한다.

a(x)⋅v(x)+b(x)⋅w(x)=gcd⁡[a(x),  b(x)]a(x) \cdot v(x) + b(x) \cdot w(x) = \gcd[a(x),\; b(x)]

gcd⁡=1\gcd = 1이면 w(x)=b(x)−1 mod a(x)w(x) = b(x)^{-1} \bmod a(x)

예시: (x7+x+1)−1 mod (x8+x4+x3+x+1)=x7(x^7 + x + 1)^{-1} \bmod (x^8 + x^4 + x^3 + x + 1) = x^7

생성원 (Generator)​

위수 qq인 유한체 FF의 생성원 gg는 g0,g1,…,gq−2g^0, g^1, \ldots, g^{q-2}로 FF의 모든 0이 아닌 원소를 생성하는 원소이다.

GF(23)\text{GF}(2^3)에서 m(x)=x3+x+1m(x) = x^3 + x + 1의 생성원 gg:

g3=g+1g^3 = g + 1을 이용하여 계산하면:

거듭제곱다항식이진수
0000000
g0g^011001
g1g^1gg010
g2g^2g2g^2100
g3g^3g+1g + 1011
g4g^4g2+gg^2 + g110
g5g^5g2+g+1g^2 + g + 1111
g6g^6g2+1g^2 + 1101

거듭제곱 표현에서 곱셈: ga×gb=g(a+b) mod (2n−1)g^a \times g^b = g^{(a+b) \bmod (2^n - 1)}

예시: g4×g6=g10 mod 7=g3=g+1g^4 \times g^6 = g^{10 \bmod 7} = g^3 = g + 1


주요 용어​

한국어영어설명
군Group닫힘·결합·항등·역원 공리를 만족하는 집합
아벨 군Abelian Group교환법칙이 추가된 군
순환 군Cyclic Group하나의 생성원으로 모든 원소 생성
환Ring덧셈(아벨 군) + 곱셈(닫힘·결합·분배)
정역Integral Domain가환환 + 곱셈 항등원 + 영인자 없음
체Field정역 + 곱셈 역원
유한체Finite Field유한 개 원소를 가진 체
갈루아 체Galois Field유한체의 다른 이름, GF(pn)\text{GF}(p^n)
기약 다항식Irreducible Polynomial더 낮은 차수의 곱으로 분해 불가능한 다항식
생성원Generator유한체의 모든 비영 원소를 거듭제곱으로 생성
다항식 환Polynomial Ring체 위의 다항식 전체가 이루는 환