89
2.1 제 2 제 제제 제제 Part I: 제제제 제제 , 제제 제 제제

제2장 암호 수학 (1)

Embed Size (px)

DESCRIPTION

제2장 암호 수학 (1)Modulus and Cryptography in KoreanPresentation

Citation preview

Page 1: 제2장 암호 수학 (1)

2.1

제 2 장암호 수학

Part I: 모듈로 연산 , 합동 및 행렬

Page 2: 제2장 암호 수학 (1)

2.2

가 분 성 (divisibility), 유 클 리 드 (Euclidean) 알고리즘을 이용하여 최대 공약수를 찾는 방법과 관련 있는 정수 연산

확장 유클리드 알고리즘을 이용하여 일차 디오판투스 방정식 (Diophantine Equations), 일차 합동 방정식을 푸는 방법과 곱셈에 대한 역원을 찾는 방법

암호에서의 모듈로 연산의 중요성과 모듈로 연산자를 중점적으로 다룬다 .

암호에 널리 이용되는 잉여행렬에 적용되는 행렬과 연산

잉 여 행 렬 (residue matrices) 을 이 용 하 여 합 동 방정식들을 푸는 방법

Objectives

Chapter 2

Page 3: 제2장 암호 수학 (1)

2.3

2-1 2-1 정수 연산 (INTEGER ARITHMETIC)INTEGER ARITHMETIC)

정수 연산에서는 집합 (set) 과 몇 개의 연산을 사용한다 . 독자들이 집합 및 관련 연산에 익숙하겠지만 , 이 절에서는 모듈러 연산의 기본 지식을 학습하도록 하자 .

2.1.1정수의 집합 2.1.2이진 연산 2.1.3정수의 나눗셈 2.1.4가분성 2.1.5일차 디오판투스 방정식

Topics discussed in this section:Topics discussed in this section:

Page 4: 제2장 암호 수학 (1)

2.4

정수 집합 , 는 음의 무한대에서부터 양의 무한대까지 , ( 분수가 아닌 ) 모든 정수

2.1.1 정수의 집합

Figure 2.1 정수 집합

Page 5: 제2장 암호 수학 (1)

2.5

암호에서는 정수 집합에 적용되는 세 가지 이진 연산을 주로 사용한다 . 이진 연산은 입력값 2 개에 대하여 하나의 결과값을 산출한다 .

2.1.2 이진연산

Figure 2.2 정수 집합에 대한 세 가지 이진 연산

Page 6: 제2장 암호 수학 (1)

2.6

Example 2.1

2.1.2 Continued

다음은 두 정수에 대한 세 가지 이진 연산의 결과를 나타낸다 . 입력값 각각이 양수나 음수 이므로 , 각 연산에 대하여 4 가지 경우가 존재한다 .

Page 7: 제2장 암호 수학 (1)

2.7

정수연산에서 , a 를 n 으로 나누면 , q 와 r 을 얻는다 . 이 네 정수 사이의 관계는 다음과 같다 .

2.1.3 정수의 나눗셈

a = q × n + r

Page 8: 제2장 암호 수학 (1)

2.8

a = 255 이고 n = 11 이라고 가정하면 , 그림 2.3 에 보이는 것처럼 나눗셈 알고리즘을 사용하여 q = 23 이고 r = 2 라는 것을 알 수 있다 .

2.1.3 Continued

Figure 2.3 예 2.2 에서 몫과 나머지를 찾아내는 방법

Example 2.2

Page 9: 제2장 암호 수학 (1)

2.9

2.1.3 ContinuedFigure 2.4 정수의 나눗셈 알고리즘

Page 10: 제2장 암호 수학 (1)

2.10

Example 2.3

2.1.3 Continued

컴퓨터나 계산기를 사용하면 , a 가 음수 일 경우 , q 와 r은 음수이다 .

r 이 양수여야 한다는 제약 사항을 어떻게 적용할 수 있을까 ? 답은 간단하다 . q 에서 1 을 빼고 , r 에 n 을 더하여 양수로 만든다 .

Page 11: 제2장 암호 수학 (1)

2.11

2.1.3 ContinuedFigure 2.5 나눗셈 알고리즘의 그래프

Page 12: 제2장 암호 수학 (1)

2.12

나눗셈 관계식에서 a 가 0 이 아니고 , r = 0 이라고 하면 , 다음의 식을 얻는다 .

2.1.4 가분성

a = q × n

만 약 나 머 지 가 0이라면만약 , 나머지가 0 이 아니라면

Page 13: 제2장 암호 수학 (1)

2.13

Example 2.4

2.1.4 Continued

a.a. 32 = 8 × 4 32 = 8 × 4 이기 때문에이기 때문에 44 는 는 3232 를 나누고를 나누고 , , 다음과 같이 다음과 같이 표현한다표현한다

b. 42 = 5 × 8 + 2b. 42 = 5 × 8 + 2 이기 때문에 이기 때문에 88 은 은 4242 를 나누지 않는다를 나누지 않는다 . . 나머지가 나머지가 22 가 존재한다가 존재한다 . . 그러므로 나누지 못하는 것을 그러므로 나누지 못하는 것을 다음과 같이 표현한다다음과 같이 표현한다

Page 14: 제2장 암호 수학 (1)

2.14

특성2.1.4 Continued

Property 1: 만약 a|1 이라면 a = ±1.

Property 2: 만약 a|b 이고 b|a 라면 a = ±b.

Property 3: 만약 a|b 이고 b|c 라면 a|c.

Property 4: 만약 a|b 이고 a|c 라면 a|(m × b + n × c) 이 된다 . 여기서 m 과 n 은 임의의 정수

Page 15: 제2장 암호 수학 (1)

2.15

Example 2.5

2.1.4 Continued

13ȁ�78, 7ȁ�98, −6ȁ�24, 4ȁ�44, 11|(−33) a.

b. 13 ∤ 27, 7 ∤ 50, −6 ∤ 23, 4 ∤ 41, 11 ∤ሺ−32ሻ

Page 16: 제2장 암호 수학 (1)

2.16

다음은 나눗셈의 몇 가지 특성이다 . 증명에 관심이 있는 독자는 부록 Q 를 참조하여라 .

속성 1: 만약 이면 속성 2: 만약 이고 이면 속성 3: 만약 이고 이면 속성 4: 만약 이고 이면 , 여기서 과 은 임의의 정수

특성 (properties)

1|a 1aba | ab | ba ba | cb | ca |ba | ca | )(| cnbma

m n

Page 17: 제2장 암호 수학 (1)

2.17

Example 2.6

2.1.4 Continued

a.  3|15 이고 , 15|45 이기 때문에 , 3 번째 속성에 의하여 , 3|45 이다 .

b. 3|15 이고 3|9 이기 때문에 , 4 번째 속성에 의하면 , 3|(15 x 2 +9 x 4) 이고 , 따라서 3|66 이다 .

Page 18: 제2장 암호 수학 (1)

2.18

2.1.4 Continued

Fact 1: 정수 1 은 하나의 약수 , 1 만을 갖는다 .

Fact 2: 모든 양의 정수는 최소 2 개의 약수(1 과 자기자신 ) 를 가진다 (2 개 이상도 가능 )

Note

Page 19: 제2장 암호 수학 (1)

2.19

최대공약수 (Greatest Common Divisor)

Page 20: 제2장 암호 수학 (1)

2.20

2.1.4 ContinuedFigure 2.6 두 정수의 공약수

Page 21: 제2장 암호 수학 (1)

2.21

유클리드 알고리즘

2.1.4 Continued

Fact 1: gcd (a, 0) = aFact 2: gcd (a, b) = gcd (b, r), 여기서 r 은 a 를 b 로 나눈 나머지이다 .

두 양의 정수의 최대공약수는 두 정수를 나누는 가장 큰 정수 이다 .

최대 공약수

Note

Note

Page 22: 제2장 암호 수학 (1)

2.22

2.1.4 ContinuedFigure 2.7 유클리드 알고리즘

Page 23: 제2장 암호 수학 (1)

2.23

2.1.4 Continued

When gcd (a, b) = 1, we say that a and b are relatively prime.

Note

gcd (a, b) = 1 일 경우에 , a 와 b 는 서로소 ( relatively prime) 라고 한다 .

Note

Page 24: 제2장 암호 수학 (1)

2.24

Example 2.7

2.1.4 Continued

2740 과 1760 의 최대공약수를 계산하시오 .

gcd (2740, 1760) = 20 gcd (2740, 1760) = 20 이다이다 ..

SolutionSolution

Page 25: 제2장 암호 수학 (1)

2.25

Example 2.8

2.1.4 Continued

25 와 60 의 최대공약수를 계산하시오 .

gcd (25, 65) = 5 gcd (25, 65) = 5 이다이다 ..SolutionSolution

Page 26: 제2장 암호 수학 (1)

2.26

확장 유클리드 알고리즘 (Extended Euclidean Algorithm)

2.1.4 Continued

두 정수 a 와 b 가 주어졌을 때 , 다음 식을 만족하는 다른 두 정수 계산해야 할 필요가 있다 .

확장 유클리드 알고리즘은 gcd (a, b) 를 계산할 수 있을 뿐만 아니라 , 동시에 s 와 t 값을 계산할 수 있다 .

Page 27: 제2장 암호 수학 (1)

2.27

2.1.4 ContinuedFigure 2.8.a 확장 유클리드 알고리즘 part a

Page 28: 제2장 암호 수학 (1)

2.28

2.1.4 ContinuedFigure 2.8.b 확장 유클리드 알고리즘 part b

Page 29: 제2장 암호 수학 (1)

2.29

Example 2.9

2.1.4 Continued

a = 161 이고 b = 28 일때 , gcd (a, b) 와 s, t 값을 계산하시오 .

gcd (161, 28) = 7 이고 , s = −1 이며 t = 6 이다 .SolutionSolution

Page 30: 제2장 암호 수학 (1)

2.30

Example 2.10

2.1.4 Continued

a = 17 이고 b = 0 일때 , gcd (a, b) 와 s, t 의 값을 구하시오 .

gcd (17, 0) = 17 이고 , s = 1, t = 0 이다 .

SolutionSolution

Page 31: 제2장 암호 수학 (1)

2.31

Example 2.11

2.1.4 Continued

a = 0 이고 b = 45 일때 , gcd (a, b) 와 s, t 의 값을 구하시오 .

gcd (0, 45) = 45 이고 , s = 0 이며 , t = 1 이다 .SolutionSolution

Page 32: 제2장 암호 수학 (1)

2.32

일차 디오판투스 방정식 (Linear Diophantine Equation)

2.1.4 Continued

2 변수 일차 디오판투스 방정식은 ax + by = c 이다 .

Note

Page 33: 제2장 암호 수학 (1)

2.33

Linear Diophantine Equation

2.1.4 Continued

특수해 (Particular solution): x0 = (c/d)s 와 y0 = (c/d)t

Note

일반해 (General solutions): x = x0 + k (b/d) 와 y = y0 − k(a/d) 이다 . 여기서 k 는 정수이다 .

Note

Page 34: 제2장 암호 수학 (1)

2.34

Example 2.12

2.1.4 Continued

방정식 21x + 14y = 35 의 특수해와 일반해를 계산하여라 .

SolutionSolution

Page 35: 제2장 암호 수학 (1)

2.35

Example 2.13

2.1.4 Continued

다른 값을 갖는 물체의 여러 조합을 찾아내고자 할 때 , 실생활에서 매우 흥미롭게 응용될 수 있다 . 예 를 들 어 , 100 달 러 수 표 를 20 달 러 와 5달 러 짜 리 로 현 금 화 한 다 고 가 정 하 자 . 많 은 선 택 법 이 있 을 수 있 는 데 , 이 와 대 응 되 는 디오판투스 방정식 20x + 5y = 100 을 풀어 그 선택법들을 찾을 수 있다 .

Page 36: 제2장 암호 수학 (1)

2.36

Example 2.13

2.1.4 Continued

d = gcd (20, 5) = 5 이 고 5 | 100 이 므 로 , 그 방정식은 많은 해를 갖는다 . 그러나 이 경우 그 해 중 몇 개 (x , y 가 모두 음의 정수가 아닌 답 ) 만을 선택할 수 있다 . 양변을 5 로 나누면 4x + y = 20 이 된 다 . 방 정 식 4s + t = 1 을 확 장 유 클 리 드 알 고 리 즘 으 로 풀 면 s = 0, t = 1 을 얻 는 다 . 특수해는

이고 , x, y 가 음수가 아닌 일반해는 다음과 같다 .

(0, 20), (1, 16), (2, 12), (3, 8), (4, 4), (5, 0).

20201 ,0200 00 yx

Page 37: 제2장 암호 수학 (1)

2.37

2-2 2-2 모듈러 연산 (MODULAR ARITHMETIC)MODULAR ARITHMETIC)

앞 절에서 논의된 나눗셈 관계식 (a = q × n + r) 은 두 개의 입력값 (a, n) 과 두 개의 출력값과 두 개의 출력값 (q, r) 을 을 갖는다갖는다 . . 모듈러 연산에서는 하나의 결과값 , 즉 나머지 r 에만 관심이 있고 몫 q 는 신경을 쓰지 않는다 .

2.2.1 모듈러 연산자 (Modular Operator)2.2.2 잉여류 (Set of Residues)2.2.3 합동 (Congruence)2.2.4 Zn 에서의 연산 ( Operations in Zn )

2.2.5 덧셈과 곱셈표 (Addition and Multiplication Tables)2.2.6 다른 두 집합 (Different Sets)

Topics discussed in this section:Topics discussed in this section:

Page 38: 제2장 암호 수학 (1)

2.38

• 위에 언급된 이진 연산자를 모듈러 연산자라고 하고 , mod 로 표기한다 . • 두 번째 입력값 (n) 은 모듈러 (modulus) 라고

하고 , 결과값 r 은 나머지 (residue) 라고 한다 .

2.2.1 모듈러 연산자 (Modulo Operator)

Figure 2.9 나눗셈 관계식과 모듈러 연산자

Page 39: 제2장 암호 수학 (1)

2.39

Example 2.14

2.1.4 Continued

다음의 연산값은 ? ::a.a. 27 mod 5 27 mod 5 b.b. 36 mod 12 36 mod 12c.c. −18 mod 14 −18 mod 14 d.d. −7 mod 10 −7 mod 10

a.a. Dividing 27 by 5 results in Dividing 27 by 5 results in rr = 2 = 2

b.b. Dividing 36 by 12 results in Dividing 36 by 12 results in rr = 0. = 0.

c. Dividing −18 by 14 results in c. Dividing −18 by 14 results in rr = −4. After adding the = −4. After adding the modulus modulus rr = 10 = 10

d. Dividing −7 by 10 results in r = −7. After adding the d. Dividing −7 by 10 results in r = −7. After adding the modulus to −7, r = 3. modulus to −7, r = 3.

SolutionSolution

Page 40: 제2장 암호 수학 (1)

2.40

모듈러 을 이용하는 모듈러 연산의 결과는 항상 0 과 n-1 사이의 정수값이다 . 즉 , a mod n 의 결과값은 항상 n 보다 작은 음이 아닌 정수값이다 . 모듈러 연산자는 하나의 집합을 생성하는데 , 모듈러 연산에서 이 집합을 모듈러 의 최소 잉여 집합 또는 Zn 이라 한다 .

2.2.2 잉여류 (Set of Residues)

Figure 2.10 몇 가지 Zn 집합의 예

Page 41: 제2장 암호 수학 (1)

2.41

두 정수가 합동임을 보이기 위해서는 합동 연산자 () 를 사용한다 . 관계식을 성립하게 하는 모듈러 값을 표현하기 위하여 합동의 오른쪽에 ( ≡ ) 을 붙인다 . 예를 들어 , 다음과 같이 기록한다 .

2.2.3 합동 (Congruence)

Page 42: 제2장 암호 수학 (1)

2.42

2.2.3 ContinuedFigure 2.11 합동의 개념

Page 43: 제2장 암호 수학 (1)

2.43

잉여류 [a] 나 [a]n 은 모듈로 n 에 합동인 정수들로 이루어진 집합이다 .

2.2.3 Continued잉여류 (Residue Classes)

Page 44: 제2장 암호 수학 (1)

2.44

2.2.3 ContinuedFigure 2.12 그래프를 이용한 Z 와 Zn 의 비교

Page 45: 제2장 암호 수학 (1)

2.45

Example 2.15

2.2.3 Continued

일상생활에서 모듈러 연산을 사용하는 예로 시계를 들 수 있다 . 이것은 모듈러 12 를 이용하고 0대신에 12 를 사용한다 . 따라서 시계 시스템은 0(또는 12) 으로 시작하여 11 까지 간다 .

Page 46: 제2장 암호 수학 (1)

2.46

집합 Z 에서 논의했던 세 개의 이진 연산자 ( 덧셈 , 뺄셈 , 곱셈 ) 역시 집합 Zn 에 정의될 수 있다 . 그림 2.13 에 표현된 mod 연산자를 사용하여 결과값을 Zn

에 대응시켜야 한다 .

2.2.4 Zn 에서의 연산 (Operation in Zn )

Figure 2.13 Zn 에서의 이진 연산

Page 47: 제2장 암호 수학 (1)

2.47

Example 2.16

2.2.4 Continued

다음 연산을 수행하여라 . ( 입력값은 Zn 에서 선택됨 ):a. Z15 위에서 7 과 14 를 더하라 .b. Z13 위에서 7 에서 11 을 빼라 .c. Z20 위에서 7 과 11 을 곱하여라 .SolutionSolution

Page 48: 제2장 암호 수학 (1)

2.48

Example 2.17

2.2.4 Continued

다음 연산을 수행하여라 . ( 입력값은 Z 나 Zn

에서 선택됨 ):a. Z14 위에서 17 과 27 을 더하라 .b. Z13 위에서 12 에서 43 을 빼라 .c. Z19 위에서 123 과 -10 을 곱하여라 .SolutionSolution

Page 49: 제2장 암호 수학 (1)

2.49

특성

2.2.4 Continued

• 우리는 모듈러 연산에서 세 개의 이진 연산의 두 입력값은 Z 나 Zn 에서 선택될 수 있다는 것을 언급하였다 .

• 다음 성질들은 세 개의 이진 연산 (+,-,×) 을 적용하기 전에 , ( Z 에서 선택되었다면 ) 두 입력값을 Zn 에 우선 대응시킬 수 있도록 해준다 .

• 이 특성들에 대한 증명은 부록 Q 에 수록되어 있다 .

Page 50: 제2장 암호 수학 (1)

2.50

특성

2.2.4 Continued

nnbnanba

nnbnanba

nnbnanba

mod )] mod ( ) mod [( mod ) (

mod )] mod () mod [( mod )(

mod )] mod () mod [( mod )(

1

3

2

Page 51: 제2장 암호 수학 (1)

2.51

2.2.4 ContinuedFigure 2.14 모드 연산자의 성질

Page 52: 제2장 암호 수학 (1)

2.52

Example 2.18

2.2.4 Continued

다음은 위의 특성들을 응용한 예이다 .

1. (1,723,345 + 2,124,945) mod 11 = (8 + 9) mod 11 = 6

2. (1,723,345 − 2,124,945) mod 16 = (8 − 9) mod 11 = 10

3. (1,723,345 × 2,124,945) mod 16 = (8 × 9) mod 11 = 6

Page 53: 제2장 암호 수학 (1)

2.53

Example 2.19

2.2.4 Continued

정수론에서 , 때때로 10 의 지수승을 정수로 나눌 때 , 나머지를 계산해야 할 필요가 있다 .

Page 54: 제2장 암호 수학 (1)

2.54

Example 2.20

2.2.4 Continued

정수론에서 , 정수를 으로 나눈 나머지는 그 정수의 각 자리수의 합을 나눈 나머지와 같다고 한다 . 정수를 10 의 지수승과 각 자리수를 곱한 것의 합으로 표현한다 .

Page 55: 제2장 암호 수학 (1)

2.55

2.2.5 역원 (Inverses)

모듈러 연산을 할 때 , 종종 연산에 대한 어떤 수의 역원을 계산해야 할 경우가 있다 . 일반적으로 덧셈에 대한 역원과 곱셈에 대한 역원을 계산한다 .

Page 56: 제2장 암호 수학 (1)

2.56

2.2.5 Continue

Zn 에서 두 개의 수 a 와 b 는 다음의 경우 서로가 덧셈에 대한 역원이 된다 .

덧셈에 대한 역원 (Additive Inverse)

모듈러 연산에서 , 각각의 정수는 덧셈에 대한 역원을 갖는다 . 어떤 정수와 그

정수의 덧셈에 대한 역원의 합은 모듈러 n에 대하여 0 과 합동이다 .

Note

Page 57: 제2장 암호 수학 (1)

2.57

Example 2.21

2.2.5 Continued

Z10 에서 모든 덧셈에 대한 역원 쌍을 찾아라 .

SolutionSolution

덧셈에 대한 역원의 6 개 쌍은 (0, 0), (1, 9), (2, 8), (3, 7), (4, 6), (5, 5)이다 .

Page 58: 제2장 암호 수학 (1)

2.58

2.2.5 Continue

Zn 에서 두 개의 수 a 와 b 가 다음을 만족하면 서로가 곱셈에 대한 역원이 된다 .

곱셈에 대한 역원 (Multiplicative Inverse)

모듈러 연산에서 , 정수는 곱셈에 대한 역원이 있을 수도 있고 없을 수도 있다 . 만약 곱셈에 대한 역원이 있다면 , 그

정수와 해당하는 곱셈에 대한 역원의 곱은 모듈러 n 에서 1 과 합동이다 .

Note

Page 59: 제2장 암호 수학 (1)

2.59

Example 2.22

2.2.5 Continued

Z10 에서 8 의 곱셈에 대한 역원을 계산하여라 .

SolutionSolutiongcd (10, 8) = 2 ≠ 1 이기 때문에 역원이 존재하지 않는다 . 즉 , 8 을 곱하여 그 결과가 1 과 합동이 되는 수를 0 부터 9 사이에서 찾을 수 없다 .

Page 60: 제2장 암호 수학 (1)

2.60

2.2.5 Continued

Example 2.23

Z10 에서 곱셈에 대한 모든 역원을 찾아라 .

SolutionSolution

다음과 같은 세 쌍의 역원 , (1, 1), (3, 7) 와 (9, 9) 이 존재한다 . 0, 2, 4, 5, 6, 와 8 은 곱셈에 대한 역원을 갖지 않는다 .

Page 61: 제2장 암호 수학 (1)

2.61

Example 2.24

2.2.5 Continued

Z11 에서 모든 곱셈에 대한 역원을 찾아라 .

SolutionSolution다음의 7 쌍의 역원 : (1, 1), (2, 6), (3, 4), (5, 9), (7, 8), (9, 9), 와 (10, 10)이 존재한다 .

Page 62: 제2장 암호 수학 (1)

2.62

2.2.5 Continued

확장 유클리드 알고리즘을 이용하면 , n 과 b 가 주어지고 , gcd (n, b) = 1 일 때 ,

Zn 에서 b 의 곱셈에 대한 역원을 찾아낼 수 있다 .

b 의 곱셈에 대한 역원은 t 를 Zn 에대응시킨 값이다 .

Note

Page 63: 제2장 암호 수학 (1)

2.63

2.2.5 ContinuedFigure 2.15 확장 유클리드 알고리즘을 이용한 곱셈에 대한 역원 찾기

Page 64: 제2장 암호 수학 (1)

2.64

Example 2.25

2.2.5 Continued

Z26 에서 11 의 곱셈에 대한 역원을 계산하여라 .

SolSolutionution

gcd (26, 11) gcd (26, 11) 는는 11 이다이다 . 11. 11 의 역원은의 역원은 7 7 이거나이거나 1919이다이다 ..

Page 65: 제2장 암호 수학 (1)

2.65

Example 2.26

2.2.5 Continued

Z100 위에서 23 의 곱셈에 대한 역원을 구하라 .

SolutionSolution

gcd (100, 23)=1gcd (100, 23)=1 이다이다 . 23 . 23 의 역원은의 역원은 13 13 이거나이거나 8787이다이다 ..

Page 66: 제2장 암호 수학 (1)

2.66

Example 2.27

2.2.5 Continued

Z26 위에서 12 의 역원을 구하라 .

SolutionSolution

gcd (26, 12) gcd (26, 12) 는는 22 이다이다 . . 역원은 존재하지 않는다역원은 존재하지 않는다 ..

Page 67: 제2장 암호 수학 (1)

2.67

2.2.6 Addition and Multiplication Tables Figure 2.16 Z10 에 대한 덧셈과 곱셈표

Page 68: 제2장 암호 수학 (1)

2.68

2.2.7 Different Sets Figure 2.17 Zn 과 Zn* 에 대한 예

Page 69: 제2장 암호 수학 (1)

2.69

2.2.7 Different Sets

덧셈에 대한 역원이 필요할 때는 Zn 을 사용해야 하지만 ,

곱셈에 대한 역원이 필요할 때는 Zn* 를 사용해야 한다 .

Note

Page 70: 제2장 암호 수학 (1)

2.70

2.2.8 다른 두 집합 (Two More Sets)

• 암호는 종종 두 개 이상의 집합 , 즉 , Zp 와 Zp*를 사용한다 .

• 이 두 집합에서 모듈러는 소수이다 . • 이후의 장에서 논의되겠지만 , 소수는 단지 두

개의 약수 , 즉 과 자기 자신으로만 나눠진다는 것만 알면 충분하다 .

Page 71: 제2장 암호 수학 (1)

2.71

2-3 MATRICES2-3 MATRICES

암호에서는 행렬 연산이 필요하다 . 이 주제가 선형 대수라는 대수학의 특정 분야에 속해 있지만 , 행렬에 대한 다음의 간단한 고찰은 암호 연구를 위해 필요한 기본사항이다 . 이 주제에 익숙한 독자들은 이 절의 일부나 전부를 건너뛰어도 된다 .

2.3.1 Definitions2.3.2 Operations and Relations2.3.3 Determinants2.3.4 Residue Matrices

Topics discussed in this section:Topics discussed in this section:

Page 72: 제2장 암호 수학 (1)

2.72

2.3.1 정의 (Definition )

Figure 2.18 l × m 크기의 행렬

Page 73: 제2장 암호 수학 (1)

2.73

2.3.1 Continued

Figure 2.19 매트릭스의 예

Page 74: 제2장 암호 수학 (1)

2.74

2.3.2 Operations and Relations

그림 2.20 은 행렬의 덧셈과 뺄셈의 예를 보여준다 .

Example 2.28

Figure 2.20 행렬의 덧셈과 뺄셈

Page 75: 제2장 암호 수학 (1)

2.75

2.3.2 Continued

그림 2.21 은 행 행렬 (1 × 3) (1 × 3) 과 열 행렬 (3 × (3 × 1)1) 의 곱을 나타낸다 . 그 결과로 1 × 11 × 1 크기의 행렬이 생성된다 ..

Example 2. 29

Figure 2.21 행 행렬과 열 행렬의 곱

Page 76: 제2장 암호 수학 (1)

2.76

2.3.2 Continued

그림 2.22 는 2 × 3 2 × 3 행렬과 3 × 4 3 × 4 행렬의 곱을 나타낸다 . 그 결과로 2 × 4 2 × 4 크기의 행렬이 생성된다 .

Example 2. 30

Figure 2.22 2 × 3 행렬과 3 × 4 행렬의 곱

Page 77: 제2장 암호 수학 (1)

2.77

2.3.2 Continued

그림 2.23 에는 스칼라 곱의 예가 나타나 있다 .

Example 2. 31

Figure 2.23 스칼라 곱

Page 78: 제2장 암호 수학 (1)

2.78

2.3.3 Determinant

크기가 m × m 인 정방행렬 A 의 행렬식은 det (A)로 표기되며 , 다음과 같이 귀납적으로 계산되는 스칼라 값이다 .

행렬식은 정방행렬에서만 정의된다 .

Note

Page 79: 제2장 암호 수학 (1)

2.79

2.3.3 Continued

그 림 2.24 는 위 의 귀납적 정 의 를 이 용 하 여 , 어떻게 1 × 1 행렬의 행렬식에 근거하여 2 × 2 행렬의 행렬식을 계산하는지 보여준다 . 이 예는 m이 1 이거나 2 일 때 , 행렬의 행렬식을 매우 쉽게 계산할 수 있다는 것을 보여준다 .

Example 2. 32

Figure 2.24 2 ×2 행렬의 행렬식 계산

Page 80: 제2장 암호 수학 (1)

2.80

2.3.3 Continued

그림 2.25 는 3 × 3 행렬의 행렬식 계산을 보여준다 .

Example 2. 33

Figure 3 × 3 행렬의 행렬식 계산

Page 81: 제2장 암호 수학 (1)

2.81

2.3.4 Inverses

곱셈에 대한 역행렬은 정방행렬에서만 정의된다 .

Note

Page 82: 제2장 암호 수학 (1)

2.82

2.3.5 잉여 행렬 (Residue Matrices )

암호는 잉여 행렬 , 즉 모든 행렬의 원소가 Zn 에 속하는 행렬을 사용한다 . 잉여 행렬은 gcd (det(A), n) = 1 이면 곱셈에 대한 역행렬을 갖는다 .

Example 2. 34

Figure 2.26 잉여행렬과 곱셈에 대한 역행렬

Page 83: 제2장 암호 수학 (1)

2.83

합동 (Residue Matrices )

합동 (Congruence)

두 행렬이 열과 행의 개수가 같고 모든 대응되는 원소가 모듈로 n 에 대하여 합동이면 , 그 두 행렬은 모듈로 n 에 대하여 합동이라고 하고 , A ≡ B mod n라고 표기한다 . 즉 , 모든 i 와 j 에 대해 aij ≡ bij mod n이면 , A ≡ B mod n 이다 .

Page 84: 제2장 암호 수학 (1)

2.84

2-4 LINEAR CONGRUENCE2-4 LINEAR CONGRUENCE

암호에서는 때때로 하나 이상의 Zn 에 속한 계수를 갖는 방정식이나 그러한 방정식의 집합을 풀어야 할 경우가 있다 . 이 절에서는 각 변수의 계수가 1인 방정식 ( 선형 방정식 ) 을 어떻게 푸는지 살펴본다 .

2.4.1 일 - 변수 일차 방정식 (Single-Variable Linear Equations)2.4.2 일차 연립 방정식 (Set of Linear Equations)

Topics discussed in this section:Topics discussed in this section:

Page 85: 제2장 암호 수학 (1)

2.85

2.4.1 일 - 변수 일차 방정식 (Single-Variable Linear Equations)

변수가 하나인 방정식 , 즉 ax ≡ b (mod n ) 형태의 방정식을 어떻게 푸는 지 알아보자 . 이러한 형식의 방정식은 해가 없거나 유한개의 해를 갖는다 .

Page 86: 제2장 암호 수학 (1)

2.86

Example 2.35

2.4.1 Continued

방정식 10 10 xx ≡ 2(mod 15) ≡ 2(mod 15) 를 계산하여라 .

SolutionSolution먼저먼저 gcd (10 and 15) = 5gcd (10 and 15) = 5 를 계산한다를 계산한다 . . 55 가 22 를 나누지 않기 때문에 해가 존재하지 않는다 .

방정식 방정식 14 14 x x ≡ 12 (mod 18)≡ 12 (mod 18) 를 계산하여라를 계산하여라 ..

SolutionSolution

Example 2.36

Page 87: 제2장 암호 수학 (1)

2.87

Example 2.37

2.4.1 Continued

방정식 방정식 3x + 4 ≡ 6 (mod 13) 를 계산하여라를 계산하여라 ..

SolutionSolution먼저 방정식을 ax ≡ b (mod n) 형태로 바꾼다 . 양변에 -4 (4 의 덧셈에 대한 역원 ) 를 더하면 , 33xx ≡ ≡ 2 (mod 13). 2 (mod 13). 이 된다 . gcd (3, 13) = 1 이기 때문에 , 방정식은 한 근을 가진다 . 그 근은 x0 = (2 × 3−1) mod 13 = 18 mod 13 = 5 이다 . 이 답이 원래의 방정식에 적합한지 다음과 같이 검증할 수 있다 . 3 × 5 + 4 ≡ 6 (mod 13).

Page 88: 제2장 암호 수학 (1)

2.88

2.4.2 Single-Variable Linear Equations

같은 모듈러에 대한 일차방정식 집합에서 , 변수의 계수로 구성된 행렬의 역행렬이 존재하면(invertible) 그 방정식 집합을 풀 수 있다 .

Figure 2.27 일차 연립 방정식

Page 89: 제2장 암호 수학 (1)

2.89

Example 2.38

2.4.2 Continued

다음의 일차 연립 방정식을 풀어라 . ::

여기에서 , x, y, z 는 x1, x2, x3 의 역할을 한다 . 방정식의 집합으로 구성된 행렬은 역행렬이 존재한다 . 그 행렬의 곱셈에 대한 역행렬을 찾아서 3, 4, 5 로 구성된 열 행렬에 곱한다 . 그 결과는 x ≡ 15 (mod 16), y ≡ 4 (mod 16), and z ≡ x ≡ 15 (mod 16), y ≡ 4 (mod 16), and z ≡ 14 (mod 16) 14 (mod 16) 이다 . 이 값들을 식에 대입하여 답인지 검증할 수 있다 .

SolutionSolution