1 / 41

4 장 정수론의 기본 개념과 유한체 (Finite Fields)

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 에 대한 하나의 집합으로 단축

yale
Download Presentation

4 장 정수론의 기본 개념과 유한체 (Finite Fields)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4장정수론의 기본 개념과 유한체(Finite Fields)

  2. 목차 4.1 가분성(Divisibility)과 호제법(Division Algorithm) 4.2 유클리드호제법 4.3 모듈러 연산 4.4 군, 환, 체 4.5 GF(p)상의 유한체 4.6 산술 다항식 4.7 GF(2n)상에서의 유한체

  3. 핵심정리 • 모듈러 연산은 정수 연산의 한 종류 • 모든 숫자를 어떤 숫자 n에 대한 하나의 집합으로 단축 • 두 정수의 최대공약수란 두 정수를 나누는 가장 큰 양의 정수 • 유한체 이론은 암호학의 여러 분야에서 매우 중요하게 사용됨 • 유한체 • 유한개의 원소를 가지는 체 • 유한체의 위수는 n이 양의 정수일 때, 소인수의 멱승인pn

  4. 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

  5. 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))이다.

  6. 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 의관계

  7. 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

  8. 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뿐이기 때문이다.

  9. 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)

  10. 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)

  11. 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) 성립

  12. 4.2 유클리드호제법(Euclidean Algorithm) • 상대적으로 큰 숫자들에 대한 최대공약수 구하기(1/2)

  13. 4.2 유클리드호제법(Euclidean Algorithm) • 상대적으로 큰 숫자들에 대한 최대공약수 구하기(2/2)

  14. 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)

  15. 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 • 가산, 감산, 승산에 관한 일반적 산술법칙들은 모듈러 연산에서도 적용 가능

  16. 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)}

  17. 4.3 모듈러 연산(Modular Arithmetic) • 모듈러 연산의 특성(Properties of Modular Arithmetic) • 잉여류의모든 정수들 중에 음이 아닌 가장 작은 정수가 잉여류를 나타내기 위해 사용됨 • modulo n에서 k와 합동인 음이 아닌 가장 작은 정수를 찾는 작업을k를 modulo n으로 환산한다라고 부름 • 만약 Zn에 대하여 모듈러 산술연산을 수행한다면, Zn상의 정수들은 아래 표에 기술된 속성을 만족함

  18. 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)

  19. 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에 대한 곱셈을 적용시키더라도 완전한 형태의 나머지 집합이 구성되지 않기 때문이다.

  20. 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와 같음

  21. 4.3 모듈러 연산(Modular Arithmetic) • 유클리드 호제법에 대한 재고 • 식 (4.6)은 최대공약수를 결정하기 위해 반복 사용됨 • 이는식 (4.3)에서 보인 것과 같은 방식이며다음과 같이 다시 표현 가능

  22. 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);

  23. 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)

  24. 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

  25. 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

  26. 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가 성립한다.

  27. 4.4 군(Groups), 환(Rings), 체(Fields) • 순환군(Cyclic Groups) • 군 원소의 지수연산은 그룹 연산자의 반복이라고 정의함 • 예: a3 = a • a • a • a0=e 라는 항등원을 정의함 • 군 G의 모든 원소가 G의 임의의 원소의 멱승 연산 ak(k는 정수)의형태로 표현이 가능한 경우 군 G는 순환군임 • 이때의 원소 a를 군 G의 생성자(generator)라고 함

  28. 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가 성립한다.

  29. 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가 존재한다.

  30. 4.5 GF(p)상의 유한체 • 위수 p인 유한체 • 유한체는암호학 분야에서 유용하게 활용되고 있음 • 유한체의 위수(체의 원소의 개수)는 소인수의 멱승인 pn이어야 함 • GF는 갈로아 필드(Galois field)라고 함 • GF(pn)으로 표기함 • 주로 GF(p), GF(2n)의유한체를 사용함

  31. 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 존재

  32. 4.6 산술 다항식(Polynomial Arithmetic) • 산술다항식 • 하나의 미지수 x를 갖는 다항식들이 존재할 때, 산술다항식은 세가지로 구분할 수 있음 • 대수의 기본 규칙을 따르는 일반적인 산술 다항식 • GF(p) 유한체 내의 원소들을 다항식의 계수로 사용하고, 각 계수들은 모듈러p연산으로 수행되는 다항식 • GF(p) 유한체 내의 원소들을 다항식의 계수로 사용하고, 최고차항이n인 다항식 m(x)의 모듈러 연산으로 수행되는 산술 다항식 n차 다항식의 형태 • f(x) = anxn + an-1xn-1 + … + a1x + a0 = ∑ aixi

  33. 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 • 으로 산술 연산이 가능함

  34. 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 • 으로산술연산 가능함

  35. 4.7 GF(2n)상에서의유한체 • 동기 • 공개키와대칭키를 포함한 모든 암호 알고리즘은 정수의 산술연산으로 이루어짐 • 산술연산을 효율적으로 구현하기 위해 정수를 사용함(n 비트 워드를 표현하기 위해서 0부터 2n-1 범위의 정수를 사용함) • 모듈러 다항식 연산 • Zp상에서 n – 1차 또는 미만의 차수를 가지는 모든 다항식 집합 S에서, 각각의 다항식은 다음과 같은 형식을 갖게 됨 • 여기서 각각의 는 집합(0, 1, …, p-1}의 원소들 중 하나를 사용하며, 다항식 집합 S에서 총 pn개의 서로 다른 다항식을 만들 수 있음

  36. 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)가됨 • 곱셈의 역원 찾기 • 유클리드호제법은 두 다항식에서 최대공약수를 구할 수 있음 • 확장 유클리드호제법을 이용하면 다항식 곱셈에 대한 역원을 구할 수 있음

  37. 4.7 GF(2n)상에서의유한체 • 예제 GF(23) (a) 덧셈 (b) 곱셈

  38. 4.7 GF(2n)상에서의유한체 • 다항식에 대한 확장 유클리드호제법

  39. 4.7 GF(2n)상에서의유한체 • 계산량에 대한 고려 • GF(2n)상의 다항식 f(x)는 n개의 0 또는 1로 표현되는 이진계수를 통해 유일하게 표현될 수 있음 • 따라서 GF(2n)상에서의 모든 다항식은 n비트의 숫자로 표현 가능 • 덧셈의 계산량에 대한 고려 • 같은 차수의 계수를 더함으로써, 다항식들의 덧셈 연산을 수행 • 특히 Z2기반의 다항식 덧셈은 XOR 연산과 동일함 • 곱셈의 계산량에 대한 고려 • GF(2n) 상의 곱셈 연산은 단순한 XOR연산으로는 수행될 수 없음 • AES에서 사용되는 GF(28)상의 유한체의 경우 아래의 식을 반복적으로 수행하면 높은 차수의 x를 곱한 결과를 얻을 수 있음

  40. 4.7 GF(2n)상에서의유한체 • 생성자의 사용 • 위수 q를 가지는 유한체F의 생성자 g는 q - 1의 거듭제곱을 통한F에 존재하는 0이 아닌 모든 원소들을 생성하는 원수임 • 즉, F의 원소는 0, g0, g1, …, gq-2와 동일함을 의미함 • 예제 다항식 x3+x+1을 이용한 GF(23)상의 생성자

  41. 4.7 GF(2n)상에서의유한체 • 요약 • GF(2n)은 2n개의 원소들로 구성되어 있음 • GF(2n)상의 원소들로 이루어진 집합에는 +, x와 같은 2항 연산자가 정의되어 있으며, 덧셈과 뺄셈, 곱셈, 그리고 나눗셈 등의 연산을 동일 집합 내에서 수행할 수 있음. 또한,0이 아닌 모든 원소들은 곱셈에 대한 역원이 존재함 • GF(2n)상의 모든 원소들은 n – 1 또는 그보다 작은 차수의 다항식으로 이루어진 집합으로 정의할 수 있으며, 각각의 다항식들은 n비트의 이진수로 표현이 가능함 • GF(2n)상의 원소들은 n차 기약 다항식의 모듈러 연산으로 계산될 수 있으며, 생성자와 생성자의 거듭제곱 값들을 이용하여 GF(2n)상에서 동형의 유한체를 정의할 수 있음

More Related