T

Text Machine

강력한 텍스트 도구를 브라우저에서

아핀 암호

공식 E(x) = (a·x + b) mod 26으로 아핀 암호를 암호화하고 복호화하세요. 곱수 a와 이동값 b를 한 단계씩 조정하고, 치환 알파벳과 실시간 공식이 갱신되는 것을 보면서 결과를 복사하거나 다운로드하고 링크로 공유할 수 있습니다. 모든 작업은 브라우저에서 비공개로 실행됩니다.

암호 키

곱수 a

5

이동값 b

8

E(x) = (5x + 8) mod 26

곱수 a는 26과 서로소여야 하므로 허용되는 값은 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25의 열두 개뿐입니다. 이동값 b는 0부터 25까지 어떤 수든 될 수 있습니다.

평문
암호문

위에 텍스트를 입력하면 결과가 여기에 표시됩니다.

치환 알파벳

평문

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

암호

I
N
S
X
C
H
M
R
W
B
G
L
Q
V
A
F
K
P
U
Z
E
J
O
T
Y
D

아핀 암호 사용 방법

  1. 1

    암호화 또는 복호화 선택

    평문을 아핀 암호문으로 바꾸려면 암호화를, 같은 두 키로 암호문을 다시 읽을 수 있는 텍스트로 바꾸려면 복호화를 선택하세요.

  2. 2

    곱수 a 설정

    곱수 a를 열두 개의 유효한 값에 걸쳐 한 단계씩 조정하세요. 26과 서로소인 수만 제공되므로 암호는 언제나 되돌릴 수 있습니다.

  3. 3

    이동값 b 설정

    이동값 b를 0부터 25까지 어떤 값으로든 한 단계씩 조정하세요. 바꾸는 순간 실시간 공식과 치환 알파벳 표가 갱신됩니다.

  4. 4

    텍스트 입력 또는 붙여넣기

    메시지를 입력하면 입력하는 즉시 암호가 적용됩니다. 글자는 암호화되고 공백과 숫자, 문장 부호는 그대로 통과하며, 대소문자는 유지됩니다.

  5. 5

    복사, 다운로드, 공유

    결과를 복사하거나 텍스트 파일로 다운로드하거나, 입력한 키와 텍스트, 방향을 그대로 다시 불러오는 링크로 공유하세요.

아핀 암호 이해하기

아핀 암호란 무엇인가요?

아핀 암호는 단순한 모듈러 산술로 만든 단일 치환 암호입니다. 각 글자를 A = 0부터 Z = 25까지의 수로 바꾸고, 선형 함수 E(x) = (a·x + b) mod 26에 통과시킨 뒤 다시 글자로 되돌립니다. 두 수 a와 b가 키이며, a는 곱수이고 b는 이동값입니다. 같은 글자가 언제나 같은 암호 글자로 대응되기 때문에 아핀 암호는 카이사르나 앳배시 암호와 같은 계열에 속하지만, 곱한 뒤 이동하는 단계가 있어 둘 중 어느 쪽보다도 더 일반적입니다.

이름은 곱셈과 덧셈을 결합해 이 암호에 구조를 주는 아핀 함수 a·x + b에서 비롯되었습니다. 모듈러 산술과 서로소인 수, 그리고 모듈러 역원이 어떻게 하나의 작동하는 암호 속에 어우러지는지 보여 주기 때문에, 아핀 암호는 암호학 뒤의 수학을 가르치는 데 가장 인기 있는 암호 가운데 하나입니다. 또한 작은 키 공간 덕분에 손으로 풀어내는 재미가 있어 퍼즐과 방 탈출 게임, CTF 챌린지의 단골손님이기도 합니다.

아핀 암호화 공식

암호화하려면 각 글자를 알파벳에서의 위치로, 즉 A = 0, B = 1, 그렇게 Z = 25까지의 수로 바꿉니다. 그 수 x를 공식 E(x) = (a·x + b) mod 26에 넣어, a를 곱하고 b를 더한 뒤 26으로 나눈 나머지를 취하면 결과가 0부터 25까지의 범위로 다시 감싸 들어옵니다. 그 수를 글자로 되돌리면 암호문이 됩니다. a를 곱하면 알파벳이 늘어나며 뒤섞이고, b를 더하면 알파벳이 미끄러지듯 옮겨지며, mod 26이 모든 것을 26글자의 고리 안에 붙들어 둡니다.

위 도구는 전체 대응을 한눈에 보여 줍니다. 치환 알파벳 표는 A부터 Z까지 모든 평문 글자가 현재의 a와 b에서 어떤 암호 글자가 되는지 나열하며, 어느 키를 바꾸든 그 즉시 갱신됩니다. 글자의 대소문자는 그대로 유지되고, 글자가 아닌 것은 공백이든 숫자든 문장 부호든 이모지든 그대로 통과하므로, 암호화한 뒤에도 메시지의 모양은 읽기 쉽게 남습니다.

키 a와 b 고르기

이동값 b는 쉽습니다. 0부터 25까지 어떤 정수든 될 수 있습니다. 흥미로운 쪽은 곱수 a인데, 모든 값이 통하지는 않기 때문입니다. 암호가 되돌릴 수 있으려면 a가 26과 서로소여야 하는데, 이는 1 말고는 26과 공약수를 갖지 않는다는 뜻입니다. 26 = 2 × 13이므로 모든 짝수와 13의 모든 배수가 제외되고, 그 결과 정확히 열두 개의 쓸 수 있는 값, 곧 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25가 남습니다.

만약 a가 26과 공약수를 갖는다면 — 이를테면 a = 2라면 — 서로 다른 여러 평문 글자가 같은 암호 글자로 겹쳐 버려 메시지를 더 이상 유일하게 복호화할 수 없습니다. 그래서 위의 곱수 조절 장치는 열두 개의 유효한 값만 단계적으로 거치게 되어 있습니다. 되돌릴 수 없는 키는 고를 수가 없는 셈입니다. a에 대해 열두 가지, b에 대해 스물여섯 가지가 있으므로 가능한 키 조합은 모두 312가지이며, 그중 하나인 a = 1과 b = 0은 텍스트를 그대로 둡니다.

아핀 암호 예제 풀이

키 a = 5와 b = 8을 가지고 단어 AFFINECIPHER를 암호화해 봅시다. 첫 글자 A는 0이므로 E(0) = (5·0 + 8) mod 26 = 8, 즉 I입니다. 다음 글자 F는 5이므로 E(5) = (5·5 + 8) mod 26 = 33 mod 26 = 7, 즉 H입니다. 단어 전체를 글자 하나씩 이어 가면 암호문 IHHWVCSWFRCP가 나옵니다.

위 치환 알파벳 표에서 모든 단계를 따라갈 수 있습니다. a를 5로, b를 8로 설정하면 암호 행이 A는 I가 되고, B는 N이 되고, C는 S가 되고, 그렇게 알파벳 전체에 걸쳐 보여 줍니다. 대응이 고정되어 있으므로 같은 글자를 암호화하면 언제나 같은 결과가 나오는데, AFFINE의 두 F가 모두 H가 되는 것이 그 예입니다. 바로 이 성질 때문에 공격자가 빈도 분석을 들이댈 수 있습니다.

아핀 암호 복호화하기

복호화는 공식을 거꾸로 돌려 D(y) = a⁻¹·(y − b) mod 26으로 실행합니다. 새로 등장하는 재료는 a⁻¹, 곧 a의 모듈러 역원입니다. a와 곱했을 때 1 mod 26이 되는 수이지요. a = 5의 경우 역원은 21인데, 5 × 21 = 105 = 4 × 26 + 1이기 때문입니다. 복호화하려면 이동값 b를 빼고, 그 역원을 곱한 뒤, 결과에 mod 26을 취합니다. 예제를 되짚어 보면 암호 글자 I는 8이고, D(8) = 21·(8 − 8) mod 26 = 0, 즉 다시 A입니다.

역원을 직접 구할 필요는 전혀 없습니다. 위에서 복호화를 선택하고, 암호화에 쓴 것과 같은 a와 b를 입력한 뒤 암호문을 붙여넣으면, 도구가 모듈러 역원을 찾아 메시지를 즉시 복원합니다. 아핀 암호는 깔끔한 일대일 대응이므로 복호화하면 공백과 대소문자, 문장 부호가 모두 온전한 채로 원본 텍스트가 정확히 돌아옵니다.

특수한 경우인 카이사르와 앳배시

아핀 암호는 가장 유명한 고전 암호 둘을 조용히 품고 있습니다. 곱수 a를 1로 설정하면 공식이 E(x) = (x + b) mod 26으로 무너지는데, 이는 모든 글자를 b칸씩 옮기는 순수한 이동, 바로 카이사르 암호입니다. a = 1과 b = 3으로 두면 율리우스 카이사르가 썼다고 전해지는 고전적인 이동이 나와, A를 D로, HELLO를 KHOOR로 바꿉니다.

a = 25와 b = 25로 두면 그만큼 익숙한 무언가가 나타납니다. 25는 −1 mod 26과 같으므로 공식이 E(x) = (25 − x) mod 26이 되어 알파벳을 뒤집어, A는 Z가 되고 B는 Y가 되며 그렇게 이어집니다. 이것이 수천 년 전 히브리 서기들이 쓰던 앳배시 암호입니다. 두 암호가 하나의 공식에서 떨어져 나오는 것을 보는 것이야말로 아핀 암호가 그들을 어떻게 일반화하는지 이해하는 가장 명료한 길입니다. 위에서 각 설정을 시도하며 치환 표가 이를 확인해 주는 것을 지켜보세요.

아핀 암호는 얼마나 안전한가요?

현대의 어떤 잣대로 보아도 아핀 암호는 실질적인 보안을 전혀 제공하지 않습니다. 가능한 키가 312개뿐이고 — 게다가 실제로 텍스트를 뒤섞는 것은 그보다도 적습니다 — 컴퓨터는 그 모두를 찰나에 시도할 수 있으며, 끈기 있는 사람이라면 손으로도 무차별 대입할 수 있습니다. 작은 수 둘에는 공격을 버틸 만큼의 비밀 정보가 애초에 들어 있지 않습니다.

또한 단일 치환이라서 빈도 분석에도 취약합니다. 각 글자가 언제나 같은 암호 글자로 대응되므로, 가장 흔한 암호문 글자는 영어에서 가장 흔한 글자인 E를 나타낼 가능성이 매우 높습니다. 평문과 암호문 글자 짝을 단 두 개만 추측하거나 알아낸 공격자라면 약간의 대수만으로 a와 b를 직접 풀어낼 수도 있습니다. 이 가운데 어느 것도 고쳐야 할 결함은 아니며 — 바로 그 점이 아핀 암호를 그토록 좋은 교육용 도구로 만듭니다 — 다만 진짜 정보를 보호하려면 언제나 AES처럼 현대적이고 동료 검토를 거친 알고리즘을 사용해야 합니다.

자주 묻는 질문

아핀 암호란 무엇인가요?
아핀 암호는 각 글자를 공식 E(x) = (a·x + b) mod 26으로 암호화하는 단일 치환 암호입니다. 모든 글자를 0부터 25까지의 수로 바꾸고, a를 곱하고, b만큼 이동하고, mod 26으로 줄인 뒤 다시 글자로 바꿉니다. 두 수 a와 b의 짝이 키입니다. 카이사르와 앳배시 암호를 일반화하며, 암호학 뒤의 수학을 가르치는 데 널리 쓰입니다.
아핀 암호는 어떻게 작동하나요?
각 평문 글자를 수(A = 0부터 Z = 25)로 바꾸어 E(x) = (a·x + b) mod 26에 통과시킵니다. 키 a를 곱하고, 키 b를 더하고, 26으로 나눈 나머지를 취한 뒤 결과를 다시 글자로 바꿉니다. 곱셈이 알파벳을 뒤섞고 덧셈이 알파벳을 옮깁니다. 복호화는 a의 모듈러 역원을 사용해 그 단계들을 거꾸로 돌립니다.
곱수 a는 어떤 값을 가질 수 있나요?
곱수 a는 26과 서로소여야 — 1 말고는 공약수를 갖지 않아야 — 암호를 유일하게 복호화할 수 있습니다. 26 = 2 × 13이므로 모든 짝수와 13의 모든 배수가 제외되고 정확히 열두 개의 값, 곧 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25가 남습니다. 도구는 이 값들 중에서만 고르게 하므로 키는 언제나 되돌릴 수 있습니다.
아핀 암호에서 키 a와 b는 무엇인가요?
암호를 정의하는 두 수입니다. 26과 서로소인 열두 값 중 하나인 곱수 a는 곱셈으로 알파벳을 어떻게 뒤섞을지를 결정하고, 0부터 25까지 어떤 수든 될 수 있는 이동값 b는 그 결과를 알파벳을 따라 미끄러뜨립니다. 암호화와 복호화 모두에 둘 다 필요하며, 어느 하나만 바꾸어도 치환 알파벳 전체가 바뀝니다.
아핀 암호는 어떻게 복호화하나요?
복호화는 D(y) = a⁻¹·(y − b) mod 26을 사용하는데, 여기서 a⁻¹은 a의 모듈러 역원, 곧 a와 곱했을 때 mod 26으로 1이 되는 수입니다. 이동값을 빼고, 역원을 곱한 뒤, mod 26으로 줄입니다. 도구가 이를 자동으로 해 줍니다. 복호화를 선택하고, 암호화에 쓴 것과 같은 a와 b를 입력한 뒤 암호문을 붙여넣어 원본 메시지를 복원하세요.
아핀 암호 예제 풀이를 보여 줄 수 있나요?
a = 5와 b = 8로 단어 AFFINECIPHER는 IHHWVCSWFRCP로 암호화됩니다. 첫 글자의 경우 A는 0이므로 E(0) = (5·0 + 8) mod 26 = 8 = I이고, 5인 F의 경우 E(5) = (5·5 + 8) mod 26 = 7 = H입니다. 복호화하려면 5의 모듈러 역원이 21이고, D(8) = 21·(8 − 8) mod 26 = 0 = A가 되어 원본 텍스트가 돌아옵니다.
아핀 암호는 카이사르 암호와 어떤 관계인가요?
카이사르 암호는 곱수 a가 1인 아핀 암호의 특수한 경우입니다. a = 1이면 공식이 E(x) = (x + b) mod 26이 되어 모든 글자를 b칸씩 옮기는 순수한 이동이 됩니다. 도구에서 a = 1과 b = 3으로 두면 A를 D로 바꾸는 고전적인 카이사르 이동이 재현되므로, 카이사르를 곱셈 단계가 없는 아핀 암호로 생각할 수 있습니다.
아핀 암호는 앳배시 암호와 어떤 관계인가요?
앳배시는 a = 25와 b = 25인 아핀 암호입니다. 25는 −1 mod 26과 같으므로 공식이 E(x) = (25 − x) mod 26이 되어 알파벳을 뒤집어, A는 Z가 되고 Z는 A가 됩니다. 도구에서 그 키들을 고르면 치환 알파벳이 완전한 뒤집힘을 보여 주며, 앳배시가 아핀 암호 키 공간의 한 점일 뿐임을 드러냅니다.
가능한 아핀 암호 키는 몇 개인가요?
곱수 a에 대한 유효한 선택이 열두 가지, 이동값 b에 대해 스물여섯 가지가 있어 가능한 키 조합은 312가지입니다. 그중 하나인 a = 1과 b = 0은 모든 글자를 자기 자신으로 대응시켜 텍스트를 그대로 둡니다. 이 작은 키 공간 때문에 아핀 암호는 모든 키를 시도하는 — 이른바 무차별 대입 공격으로 — 거의 즉시 깨질 수 있습니다.
아핀 암호는 어떻게 깨나요?
두 가지 방법이 쉽게 통합니다. 무차별 대입은 312개의 키를 모두 시도해 읽을 수 있는 텍스트를 내놓는 것을 남깁니다. 빈도 분석은 이 암호가 단일 치환이라는 사실을 이용합니다. 가장 흔한 암호문 글자는 E나 T처럼 흔한 글자를 나타낼 가능성이 높습니다. 평문과 암호문 글자 대응을 단 두 개만 추측할 수 있다면 두 방정식을 풀어 a와 b를 직접 구할 수도 있습니다. 이 때문에 아핀 암호는 퍼즐로 풀어내는 재미가 있습니다.
아핀 암호는 공백과 숫자, 문장 부호를 유지하나요?
네. A부터 Z까지 26개의 글자만 암호화되고, 공백과 숫자, 문장 부호, 그리고 다른 문자 체계의 글자는 그대로 통과하며, 도구는 원래의 대소문자를 유지합니다. 그래서 메시지의 배치가 암호화에도 살아남아 퍼즐에는 편리하지만, 단어 길이와 구조가 그대로 보이므로 공격자에게는 추가 단서를 주기도 합니다.
내 텍스트가 서버로 전송되나요?
아니요. 모든 암호화와 복호화는 전적으로 브라우저에서 실행되므로 입력한 텍스트와 키는 업로드되거나 기록·저장되지 않습니다. 공유 링크조차 텍스트와 설정을 URL의 해시 뒤 부분에 담아 두는데, 브라우저는 이 부분을 서버로 절대 전송하지 않으므로 직접 링크를 공유하기 전까지는 메시지가 비공개로 유지됩니다.

관련 도구

이런 편리한 도구도 함께 사용해 보세요

카이사르 암호

비제네르 암호

아트바시 암호

레일 펜스 암호

플레이페어 암호

베이컨 암호