Chap 7. 정수론의 소개

Preview:

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

1

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

3

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

2. 모듈러 연산

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

4. 솟수 판정

5. 유클리드 알고리즘

6. 중국인의 나머지 정리

7. 이산대수

4

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

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

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

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

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 를 나눈다

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)) 가 성립함

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

8

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

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

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

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

• 예 ) 3600 => 24 * 32 * 52

p

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 의 의미는 ???

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

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]

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

13

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

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

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

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

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

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

18

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

n = 5, a = 23, b = 8

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

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

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

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

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)

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

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

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

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 상에 있는 같은 나머지 들 값을 갖게 상에 있는 같은 나머지 들 값을 갖게 된다 된다

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

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 가 가 존재존재

27

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

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

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

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

가 성립한다가 성립한다

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

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

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

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

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 참조참조

33

오일러 정리오일러 정리

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

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

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

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

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

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 에서 중복되는 숫자들은 존재하지 않는다 .=> 곱셈에서 하나의 역원이 존재하기 위한 조건

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 의 배수

38

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

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

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

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

39

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

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

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

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

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

42

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

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

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

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

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

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

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 => ?

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

50

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

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

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 알고리즘을 풀기 위해 요구되는 인수분해의 어려움과 알고리즘을 풀기 위해 요구되는 인수분해의 어려움과 같은 어려움을 가진다같은 어려움을 가진다 ..

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