650 likes | 3.05k Views
4 장 정수론의 기본 개념과 유한체 (Finite Fields). 목차. 4.1 가분성 (Divisibility) 과 호제법 (Division Algorithm) 4.2 유클리드 호제법 4.3 모듈러 연산 4.4 군 , 환 , 체 4.5 GF( p ) 상의 유한체 4.6 산술 다항식 4.7 GF(2 n ) 상에서의 유한체. 핵심정리. 모듈러 연산은 정수 연산의 한 종류 모든 숫자를 어떤 숫자 n 에 대한 하나의 집합으로 단축
E N D
목차 4.1 가분성(Divisibility)과 호제법(Division Algorithm) 4.2 유클리드호제법 4.3 모듈러 연산 4.4 군, 환, 체 4.5 GF(p)상의 유한체 4.6 산술 다항식 4.7 GF(2n)상에서의 유한체
핵심정리 • 모듈러 연산은 정수 연산의 한 종류 • 모든 숫자를 어떤 숫자 n에 대한 하나의 집합으로 단축 • 두 정수의 최대공약수란 두 정수를 나누는 가장 큰 양의 정수 • 유한체 이론은 암호학의 여러 분야에서 매우 중요하게 사용됨 • 유한체 • 유한개의 원소를 가지는 체 • 유한체의 위수는 n이 양의 정수일 때, 소인수의 멱승인pn
4.1 가분성(Divisibility)과 호제법(Division Algorithm) • 가분성(Divisibility) • a, b, m 이 정수이고 b가 0이 아닐 때, 임의의 수 m에대해서a = mb가 성립한다면, b가 a를 ‘나눈다’라고 함 • 즉, 나눗셈 연산 후, 나머지가 0이면 ‘b가 a를 나눈다’라고 함 • b | a는 b가 a를 나누는 것을 표현할 때, 주로 사용되는 표기법 • b | a이면 b는 a의 약수 • 나누어짐의 특성 • 만약 a | 1이면 a = 1이다 • 만약 a |b이고 b |a이면, a = b이다 • 임의의 b가 0이 아닐 경우, 0을 나눈다 • 만약 a |b 이고 b |c 이면, a |c이다. 24의 양의 약수는 1,2,3,4,6,8,12,24이다. 13 | 182; -5 | 30; 17 | 289; -3 | 33; 17 | 0
4.1 가분성(Divisibility)과 호제법(Division Algorithm) • 나누어짐의 특성 • 만약 b |g이고 b |h이면, 임의의 정수m과 n에 대해서 b |(mg + nh)이다. • 위의 특성은 다음과 같은 과정을 통해 만족함을 알 수 있음 • 만약 b | g이면 g = b g1이 되는 정수 g1이 존재한다. • 만약 b | h이면 h = b h1이 되는 정수 h1이 존재한다. 따라서, mg + nh= mbg1 + nbh1 = b (mg1 + nh1) 이며, 그러므로 b는 mg + nh를 나눈다. b = 7; g = 14; h = 64; m = 3; n = 2, 7 | 14 이고 7 | 63 7 | (3 14 2 63) 임을 보이려면, (3 14 + 2 63) = 7(3 2 + 2 9)이므로, 7 | (7(3 2 + 2 9))이다.
4.1 가분성(Divisibility)과 호제법(Division Algorithm) • 호제법(The Division Algorithm) • 임의의 양의 정수 n과 음의 정수가 아닌 정수 a에 대하여, n이 a를 나눈다면, 정수인 몫 q와 정수인 나머지 r이 존재하며, 다음의 관계식이 성립 a =qn+r 0 rn; q = a/n (4.1) • x는 x보다 작거나 같은 가장 큰 정수이며, 위의 식을 호제법이라 함 a =qn+r; 0 r n 의관계
4.2 유클리드호제법(Euclidean Algorithm) • 정수론의 기본적 기술 • 두 양의 정수에 대한 최대공약수를 결정하기 위한 수행 절차 • 서로소: 공약수가 1 밖에 없는 두 정수 • 최대공약수(Greatest Common Divisor) • gcd(a, b) :a와 b의최대공약수를 의미(최대공약수 : a와 b를 모두 나누는 가장 큰 정수) • 다음을 만족할 경우 c는 a와 b의 최대공약수 • c는 a와 b의 약수 • a와 b에 대한 모든 공약수는 c의 약수 → gcd(a, b) = max[k, k | a 이고 k | b일 때] 로 나타낼 수 있음 • 양수인 최대공약수를 구하기 때문에 gcd(a, b) = gcd(a, -b) = gcd(-a, b) = gcd(-a, -b) 가 성립. 즉, gcd(a, b) = gcd(|a|, |b|) gcd(60, 24) = gcd(60, -24) = 12
4.2 유클리드호제법(Euclidean Algorithm) • 최대공약수(Greatest Common Divisor) • 모든 0이 아닌 정수들은 0을 나누기 때문에 다음 식 gcd(a, 0) = |a| 이 성립 • 정수 a와 b가 공약수가 1밖에 없다면, a와 b는 서로소 • gcd(a, b) = 1이면, a와 b는 서로소 • 최대공약수 찾기 • 유클리드가 고안한 두 정수의 최대공약수를 찾는 알고리즘 • 어떠한 정수 a, b와 d = gcd(a, b)가 있다고 가정 8과 15는 서로소이다. 왜냐하면 8은 1, 2, 4, 8을 약수로 가지며, 15의 약수는 1, 3, 5, 15를 갖는데, 이때 8과 15의 두 약수 목록에 모두 포함된 수는 1뿐이기 때문이다.
4.2 유클리드호제법(Euclidean Algorithm) • 최대공약수 찾기 • 유클리드가 고안한 두 정수의 최대공약수를 찾는 알고리즘 1. 어떠한 정수 a, b와 d = gcd(a, b)가 있다고 가정 2. gcd(|a|, |b|) = gcd(a, b) 이기 때문에 a b 0 추정 가능 3. a를 b로 나눈 후,호제법 적용 a = q1b+r1 0 r1b (4.2) 4. r1 = 0 일 경우 b | a, d = gcd(a,b) = b 5. r10 일경우, 가분성의 기본적 성질에 의해 d | r1 이라고 할 수 있음 → d | a이고 d | b이면, d | (a - q1b), 즉, d | r1임을 의미 • gcd(b, r1)은 무엇인가? • d| b, 그리고 d| r1일 때, b와 r1을 나누는 임의의 정수 c가 있다. 그러면 c| (q1b + r1) = a이다. 왜냐하면 c가 a와 b를 모두 나누기 때문에 cd가 성립 • d는 a와 b의 최대공약수이기 때문. 따라서 d = gcd(b, r1) • a = q1b+r1 0 r1b (4.2)
4.2 유클리드호제법(Euclidean Algorithm) • 최대공약수 찾기 • r10 라 가정 • br1이기때문에 b를 r1으로 나눌 수 있고 호제법을 적용하여 다음을 얻음 b = q2r1 + r2 0 r2r1 • r2 = 0 이라면 d = r1이 되고, 만약 r20 이라면d = gcd(r1,r2) • 나누기 과정은 나머지가 0이 나올 때까지 계속됨 • a = q1b+r1 0 r1b (4.2)
4.2 유클리드호제법(Euclidean Algorithm) • 최대공약수 찾기 • 각 단계마다 d = gcd(ri, ri+1)을 얻을 수 있음 • 결과적으로 d = gcd(rn, 0) = rn을 얻게됨 • 따라서 호제법의 반복적인 적용으로 두 정수의 최대공약수를 찾는 것이 가능 • 호제법의 반복적인 적용결과가 항상 gcd(a, b)인지, 그리고 그 반대가 성립하는지 확인 • rn이 a와 b를 나누는지 확인 → 식 (4.3)의 마지막 수식을 통해 rn이 rn-2를 나눔을 확인 → rn이 우변의 두 수식(qnrn-1, rn)을모두 나누기 때문 → 이러한 과정을 반복함으로써, rn이 모든 ri를 나눌 수 있음을 확인 → 최종적으로 a, b도 나눌 수 있음을 확인 • rn이 가장 큰 공약수인지 확인 → a, b를 나누는 임의의 정수가 r1도 나눈다는 것을 앞서 확인했음 →식 (4.3)을 통해 c가 모든 ri를 나눌 수 있음을 확인 → c는 rn또한 나눌 수 있으며, rn = gcd(a,b) 성립
4.2 유클리드호제법(Euclidean Algorithm) • 상대적으로 큰 숫자들에 대한 최대공약수 구하기(1/2)
4.2 유클리드호제법(Euclidean Algorithm) • 상대적으로 큰 숫자들에 대한 최대공약수 구하기(2/2)
4.3 모듈러 연산(Modular Arithmetic) • 법(The Modulus) • 임의의 정수 a와 양의 정수 n에 대하여 a mod n을 a를 n으로 나눈 나머지로 정의하고, 이 때 n을 법이라고 함 • 모든 정수 a에 대하여 식 (4.1)을 다음과 같이 나타낼 수 있음 • 만약 (a mod n) = (b mod n)이면, ab (mod n) 이라할 수 있음 • 이 경우 두 정수 a와 b는 법n에 대해 합동이라 함 • 이 때, 만약 a 0 (mod n)이면, n | a임 • a =qn+r0 rn; q = a/n • a = a/n n + (a mod n) • 11 mod 7 = 4; -11 mod 7 = 3 • 73 4 (mod 23); 21 -9 (mod 10)
4.3 모듈러 연산(Modular Arithmetic) • 합동에 관한 기본 특성(Properties of Congruences) • 모듈러 연산은 다음과 같은 특성을 가짐 1. 만약 n | (a - b)이면 ab mod n 2. ab mod n은 ba mod n의 의미를 포함 3. ab mod n이고 bc mod n이면 ac mod n • 모듈러 연산 (Modular Arithmetic Operations) • mod n연산자는 모든 정수들을 정수들의 집합 {0, 1,…,(n-1)}으로 표현할 수 있음 • 이러한 기법을 모듈러 연산(modular arithmetic)이라 함 • 모듈러 연산의 특성 1. [(a mod n) + (b mod n)] mod n = (a + b) mod n 2. [(a mod n) - (b mod n)] mod n = (a - b) mod n 3. [(a mod n) (b mod n)] mod n = (ab) mod n • 가산, 감산, 승산에 관한 일반적 산술법칙들은 모듈러 연산에서도 적용 가능
4.3 모듈러 연산(Modular Arithmetic) • 모듈러 연산의 특성(Properties of Modular Arithmetic) • N보다 작은 음이 아닌 정수들의 집합을 Zn이라 정의 Zn= {0, 1,…,(n-1)} • modulo n 상에서의 잉여집합(set of residues) 또는 잉여류(residue classes)를 나타냄 • 다음을 만족할 때, 모듈러n의 잉여류를([0], [1], [2], . . . , [n - 1])로 표기할 수 있음 [r] = {a: a는 정수 a r (mod n)}
4.3 모듈러 연산(Modular Arithmetic) • 모듈러 연산의 특성(Properties of Modular Arithmetic) • 잉여류의모든 정수들 중에 음이 아닌 가장 작은 정수가 잉여류를 나타내기 위해 사용됨 • modulo n에서 k와 합동인 음이 아닌 가장 작은 정수를 찾는 작업을k를 modulo n으로 환산한다라고 부름 • 만약 Zn에 대하여 모듈러 산술연산을 수행한다면, Zn상의 정수들은 아래 표에 기술된 속성을 만족함
4.3 모듈러 연산(Modular Arithmetic) • 모듈러 연산의 특성(Properties of Modular Arithmetic) • 일반적인 연산과 구별되는 모듈러 연산의 특징 만약 (a + b) (a + c)(mod n) 이라면, b c (mod n) (4.4) • 식 (4.4)는 덧셈에 대한 역원이 존재함을 의미 • a에 대한 덧셈에 대한 역원을 식 (4.4) 의 양변에 더함으로써 다음과 같은 수식을 얻을 수 있음 ((-a)+ a + b) ((-a)+ a + c)(mod n) b c (mod n) • (5+23) (5+7)(mod 8); 23 7(mod 8)
4.3 모듈러 연산(Modular Arithmetic) • 모듈러 연산의 특성(Properties of Modular Arithmetic) • 다음 수식은 추가적인 조건을 만족할 때 성립 만약 (ab) (ac)(mod n)이라면, b (c mod n)이다. 단, a는 n과 서로소이다. (4.5) • 서로소란 공약수가 1뿐인 두 정수를 의미함 • (4.4)와 비슷하게 식 (4.5)는 곱셈에 대한 역원이 존재한다고 할 수 있음 • a에 대한 곱셈의 역원을 식 (4.5)의 양변에 곱함 ((a-1)ab) ((a-1)ac)(mod n) b c(mod n) 이러한 결과의 이유는 일반적인 법 n에 대해 만약 a와 n이 공통적으로 어떠한 인수를 가지고 있다면, 정수 0에서부터 (n - 1)까지 차례대로 a에 대한 곱셈을 적용시키더라도 완전한 형태의 나머지 집합이 구성되지 않기 때문이다.
4.3 모듈러 연산(Modular Arithmetic) • 유클리드 호제법에 대한 재고 • 유클리드호제법은 다음의 이론에 기반함 • 임의의 음이 아닌 정수 a와 임의의 양의 정수 b에 대해 다음이 성립 gcd(a,b) gcd(b, a mod b) (4.6) • 식 (4.6)에서와 같이 d = gcd(a, b)라 가정 • gcd의 정의에 따라 d | a이고 d | b, 이때 양의 정수 b에 대해 a는 다음의 형태로 나타낼 수 있음 a = kb + rr (mod b) a mod b = r • 따라서어떠한 정수 k, r에 대해 (a mod b) = a – kb • 그러나 d|b이기때문에 (a mod b)는kb를 나눔. 따라서 d | (a mod b) → d가 b와 (a mod b)의 공통 약수라면, d | kb → 앞에서와 같이 d | [kb + (a mod b)]인데 이는 d | a와 같음 • a와 b에 대한 공통적인 약수들의 집합은 b와 (a mod b)의 공통적인 약수들의 집합과 같음 →어떤 한 수의 gcd는 다른 한 수의 gcd와 같음
4.3 모듈러 연산(Modular Arithmetic) • 유클리드 호제법에 대한 재고 • 식 (4.6)은 최대공약수를 결정하기 위해 반복 사용됨 • 이는식 (4.3)에서 보인 것과 같은 방식이며다음과 같이 다시 표현 가능
4.3 모듈러 연산(Modular Arithmetic) • 유클리드 호제법에 대한 재고 • 재귀함수를 통한 정의 • 확장 유클리드호제법 • 정수 a와 b에 대한확장 유클리드호제법은 최대공약수 d를 계산할 뿐만 아니라 다음 수식을 만족하는 x와 y를 구할 수 있음 ax +by d = gcd(a, b) (4.7) • x와 y가 상반된 부호를 가지게 되는 것은 명백함 • a= 42, b = 30일 때 x와 y의 값은? (gcd(42, 30) = 6임에 주목) Euclid(a,b) if (b=0) then return a; else return Euclid(b, a mod b);
4.3 모듈러 연산(Modular Arithmetic) • 확장 유클리드호제법 • a와 b가 주어졌을 때, (x,y,d)를 결정하는 방법 • 식 (4.3)에서 보인 나눗셈 과정을 거침 • 각 단계 i마다 ri = axi + byi를 만족하는xi와 yi를 찾을 수 있다고 할 때, 다음의 수열이 도출됨 a = q1b + r1r1 = ax1 + by1 b= q2r1+ r2r2= ax2+ by2 r1= q3r2+ r3r3= ax3+ by3 ∙ ∙ ∙ ∙ ∙ ∙ rn-2= qnrn-1+ rnrn= axn+ byn rn-1 = qn+1rn + 0 재배치를 통해 ri = ri-2 – ri-1qi (4.8)
4.3 모듈러 연산(Modular Arithmetic) • 확장 유클리드호제법 • i-1 과 i-2 행에서 다음 값을 찾을 수 있음 ri-2 = axi-2 + byi-2, ri-1 = axi-1 + byi-1 • 이를식 (4.8)에 대입 ri = (axi-2 + byi-2) – (axi-1 + byi-1)qi = a(xi-2 - qixi-1) + b(yi-2 - qiyi-1) • 이미ri= axi+ byi라고 추측하였기 때문에 다음이 도출 xi = xi-2 - qixi-1, yi= yi-2- qiyi-1
4.3 모듈러 연산(Modular Arithmetic) • 확장 유클리드호제법 • 기존유클리드호제법은 나머지가 0이 되면 d = gcd(a, b) = rn를 구하고 끝났음 • 확장 유클리드호제법은 이를 d = rn = axn + byn까지 확장 • 따라서 식 (4.7)에서는 x= xn과 y = yn임 예제 • a = 1759, b = 550일 때, 1759x + 550y = gcd(1759, 550)는? • 결과값은 1759 (-111) + 550 355 = -195249 + 195250 = 1
4.4 군(Groups), 환(Rings), 체(Fields) • 군(Groups) • 군 G 는 {G, •} 로 정의 내림 • 이항연산 원소의 집합임 군(Groups)의 성질 • (A1) 닫힘: 만약 a와 b가 군G에 속할 경우 a •b도 군G에 속한다. • (A2) 결합 법칙: 군G의 모든 a, b, c에 대하여 a • (b • c) = (a • b) • c가 성립한다. • (A3) 항등원소: 군 G의 모든 a에 대하여 a • e = e • a = a와 같은 G의 항등원소 e가 존재한다. • (A4) 역원의 존재: 군G의 모든 a에 대하여 a • a’ = a’ • a = e와 같은 군G에 역원 a’가 존재한다. • 위와 같은 4가지의 성질에 아래와 같은 성질을 만족할 경우, 해당 군을 아벨리안(abelian) 군이라 부른다. • (A5) 교환법칙: 군G의 모든 a와 b에 대하여 a • b = b • a가 성립한다.
4.4 군(Groups), 환(Rings), 체(Fields) • 순환군(Cyclic Groups) • 군 원소의 지수연산은 그룹 연산자의 반복이라고 정의함 • 예: a3 = a • a • a • a0=e 라는 항등원을 정의함 • 군 G의 모든 원소가 G의 임의의 원소의 멱승 연산 ak(k는 정수)의형태로 표현이 가능한 경우 군 G는 순환군임 • 이때의 원소 a를 군 G의 생성자(generator)라고 함
4.4 군(Groups), 환(Rings), 체(Fields) • 환(Rings) • 2개 이상의 이항연산(가법과 승법)을 가지는 원소의 집합임 환(Rings)의 성질 • (A1~A5) R은 가법측면에서 아벨리안 군이다. 즉 R은 A1~A5까지의 원리를 만족한다. • 가법군의 이러한 원리에 대하여 0과 a의 역원 -a로서 항등원을 나타낸다. • (M1) 승법에 닫힘: 만약 a와 b가 환 R에 속할 경우 ab역시 환 R에 속해 있다. • (M2) 승법의 결합 법칙: 환 R의 모든 a, b, c에 대하여 a(bc) = (ab)c가 성립한다. • (M3) 분배 법칙: 환 R의 모든 a, b, c에 대하여 a(b + c) = ab + ac와 (a + b)c = ac + bc가 성립한다. • 환에서의 교환법칙이 성립하기 위해서는 다음과 같은 추가적인 사항을 만족해야 한다. • (M4) 승법의 교환법칙: 환 R의 모든 a와 b에 대하여ab= ba가 성립한다.
4.4 군(Groups), 환(Rings), 체(Fields) • 체(Fields) • 정역(integral domain)의 성질을 포함함 • (M5) 곱셈의 항등원: 환 R의 모든a에 대하여, a1 = 1a = a이 성립하는 원소가 존재한다. • (M6) 0으로 나눌 수 없다: 만약 a, b가 환 R에 속하고, ab= 0이면 a = 0이거나b = 0이다. • 본질적으로 집합 원소들 간의 가법, 감법, 승법 및 제법 결과값에 대하여 닫혀있는 집합을 체F라함 체(Fields)의 성질 • (A1~M6) 체 F가 정역일 경우 F는 A1~A5와 M1~M6의 명제를 만족한다. • (M7) 곱셈 역원: 체 F에서 0을 제외한 각 a에 대하여 aa-1 = (a-1)a = 1 을 만족하는 원소 a-1가 존재한다.
4.5 GF(p)상의 유한체 • 위수 p인 유한체 • 유한체는암호학 분야에서 유용하게 활용되고 있음 • 유한체의 위수(체의 원소의 개수)는 소인수의 멱승인 pn이어야 함 • GF는 갈로아 필드(Galois field)라고 함 • GF(pn)으로 표기함 • 주로 GF(p), GF(2n)의유한체를 사용함
4.5 GF(p)상의 유한체 • 위수 p인 유한체 • 소수 p에 대해서 위수가 p인 유한체 GF(p)는 정수{0,1,…,p-1}의 집합 Zp로 정의됨 • 모듈러p의 산술연산이 수행됨 • Zp상의 0이 아닌 모든 정수들에 대하여 곱셈 역원이 존재함 • GF(p)의 각 원소에 대한 곱셈의 역원은 확장 유클리드 호제법을 사용하여 쉽게 구할 수 있음 Zn의 모듈러 연산속성 • 교환법칙: (w+x)modn=(x+w)mod n • 결합법칙: [(w+x)+y]modn=[w+(x+y)]mod n • 분배법칙: [w(x+y)]modn=[(wx)+(wy)]mod n • 항등: (0+w)modn=wmodn, (1w)modn=w mod n • 덧셈에 대한 역원: Zn의 각 원소 w에 대하여, w+z≡ 0 mod n만족하는z 존재 • 곱셈에 대한역원: Zn의 각 원소 w에 대하여wz≡ 1 mod n만족하는z 존재
4.6 산술 다항식(Polynomial Arithmetic) • 산술다항식 • 하나의 미지수 x를 갖는 다항식들이 존재할 때, 산술다항식은 세가지로 구분할 수 있음 • 대수의 기본 규칙을 따르는 일반적인 산술 다항식 • GF(p) 유한체 내의 원소들을 다항식의 계수로 사용하고, 각 계수들은 모듈러p연산으로 수행되는 다항식 • GF(p) 유한체 내의 원소들을 다항식의 계수로 사용하고, 최고차항이n인 다항식 m(x)의 모듈러 연산으로 수행되는 산술 다항식 n차 다항식의 형태 • f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi
4.6 산술 다항식(Polynomial Arithmetic) • 일반적인 산술 다항식 • f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi형태로 표현됨 • 덧셈과 뺄셈, 곱셈 연산들이 가능함 • 나눗셈 연산이 정의 되려면 계수의 집합 S가 체F여야 함 • 덧셈과 뺄셈은 두 다항식에서의 대응 계수를 더하거나 뺌 산술 다항식 연산 • f(x) = x3 + x2 + 2, 그리고g(x) = x2 – x + 1 이면 • f(x) + g(x) = x3 + 2x2 – x + 3 • f(x) – g(x) = x3 + x + 1 • f(x) g(x) = x5 + 3x2 – 2x + 2 • 으로 산술 연산이 가능함
4.6 산술 다항식(Polynomial Arithmetic) • Zp의 계수를 이용한 산술 다항식 • 체F의 원소들을 계수로 갖는 다항식을 체F의 다항식이라고 함 • 각각의 다항식을 원소로 갖는 집합은 환을 형성하며 이것을 다항식 환(polynomial ring)이라 함 • 산술 다항식이 체에서 수행되는 경우 나눗셈 연산이 가능함 • n차 다항식f(x)와 m차 다항식 g(x)이 존재할 경우f(x)=q(x)g(x)+r(x)로 표현 가능 • 다항식에서 gcd[a(x),b(x)]는 a(x)와 b(x)를 모두 나눌 수 있는 최대 차수의 다항식을 의미함 • 유클리드호제법을 사용하여 구할 수 있음 GF(2)상의 연산 • f(x) = x3 + x2이고 g(x) = x2 + x + 1이면 • f(x) + g(x) = x3+ x + 1 • f(x) g(x) = x5 + x2 • 으로산술연산 가능함
4.7 GF(2n)상에서의유한체 • 동기 • 공개키와대칭키를 포함한 모든 암호 알고리즘은 정수의 산술연산으로 이루어짐 • 산술연산을 효율적으로 구현하기 위해 정수를 사용함(n 비트 워드를 표현하기 위해서 0부터 2n-1 범위의 정수를 사용함) • 모듈러 다항식 연산 • Zp상에서 n – 1차 또는 미만의 차수를 가지는 모든 다항식 집합 S에서, 각각의 다항식은 다음과 같은 형식을 갖게 됨 • 여기서 각각의 는 집합(0, 1, …, p-1}의 원소들 중 하나를 사용하며, 다항식 집합 S에서 총 pn개의 서로 다른 다항식을 만들 수 있음
4.7 GF(2n)상에서의유한체 • 산술연산들에 대한 정의 • 산술연산은 기본적 대수 규칙과 함께 다음 2가지 규칙을 따름 • 계수들 간의 산술연산은 모듈러p로 수행되며, 유한체Zp상의 상술규칙을 이용함 • 만약 곱셈 연산 후, n-1보다 큰 차수의 다항식 결과가 나오면, 다항식 결과를 n차 다항식 m(x)로 나눔(m(x)는 기약다항식)즉, m(x)로 나눈 후의 나머지를 사용하며 다항식 f(x)에서 나머지는 r(x)=f(x)mod m(x)가됨 • 곱셈의 역원 찾기 • 유클리드호제법은 두 다항식에서 최대공약수를 구할 수 있음 • 확장 유클리드호제법을 이용하면 다항식 곱셈에 대한 역원을 구할 수 있음
4.7 GF(2n)상에서의유한체 • 예제 GF(23) (a) 덧셈 (b) 곱셈
4.7 GF(2n)상에서의유한체 • 다항식에 대한 확장 유클리드호제법
4.7 GF(2n)상에서의유한체 • 계산량에 대한 고려 • GF(2n)상의 다항식 f(x)는 n개의 0 또는 1로 표현되는 이진계수를 통해 유일하게 표현될 수 있음 • 따라서 GF(2n)상에서의 모든 다항식은 n비트의 숫자로 표현 가능 • 덧셈의 계산량에 대한 고려 • 같은 차수의 계수를 더함으로써, 다항식들의 덧셈 연산을 수행 • 특히 Z2기반의 다항식 덧셈은 XOR 연산과 동일함 • 곱셈의 계산량에 대한 고려 • GF(2n) 상의 곱셈 연산은 단순한 XOR연산으로는 수행될 수 없음 • AES에서 사용되는 GF(28)상의 유한체의 경우 아래의 식을 반복적으로 수행하면 높은 차수의 x를 곱한 결과를 얻을 수 있음
4.7 GF(2n)상에서의유한체 • 생성자의 사용 • 위수 q를 가지는 유한체F의 생성자 g는 q - 1의 거듭제곱을 통한F에 존재하는 0이 아닌 모든 원소들을 생성하는 원수임 • 즉, F의 원소는 0, g0, g1, …, gq-2와 동일함을 의미함 • 예제 다항식 x3+x+1을 이용한 GF(23)상의 생성자
4.7 GF(2n)상에서의유한체 • 요약 • GF(2n)은 2n개의 원소들로 구성되어 있음 • GF(2n)상의 원소들로 이루어진 집합에는 +, x와 같은 2항 연산자가 정의되어 있으며, 덧셈과 뺄셈, 곱셈, 그리고 나눗셈 등의 연산을 동일 집합 내에서 수행할 수 있음. 또한,0이 아닌 모든 원소들은 곱셈에 대한 역원이 존재함 • GF(2n)상의 모든 원소들은 n – 1 또는 그보다 작은 차수의 다항식으로 이루어진 집합으로 정의할 수 있으며, 각각의 다항식들은 n비트의 이진수로 표현이 가능함 • GF(2n)상의 원소들은 n차 기약 다항식의 모듈러 연산으로 계산될 수 있으며, 생성자와 생성자의 거듭제곱 값들을 이용하여 GF(2n)상에서 동형의 유한체를 정의할 수 있음