Hill 암호법은 평문을 한 블럭을 m개로 하여 나눈 다음, 각 문자를 숫자로 변환(M)하여, 각 블럭에 mod 26에 대한 mxm 가역행렬K(암호키)을 곱하여 계산한 결과(MK)인 암호를 다시 영문으로 출력하는 방법이다. 복호화시는 문장을 숫자화한 뒤 암호키의 역행렬K^{-1}을 곱하면(MKK^{-1}) 간단히 평문을 얻을 수 있다. 이것 역시 다른 고전 암호법과 마찬가지로 알려진 평문공격에 취약하고, m이 작은 수 이면 mxm 행렬의 수가 유한(26^(mxm))개 이기 때문에 공격 당하기 쉽다.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
평문(영어 문장)
Negi
암호키(mod 26)로 사용할 2x2 가역행렬의 1행과 2행의 성분
(0에서 25사이의 수)
1,2,3,5
평문을 대문자로 바꾸고, 숫자화(0-25)한 것:
영문자가 아닌 것(빈 칸 포함)은 23(X)으로,
평문수가 홀수이면 마지막에 23(X)을 추가했슴.
13 4, 6 8,
위의 ","로 나누어진 각 쌍에
2x2 암호키행렬을 mod 26에 대해 곱한 숫자 암호문:
25 20, 4 0,
위의 숫자 암호문을 영어문장으로 바꾼것:
ZUEA
해독하기 [복호화하기]
왼쪽 아래의 암호문
ZUEA
암호문을 대문자로 바꾸고, 숫자화(0-25)한 것:
영문자가 아닌 것(빈 칸 포함)은 23(X)으로,
암호문수가 홀수이면 마지막에 23(X)을 추가했슴.
25 20, 4 0,
위의 ","로 나누어진 각 쌍에
2x2 복호키행렬을 mod 26에 대해 곱한 숫자 평문:
13 4, 6 8,
위의 숫자 평문을 영어문장으로 바꾼것:
NEGI
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
평문(영어 문장)
Negi
암호키(mod 26)로 사용할 2x2 가역행렬의 1행과 2행의 성분
(0에서 25사이의 수)
1,2,3,5
평문을 대문자로 바꾸고, 숫자화(0-25)한 것:
영문자가 아닌 것(빈 칸 포함)은 23(X)으로,
평문수가 홀수이면 마지막에 23(X)을 추가했슴.
13 4, 6 8,
위의 ","로 나누어진 각 쌍에
2x2 암호키행렬을 mod 26에 대해 곱한 숫자 암호문:
25 20, 4 0,
위의 숫자 암호문을 영어문장으로 바꾼것:
ZUEA
해독하기 [복호화하기]
왼쪽 아래의 암호문
ZUEA
암호문을 대문자로 바꾸고, 숫자화(0-25)한 것:
영문자가 아닌 것(빈 칸 포함)은 23(X)으로,
암호문수가 홀수이면 마지막에 23(X)을 추가했슴.
25 20, 4 0,
위의 ","로 나누어진 각 쌍에
2x2 복호키행렬을 mod 26에 대해 곱한 숫자 평문:
13 4, 6 8,
위의 숫자 평문을 영어문장으로 바꾼것:
NEGI