74
http://www.ezpia.biz [[email protected]] 정정정정정정정정 정정정정정정정정 5 5 제 제제제제 제제제제 제 제제제제 제제제제 200 200 7. 7. 10 10 Network Security Lab Mun Hyung Jin

제 5 장 암호학의 수학기초

  • Upload
    chaka

  • View
    301

  • Download
    0

Embed Size (px)

DESCRIPTION

제 5 장 암호학의 수학기초. 200 7. 10 Network Security Lab Mun Hyung Jin. Part I. 정수론 Introduction to Number Theory. 목 차. 1.1 소수 (Prime Numbers) 1.2 페르마정리와 오일러함수 (Fermat ’ s and Euler ’ s Theorems) 1.3 소수 판정 ( Testing for Primality) 1.4 중국인 나머지 정리 (The Chinese Remainder Theorem) - PowerPoint PPT Presentation

Citation preview

Page 1: 제  5  장 암호학의 수학기초

http://www.ezpia.biz[[email protected]]

정보보호기초강의정보보호기초강의정보보호기초강의정보보호기초강의

제 제 5 5 장 암호학의 수학기초장 암호학의 수학기초

2002007. 7. 10 10

Network Security Lab

Mun Hyung Jin

Page 2: 제  5  장 암호학의 수학기초

http://www.ezpia.biz[[email protected]]

정보보호기초강의정보보호기초강의정보보호기초강의정보보호기초강의

Part I.Part I. 정수론 정수론 Introduction to Number Theory

Page 3: 제  5  장 암호학의 수학기초

32007-02 정보보호기초

목 차목 차

1.1 소수 (Prime Numbers)

1.2 페르마정리와 오일러함수 (Fermat’s and Euler’s Theorems)

1.3 소수 판정 (Testing for Primality)

1.4 중국인 나머지 정리 (The Chinese Remainder Theorem)

1.5 이산대수 (Discrete Logarithms)

Page 4: 제  5  장 암호학의 수학기초

42007-02 정보보호기초

1.1 1.1 소수소수

정수론을 통한 숫자 개념의 정리 공개키 암호 알고리즘의 기초적인 요소

직관적으로 이해가 어려울 때 예제로써 이해

Page 5: 제  5  장 암호학의 수학기초

52007-02 정보보호기초

1.1.1 1.1.1 약수약수

b|a 이라면 b 는 a 의 약수 (divisor) 어떤 수 m 에 대해 a=mb이면 b 는 (b≠0) a를 나눈다고 함 .

나눗셈에서 나머지가 0 이면 b 는 a 를 나눈다고 말함 .

여기서 a, b, m은 정수

표기 b|a는 b 가 a 를 나눈다는 기호로 사용

정수 b 는 정수 a 의 약수다 또는 정수 a 는 약수 b 를 갖는다

예 : 2424 의 양의 약수는 의 양의 약수는 1, 2, 3, 4, 6, 8, 12 1, 2, 3, 4, 6, 8, 12 그리고 그리고 2424 이다이다 ..

2|24 , 3|24, 8|242|24 , 3|24, 8|24

Page 6: 제  5  장 암호학의 수학기초

62007-02 정보보호기초

1.1.1 1.1.1 약수약수 (cont’)(cont’)

약수에서의 관계

1) 만약 a|1 이라면 , a = 1 임

2) 만약 a|b 이고 b|a 라면 , a = b 임 .

3) 어떠한 0 이 아닌 b 도 0 을 나눔 . (b|0)

4) 만약 b|g 이고 , b|h 라면 , 그 때 임의의 정수 m 과 n 에 대해 b|(mg+nh) 임 .

만약 만약 b|gb|g 라면라면 , , 그때 그때 gg 는 어떠한 정수 는 어떠한 정수 gg11 에 대해 에 대해 g = b × gg = b × g11 을 만족을 만족 ,,

만약 만약 b|hb|h 라면라면 , , 그때 그때 hh 는 어떠한 정수 는 어떠한 정수 hh11 에 대해 에 대해 h = b × hh = b × h11 을 만족을 만족 ..

mg + nh = mbg1 + nbh1 = b×(mg1 + nh1)

따라서 b 는 mg+nh 를 나눈다 .

약수 관련 예

b=7; g=14; h=63; m=3, n=2

7|14 와 7|63에 대해서 7|(3×14+2×63)이 성립하는가 ?

Page 7: 제  5  장 암호학의 수학기초

72007-02 정보보호기초

1.1.2 1.1.2 소수소수

소수 (prime Number)

정수 p >1 이 만약 단지 약수들로써 1 과 p 만을 가진다면 p 는 소수임 .

어떠한 정수 a>1은 다음과 같이 유일한 방법으로 인수분해 된다 .

a = p1α1 p2

α2 …. Piαi ; 여기서 p1 < p2 < p3 < … < pi 는

소수이고

지수 qi > 0

예 : 91 = 7 × 13 ; 11011 = 7 × 112 × 13

pk 의 형태를 가지는 어떠한 정수는 단지 그것보다 작거나 같은 지수를 가지는 소수 pj 에 의해 나누어질 수가 있음 .(jk)

pi | pk

Page 8: 제  5  장 암호학의 수학기초

82007-02 정보보호기초

1.1.2 1.1.2 소수소수 (cont’)(cont’)

양의 정수의 표현양의 정수의 표현을 0 이 아닌 소수들의 멱 지수들로 목록화예 :

12 = 22 × 31 ⇒ {α2 = 2, α3 = 1}

18 = 21 × 32 ⇒ {α2 = 1, α3 = 2}

모든 p 에 대해 a|b ⇒ ap bp

예 : a=12; b=36 ⇒ 12|36

12 = 22 × 31; 36 = 22 × 32

⇒ {a2 = 2, a3 = 1}, {b2 = 2, b3 = 2}

⇒ a2 = b2 이고 a3 ≤ b3 임

Page 9: 제  5  장 암호학의 수학기초

92007-02 정보보호기초

1.1.3 1.1.3 최대공약수최대공약수

gcd(a, b) : 정수 a 와 b 의 공동약수 중에서 제일 큰 공약수 최대공약수

양의 정수 c 가 다음 조건을 만족한다면 , c는 a 와 b 의 최대 공약수

1) c 는 a 와 b 의 약수임

2) a 와 b 에 대한 임의의 약수는 c 의 약수임

gcd(a, b) = max { k : k는 k|a이고 k|b }

gcd(a, b) = gcd(a, -b)=gcd(-a, b)=gcd(-a, -

b)=gcd(|a|, |b|)

Page 10: 제  5  장 암호학의 수학기초

102007-02 정보보호기초

1.1.3 1.1.3 최대공약수최대공약수 (cont’)(cont’)

소수로 정수를 표현하는 경우 최대공약수 구하기 쉽다예 :

300 = 22 × 31 × 52

18 = 21 × 32 × 50

gcd(300, 18) = 21 × 31 × 50 = 6

모든 p 에 대해 , k = gcd(a, b) ⇒ kp = min(ap, bp)

최대공약수 찾기gcd(a,b) = gcd(b, a mod b)

gcd(55,22)=gcd(22, 55 mod 22)= gcd(22, 11)= gcd(11,0)= 11

gcd(18, 12)=gcd(12,6)=gcd(6,0)=6

gcd(11,10)=gcd(10,1)=gcd(1,0)=1

Page 11: 제  5  장 암호학의 수학기초

112007-02 정보보호기초

1.1.4 1.1.4 서로 소서로 소

서로 소 : 정수 a 와 b 가 공통적으로 소수 인수를 가지지 못하면 a 와 b 는 서로 소임 .

공약수가 단지 1 뿐임 .

gcd(a, b) = 1 이라면 a 와 b 는 서로 소 .

88 은 약수로서 은 약수로서 1, 2, 41, 2, 4 와 와 88 을 가지며 을 가지며 1515 는 약수로서 는 약수로서 1, 3, 5 1, 3, 5 그리고 그리고 1515 를 가지기 때문에 를 가지기 때문에 88 과 과 1515 는 서로 소이다는 서로 소이다 . .

또한 또한 11 은 이 두 수들이 가지는 약수들의 목록들 중에서 유일하게 같은 은 이 두 수들이 가지는 약수들의 목록들 중에서 유일하게 같은 수이다수이다 . .

88 은 약수로서 은 약수로서 1, 2, 41, 2, 4 와 와 88 을 가지며 을 가지며 1515 는 약수로서 는 약수로서 1, 3, 5 1, 3, 5 그리고 그리고 1515 를 가지기 때문에 를 가지기 때문에 88 과 과 1515 는 서로 소이다는 서로 소이다 . .

또한 또한 11 은 이 두 수들이 가지는 약수들의 목록들 중에서 유일하게 같은 은 이 두 수들이 가지는 약수들의 목록들 중에서 유일하게 같은 수이다수이다 . .

Page 12: 제  5  장 암호학의 수학기초

122007-02 정보보호기초

1.2.1 1.2.1 페르마의 정리페르마의 정리

페르마의 정리

p 가 소수이고 a 가 p 에 의해 나누어지지 않는 양의 정수라면

ap-1 ≡ 1 mod p

(p-1) 숫자들 {a mod p, 2a mod p, ..., (p-1)a mod p}은 어떠한 순서에서의 숫자 {1, 2, . . . p-1} 들이다 . 이러한 숫자들을 같이 곱하면

a ×2a ×... ×((p-1)a)

= (p-1)! ap-1

≡[(a mod p) ×(2a mod p) ×… ×((p-1)a mod p)] mod p

≡(p-1)! mod p

==> ap-1 ≡ 1 mod p

Page 13: 제  5  장 암호학의 수학기초

132007-02 정보보호기초

1.2.1 1.2.1 페르마의 정리페르마의 정리 (cont’)(cont’)

페르마 정리에 의해 ap ≡ a mod p

p 가 소수이고 a 가 p 에 의해 나누어지지 않는 양의 정수라면

예 :p = 5, a = 3, 35 = 243 ≡ 3 mod 5

p = 5, a = 10, 105 = 100000 ≡ 10 mod 5 ≡ 0 mod 5

Page 14: 제  5  장 암호학의 수학기초

142007-02 정보보호기초

1.2.2 1.2.2 오일러오일러 함수함수

오일러 함수 φ(n) n 보다 작고 n 과 서로 소인 양의 정수의 개수 ; φ(1) =1 로서 정의됨 표 8.2 : n이 1 부터 30까지 일 때의 φ(n)

소수 p 에 대하여는 φ(p) = p – 1

서로 다른 소수 p 와 q 에 대하여 ,n = pq 일때 ,

φ(n)=φ(pq)=φ(p)×φ(q)=(p-1)×(q-1)

86124104646242211φ(n)

151413121110987654321n

8281218122082210128186168φ(n)

302928272625242322212019181716n

φ(21) = 12 = φ(3) ×φ(7) = 2 × 6 = (3-1) ×(7-1) = 12φ(21) = 12 = φ(3) ×φ(7) = 2 × 6 = (3-1) ×(7-1) = 12

개개==> {1,2,3,4,5,8,10,11,13,16,17,19,20}==> {1,2,3,4,5,8,10,11,13,16,17,19,20} 의 정수 의 정수 1212 개개

Page 15: 제  5  장 암호학의 수학기초

152007-02 정보보호기초

1.2.3 1.2.3 오일러의 정리오일러의 정리

오일러 정리 : 서로 소인 모든 a 와 n 에 대한 관계의 표현

aφ(n) ≡ 1 mod n

오일러 정리의 다른 형태

aφ(n)+1 ≡ a mod n

RSA 알고리즘의 유용성을 증명하는 유용한 결과

Page 16: 제  5  장 암호학의 수학기초

162007-02 정보보호기초

1.2.3 1.2.3 오일러의 정리오일러의 정리 (cont’)(cont’)

두 개의 소수 p 와 q 가 주어지고 , 0 < m < n 인 정수 n= pq 와 m 이 주어진다고 가정하면

m φ(n)+1 = m (p-1)(q-1) + 1 ≡ m (mod n)

Page 17: 제  5  장 암호학의 수학기초

172007-02 정보보호기초

1.3 1.3 소수판정소수판정

매우 큰 수가 소수인지 판정하는 효율적인 방법의 부재 Fermat’s Theorem 를 가지고 소수 판정에 이용 < Algorithm >:

TEST (n) is:

1. Find integers k, q, k > 0, q 홀수 , so that (n–1)=2kq

2. Select a random integer a, 1<a<n–1

3. if aq mod n = 1 then return (“가능 ");

4. for j = 0 to k – 1 do

5. if (a2jq mod n = n-1)

then return(" 가능 ")

6. return (“합성수 ")

a 를 t 번 선택을 하여 실험하여 얻은 결과가 소수 가능성은 1-4-t

t=10 소수가능성은 0.999999

Page 18: 제  5  장 암호학의 수학기초

182007-02 정보보호기초

1.3.1 1.3.1 소수판정에 관한 예소수판정에 관한 예

n=29 라면

1) n-1=28=(22) *7=(2k) *q. (k=2, q=7)

2) a=10 으로 선택

3) 10^7 mod 29=1 ? (17) No

4,5) j=0 이면 (107) mod 29 =28 ? (17) No

j=1 이면 (102)*7 mod 29 =28? (28) Yes

Return : 소수일수 있다 .(가능성제시 )

Page 19: 제  5  장 암호학의 수학기초

192007-02 정보보호기초

1.3.1 1.3.1 소수판정에 관한 예소수판정에 관한 예 (cont’)(cont’)

n=29 라면

2) a=2으로 선택

3) 27 mod 29=1 ? (12) No

4,5) j=0 이면 (27) mod 29 =28 ? (12) No

j=1 이면 (22)*7 mod 29 =28? (28) Yes

Return : 소수일수 있다 .(가능성제시 )

즉 소수라고 판정할 수 있다

Page 20: 제  5  장 암호학의 수학기초

202007-02 정보보호기초

1.3.1 1.3.1 소수판정에 관한 예소수판정에 관한 예 (cont’)(cont’)

n=221=13*17 라면

1) n-1=220=(22) *55 k=2,q=55

2) a=5으로 택

3) 5^55 mod 221=1 ? (112) No

4,5) j=0 이면 (555) mod 221 =220 ? (112) No

j=1 이면 (52)*55 mod 221 =220? (168) No

Return : 합성수이다 .(composite)

만약 a=21로 선택했다면 return 값이 inconclusive(확정적이 아닌 ) 가 나온다 .

즉 소수일수도 있다는 가능성을 제시한다 . 그러나 221는 합성수이다 .

Page 21: 제  5  장 암호학의 수학기초

212007-02 정보보호기초

1.3.2 Repeated Use of the Miller-Rabin 1.3.2 Repeated Use of the Miller-Rabin AlgorithmAlgorithm

Test (n) 이 “합성수” 로 리턴이 되면 n 는 소수가 아니다 .

그러나 Test (n) 이 “가능”으로 리턴이 된다고 n 이 소수라는 보장은 못한다 .

a 를 택하여 반복할 때 반복횟수를 t 로 놓으면 n 이 소수일 가능성 ( 확률 ) 은 1-(1/4t) 이다 .

즉 10번 반복해서 “가능”이라고 나오면 n 이 소수일 확률이 0.999999(99%)이다 .

Page 22: 제  5  장 암호학의 수학기초

222007-02 정보보호기초

1.4 1.4 중국인의 나머지 정리중국인의 나머지 정리

정수론에서 가장 유용한 요소들 중의 하나는 중국인의 나머지 정리

(CRT: Chinese Remainder Theorem) : modulo가 서로소인 쌍 모듈로의 나머지 집합들로부터 어떠한 범위 내에 있는 정수들을 재구성하는 것이 가능 .

Z10(0, 1, . . . , 9) 에서 10 개의 정수들은 modulo 2 와 5(10 의 서로 소인

소인수 ) 의

두 나머지들로부터 재구성될 수 있다 .

알려진 10 진수 x 의 나머지들은 r2=0 와 r5=3 이라고 하자 ;

즉 , x mod 2 = 0 이고 x mod 5 = 3 이다 . 그런 까닭에 x 는 Z10 에서

짝수이다 . 5 에 의한 나눗셈에서 나머지는 3 이다 . 유일한 해는 x = 8 이다 .

Z10(0, 1, . . . , 9) 에서 10 개의 정수들은 modulo 2 와 5(10 의 서로 소인

소인수 ) 의

두 나머지들로부터 재구성될 수 있다 .

알려진 10 진수 x 의 나머지들은 r2=0 와 r5=3 이라고 하자 ;

즉 , x mod 2 = 0 이고 x mod 5 = 3 이다 . 그런 까닭에 x 는 Z10 에서

짝수이다 . 5 에 의한 나눗셈에서 나머지는 3 이다 . 유일한 해는 x = 8 이다 .

Page 23: 제  5  장 암호학의 수학기초

232007-02 정보보호기초

1.4 1.4 중국인의 나머지 정리중국인의 나머지 정리

CRT 기원 : '3으로 나누면 2 가 남고 5 로 나누면 3 이 남고 7 로 나누면 2 가 남는 수 중에서 제일 작은 수는 ?'

이 문제가 바로 중국인의 나머지 정리의 기원

CRT란 연립 선형 합동식의 공통해를 찾는 문제에 대한 답 .

각 선형합동식의 법 (moduli)은 쌍마다 서로 소인 가정 .

가우스 (Gauss),오일러 (Euler)가 정리를 많이 연구 , 이용

그 풀이의 아이디어는 3 세기초 중국의 수학자인 순체 (Sun-Tzu)가 쓴 책에 있는 위에 쓴 문제의 풀이에서 기원 .

중국인의 나머지 정리 : m1, m2, ..., mr 이 양의 정수이면서 서로

소라고 하자 . 임의의 정수 a1, a1, ...,ar 에 대하여 다음 r 개의

합동식 x=ai (mod mi) (i=1,2,...,r) 은 공통해를 같고 서로 다른 두 해의

차이는 m1*m2*...*mr 로 나누어 떨어진다 .

Page 24: 제  5  장 암호학의 수학기초

242007-02 정보보호기초

1.4 1.4 중국인의 나머지 정리중국인의 나머지 정리

중국인의 나머지 정리 다른 예6 로 나누어 나머지가 1 이고 , 9로 나누어 나머지가 3 인

수가 있는가 ? 질문의 답은 ' 없다 ' 이다

위에서 알 수 있는 것은 m 으로 나누어 나머지가 r , n으로 나누어 나머지가 s 인 수는 r 과 s 를 d=gcd(m,n)로 나눈 나머지가 같지 않으면 해가 존재하지 않는다는 사실이다 .

이것의 역 , 즉 , r,s를 d 로 나눈 나머지가 같으면 해가 존재하겠는가 하는 문제를 생각할 수 있는데 , 중국인의 나머지 정리는 ' 해가 반드시 존재 ' 하고 , lcm(m,n)의 정수배 차이를 제외하고는 유일하다는 것을 말한다 .

Page 25: 제  5  장 암호학의 수학기초

252007-02 정보보호기초

1.5 1.5 이산대수이산대수

이산대수

Diffie-Hellman의 키 교환과 전자서명 알고리즘((DSA : Digital Signature Algorithm)을 포함하는 공개키 암호 알고리즘에서 중요한 개념

Page 26: 제  5  장 암호학의 수학기초

262007-02 정보보호기초

1.5.1 Modulo n1.5.1 Modulo n 상에서 정수의 멱상에서 정수의 멱

오일러의 정리 : aφ(n) ≡ 1 mod n

오일러 함수인 φ(n)은 n 보다 작은 양의 정수이고 a 와 n 은 서로 소임 .

일반적인 표현

am ≡ 1 mod n -- 식 (8.11)

만약 a 와 n 이 서로 소이라면 , m=φ(n)을 만족하는 정수 m이 적어도 하나 존재 ( 멱 지수라 부름 )

식 (8.11)을 만족하는 가장 작은 양의 멱 지수 ma (mod n)에 대한 차수a 가 (mod n)에 속한 멱 지수a 에 의해 생성된 주기의 길이

Page 27: 제  5  장 암호학의 수학기초

272007-02 정보보호기초

1.5.1 Modulo n1.5.1 Modulo n 상에서 정수의 멱상에서 정수의 멱 (cont’)(cont’)

예 modulo 19상에서 7 에 대한 멱 지수

71 = 77 mod 19

72 = 49= 2×19 + 11= 11 mod 19

73 = 343 = 18× 19 + 1 = 1 mod 19

74 = 2401 = 126× 19 + 7 = 7 mod 19

75 = 16807 = 884 × 19 + 11 = 11 mod 19

발견 사항들 73 = 1 (mod 19), 73+j = 737j = 7j (mod 19)

3 만큼의 차이가 나는 7 에 대한 어떠한 두 멱 지수는 각각 (mod 19)에 있어서 합동 ( 주기가 존재 )

주기의 길이는 7m = 1 (mod 19)를 만족하는 가장 작은 양의 멱 지수 m=3 임 .

Page 28: 제  5  장 암호학의 수학기초

282007-02 정보보호기초

1.5.1 Modulo n1.5.1 Modulo n 상에서 정수의 멱상에서 정수의 멱 (cont’)(cont’)

발견 성질들

1. 모든 순열은 1 에서 끝이 남

2. 순열의 길이는 φ(19) = 18 로 구분된다 . 즉 , 순열에 대한 전체 숫자는 표의 각 행에서 나타남

3. 어떠한 순열들은 길이가 18 이다 . 이러한 경우에 있어서 , 밑수 a 는 modulo19 상에서 0 이 아닌 정수들의 집합을 생성함 . 그와 같은 각각의 정수를 modulus 19 의 원시 근 (primitive root) 라고 부름

Page 29: 제  5  장 암호학의 수학기초

292007-02 정보보호기초

1.5.2 1.5.2 지수지수

정수 b 와 소수 p 의 원시근 a 에 대해 b ≡ ai mod p,

0 ≤ i ≤ (p-1)인 i 를 지수라 하며 inda,p(b) 로 표기

inda,p(1) = 0, ∵ a0 mod p = 1 mod p = 1

inda,p(a) = 1, ∵ a1 mod p = a

Page 30: 제  5  장 암호학의 수학기초

302007-02 정보보호기초

1.5.3 1.5.3 이산대수의 계산이산대수의 계산

y = gx mod p

g, x 그리고 p 가 주어진다면 , y를 계산하는 것은 쉬운 문제 .

그러나 y, g 그리고 p 가 주어진다고 하더라도 x 를 계산하는 것은 매우 어려운 문제 .

Page 31: 제  5  장 암호학의 수학기초

http://www.ezpia.biz[[email protected]]

정보보호기초강의정보보호기초강의정보보호기초강의정보보호기초강의

Part II. 유 한 체 Finite FieldsFinite Fields

Page 32: 제  5  장 암호학의 수학기초

322007-02 정보보호기초

목 차목 차

2.1 군 , 링 , 체 (Groups, Rings, and Fields)

2.2 모듈러 계산 (Modular Arithmetic)

2.3 유클리드 알고리즘 (Euclid’s Algorithm)

2.4 GF(p) 형태의 유한체 (Finite Fields of the Form GF(p))

2.5 다항식의 계산 (Polynomial Arithmetic)

2.6 GF(2n) 형태의 유한체 (Finite Fields of the Form GF(2n))

Page 33: 제  5  장 암호학의 수학기초

332007-02 정보보호기초

2.1 Group, Ring, and Field2.1 Group, Ring, and Field

2.1.1 Groups

2.1.2 Rings

2.1.3 Fields

Page 34: 제  5  장 암호학의 수학기초

342007-02 정보보호기초

2.1.1 Group2.1.1 Group

Group( 군 ) 의 정의 : 집합과 연산

① 덧셈연산에 대하여 닫혀있다 .

② 덧셈연산에서 결합법칙이 성립 .

③ 덧셈 항등원이 존재 . (Identity) a*e=a 가 되는 e 가 집합의 원소일 때 e 를 항등원

④ 덧셈 역원이 존재 . (Inverse) 각 원소 a 에 대하여 a*x=e 가 되는 x 를 a 의 역원

예 : Sn={permutation of integers} : group 닫혀있고 ; 결합법칙 성립 ; 항등원 : 항등함수 ; 역원 (Inverse

element) : 역함수 유한군 (Finite Group) : 원소가 유한인 군 Order of the group : 원소의 개수

Page 35: 제  5  장 암호학의 수학기초

352007-02 정보보호기초

2.1.1 Group2.1.1 Group

아벨리언 그룹 (Abelian Group)

① Group

② 덧셈연산에서 교환법칙 (Commutative) 성립 a+b=b+a,

예 (Z, *) : 그룹이 아니다 .

Sn (n>2) : Abelian 그룹이 아니다 .

합성함수는 교환법칙이 성립하지 않는다 .

(Z, +) : Abelian group

Page 36: 제  5  장 암호학의 수학기초

362007-02 정보보호기초

2.1.1 Group2.1.1 Group

순환그룹 (Cyclic Group)

① Group

② 생성자 (Generator) 가 존재 : 임의의 원소를 특정한 원소로 표현 가능할 때 그 원소를 생성자라 한다 . x ∈ G 에 대하여 x= ak (k 는 정수 ) 일 때 a 는 생성자이

다 .

예 (Z, +) : 순환그룹이다

임의의 n 에 대하여 1 로 표현이 가능하다 (n=n*1) 생성자는 1 이므로 (Z, +)=<1> 로 표현 가능하다

(A, *) : 순환그룹이다 (A= {-1,1}) 1=(-1)*(-1) , -1=(-1) 생성자는 -1 이므로 (A, *)=<-1> 로 표현 가능하다 .

Page 37: 제  5  장 암호학의 수학기초

372007-02 정보보호기초

2.1.2 Ring2.1.2 Ring

Ring

① Abelian Group

② 곱셈에 대하여 닫혀있다 .

③ 곱셈에 대한 결합법칙 a*(b*c)=(a*b)*c

④ 곱셈에 대한 분배법칙 a*(b+c)=a*b+a*c

M2(R) : ring

Abelian group; 곱셈에 대하여 닫혀 있고 ; A*B=2-squar matrix

Z : ring Abelian group; 곱셈에 대하여 닫혀 있다 .

Page 38: 제  5  장 암호학의 수학기초

382007-02 정보보호기초

2.1.2 Ring2.1.2 Ring

교환 가능한 링 (Commutative Ring)

① Ring

② 곱셈에 대하여 교환법칙이 성립 a*b=b*a

예 정수 Z : commutative ring

M2(R) : 2-square matrices over R

commutative ring 이 아니다 . A*B 와 B*A 가 같지 않다 .

Page 39: 제  5  장 암호학의 수학기초

392007-02 정보보호기초

2.1.2 Ring2.1.2 Ring

Integral Domain

① Commutative ring

② 곱셈에 대한 항등원 : 1

③ 0 의 약수가 존재하지 않는다 . 즉 , a*b =0 이면 a=0 이거나 b=0 이다 .

예 Z : Integral Domain

M2(R) : Zero divisor 가 존재한다 .

즉 , A*B=0 이지만 A , B 어느 것도 영행렬이 아니다 . 물론 commutative ring 이 아니므로 Integral Domain 도

아니다 .

Page 40: 제  5  장 암호학의 수학기초

402007-02 정보보호기초

2.1.3 Field2.1.3 Field

Field

① Integral Domain

② 곱셈에 대한 역원 존재

예 유리수 집합 ,

정수 집합 Z : field 가 아니다 .

Page 41: 제  5  장 암호학의 수학기초

412007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

a mod n 의 의미 : a 를 n 으로 나누었을 때의 나머지 예 : 11 mod 7 = 4 , -11 mod 7 = 3 , 10 mod 5 = 0

(a mod n) ≡ (b mod n) 를 만족하면 a 와 b 는 congruent modulo n 라고 한다 . 표기 : a ≡ b (mod n)

예 : 73 ≡ 4 ( mod 23) , 21 ≡ -9 (mod 10)

b|a ⇔ a=mb 를 만족하는 정수 m 이 존재 이때 b 는 a 의 divisor 라 한다 .

Page 42: 제  5  장 암호학의 수학기초

422007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

합동식a b mod m, m | (a – b)

완전 잉여계 (complete residue system)

Zm = {0, 1, 2, , m – 1}

기약 잉여계 (reduced reside system)

Zm* = {a Zm | gcd(a, m) = 1}

Euler 함수 (m) = | Zm

* |

Page 43: 제  5  장 암호학의 수학기초

432007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

특성 a|1 이면 a= 1 또는 -1

a|b 이고 b|a 이면 a = b 또는 a = -b

a 가 0 이 아니면 항상 a|0

b|g 이고 b|h 이면 임의의 수 m, n 에 대하여 b|(m*g+n*h)

n | (a-b) 이면 a ≡ b (mod n) a=0 (mod n) ⇔ n |a

a ≡ b (mod n) 이면 b ≡ a (mod n)

a ≡ b (mod n) 이고 b ≡ c (mod n) 이면 a ≡ c (mod n)

Page 44: 제  5  장 암호학의 수학기초

442007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

Zn ={0,1,2,3, … ,(n-1)} ⇔ Z / n Z 임의의 Z( 정수 ) 를 n 으로 나누었을 때의 나머지 집합

Z8 에서의 덧셈

+ 0 1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 7

1 1 2 3 4 5 6 7 0

2 2 3 4 5 6 7 0 1

3 3 4 5 6 7 0 1 2

4 4 5 6 7 0 1 2 3

5 5 6 7 0 1 2 3 4

6 6 7 0 1 2 3 4 5

7 7 0 1 2 3 4 5 6

Page 45: 제  5  장 암호학의 수학기초

452007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

* 0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6 7

2 0 2 4 6 0 2 4 6

3 0 3 6 1 4 7 2 5

4 0 4 0 4 0 4 0 4

5 0 5 2 7 4 1 6 3

6 0 6 4 2 0 6 4 2

7 0 7 6 5 4 3 2 1

Z8 에서의 곱셈 Z8 에서의 역원

w - w 1/w0 01 7 12 63 5 34 45 3 56 27 1 7

Page 46: 제  5  장 암호학의 수학기초

462007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

성질(a+b) ≡ (a+c) (mod n) 이면 b ≡ c (mod n)

a, n 서로 소이고 a*b ≡ a*c (mod n) 이면 b ≡ c (mod n) 6*3 ≡ 6*7 (mod 8) ≡ 2 (mod 8)

Zn 는 곱셈에 대한 항등원을 가진 commutative ring

n 이 소수일때 field 가 된다 . 이것을 GF(p) 라 한다 .

Page 47: 제  5  장 암호학의 수학기초

472007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

양의 정수 n 과 정수 a 가 주어지고 , a 를 n 으로 나눈다면 , 다음과 같은 관계를 가지는 몫 q 와 나머지 r 을 얻는다 .

a = qn + r 0 ≤ r 〈 n; q = a/n xx 는 는 xx 보다 작거나 또는 같은 가장 큰 정수이다보다 작거나 또는 같은 가장 큰 정수이다 ..

• 선은 선은 00 에서 출발하고 있으며 에서 출발하고 있으며 n, 2nn, 2n 을 통과하여 을 통과하여 qnqn 까지 진행까지 진행• qn≤a qn≤a 그리고 그리고 (q+1)n (q+1)n 〉〉 aa 을 만족을 만족• qnqn 부터 부터 aa 까지의 거리는 까지의 거리는 rr 이며이며 ,,• qq 와 와 rr 의 유일한 값을 찾을 수 있다의 유일한 값을 찾을 수 있다 ..• 나머지 나머지 rr 은 잉여은 잉여 (residue)(residue) 라고 한다라고 한다 . .

Page 48: 제  5  장 암호학의 수학기초

482007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

a 가 정수이고 n 이 양의 정수라면 , a mod n 을 n 으로 a 를 나누었을 때의 나머지라고 정의

정수 a 에 대해 , 다음과 같이 표기 a = a/n × n + a (mod n)

a = 11; n = 7; 11 = 1 × 7 + 4; r = 4a = 11; n = 7; 11 = 1 × 7 + 4; r = 4

a = -11; n = 7; -11 = (-2) × 7 + 3; r = 3a = -11; n = 7; -11 = (-2) × 7 + 3; r = 3

11 mod 7 = 4; -11 mod 7 = 3

• 만약 만약 (a mod n) = (b mod n)(a mod n) = (b mod n) 이라면이라면 , , • 두 개의 정수 두 개의 정수 aa 와 와 bb 는 는 modulo nmodulo n 에 대해 합동이라고 한다에 대해 합동이라고 한다 . . • a ≡ b mod na ≡ b mod n 으로 표기한다으로 표기한다 . .

73 ≡ 4 mod 23; 21 ≡ -9 mod 1073 ≡ 4 mod 23; 21 ≡ -9 mod 10

Page 49: 제  5  장 암호학의 수학기초

492007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

a ≡ 0 mod n 이라면 , 그때 n|a 이다 . modulo 연산자의 속성

1) n|(a-b) 라면 a ≡ b mod n

2) (a mod n) = (b mod n) 은 a ≡ b mod n

3) a ≡ b mod n 은 b ≡ a mod n

4) a ≡ b mod n 과 b ≡ c mod n 은 a ≡ c mod n

a - b = = n × k ; a ≡ b mod na - b = = n × k ; a ≡ b mod n23 - 8 = 15 = 5 × 3 ; 23 - 8 = 15 = 5 × 3 ; 23 ≡ 8 (mod 5) 23 ≡ 8 (mod 5)-11 - 5 = -16 = 8 ×(-2) ; -11 - 5 = -16 = 8 ×(-2) ; -11 ≡ 5 (mod 8) -11 ≡ 5 (mod 8)81 - 0 = 81 = 27 × 3 ; 81 - 0 = 81 = 27 × 3 ; 81 ≡ 0 (mod 27) 81 ≡ 0 (mod 27)

Page 50: 제  5  장 암호학의 수학기초

502007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

모듈러 산술연산 (Modular Arithmetic Operation)

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 = (a×b) mod n

11 mod 8 = 3; 15 mod 8 = 711 mod 8 = 3; 15 mod 8 = 7

1) [(11 mod 8) + (15 mod 8)] mod 8 = 10 mod 8 1) [(11 mod 8) + (15 mod 8)] mod 8 = 10 mod 8 = 2= 2

(11 + 15) mod 8 = 26 mod 8 = 2(11 + 15) mod 8 = 26 mod 8 = 2

2) [(11 mod 8) - (15 mod 8)] mod 8 = -4 mod 8 2) [(11 mod 8) - (15 mod 8)] mod 8 = -4 mod 8 = 4= 4

(11 - 15) mod 8 = -4 mod 8 = 4(11 - 15) mod 8 = -4 mod 8 = 4

3) [(11 mod 8) × (15 mod 8)] mod 8 = 21 mod 8 3) [(11 mod 8) × (15 mod 8)] mod 8 = 21 mod 8 = 5 = 5

(11 × 15) mod 8 = 165 mod 8 = 5(11 × 15) mod 8 = 165 mod 8 = 5

Page 51: 제  5  장 암호학의 수학기초

512007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

거듭제곱승은 일반적인 연산에서와 같이 곱셈을 반복함으로써 수행이 된다거듭제곱승은 일반적인 연산에서와 같이 곱셈을 반복함으로써 수행이 된다

117 mod 13 을 계산하기 위한 절차

112 = 121 ≡ 4 mod 13

114 ≡ 42 ≡ 3 mod 13

117 = 11 × 112 × 114

117 mod 13 = (11 × 112 × 114 ) mod 13

= [(11 mod 13) × (112 mod 13) × (114 mod 13)] mod 13

= [(11 mod 13) × (4 mod 13) × (3 mod 13)] mod 13

= [11 × 4 × 3] mod 13 = 132 mod 13 ≡ 2 mod 13

Page 52: 제  5  장 암호학의 수학기초

522007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

모듈러 연산의 속성

w ∈ Zn 에 대한 z 가 존재하면 w+z ≡ 0 mod n 을 만족덧셈에 대한 역원 (- ω)

(0 + w) mod n = w mod n

(1 × w)mod n = w mod n항등

[w × (x × y)] mod n = [(w × x) × (w × y)] mod n분배 법칙

[(w + x) + y] mod n = [w + (x + y)] mod n

[(w × x) × y] mod n = [w × (x × y)] mod n결합법칙

(w+x) mod n = (x+w) mod n

(w×x) mod n = (x×w) mod n교환법칙

표현특성

Page 53: 제  5  장 암호학의 수학기초

532007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

(a+b) ≡ (a+c) mod n 라면 ==> b ≡ c mod n (1)

(5 + 23) ≡(5 + 7) mod 8; 23 ≡ 7 mod 8(5 + 23) ≡(5 + 7) mod 8; 23 ≡ 7 mod 8

등식 (7.1) 은 덧셈에 대한 역원이 존재하여야 성립한다 . a 에 대한 덧셈에 대한 역원을 등식 (7.1) 의 양편에 더함으로서 우리는 다음과 같은 수식을 얻는다 .

((-a) + a + b) ≡ ((-a) + a + c) mod n ==> b ≡ c mod n((-a) + a + b) ≡ ((-a) + a + c) mod n ==> b ≡ c mod n

(a×b) ≡ (a×c) mod n ==> b ≡ c mod n (2)

식 (2) 는 식 (1) 과 다르게 추가적인 조건을 가져야만 성립

즉즉 , , 추가적 조건은 “추가적 조건은 “ aa 는 는 nn 과 서로 소” 일 때만 곱셈역원 존재과 서로 소” 일 때만 곱셈역원 존재

6 × 6 × 33 ≡ 18 ≡ 2 mod 8 ≡ 18 ≡ 2 mod 8

6 × 6 × 7 7 ≡ 42 ≡ 2 mod 8 ≡ 42 ≡ 2 mod 8

그러나그러나 , , 33 77 mod 8 mod 8

Page 54: 제  5  장 암호학의 수학기초

542007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산

a 와 n 이 서로 소 일 때 곱셈 연산에서 유일한 역원 존재

a=5, n=8 일 때

마지막 행은 나머지로 Z8 상에 있는 모든 수들을 가르킨다 .

만약 p 가 소수라면 그때 Zp 의 모든 원소들은 p 와 서로 소

곱셈에 대한 역수 (w-1) 각각의 w∈Zp 에 대해 , w×z ≡ 1 mod p 인 z 가 존재 . 즉 . Zp 상에 있는 어떠한 한 숫자는 w 에 의해 곱해졌을 때 나머지 값으로 1 을 갖게 된다 . 그 숫자는 w 의 곱셈에 대한 역원이며 w-1 로 표시 ((a-1) × a × b) ≡ ((a-1) × a × c) mod n b ≡ c mod n

Z8 0 1 2 3 4 5 6 7

5 의 곱 0 5 10 15 20 25 30 35

나머지 0 5 2 7 4 1 6 3

Page 55: 제  5  장 암호학의 수학기초

552007-02 정보보호기초

2.2 2.2 모듈러 연산모듈러 연산5 643210+

4321065

42106555321066

31065442065433165432205432116432100

+ 0 1 2 3 4 5 60 0 0 0 0 0 0 01 0 1 2 3 4 5 62 0 2 4 6 1 3 53 0 3 6 2 5 1 44 0 4 1 5 2 6 35 0 5 3 1 6 4 26 0 6 5 4 3 2 1

(a) 7(a) 7 진법 덧셈진법 덧셈

(b) 7(b) 7 진법 곱셈진법 곱셈

w -w w-1

0 0 -

1 6 1

2 5 4

3 4 5

4 3 3

5 2 2

6 1 6

(c) 7(c) 7 진법 덧셈과 곱셈의 역원진법 덧셈과 곱셈의 역원

Page 56: 제  5  장 암호학의 수학기초

562007-02 정보보호기초

2.3 2.3 유클리드 알고리즘유클리드 알고리즘

최대공약수gcd(a,b) : a 와 b 의 최대 공약수정의

양수 c 가 a 와 b 의 약수 ( 즉 , c |a, c |b ) 임의의 약수 k 가 c 의 약수 ( 임의의 k |c 이면 k |a, k |b )

gcd(a,b) = gcd(-a,b) = gcd(a,-b) = gcd(-a,-b)

gcd(a,0) = |a|

gcd(a,b) = 1 a 와 b 가 서로소

Page 57: 제  5  장 암호학의 수학기초

572007-02 정보보호기초

2.3 2.3 유클리드 알고리즘유클리드 알고리즘

최대공약수 찾기gcd(a,b) = gcd(b, a mod b)

gcd(55,22)=gcd(22, 55 mod 22)=gcd(22, 11) gcd(18, 12)=gcd(12,6)=gcd(6,0)=6 gcd(11,10)=gcd(10,1)=gcd(1,0)=1

Euclid (a,b)

1. A <- a; B <- b2. If B=0 return A=gcd(a,b)3. R=A mod B4. A <- B5. B <- R6. Goto 2

Page 58: 제  5  장 암호학의 수학기초

582007-02 정보보호기초

2.4 2.4 유한체 유한체 GF(p)GF(p)

4.4.1 유한체 GF(p)

4.4.2 유한체 GF(p) 곱셈 역원 찾기

Page 59: 제  5  장 암호학의 수학기초

592007-02 정보보호기초

2.4 2.4 유한체 유한체 GF(p)GF(p)

GF( pn) : Galois field

두 연산에 교환법칙 성립 , 결합법칙 , 분배법칙 , 항등원 유일하게 존재 , 역원이 유일하게 존재 등을 만족하는 유한한 집합을 유한체(Galois field) 라고 한다 .

Finite Fields of Order p

GF(p)={0,1,2, … ,(p-1)}=Zp

Zp : commutative ring

또한 곱셈에 대한 역원이 존재한다 . Zero divisor 가 존재하지 않는다 . 그래서 Zp 는 field 이다

참고 Zn (n 이 소수가 아닐 때 ) ; field 가 아니고 , 단지

commutative ring 이다 .

Page 60: 제  5  장 암호학의 수학기초

602007-02 정보보호기초

2.4 2.4 유한체 유한체 GF(p)GF(p)

+ 0 1 2 3 4 5 6

0 0 1 2 3 4 5 6

1 1 2 3 4 5 6 0

2 2 3 4 5 6 0 1

3 3 4 5 6 0 1 2

4 4 5 6 0 1 2 3

5 5 6 0 1 2 3 4

6 6 0 1 2 3 4 5

* 0 1 2 3 4 5 6

0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6

2 0 2 4 6 1 3 5

3 0 3 6 2 5 1 4

4 0 4 1 5 2 6 3

5 0 5 3 1 6 4 2

6 0 6 5 4 3 2 1

Z7 에 관한 덧셈 Z7 에 관한 곱셈

w - w 1/w

0 0 1 6 1 2 5 4 3 4 5 4 3 2 5 2 3 6 1 6

Z7 의 역원

Page 61: 제  5  장 암호학의 수학기초

612007-02 정보보호기초

2.4 2.4 유한체 유한체 GF(p) GF(p)

유한체 GF(p) 곱셈 역원 찾기 gcd(m,b)=1 이면 b 는 곱셈에 대한 역원 (mod m) 를 갖는다 .

Extended Euclid (m,b)

1. (A1,A2,A3) <- (1,0,m); (B1,B2,B3) <- (0,1,b)2. If B3=0 return A3=gcd(m,b) ; no inverse3. If B3=0 return B3=gcd(m,b); B2=b^(-1) (mod m)4. Q=[ A3 / B3 ]5. (T1,T2,T3) <- (A1-QB1, A2-QB2, A3-QB3)6. (A1,A2,A3) <- (B1,B2,B3)7. (B1,B2,B3) <- (T1,T2,T3)8. Goto 2

Page 62: 제  5  장 암호학의 수학기초

622007-02 정보보호기초

2.5 2.5 다항식 계산다항식 계산

4.5.1 Ordinary Polynomial Arithmetic

4.5.2 Polynomial Arithmetic with Coefficients in Zp

4.5.3 Finding the Greatest Common Divisor

Page 63: 제  5  장 암호학의 수학기초

632007-02 정보보호기초

2.5.1 2.5.1 일반 다항식 연산일반 다항식 연산

정의n 차 다항식

상수 다항식 ( constant polynomial)

Monic polynomial : 최고차항이 1 인 다항식

계산

n

mi

ii

m

i

iii xaxbaxgxf

10

)()()(

mnxbxgxaxfm

i

ii

n

i

ii

00

)(,)(

01100

)()( bababacxcxgxf kkkk

mn

i

ii

Saxaaxaxaxaxf i

n

i

ii

nn

nn

001

11)(

Page 64: 제  5  장 암호학의 수학기초

642007-02 정보보호기초

2.5.2 2.5.2 다항식연산과 다항식연산과 Zp Zp 계수계수

다항식연산과 Zp 계수Polynomial ring

Polynomial over GF(2) 덧셈은 논리적 AND 계산으로 구할 수 있다 .

Polynomial f(x) : irreducible over F(field) f(x) 이 1 이 아닌 두 다항식의 곱으로 표현할 수 없을 때 참고 , 정수에서 소수와 같은 개념으로 보면 쉽다 .

GF(2) 상에서 f(x)=x4 +1 는 reducible 이다 . f(x)=(x+1)(x3+x2+x+1)

f(x)=x3+x+1 는 irreducible 이다 .

왜 irreducible 정의가 필요한가 ?

그 이유는 이 함수가 있어야 order 가 2n 인 field 를 만들 수 있다 .

Page 65: 제  5  장 암호학의 수학기초

652007-02 정보보호기초

2.5.3 Finding the GCD2.5.3 Finding the GCD

다항식에서의 최대공약수 c(x)|a(x), c(x) | b(x)

임의의 약수 k(x) 에 대하여 , k(x ) | c (x )

gcd(a(x),b(x))=gcd(b(x), a(x) mod b(x))

•Euclid (a(x), b(x))

1. A(x) <- a(x); B(x) <- b(x)2. if B(x)=0 return A(x)=gcd(a(x), b(x)) 3. R(x)=A(x) mod B(x)4. A(x) <- B(x)5. B(x) <- R(x)6. goto 2

Page 66: 제  5  장 암호학의 수학기초

662007-02 정보보호기초

2.6 2.6 확대체 확대체 GF(2GF(2nn))

Table 4.5 Arithmetic in GF(23)

000 001 010 011 100 101 110 111

+ 0 1 2 3 4 5 6 7 000 0 0 1 2 3 4 5 6 7 001 1 1 0 3 2 5 4 7 6 010 2 2 3 0 1 6 7 4 5 011 3 3 2 1 0 7 6 5 4 100 4 4 5 6 7 0 1 2 3 101 5 5 4 7 6 1 0 3 2 110 6 6 7 4 5 2 3 0 1 111 7 7 6 5 4 3 2 1 0

(a) Addition

Page 67: 제  5  장 암호학의 수학기초

672007-02 정보보호기초

2.6 2.6 확대체 확대체 GF(2GF(2nn))

Table 4.5 Arithmetic in GF(23)

* 0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6 7

2 0 2 4 6 3 1 7 5

3 0 3 6 5 7 4 1 2

4 0 4 3 7 6 2 5 1

5 0 5 1 4 2 7 3 6

6 0 6 7 1 5 3 2 4

7 0 7 5 2 1 6 4 3

(b) Multiplication

Page 68: 제  5  장 암호학의 수학기초

682007-02 정보보호기초

2.6 2.6 확대체 확대체 GF(2GF(2nn))

Table 4.5 Arithmetic in GF(23)

w - w 1/w

0 0

1 1 1

2 2 5

3 3 6

4 4 7

5 5 2

6 6 3

7 7 4

(c) Additive and multiplicative inverse

Page 69: 제  5  장 암호학의 수학기초

692007-02 정보보호기초

2.6.1 2.6.1 다항식의 모듈러 연산다항식의 모듈러 연산

Modular Polynomial Arithmetic

P=3, n=2 일 때의 다항식의 집합은 {0, 1, 2, x, x+1, x+2, 2x, 2x+1, 2x+2}

p = 2, n=3 일 때의 다항식의 집합은 {0, 1, x, x+1, x2, x2+1, x2+x, x2+x+1}

계산

1)(mod)()(:

1)(,

? )(mod)()(

1)(,1)(

67

348

7246

xxxmxgxf

xxxxxm

xmxgxf

xxxgxxxxxf

값은의일때

Page 70: 제  5  장 암호학의 수학기초

702007-02 정보보호기초

2.6.1 2.6.1 다항식의 모듈러 연산다항식의 모듈러 연산

유한체 GF(23) 를 만들기 위해서는 3 차인 인수분해가 안 되는 다항식(irreducible polynomial) 이 필요하다 . 예 : 1,1 323 xxxx

Page 71: 제  5  장 암호학의 수학기초

712007-02 정보보호기초

2.6.2 2.6.2 다항식 곱셈연산의 역원다항식 곱셈연산의 역원

Page 72: 제  5  장 암호학의 수학기초

722007-02 정보보호기초

2.6.2 2.6.2 다항식 곱셈연산의 역원다항식 곱셈연산의 역원

• Extend Euclid [m(x),b(x)]

1. [A1(x),A2(x),A3(x)] <- [1,0,m(x)]; [B1(x),B2(x),B3(x)] <- [0,1,b(x)]

2. if B3(x)=0 return A3(x)=gcd[m(x),b(x)] ; no inverse3. if B3(x)=1 return B3(x)=gcd[m(x),b(x)] ; B2(x)=b(x)-1 (mod

m(x))4. Q(x)=quotient of A3(x)/B3(x)5. [T1(x),T2(x),T3(x)] <- [A1(x)-Q(x)B1(x),A2(x)-Q(x)B2(x),A3(x)-

Q(x)B3(x)]6. [A1(x),A2(x),A3(x)] <- [B1(x),B2(x),B3(x)]7. [B1(x),B2(x),B3(x)] <- [T1(x),T2(x),T3(x)]8. goto 2

. 1))(1( , :

? 1 )1(mod777

7348

된다이즉답

역원은대한곱셈에의의한에

xxxx

xxxxxx

Page 73: 제  5  장 암호학의 수학기초

732007-02 정보보호기초

2.6.3 2.6.3 연산적 고찰연산적 고찰

덧셈 (Addition) 다항식을 2 진수로 표현한다 .

각 비트 마다 XOR 로 계산한다 .

곱셈 (Multiplication)

1)00011011()0(

0)0()(

70123456

70123456

bifbbbbbbb

bifbbbbbbbxfx

Page 74: 제  5  장 암호학의 수학기초

742007-02 정보보호기초

(0101 0111)х(0000 0010)=(1010 1110)(0101 0111)х(0000 0100)=(0101 1100) (0001 1011)=(0100 0111)(0101 0111)х(0000 1000)=(1000 1110)(0101 0111)х(0001 0000)=(0001 1100) (0001 1011)=(0000 0111)(0101 0111)х(0010 0000)=(0000 1110)(0101 0111)х(0100 0000)=(0001 1100)(0101 0111)х(1000 0000)=(0011 1000)

2.6.3 2.6.3 연산적 고찰연산적 고찰

1)00011011()0(

0)0()(

70123456

70123456

bifbbbbbbb

bifbbbbbbbxfx

(01010111)(10000011)=(01010111)[(00000001) (00000010) (10000000)]=(01010111) (10101110) (00111000)=(11000001)

)1)((mod

1)1()1(348

677246

xxxxxm

xxxxxxxx