나뭇잎 교과서

역행렬

수에서 \(2x = 6\)을 2로 나누어 풀듯이, \(A\vec{x} = \vec{b}\)에서 \(A\)를 "나누는" 행렬이 역행렬 \(A^{-1}\)입니다. \(A\) 옆에 단위행렬을 붙여 소거하면 역행렬이 저절로 나타납니다. 이 절에서는 네 행렬의 역행렬이 있을지 먼저 예측한 뒤 소거 과정을 따라가고, 행렬로 글자를 잠그고 역행렬로 푸는 힐 암호를 만들어 봅니다.

먼저 알면 좋은 것 행렬의 곱셈가우스 소거법
본문

역행렬

본문

알파벳을 A = 0, B = 1, ⋯, Z = 25로 바꾸고, 두 글자씩 묶어 열벡터로 만든 뒤 행렬 \(K = \begin{pmatrix}3 & 3\\ 2 & 5\end{pmatrix}\)를 곱하고 26으로 나눈 나머지를 취해 암호문을 만든다. 이 방법으로 "HI"를 잠그면 "TC"가 된다. 암호문을 받은 친구가 원래 글자를 되찾으려면 \(K\)가 한 일을 되돌리는 행렬이 필요하다. 그런 행렬은 어떻게 구하고, 어떤 행렬이면 열쇠를 만들 수 없을까?

단계계산결과 글자를 수로H = 7, I = 8(7, 8) 잠그기(3·7 + 3·8, 2·7 + 5·8) = (45, 54)(19, 2) = TC 열기K⁻¹ (mod 26)를 곱함(7, 8) = HI 26으로 나눈 나머지만 남긴다.
그림 1. 행렬을 곱해 잠근 글자는 역행렬을 곱해 연다.
먼저 알아야 할 것행렬의 곱셈, 가우스 소거법(가우스 소거법), 나머지 연산.

2.2.1곱한 것을 되돌리는 행렬

정사각행렬 \(A\)에 대해 \(AX = XA = I\)인 행렬 \(X\)가 있으면 \(X\)를 \(A\)의 역행렬이라 하고 \(A^{-1}\)로 쓴다. \(A\vec x = \vec b\)에서 양변에 \(A^{-1}\)을 곱하면 \(\vec x = A^{-1}\vec b\)이므로, 역행렬은 \(A\)가 한 일을 되돌린다. 역행렬은 가우스 소거법으로 구할 수 있다. \(A\)와 단위행렬 \(I\)를 나란히 놓은 \((A \mid I)\)에 행 연산을 해서 왼쪽을 \(I\)로 만들면, 오른쪽이 \(A^{-1}\)이 된다. 왼쪽을 \(I\)로 만들 수 없으면 역행렬이 없다.

정리 2.2.1 \(2\times2\) 역행렬

\(A = \begin{pmatrix}a & b\\ c & d\end{pmatrix}\)이고 \(ad - bc \ne 0\)이면 \[A^{-1} = \frac{1}{ad - bc}\begin{pmatrix}d & -b\\ -c & a\end{pmatrix}\]이다. \(ad - bc = 0\)이면 역행렬이 없다. \(n\times n\) 행렬 \(A\)가 역행렬을 가질 필요충분조건은 열벡터들이 일차독립인 것이다.

역행렬이 없는 행렬은 서로 다른 두 벡터를 같은 벡터로 보낸다. 예를 들어 \(\begin{pmatrix}1 & 2\\ 2 & 4\end{pmatrix}\)은 두 열이 실수배여서 평면 전체를 한 직선으로 납작하게 누른다. 납작해진 직선 위의 한 점으로 간 벡터들이 무수히 많으므로, 어느 것이 원래 벡터였는지 되찾을 수 없다. 그래서 역행렬이 있는지는 열벡터가 일차독립인지, 행렬식이 0이 아닌지로 계산하기 전에 알 수 있다.1

2.2.2나머지 세계의 역행렬

암호에서는 26으로 나눈 나머지만 다루므로 분수를 쓸 수 없다. 그래서 \(\dfrac{1}{ad - bc}\) 대신 \((ad - bc)\times k\)를 26으로 나눈 나머지가 1이 되는 수 \(k\)를 곱한다. \(K\)의 행렬식은 \(3\times5 - 3\times2 = 9\)이고, \(9\times3 = 27\)을 26으로 나눈 나머지가 1이므로 \(k = 3\)이다. 행렬식이 26과 공약수를 가지면, 곧 짝수이거나 13의 배수이면 그런 \(k\)가 없어서 열쇠 행렬을 만들 수 없다. 그래서 힐 암호의 열쇠는 행렬식이 26과 서로소인 행렬로 골라야 한다.

단계계산결과 행렬식3·5 − 3·29 9의 역수 (mod 26)9 × 3 = 27 ≡ 13 K⁻¹3 × (5, −3 / −2, 3)(15, 17 / 20, 9)
그림 2. 나머지 연산에서는 행렬식으로 나누는 대신 행렬식의 역수에 해당하는 수를 곱한다.

2.2.3예제 풀이

예제 2.2.2

처음 질문의 열쇠 \(K\)로 "HI"를 잠가 암호문을 구하고, 26으로 나눈 나머지 세계의 역행렬로 다시 열어 보아라. 또 \(\begin{pmatrix}2 & 1\\ 4 & 3\end{pmatrix}\)은 열쇠로 쓸 수 있는가?

\(K\begin{pmatrix}7\\ 8\end{pmatrix} = \begin{pmatrix}45\\ 54\end{pmatrix}\)이고, 26으로 나눈 나머지는 \((19, 2)\), 곧 "TC"이다. 역행렬은 \(3\begin{pmatrix}5 & -3\\ -2 & 3\end{pmatrix} = \begin{pmatrix}15 & -9\\ -6 & 9\end{pmatrix}\)이고, 음수를 26을 더해 바꾸면 \(\begin{pmatrix}15 & 17\\ 20 & 9\end{pmatrix}\)이다.

\(\begin{pmatrix}15 & 17\\ 20 & 9\end{pmatrix}\begin{pmatrix}19\\ 2\end{pmatrix} = \begin{pmatrix}319\\ 398\end{pmatrix}\)이고, 26으로 나눈 나머지는 \((7, 8)\), 곧 "HI"로 되돌아온다. \(\begin{pmatrix}2 & 1\\ 4 & 3\end{pmatrix}\)은 행렬식이 \(6 - 4 = 2\)로 짝수여서 26과 공약수 2를 가지므로, 나머지 세계에서 역행렬이 없어 열쇠로 쓸 수 없다. 실제로 이 행렬은 서로 다른 글자 묶음을 같은 암호문으로 보내기도 한다. 즉 역행렬은 행렬을 곱한 일을 되돌리는 행렬이며, 행렬식이 0이 아닐 때, 나머지 세계에서는 행렬식이 법과 서로소일 때만 존재한다.

아래 탐구 카드에서 역행렬이 있는지 계산하기 전에 판단해 보고, 행렬로 잠근 암호를 역행렬로 풀어 보자.

  1. 이 암호는 1929년 미국의 수학자 힐이 발표했다. 한 글자씩이 아니라 여러 글자를 한꺼번에 섞어 글자의 빈도로 깨뜨리기 어려웠지만, 원문과 암호문 몇 쌍이 알려지면 연립방정식으로 열쇠를 거꾸로 구할 수 있어 오늘날에는 쓰이지 않는다.
마무리

역행렬 \(A^{-1}\)은 \(AA^{-1} = A^{-1}A = I\)인 행렬로 \(A\)가 한 일을 되돌리며, \((A \mid I)\)를 가우스 소거법으로 \((I \mid A^{-1})\)로 바꾸어 구한다. \(2\times2\) 행렬은 \(ad - bc \ne 0\)일 때만 역행렬이 있고, 열벡터가 일차종속이면 평면을 납작하게 눌러 되돌릴 수 없다. 처음 질문의 열쇠 \(K\)는 행렬식 9가 26과 서로소여서 나머지 세계의 역행렬 \(\begin{pmatrix}15 & 17\\ 20 & 9\end{pmatrix}\)로 "TC"를 "HI"로 연다.

탐구 1

역행렬이 있는지 계산하기 전에 알 수 있을까?

가우스-조르당 소거법 · 예측→확인

먼저 예측해 보자. 이 행렬은 역행렬이 있을까?

먼저 예측을 고르세요.

  1. 질문\(2x = 6\)은 양변을 2로 나누어 푼다. \(A\vec{x} = \vec{b}\)도 \(A\)로 "나눌" 수 있다면 \(\vec{x} = A^{-1}\vec{b}\)로 한 번에 풀린다. \(A^{-1}\)은 어떻게 구하고, 언제 없을까?
  2. 복원\(AX = XA = I\)인 \(X\)를 \(A\)의 역행렬 \(A^{-1}\)이라고 한다. 기본 행 연산은 해를 바꾸지 않는다.
  3. 설명\(A\) 옆에 단위행렬을 붙인 \([A \mid I]\)에 행 연산을 해서 왼쪽을 \(I\)로 만들면 오른쪽이 \(A^{-1}\)이 된다(가우스-조르당 소거법). 행 연산 하나하나가 왼쪽에 어떤 행렬(기본행렬)을 곱하는 것과 같아서, 그 곱을 \(E\)라 하면 \(EA = I\)이고 같은 \(E\)가 오른쪽의 \(I\)를 \(E = A^{-1}\)로 바꾸기 때문이다. 소거 중에 왼쪽에 피벗이 없는 열이 생기면 \(I\)를 만들 수 없고, 역행렬이 없다.
  4. 연결역행렬이 없는 것은 열벡터들이 일차종속인 것, 다음 절의 행렬식이 0인 것과 같은 말이다. 실제 계산에서는 \(A^{-1}\)을 따로 구하기보다 \(A\vec{x} = \vec{b}\)를 바로 소거해 푸는 편이 빠르고 정확하다.
  5. 적용네 행렬 각각에 대해 먼저 역행렬이 있을지 예측해 보자. 열 사이에 눈에 띄는 관계가 있는지 보면 단서가 된다. 그다음 한 단계씩 소거를 따라가 보자.
  6. 판단첫 피벗 자리가 0이라고 역행렬이 없는 것은 아니다(A₄). 아래 행과 바꾸면 계속할 수 있다. 열 전체에서 피벗을 찾을 수 없을 때만 멈춘다.

확인조건이 달라지면

\(A = \begin{pmatrix} 2 & 1 \\ 5 & 3 \end{pmatrix}\)일 때 \(A\vec{x} = \binom{1}{2}\)의 해는?

탐구 2

행렬로 잠근 암호는 어떤 열쇠로 열릴까?

역행렬 · 활용
열쇠 K

—

암호문 —

해독 결과 —

A = 0, B = 1, …, Z = 25로 바꾸고 두 글자씩 묶어 벡터로 만든다. 계산은 모두 26으로 나눈 나머지로 한다. 글자 수가 홀수이면 끝에 X를 붙인다.

  1. 질문1929년 수학자 힐(L. S. Hill)은 글자를 숫자 벡터로 바꾸고 행렬을 곱해 암호를 만들었다. 받는 사람은 암호문을 어떻게 원래 글로 되돌릴까? 아무 행렬이나 열쇠로 써도 될까?
  2. 복원\(2 \times 2\) 행렬 \(K = \begin{pmatrix} a & b \\ c & d \end{pmatrix}\)의 역행렬은 \(ad - bc \ne 0\)일 때 \(K^{-1} = \frac{1}{ad - bc}\begin{pmatrix} d & -b \\ -c & a \end{pmatrix}\)이다.
  3. 설명평문 벡터 \(\vec{p}\)를 \(\vec{c} = K\vec{p}\)로 바꾸는 것이 암호화이고, \(\vec{p} = K^{-1}\vec{c}\)가 해독이다. 다만 글자는 26개뿐이라 계산을 26으로 나눈 나머지로 하므로, \(\frac{1}{ad - bc}\) 대신 "곱해서 26으로 나눈 나머지가 1이 되는 수"를 쓴다. 그런 수는 \(ad - bc\)가 26과 서로소일 때만 있다. 예를 들어 처음 열쇠는 \(\det K = 9\)이고 \(9 \times 3 = 27\)이라 3을 곱한다.
  4. 연결역행렬이 없으면 서로 다른 평문이 같은 암호문이 되어 되돌릴 수 없다. 이것이 "역변환이 없다"는 뜻이다. 힐 암호는 지금은 쉽게 깨지지만, 오늘날의 암호도 "되돌리기 쉬운 계산과 어려운 계산"의 차이를 쓴다.
  5. 적용평문을 바꾸며 암호문이 어떻게 달라지는지 보자. 같은 글자가 늘 같은 글자로 바뀌는가? "det가 13인 열쇠"로 바꾸면 해독이 어떻게 되는가?
  6. 판단실수에서는 \(\det K \ne 0\)이면 충분했지만, 나머지 계산에서는 \(\det K\)가 26과 서로소여야 한다. 2나 13의 배수이면 실수에서는 역행렬이 있어도 암호는 풀리지 않는다. 조건은 계산하는 세계에 따라 달라진다.

확인조건이 달라지면

다음 중 힐 암호(26으로 나눈 나머지)의 열쇠로 쓸 수 있는 것은?

AI 출제 문항연습문제 풀어보기11문항
Esc

↑↓ 고르기Enter 열기