포르타 암호
이탈리아 학자 Giovan Battista della Porta가 1563년에 발표한 키워드 기반 다중 문자 치환 암호인 Della Porta 암호를 암호화하고 복호화하세요. 이 암호는 대칭입니다: 같은 키워드가 암호화와 복호화를 모두 수행하므로, 별도의 복호화 모드가 없습니다. 키워드를 입력하고 13개의 짝지어진 알파벳이 실시간으로 작동하는 모습을 지켜보세요. 모든 작업은 브라우저에서 실행됩니다.
포르타는 대칭입니다: 같은 키워드가 암호화와 복호화를 모두 수행합니다. 메시지를 복호화하려면 암호문을 붙여넣고 같은 키워드를 입력하면, 결과로 원래 평문이 나옵니다. 별도의 복호화 버튼은 없습니다.
키워드
키워드는 보내는 사람과 받는 사람이 공유하는 비밀입니다. 메시지 전체에 걸쳐 반복되며, 그 각 글자가 13개의 대칭 알파벳 중 하나를 선택합니다. 알파벳이 짝을 이루기 때문에, A와 B는 같은 것을 고르고, C와 D는 그다음 것을 고르는 식으로 이어집니다. 오직 글자만 사용되며, 키워드에 포함된 공백이나 숫자, 문장 부호는 무시됩니다.
위에 텍스트를 입력하면 포르타 결과가 여기에 표시됩니다.
포르타 암호 사용 방법
- 1
키워드 입력
CIPHER처럼 공유된 비밀 키워드를 입력하세요. 오직 그 글자만 사용되며, 공백이나 숫자, 문장 부호는 무시됩니다. 같은 키워드가 암호화와 복호화에 모두 쓰입니다.
- 2
텍스트 입력 또는 붙여넣기
변환하려는 메시지를 입력하세요: 암호화할 평문이거나 복호화할 포르타 암호문입니다. 암호는 입력하는 즉시 자동으로 실행되며, 아래의 글자별 계산 과정이 실시간으로 갱신됩니다.
- 3
대칭 결과 읽기
포르타는 대칭이므로 같은 키워드가 두 방향을 모두 처리합니다. 메시지를 되찾으려면 암호문을 붙여넣고 암호화에 쓰인 것과 같은 키워드를 입력하면, 결과로 원래 평문이 나옵니다.
- 4
보기, 복사, 공유
계산 과정을 열어 어떤 키 쌍과 알파벳이 각 글자를 암호화했는지 확인한 뒤, 결과를 복사하거나 텍스트 파일로 다운로드하거나, 당신의 정확한 키워드와 텍스트 그대로 도구를 다시 여는 링크로 공유하세요.
포르타 암호 이해하기
포르타 암호란 무엇인가요?
포르타 암호, 더 온전히는 Della Porta 암호는 이탈리아의 박식가 Giovan Battista della Porta가 1563년 저서 De Furtivis Literarum Notis에서 설명한 다중 문자 치환 암호입니다. Vigenère 암호처럼 반복되는 키워드를 사용하여, 같은 평문 글자라도 그 위치에 따라 여러 다른 암호문 글자로 암호화될 수 있게 하며, 이는 단순 치환 암호의 정체를 드러내는 글자 빈도 패턴을 평평하게 만듭니다. 이것은 가장 이른 실용적 다중 문자 치환 체계 가운데 하나이며, 여러 세기 동안 제법 강력하면서도 손으로 쓰기 쉽다는 점으로 높이 평가받았습니다.
포르타를 남다르게 만드는 것은 완전한 Vigenère 정사각형의 26개 이동된 행이 아니라 단 13개의 대칭 알파벳으로 이루어진 표입니다. 각 알파벳은 알파벳의 앞쪽 절반이 항상 뒤쪽 절반과 교환되도록 만들어지며, 이것이 이 암호에 가장 유용한 성질을 부여합니다: 대칭이라는 점, 즉 똑같은 연산이 암호화와 복호화를 모두 한다는 것입니다. Della Porta는 흔히 현대 암호학의 창시자 가운데 한 사람으로 기억되며, 이 깔끔한 자기 역연산 표가 그의 이름과 가장 깊이 연관된 발상입니다.
포르타 암호가 작동하는 방식
알파벳에 A를 0부터 Z를 25까지 번호를 매깁니다. 키워드는 메시지의 모든 글자 아래에 키 글자 하나씩이 놓이도록 필요한 만큼 반복됩니다. 각 키 글자는 13개의 행 중 하나를 고르며, 행은 쌍으로 옵니다: A 또는 B는 첫 번째 행을, C 또는 D는 두 번째를, E 또는 F는 세 번째를 선택하는 식으로 이어져, 열세 번째를 선택하는 Y 또는 Z까지 갑니다. 그 쌍 번호를 r이라 부르면, 이는 A 또는 B의 0부터 Y 또는 Z의 12까지 가는데, 알파벳 앞쪽 절반(A–M, 값 0–12)에 있는 평문 글자는 C = 13 + ((P + r) mod 13)으로 암호화되어 뒤쪽 절반 N–Z 어딘가에 놓입니다. 뒤쪽 절반에 있는 글자는 C = (P − 13 − r) mod 13으로 앞쪽 절반에 되돌려 대응됩니다.
종이 위에서는 이것을 13개 행으로 이루어진 격자인 포르타 표로 합니다. 한 글자를 암호화하려면 현재 키 글자에 해당하는 행을 찾고, 그 행에서 평문 글자를 찾은 뒤, 그 짝을 읽어 냅니다. 변환되는 문자는 글자뿐이며, 공백과 숫자, 문장 부호는 그대로 통과하고 키 글자를 소모하지 않으므로, 키워드는 중요한 글자들과 계속 나란히 정렬된 채 유지됩니다. 도구 아래의 실시간 계산 과정이 당신 메시지의 각 글자에 대해, 어떤 키 쌍이 그 알파벳을 선택했는지까지 포함하여 바로 이것을 보여 줍니다.
예제 풀이
메시지 HELLO를 키워드 KEY로 암호화합니다. 키워드를 반복하면 키 글자 K, E, Y, K, E가 H, E, L, L, O 아래에 정렬됩니다. 키 글자 K는 K 또는 L 쌍에 속하므로 그 행을 선택하고, 그 안에서 H는 Z로 암호화됩니다. 키 글자 E는 E 또는 F 쌍에 속하며, 그 행에서 E는 T로 암호화됩니다. Y 또는 Z 쌍에서 온 키 글자 Y는 L을 X로 바꿉니다. 다시 K는 그다음 L을 Q로 바꾸고, E는 O를 M으로 바꿉니다. 암호문은 ZTXQM입니다.
이제 같은 키워드 KEY와 같은 절차로 ZTXQM를 복호화합니다. K 또는 L 행에서 Z는 H로 되돌아가고; E 또는 F 행에서 T는 E로 되돌아가며; Y 또는 Z 행에서 X는 L로 되돌아가고; K는 Q를 L로 되돌리며; E는 M을 O로 되돌립니다. 결과는 다시 HELLO입니다. 똑같은 연산이 메시지를 되찾았으며, 이것이 바로 포르타 암호의 핵심입니다.
포르타가 스스로의 역연산인 이유
대칭 성질은 모든 행의 모양에 내장되어 있습니다. 각 알파벳은 글자의 앞쪽 절반 A–M을 뒤쪽 절반 N–Z와 짝지으므로, 어떤 A–M 글자가 주어진 N–Z 글자에 대응되든, 그 N–Z 글자는 곧바로 되돌아 대응됩니다. 암호화는 앞쪽 절반 글자를 뒤쪽 절반으로 보내고, 그 결과를 같은 행에 다시 넣으면 제자리로 돌려보냅니다. 키 쌍이 정한 회전도 정확히 같은 이유로 상쇄되므로, 두 번 암호화하면 출발한 자리로 돌아옵니다.
이것은 정말로 편리합니다. Vigenère에서는 암호화할 때 더하고 복호화할 때 빼야 하므로, 두 방향이 서로 다른 절차를 씁니다. 포르타에서는 익혀야 할 절차가 하나뿐이고, 단 하나의 표나 단 하나의 도구가 두 방향을 모두 처리합니다. 이것이 이 도구에 별도의 복호화 버튼이 없는 까닭입니다: 그저 같은 키워드를 입력하고 변환하려는 텍스트를 붙여넣으면 됩니다.
포르타, Vigenère, 그리고 Beaufort
관련된 키워드 암호들을 나란히 두면 이해에 도움이 됩니다. Vigenère 암호는 키를 평문에 더하며, C = (P + K) mod 26, 복호화하려면 반대로 뺄셈이 필요합니다. Beaufort 암호는 키에서 평문을 빼며, C = (K − P) mod 26, 대칭입니다. 포르타 암호는 다른 방식으로 대칭에 이릅니다: 알파벳 전체를 이동시키는 대신 그것을 절반으로 나누어 두 절반을 맞바꾸며, 글자 쌍으로 키를 지정하는 단 13개의 짝지어진 알파벳을 사용합니다. 이 모두가 반복되는 키워드와 인쇄된 표를 공유하기 때문에 서로 혼동하기 쉽습니다.
기하 구조가 다르기 때문에, 이 암호들 가운데 하나로 암호화한 메시지는 다른 것으로는 뜻 모를 말처럼 보입니다. 이 도구는 고전적인 대칭 Della Porta 표를 구현합니다. 더하는 규칙이 필요하다면, Text Machine의 Vigenère 도구가 Vigenère와 그 관련 모드를 다루고, Beaufort 도구가 또 다른 대칭 키워드 암호를 다룹니다.
포르타 암호를 깨는 방법
포르타는 반복 키를 쓰는 다중 문자 치환 암호의 강점과 약점을 그대로 물려받습니다. 그 방어력은 하나의 평문 글자가 여러 다른 암호문 글자로 대응되어, 단순 치환 암호의 정체를 드러내는 뚜렷한 글자 빈도 봉우리를 평평하게 만든다는 점입니다. 그 약점은 키가 반복된다는 것입니다. 분석가가 일단 키워드의 길이를 알아맞히면, 암호문은 각각 단 하나의 고정된 알파벳으로 암호화된 별개의 열들로 나뉘고, 모든 열은 빈도 분석에 무너지는 단순한 대칭 치환이 됩니다.
키 길이를 찾는 고전적인 방법은 Kasiski 검사인데, 이는 반복되는 글자 무리를 찾아 그 사이의 거리를 재며, 글자 빈도가 얼마나 고르지 않은지를 측정하는 일치 지수와 함께 쓰입니다. 포르타는 한 가지 의미에서 Vigenère보다 약합니다: 키 글자가 쌍으로 오기 때문에, 각 열은 26개가 아니라 단 13개의 가능한 알파벳만 가지므로, 키 길이가 알려지면 분석가는 그저 각 열에 대해 13개를 모두 시도해 보면 됩니다. 따라서 포르타 메시지는 그 키워드가 길고 예측하기 어렵고 단 한 번만 쓰인 만큼만 강합니다.
포르타 암호는 안전한가요?
아니요. 현대의 기준으로 포르타 암호는 어떤 실질적 보안도 제공하지 못합니다. 짧거나 반복된 키워드는 위의 Kasiski와 일치 지수 방법에 빠르게 무너지며, 긴 키워드조차 컴퓨터를 갖춘 끈질긴 분석가를 당해 낼 수 없습니다. 이 암호는 손 암호의 시대에 속하며, 그 매력은 깨지지 않는 강력함이 아니라 영리하고 쓰기 쉬운 대칭 표에 있었습니다.
오늘날 포르타 암호는 학습과 재미를 위해 높이 평가됩니다. 다중 문자 치환과 스스로가 역연산인 암호라는 우아한 발상을 이해하기에 더없이 좋은 방법이며, 퍼즐과 방 탈출, 깃발 뺏기(CTF) 문제에 자주 등장합니다. 실제 정보를 보호하려면 그 대신 AES 같은 현대적이고 충분히 검증된 알고리즘에 의지해야 합니다.
자주 묻는 질문
포르타 암호란 무엇인가요?
포르타 암호는 어떻게 작동하나요?
포르타 암호는 Vigenère 암호와 같은가요?
포르타 암호는 왜 대칭인가요?
포르타 암호 예제를 보여 줄 수 있나요?
포르타 암호는 어떻게 복호화하나요?
포르타 암호는 왜 13개의 알파벳만 가지나요?
어떤 키워드를 써야 하나요?
포르타 암호는 공백과 문장 부호를 바꾸나요?
포르타 암호는 어떻게 깨나요?
포르타 암호는 안전한가요?
제 텍스트가 서버로 전송되나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요