52
1 Chap 7. Chap 7. 정정정정 정정 정정정정 정정

Chap 7. 정수론의 소개

Embed Size (px)

DESCRIPTION

Chap 7. 정수론의 소개. RSA 알고리즘 예 암호화와 복호화 : 평문 메시지 M = 19 일 경우 암호문 : 19 5 = 66 mod 119  66 복호문 : 66 77 = 19 mod 119  19. 암호화. 복호화. 암호문 66. 2476099 20807 19 5 = = 119 나머지 : 66. - PowerPoint PPT Presentation

Citation preview

Page 1: Chap 7.  정수론의 소개

1

Chap 7. Chap 7. 정수론의 소개정수론의 소개

Page 2: Chap 7.  정수론의 소개

2

RSA RSA 알고리즘 예 알고리즘 예 암호화와 복호화

: 평문 메시지 M = 19 일 경우• 암호문 : 195 = 66 mod 119 66

• 복호문 : 6677 = 19 mod 119 19

평문19

2476099 20807195 = = 119 나머지 : 66

1.27…10140 1.06 …10138

6677 = = 119 나머지 : 19

평문19

암호문66

암호화 복호화

KU = 5, 119 KR = 77, 119

Page 3: Chap 7.  정수론의 소개

3

목 차목 차1. 솟수와 서로소

2. 모듈러 연산

3. 페르마와 오일러의 정리

4. 솟수 판정

5. 유클리드 알고리즘

6. 중국인의 나머지 정리

7. 이산대수

Page 4: Chap 7.  정수론의 소개

4

1. 1. 솟수와 서로소솟수와 서로소

약수약수 (divisors)(divisors) 어떤 수 m 에 대해서 a=mb 라면

• b0 일때 b 는 a 를 나눈다 => 약수• 여기서 a, b, m 은 정수• 나눗셈에서 나머지가 없을 때 약수라고 함

예 ) 24 의 양의 약수• 1, 2, 3, 4, 6, 8, 12, 24

Page 5: Chap 7.  정수론의 소개

5

약수약수 (( 계속계속 )) 만약 a|1 이라면 , 그때 a=1 만약 a|b 이고 b|a 라면 , 그때 a=b 어떠한 0 이 아닌 b 도 0 을 나눈다 만약 b|g 이고 b|h 라면 , 그때 임의의 m 과 n 에 대해 b|(mg+

nh)• 만약 b|g 라면 , 그때 g 는 어떠한 정수 g1 에 대해 g=b*g1

을 만족• 만약 b|h 라면 , 그때 h 는 어떠한 정수 h1 에 대해 h=b*h1

을 만족• 또한

mg+nh = mbg1 + nbh1 = b*(mg1+nh1)=> b 는 mg+mh 를 나눈다

Page 6: Chap 7.  정수론의 소개

6

약수약수 (( 계속계속 )) 예 ) b=7; g=14; h=63; m=3; n=2

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

• 7|14 와 7|63 에 대해서 7|(3*14+2*63)

• mg+nh = mbg1 + nbh1 = b*(mg1+nh1)

• g = b*g1, g1= g/b = 2

• h = b*h1, h1= h/b = 9

• (3*14+2*63) = 7*(3*2+2*9) 계산 가능• 이 계산은 7|7*(3*2+2*9)) 가 성립함

Page 7: Chap 7.  정수론의 소개

7

솟수솟수 (prime numbers)(prime numbers) 정수 p>1 이 만약 단지 약수들로서 1 과 p 만을 가진다면 p 는

솟수이다 . 266 페이지 표 7.1 200 미만의 솟수 참조

어떠한 정수 a>1 은 다음과 같은 유일한 방법으로 인수분해 가능• a = p1

1p22…pt

t

• pt > pt-1> …> p1 는 솟수 , i > 0

• 예 ) 91– 2, 3, 4, 5, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73,

79, 83, 89– 7*13

• 10164 = 7*112 *12

Page 8: Chap 7.  정수론의 소개

8

솟수솟수 (( 계속계속 )) 만약 P 가 모든 솟수들의 집합이라면 어떤 양의 정수는

다음의 형태에서처럼 유일하게 표시될 수 있다

a = ㅠ pap, 여기서 ap >= 0

• a 의 어떤 특별한 값에 있어서 멱 지수 ap 의 대부분은 0

• 예 ) 3600 => 24 * 32 * 52

p

Page 9: Chap 7.  정수론의 소개

9

솟수솟수 (( 계속계속 )) 정수 12

• {a2 = 2, a3 = 1} => 22*31

정수 18

• {a2 = 1, a3 = 2} => 21*32

두수의 곱셈은 해당하는 멱 지수를 더하는 것과 같다• 12*18 = (22*31)*(21*32) = (23*33) = 216

이러한 솟수들의 관점에서 a|b 의 의미는 ???

Page 10: Chap 7.  정수론의 소개

10

솟수솟수 (( 계속계속 )) 이러한 솟수들의 관점에서 a|b 의 의미는 ???

• pk 형태를 가지는 어떠한 정수는 단지 그것보다 작거나 같은 지수를 가지는 솟수 pj, 단 j<=k 에 의해 나누어 질 수 있다

• 즉 , 모든 p 에 대해 a|b -> ap <= bp

• 예 ) a=12, b=36

12 = 22*31 36 = 22*32

– a2 = 2 = b2

– a3 = 1<=2 = b3

Page 11: Chap 7.  정수론의 소개

11

서로소서로소 (relatively prime number)(relatively prime number) 어떤 두 수가 공통적인 소인수를 갖지 못할 때 두 수를

서로소 라고 한다 . 공통적인 소인수 => 최대 공약수 => GCD 양의 정수 c 가 다음의 조건을 만족한다면 c 는 a 와 b 의

최대 공약수• c 는 a 와 b 의 약수• a 와 b 에 대한 어떠한 약수는 c 의 약수

GCD(a,b)= max[k, 이때 k 는 k|a 이고 k|b]

Page 12: Chap 7.  정수론의 소개

12

서로소서로소 (( 계속계속 )) 암호학에서 요구하는 최대 공약수는 양수

• GCD(a,b)=GCD(a,-b)=GCD(-a,b)=GCD(-a,-b)=GCD(|a|,|b|)

• GCD(60,24)=GCD(60,-24)=12

• 모든 0 이 아닌 정수들은 0 을 나누기 때문에 GCD(a,0)=|a|

모든 정수의 솟수 표현법을 이용하면 최대 공약수 결정이 쉬워짐

• 300 = 22*31*52 18 = 21*32

• GCD(300,18) = 21*31*50 = 6

Page 13: Chap 7.  정수론의 소개

13

서로소서로소 (( 계속계속 )) 8 과 15 는 서로 소인가 ?

• 8 은 약수로 1, 2, 4, 8 가짐• 15 는 약수로 1, 3, 5, 15 가짐=> 동일한 약수를 가지지 못하므로 서로 소임

Page 14: Chap 7.  정수론의 소개

14

2. 2. 모듈러 연산 모듈러 연산

어떤 양의 정수 어떤 양의 정수 nn 과 어떤 정수 과 어떤 정수 aa 가 주어지고가 주어지고 , , 만약 만약 aa 를 를 nn 으로 나눈다면 다음과 같은 관계를 가지는 몫 으로 나눈다면 다음과 같은 관계를 가지는 몫 qq 와 나머지 와 나머지 rr 을 얻는다을 얻는다

a = qn + r 0 <= r < n a = qn + r 0 <= r < n

q = a/n q = a/n a a r mod n r mod n

=> => 여기서 여기서 x x 는 는 xx 보다 작거나 또는 같은 가장 큰 보다 작거나 또는 같은 가장 큰 정수정수

0 n 2n qn (q+1)n1 2 3 a

rn

Page 15: Chap 7.  정수론의 소개

15

RSA RSA 알고리즘 예 알고리즘 예 암호화와 복호화

: 평문 메시지 M = 19 일 경우• 암호문 : 195 = 66 mod 119 66

• 복호문 : 6677 = 19 mod 119 19

평문19

2476099 20807195 = = 119 나머지 : 66

1.27…10140 1.06 …10138

6677 = = 119 나머지 : 19

평문19

암호문66

암호화 복호화

KU = 5, 119 KR = 77, 119

Page 16: Chap 7.  정수론의 소개

16

예제예제 )) a = qn + r a=11, n=7

11 = 1*7 + 4 = 4 mod 7 4 = 11 mod 7

11 4 mod 7

a= -11, n=7

-11 = 2*7 - 3 = 3 mod 7 3 = -11 mod 7

-11 3 mod 7

Page 17: Chap 7.  정수론의 소개

17

합동 합동 (a mod n) = (b mod n), 두 정수 a 와 b 는 modulo n 에 대해

합동 a b mod n 으로 표기

a 0 mod n 이라면 그때 n|a 이다 모듈러 연산자의 특성모듈러 연산자의 특성

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 을 의미

Page 18: Chap 7.  정수론의 소개

18

1. 만약 n|(a-b) 라면 , a b mod n

n = 5, a = 23, b = 8

23 – 8 = 15 = 5*3 이기 때문에 23 8 mod 5

Page 19: Chap 7.  정수론의 소개

19

모듈러 산술 연산모듈러 산술 연산 mod n 연산

• 정수들의 범위 => {0, 1, …, (n-1)} 으로 표현가능• 즉 , 이러한 집합의 범위 내에서 산술 연산이 가능

• 모듈러 연산의 특징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

Page 20: Chap 7.  정수론의 소개

20

예제예제 ) a = 11, b = 15, n = 8) a = 11, b = 15, n = 81. (a + b) mod n = ((11 mod 8) + (15 mod 8)) mod 8 = 3 + 7 mod 8

= 10 mod 8 = 2

2. (a - b) mod n = ((11 mod 8) - (15 mod 8)) mod 8 = 3 - 7 mod 8

= -4 mod 8 = 4

3. (a * b) mod n = ((11 mod 8) * (15 mod 8)) mod 8 = 3 * 7 mod 8

= 21 mod 8 = 5

Page 21: Chap 7.  정수론의 소개

21

지수 연산 지수 연산 => => 곱셈의 반복으로 수행가능곱셈의 반복으로 수행가능 예예 ) 11) 1177 mod 13 mod 13

111122 = 121 = 4 mod 13 = 121 = 4 mod 13

111144 = 4 = 422 = 3 mod 13 = 3 mod 13

111177 = 11*4*3 = 2 mod 13 = 11*4*3 = 2 mod 13

Page 22: Chap 7.  정수론의 소개

22

모듈러 연산의 속성모듈러 연산의 속성 교환법칙

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

결합법칙• [(w+x)+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)+(w*y)] mod n

항등원• (0+w) mod n = w mod n• (1*w) mod n = w mod n

덧셈에 대한 역원 (-w)

Page 23: Chap 7.  정수론의 소개

23

만약만약(a+b) (a+b) (a+c) mod n (a+c) mod n 이라면이라면

그때그때 b b c mod n c mod n 이다이다

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

=> => 덧셈에 대한 역원을 이용하여 수식 증명 가능덧셈에 대한 역원을 이용하여 수식 증명 가능

Page 24: Chap 7.  정수론의 소개

24

만약만약(a*b) (a*b) (a*c) mod n (a*c) mod n 이라면이라면

그때그때 b b c mod n c mod n 이다이다 . . 단단 , a, a 는 는 nn 과 서로 과 서로

소이다소이다

만족하지 않는 예만족하지 않는 예6*3 6*3 18 18 2 mod 8 2 mod 8

6*7 6*7 42 42 2 mod 8 2 mod 8 그러나 3 7 mod 8 이다 . 6 과 8 의 GCD 는 2 not 1

Page 25: Chap 7.  정수론의 소개

25

이러한 예상밖의 결과에 대한 이유는 어떠한 이러한 예상밖의 결과에 대한 이유는 어떠한 일반적인 일반적인 modulus nmodulus n 에 대해 만약 에 대해 만약 aa 와 와 nn 이 이 공통적으로 어떠한 인수들을 가지고 있다면공통적으로 어떠한 인수들을 가지고 있다면 승수 승수 aa 는 는 완전한 나머지 집합을 구성하는데 실패완전한 나머지 집합을 구성하는데 실패

a=6a=6 과 과 n=8n=8 을 가지고을 가지고z8 z8 0 1 2 3 4 5 6 70 1 2 3 4 5 6 7

66 의 곱 의 곱 0 6 12 18 24 30 36 420 6 12 18 24 30 36 42

나머지 나머지 0 6 4 20 6 4 2 0 6 4 20 6 4 2 66 에 의해 곱해졌을때 나머지들의 완전한 집합을 에 의해 곱해졌을때 나머지들의 완전한 집합을

가지지 못하기 때문에 가지지 못하기 때문에 z8z8 상에 있는 하나 이상의 상에 있는 하나 이상의 숫자는 다시 숫자는 다시 z8z8 상에 있는 같은 나머지 들 값을 갖게 상에 있는 같은 나머지 들 값을 갖게 된다 된다

=> => 곱셈에 대한 유일한 역원이 존재하지 않는다곱셈에 대한 유일한 역원이 존재하지 않는다

Page 26: Chap 7.  정수론의 소개

26

a=5a=5 과 과 n=8 => GCD(5,8)=1n=8 => GCD(5,8)=1

z8 z8 0 1 2 3 4 5 6 70 1 2 3 4 5 6 7

55 의 곱 의 곱 0 5 10 15 20 25 30 350 5 10 15 20 25 30 35

나머지 나머지 0 5 2 7 4 1 6 30 5 2 7 4 1 6 3

만약 만약 pp 가 소수가 소수라면 그때 라면 그때 zpzp 상의 모든 원소들은 상의 모든 원소들은 pp 와 와 서로소서로소 => => 항상 역원이 존재항상 역원이 존재

곱셈의 역원은 곱셈의 역원은 wwzpzp 에 대해에 대해 , w*z , w*z 1 mod p 1 mod p 인 인 zz 가 가 존재존재

Page 27: Chap 7.  정수론의 소개

27

3. 3. 페르마와 오일러의 정리페르마와 오일러의 정리

페르마 정리페르마 정리 (Fermat Theorem)(Fermat Theorem)

만약 만약 pp 가 소수라면 가 소수라면 aa 는 는 pp 에 의해 나누어지지 않는 에 의해 나누어지지 않는 양의 정수이다양의 정수이다 . . 그때그때

aap-1p-1 1 mod p 1 mod p

가 성립한다가 성립한다

Page 28: Chap 7.  정수론의 소개

28

RSA RSA 알고리즘 예 알고리즘 예 암호화와 복호화

: 평문 메시지 M = 19 일 경우• 암호문 : 195 = 66 mod 119 66

• 복호문 : 6677 = 19 mod 119 19

평문19

2476099 20807195 = = 119 나머지 : 66

1.27…10140 1.06 …10138

6677 = = 119 나머지 : 19

평문19

암호문66

암호화 복호화

KU = 5, 119 KR = 77, 119

Page 29: Chap 7.  정수론의 소개

29

페르마 정리에 대한 증명페르마 정리에 대한 증명 만약 zp 의 모든 원소가 modulo p 와 a 에 의해 곱해진다면

그 결과는 어떠한 다른 order 에서 zp 상에 모든 원소들로 구성이 된다 .

또한 a*00 mod p 이고 , 그런 까닭에 (p-1) 숫자들 { a mod p, 2a mod p, …, (p-1) mod p} 는 어떠한 위수에서의 숫자 {1, 2, …, p-1} 들이다

이러한 숫자들을 같이 곱하면 다음과 같다 a*2a*…*(p-1)a [(a mod p)*(2a mod p)*…*((p-1)a mod p) mod

p]

(p-1)! mod p 그러나 a*2a*…*(p-1)a = (p-1)!ap-1 이 된다 그러므로 (p-1)!ap-1 (p-1)! mod p

Page 30: Chap 7.  정수론의 소개

30

예제예제 ) a=7, p= 19) a=7, p= 19 ap-1 1 mod p 72 = 49 11 mod 19 74 = 121 7 mod 19 78 = 49 11 mod 19 716 = 121 7 mod 19 ap-1 = 718 = 716 * 72 7*11 1 mod 19

Page 31: Chap 7.  정수론의 소개

31

페르마의 다른 유용한 형태페르마의 다른 유용한 형태 만약 만약 pp 가 솟수이고 가 솟수이고 aa 가 양의 정수라면가 양의 정수라면 aapp a mod p a mod p

가 성립한다가 성립한다

예예 ) a=3, p=5, 3) a=3, p=5, 355 = 243 = 243 3 mod 5 3 mod 5

예예 ) a=10, p=5, 10) a=10, p=5, 1055 = 100000 = 100000 10 mod 5 10 mod 5 0 mod 5 0 mod 5

Page 32: Chap 7.  정수론의 소개

32

오일러 정리오일러 정리

오일러의 오일러의 Totient Totient 함수함수 정수론에서 오일러의 정수론에서 오일러의 totient totient 함수는 함수는 (n)(n) 라고 라고

표기된다표기된다

(n): n(n): n 보다 작고 보다 작고 nn 과 서로 소인 양의 정수의 개수과 서로 소인 양의 정수의 개수

n 1 2 3 4 5 6 7 8 9 10 11 12 13 14n 1 2 3 4 5 6 7 8 9 10 11 12 13 14

(n) 1 1 2 2 4 2 6 4 6 4 10 4 12 6(n) 1 1 2 2 4 2 6 4 6 4 10 4 12 6

278278 페이지 표 페이지 표 7.4 7.4 참조참조

Page 33: Chap 7.  정수론의 소개

33

오일러 정리오일러 정리

오일러 함수의 특성오일러 함수의 특성 (1) = 1 솟수 n 에 대해서 (n) = n-1

솟수 p 와 q 에 대해서 n=pq

(n) = (pq) = (p)* (q) = (p-1)(q-1)

Page 34: Chap 7.  정수론의 소개

34

오일러 정리오일러 정리

오일러 정리오일러 정리 서로소인 모든 서로소인 모든 aa 와 와 nn 에 대한 관계를 나타낸다에 대한 관계를 나타낸다

aa(n)(n) 1 mod n 1 mod n

a=3; n=10; a=3; n=10; (10) = 4; 3(10) = 4; 344= 81 = 81 1 mod 10 1 mod 10

a=2; n=11; a=2; n=11; (11) = 10; 3(11) = 10; 31010= 1024 = 1024 1 mod 11 1 mod 11

Page 35: Chap 7.  정수론의 소개

35

오일러 정리오일러 정리

오일러 정리의 증명오일러 정리의 증명 만약 만약 nn 이 솟수라면 이 솟수라면 (n) = (n-1) (n) = (n-1) 이기 때문에 정리 이기 때문에 정리 aa

(n)(n) 1 mod n 1 mod n 가 성립하며 페르마의 정리도 성립한다가 성립하며 페르마의 정리도 성립한다 ..

(n) (n) 는 는 nn 에 서로 소인 에 서로 소인 nn 보다 작은 양의 정수의 보다 작은 양의 정수의 개수를 나타낸다개수를 나타낸다 . .

그와 같은 정수의 집합을 다음과 같이 표기해 보자그와 같은 정수의 집합을 다음과 같이 표기해 보자 ..

R = {x1,x2,…xR = {x1,x2,…x(n)(n) } }

이제 이제 modulo m modulo m 상에서 상에서 aa 를 각 원소에 곱하여 보자를 각 원소에 곱하여 보자S = {(ax1 mod n),(ax2 mod n),…(axS = {(ax1 mod n),(ax2 mod n),…(ax(n)(n) mod n)} mod n)}

Page 36: Chap 7.  정수론의 소개

36

오일러 정리오일러 정리

오일러 정리의 증명오일러 정리의 증명S = {(ax1 mod n),(ax2 mod n),…(axS = {(ax1 mod n),(ax2 mod n),…(ax(n)(n) mod n)} mod n)}

이 집합의 특징이 집합의 특징 a 는 n 과 서로 소이고 xi 는 n 과 서로 소이기 떄문에 , axi 는

또한 n 과 서로 소이다 . 이와 같이 S 의 모든 숫자들은 n 과 서로 소인 n 보다 작은 정수들이다 .

S 에서 중복되는 숫자들은 존재하지 않는다 .=> 곱셈에서 하나의 역원이 존재하기 위한 조건

Page 37: Chap 7.  정수론의 소개

37

오일러 정리오일러 정리 오일러 정리의 추가적인 특성오일러 정리의 추가적인 특성

a(n)+1 a mod n 이러한 속성은 이러한 속성은 RSA RSA 알고리즘의 유용성을 증명할 수 있음알고리즘의 유용성을 증명할 수 있음

M(n)+1 = M(p)(q)+1 m mod n 만약 GCD(m,n)=1 이라면 오일러 함수의 장점에 의해서 그러한

관계는 지속된다• M 은 p 의 배수가 아니고• M 은 q 의 배수가 아니다

만약 GCD(m,n)=1 이라면 • M 이 p 의 배수라면 , 그때 n 과 m 은 소인수 p 를 나누며

서로소가 아님 => M 은 p 의 배수• M 이 q 의 배수라면 , 그때 n 과 m 은 소인수 q 를 나누며

서로소가 아님 => M 은 q 의 배수

Page 38: Chap 7.  정수론의 소개

38

과제물과제물 모듈러 모듈러 +, -, * +, -, * 연산을 수행 할 수 있는 함수 작성연산을 수행 할 수 있는 함수 작성

입력 : 1000 bit 이상의 정수 출력 : 1000 bit 이상의 정수

페르마 정리와 오일러 함수의 내용 정리페르마 정리와 오일러 함수의 내용 정리 A4 지에 손으로 직접 써서 제출

제출기한 제출기한 다음주까지

Page 39: Chap 7.  정수론의 소개

39

5. 5. 유클리드 알고리즘유클리드 알고리즘

유클리드 알고리즘유클리드 알고리즘 두 양의 정수들에 대한 최대 공약수를 결정

확장된 유클리드 알고리즘확장된 유클리드 알고리즘 두개의 정수들에 대한 최대 공약수 한 수에 대한 곱셈의 역원 결정

Page 40: Chap 7.  정수론의 소개

40

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

예 ) GCD(55,22) = GCD(22, 55 mod 22) = GCD(22,11)

= GCD(11,22 mod 11)=GCD(11,0)=11

예 ) GCD(11,10) = GCD(10,11 mod 10) = GCD(10,1)

= GCD(1,10 mod 1) = GCD(1,0)=1

Page 41: Chap 7.  정수론의 소개

41

Euclid(d, f)Euclid(d, f)

1. X<-f; Y<-d1. X<-f; Y<-d

22. If Y==0 return X=GCD(d,f). If Y==0 return X=GCD(d,f)

3. R = X mod Y3. R = X mod Y

4. X <- Y4. X <- Y

5. Y <- R5. Y <- R

6. goto 6. goto 22

Page 42: Chap 7.  정수론의 소개

42

알고리즘 따라가기 예제 알고리즘 따라가기 예제 GCD(1970, 1066) = 2GCD(1970, 1066) = 2

Page 43: Chap 7.  정수론의 소개

43

곱셈에 대한 역원 찾기곱셈에 대한 역원 찾기 만약 GCD(d,f)=1 이라면 그때 d 는 modulo f 상에서 곱셈에

대한 역원을 갖는다 . 양의 정수 d<f 에 대해 , dd-1=1 mod f 인 d-1<f 가 존재

Extended Euclid(d,f)Extended Euclid(d,f)

1. (X1,X2,X3)<-(1,0,f);(Y1,Y2,Y3)<-(0,1,d)1. (X1,X2,X3)<-(1,0,f);(Y1,Y2,Y3)<-(0,1,d)

2. If Y3 = 0 return X3=GCD(d,f); no inverse2. If Y3 = 0 return X3=GCD(d,f); no inverse

3. If Y3 = 1 return Y3=GCD(d,f); Y2=d3. If Y3 = 1 return Y3=GCD(d,f); Y2=d-1-1 mod f mod f

4. Q = Floor(X3/Y3)4. Q = Floor(X3/Y3)

5. (T1, T2, T3) <- (X1-QY1, X2-QY2, X3-QY3)5. (T1, T2, T3) <- (X1-QY1, X2-QY2, X3-QY3)

6. (X1, X2, X3) <- (Y1, Y2, Y3)6. (X1, X2, X3) <- (Y1, Y2, Y3)

7. (Y1, Y2, Y3) <- (T1, T2, T3)7. (Y1, Y2, Y3) <- (T1, T2, T3)

8. Goto 28. Goto 2

Page 44: Chap 7.  정수론의 소개

44

6. 6. 중국인의 나머지 정리중국인의 나머지 정리 CRT(Chinese Remainder Theorem)CRT(Chinese Remainder Theorem): modulo: modulo 가 두개의 쌍이 서로 소인 집합인 나머지 집합들로부터 어떠한 가 두개의 쌍이 서로 소인 집합인 나머지 집합들로부터 어떠한

범위 내에 있는 정수들을 재구성하는 것이 가능하다범위 내에 있는 정수들을 재구성하는 것이 가능하다

Z10(0,1,2,…,9)Z10(0,1,2,…,9) 에서 에서 1010 개의 정수개의 정수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 45: Chap 7.  정수론의 소개

45

RSA RSA 알고리즘 예 알고리즘 예 암호화와 복호화

: 평문 메시지 M = 19 일 경우• 암호문 : 195 = 66 mod 119 66

• 복호문 : 6677 = 19 mod 119 19

평문19

2476099 20807195 = = 119 나머지 : 66

1.27…10140 1.06 …10138

6677 = = 119 나머지 : 19

평문19

암호문66

암호화 복호화

KU = 5, 119 KR = 77, 119

Page 46: Chap 7.  정수론의 소개

46

M=M= ㅠㅠ (1<=i<=k) (1<=i<=k) mmii

mi 는 두 개의 쌍이 서로 소인 것 1<=i,j<=k, i j 에 대해 GCD(mi, mj)=1

CRT 상의 원소A -> (a1, a2,…, ak)

1<=i<=k, A ZM, ai Zmi

ai = A mod mi

Page 47: Chap 7.  정수론의 소개

47

(a1, a2,…, ak) -> A

MMii= M/m= M/mii

Mi=m1m2… mi-1 mi+1 … mk

Mi=0 mod mj, for ij

CCii= M= Mii (M(Mii-1-1 mod m mod mi i ), 1<= i<= k ), 1<= i<= k

A=A= 1<=i<=k, a 1<=i<=k, aiiccii mod M mod M

Page 48: Chap 7.  정수론의 소개

48

예제예제 ) mod 37, 49) mod 37, 49 의 쌍으로 의 쌍으로 973 mod 1813 973 mod 1813 m1=37, m2=49, M=1813, A=973 M1=49, M2=37 M1

-1 =34, M2-1 =4 (M1

-1 M1 = 1 mod m1)

973 => (973 mod 37, 973 mod 49) => (11, 42)

mod 37, 49mod 37, 49 의 쌍으로 의 쌍으로 678 mod 1813678 mod 1813 678 => (12, 41)

973 + 678 mod 1813 => ?973 + 678 mod 1813 => ?

Page 49: Chap 7.  정수론의 소개

49

973 + 678 mod 1813 => ?973 + 678 mod 1813 => ? (11, 42) + (12, 41) => (11 + 12 mod 37, 42 + 41 mod 49)

=> (23, 34)

A=A= 1<=i<=k, a 1<=i<=k, aiiccii mod M mod M (23, 34) =>[ 23*49*34 + 34*37*4 ] mod 1813 => 43340 mod 181

3

=> 1651

973 + 678 mod 1813 = 1651 973 + 678 mod 1813 = 1651

Page 50: Chap 7.  정수론의 소개

50

연습문제연습문제 다음에 대한 다음에 대한 CRT CRT 연산을 하시오연산을 하시오

mod 7, 11 의 쌍으로 ( 주민등록 앞자리 + 주민등록 뒷자리 ) mod 77

Page 51: Chap 7.  정수론의 소개

51

7. 7. 이산대수이산대수 다음과 같은 등식을 고려해 보자다음과 같은 등식을 고려해 보자 y = gy = gxx mod p mod p

g, x g, x 그리고 그리고 pp 가 주어진다면가 주어진다면 , y, y 를 계산하는 것은 쉬운 를 계산하는 것은 쉬운 문제이다문제이다 . . 최악의 경우최악의 경우 , , 반복적인 곱셈과정을 반복적인 곱셈과정을 xx 번 번 수행해야만 하며수행해야만 하며 , , 효율적인 계산을 위한 알고리즘이 효율적인 계산을 위한 알고리즘이 존재한다존재한다 ..

그러나 그러나 y, g y, g 그리고 그리고 pp 가 주어진다고 하더라도 가 주어진다고 하더라도 xx 를 를 계산하는 것은 매우 어려운 문제이다계산하는 것은 매우 어려운 문제이다 . . 그 어려움은 그 어려움은 RSRSAA 알고리즘을 풀기 위해 요구되는 인수분해의 어려움과 알고리즘을 풀기 위해 요구되는 인수분해의 어려움과 같은 어려움을 가진다같은 어려움을 가진다 ..

Page 52: Chap 7.  정수론의 소개

52

RSA RSA 알고리즘 예 알고리즘 예 암호화와 복호화

: 평문 메시지 M = 19 일 경우• 암호문 : 195 = 66 mod 119 66

• 복호문 : 6677 = 19 mod 119 19

평문19

2476099 20807195 = = 119 나머지 : 66

1.27…10140 1.06 …10138

6677 = = 119 나머지 : 19

평문19

암호문66

암호화 복호화

KU = 5, 119 KR = 77, 119