'98 선형대수학 OCU 10장 1절

웹노트(LA Web Note)


 이곳은 열린가상대학(Open Cyber University)에 소개하는 이상구 교수(Dr. Sang-Gu Lee) Linear Algebra WebNote 입니다. 학부 선형대수학의 강의록과 과제, Quiz와 답, 중간시험문제는 물론 토론을 위한 자유계시판, 예등이 있습니다.


OCU 10장 1절

(* 1.6) 행렬을 이용한 암호이론


notebook.gif  10장에서는 선형대수학이 어떻게 응용되는가를 중점적으로 살펴보기로 합시다.

OCU 제 10장 1절은 OCU 2장 3절과 같은 것입니다.(교재의 1장 7절입니다.) 이미 암호이론에 대해 숙지가 된 학생은 바로 다음절로 넘어가도 좋습니다.

  이 절에서는 행렬을 이용하는 흥미있는 문제를 하나 소개하겠습니다. 암호문을 만들고 해독하는 기술은 선형대수를 많이 이용하고 있습니다. 여기서는 행렬  B가 행렬 A의 역행렬일 때, 행렬 A를 이용하여 암호문을 만들고 B를 이용하여 그것을 해독하는 방법에 대하여 설명할 것입니다. 이 절은 선택 사항입니다. 관심이 있으시면 시도하시고 아니면 교재 1장 1절에서 1장 6절의 내용을 복습하시면 됩니다. 연립방정식이 언제 해를 갖고 언제 해를 안갖는지, 가지면 하나를 갖는지 무한히 많은 해를 갖는지, 행렬의 합과 곱, 행렬을 이용해 일차연립방정식의 해를 구하는 가우스소거법과 가우스 Jordan 소거법의 차이, REF와 RREF, 역행렬을 구하는법을 숙지하셨으면 충분합니다. 이 절은 벡터공간론과 함께 암호론의 시작이 된답니다.  


(1) 영문을 암호화하는 경우

      두 행렬 A, B(=A-1)

 

      이라 하고, 알파벳과 기호를 다음 표와 같이 숫자화하자.

  

 

B

C

D

E

F

G

H

I

J

K

L

M

N

1

2

3

4

5

6

7

8

9

10

11

12

13

14

O

P

Q

R

S

T

U

V

W

X

Y

Z

*

15

16

17

18

19

20

21

22

23

24

25

26

27

  

  표 1.1

        표 1.1의 * 는 단어 사이를 띄는 기호로 사용한다.


    다음 문장을 암호화하여 보자.

FOR YOUR EYES ONLY

    이것을 숫자화 하면

F O R * Y O U R * E Y E S * O N L Y

6 15 18 27 25 15 21 18 27 5 25 5 19 27 15 14 12 25

      이다. 그런데, A가 2 by 2 행렬이므로 이것을 다음과 같은 두 행을 가지는 행렬 M 으로 만든다. 이때,       숫자의 개수가 홀수이면 마지막에 *에 해당되는 숫자 27 을 첨가한다.
 

      이 N 으로부터 숫자화된 암호문
 

  23, 70, 59, 100, 102, 60, 77, 66, 106, 17, 55, 41, 73, 77, 45, 56, 48, 79

 

      을 만든다.


      이제, 이 암호문을 행렬 B을 이용하여 해독해 보자.

      B=A-1 이므로 다음이 성립한다.

      따라서 암호문을 두 행을 가지고 행렬로 만들고, 이것의 왼쪽에 B 를 곱하면 해독할 수 있다

      이므로 다음 문장을 얻는다.

6 15 18 27 25 15 21 18 27 5 25 5 19 27 15 14 12 25

  F O R * Y O U R * E Y E S * O N L Y


    (2) 한글을 암호화하는 경우

            두 행렬 A, B(=A-1)

            이라 하고, 한글자모와 기호를 다음 표와 같이 숫자화하자.

  

 

 ㄱ

 ㄴ

 ㄷ

 ㄹ

 ㅁ

 ㅂ

 ㅅ

 ㅇ

 ㅈ

 ㅊ

 1

 2

 3

 4

 5

 6

 7

 8

9

10

 ㅋ

 ㅌ

 ㅍ

 ㅎ

 ㅏ

 ㅑ

 ㅓ

 ㅕ

 ㅗ

 ㅛ

11

12

13

14

15

16

17 

18

19

20

 ㅜ

 ㅠ

 ㅡ

 ㅣ

 ㅐ

 ㅒ

 ㅔ

 ㅖ

 *

 ?

21

22

23

24

25

26

27

28

29

30

  

 

표 1.2


      다음 문장을 암호화하여 보자.

내일 그곳에서 만나자

       이것을 숫자화하면

ㄴ ㅐ ㅇ ㅣ ㄹ  * ㄱ ㅡ ㄱ ㅗ ㅅ ㅇ ㅔ ㅅ ㅓ  *  ㅁ ㅏ ㄴ ㄴ ㅏ ㅈ ㅏ

2  25  8 24  4  29 1 23  1 19  7  8 27  7 17  29  5 15  2 2  15  9 15

       이다. 그런데 A가 3×3행렬이므로 이것을 다음과 같은 3개의 행을 갖는 행렬M으로 만든다. 숫자의        개수가 3의 배수가 아니면 마지막에 *에 해당하는 29을 계속 첨가한다.

      
         이므로 숫자화된 암호문은 다음과 같다.

17,124,35,84,69,132,50,156,0,54,21,54,20,46,4,46,22,139,37,86,84,121,65,185

         이것을 해독하는 것은 연습문제로 남긴다.


    B=A-1이므로 B를 이용하여 만든 암호문은 A를 이용하여 해독할 수 있다. 또 한, 두 행렬 A, B를 모르면 이 암호문을 해독할 수 없으므로 숫자화하는 표는 알려지 더라도 누설될 염려가 없다. 따라서, 두 행렬 A, B(=A-1)만 알려지지 않도록 주의하 면 비밀이 보장된다. 또, 이 행렬 A를 주기적으로 바꾸어 주면 통신내용의 보안이 효과적으로 유지된다.


[연습문제 1.6]


본문을 다운(down) 받아서 학습하려면 여기를 누르거나 마우스의 오른쪽 키를 대고 다른 이름으로 저장을 누르시오


starfish.gif  정의, 정리는 여기를 누르세요


blue4_3.gif앞으로 blue4_1.gifHome 으로 blue4_4.gif다음으로


starfish.gif 본 자료의 판권은 이상구교수와 OCU에 있습니다.   1998. 7.