암호 식별기
지금 보고 있는 게 어떤 암호인지 확신이 안 서나요? 정체불명의 텍스트를 붙여넣으면 이 도구가 문자 집합, 글자 빈도, 일치 지수를 분석해 가장 가능성 높은 암호 순으로 정렬해 보여주고, 맞는 디코더로 바로 연결해 드립니다. 모든 작업은 브라우저에서 실행됩니다.
샘플로 사용해 보기:
위에 텍스트를 붙여넣으면 가능성이 가장 높은 암호들이 신뢰도순으로 여기에 표시됩니다.
암호 식별기 사용 방법
- 1
정체불명의 텍스트 붙여넣기
알 수 없는 코드나 암호문을 복사해 입력란에 붙여넣으세요. 글자, Morse의 점과 선, Base64, 숫자 등 거의 무엇이든 가능합니다.
- 2
분석 요약 읽기
문자 수, 그 안에 포함된 글자 수, 감지된 문자 집합, 그리고 암호가 하나의 알파벳을 썼는지 여러 개를 썼는지 힌트를 주는 일치 지수를 확인하세요.
- 3
정렬된 추정 결과 검토하기
가능성이 가장 높은 암호들이 카드로 표시되며, '매우 유력'부터 '가능성 낮음'까지 신뢰도순으로 정렬됩니다. 각 카드에는 어떤 신호가 작동했는지 설명하는 짧은 이유가 함께 나옵니다.
- 4
맞는 디코더 열기
최상위 후보의 전용 디코더로 들어가 해독을 마무리하세요. 여러 개가 제안되면 목록 위에서부터 차례로 시도해 보세요.
- 5
공유 또는 지우기
여러분의 텍스트가 그대로 들어 있는 상태로 도구를 다시 여는 공유 가능한 링크를 복사하거나, 입력란을 지워 다시 시작하세요. 모든 내용은 브라우저 안에 머뭅니다.
알 수 없는 암호를 식별하는 방법
암호 식별기란?
암호 식별기는 정체불명의 텍스트를 입력받아 어떤 암호나 부호화로 만들어졌을 가능성이 가장 높은지 알려주는 도구입니다. 무작정 추측하거나 디코더를 하나씩 다 시도하는 대신, 암호문을 한 번만 붙여넣으면 카이사르, Vigenère, Base64, Morse 등 후보 목록을 신뢰도와 함께 정렬해서 보여주고, 각 후보마다 맞는 디코더로 바로 연결되는 링크를 제공합니다.
이는 만드는 방법을 알 수 없는 부호화된 텍스트를 발견했을 때 가장 자연스러운 출발점입니다. CTF(Capture-the-Flag) 챌린지, 방탈출 단서, 지오캐싱 퍼즐, 대체 현실 게임(ARG), 암호로 적힌 쪽지 등이 그런 경우입니다. 암호의 계열을 알면 수십 가지 가능성이 한두 가지로 좁혀지므로, 검색을 멈추고 해독을 시작할 수 있습니다.
암호 식별기의 작동 원리
이 식별기는 머신러닝이 아니라 고전 암호 분석을 사용하므로 모든 판정을 설명할 수 있습니다. 가장 명백한 것부터 가장 미묘한 것까지 일련의 검사를 텍스트에 차례로 적용합니다. 먼저 문자 집합을 살핍니다. 점과 선으로만 이루어진 텍스트는 Morse, 0과 1로만 된 것은 이진수, 16진수 숫자로만 된 것은 16진수이며, 길이가 4의 배수인 Base64 알파벳은 Base64입니다. 작은 숫자들의 나열은 Polybius 사각형, A1Z26 글자 번호 매기기, 또는 ASCII 코드를 가리킵니다.
텍스트가 평범한 글자일 때는 통계로 전환합니다. 일치 지수를 측정해 하나의 알파벳을 썼는지(단일 치환) 여러 개를 썼는지(다중 치환) 판단한 다음, 영어 글자 빈도에 대한 카이제곱 점수를 이용해 카이사르 시프트 검사와 Atbash 검사를 실행합니다. 문자 집합, 빈도 프로필, 그리고 길이와 반복 패턴 같은 구조적 단서를 결합해 여러분이 보는 정렬된 목록을 만들어 냅니다.
일치 지수란 무엇인가
일치 지수(Index of Coincidence, IoC)는 텍스트에서 무작위로 고른 두 글자가 같을 확률이 얼마나 되는지를 측정합니다. 평범한 영어 텍스트의 일치 지수는 약 0.067인데, E나 T 같은 일부 글자가 다른 글자보다 훨씬 자주 나오기 때문입니다. 완전히 무작위인 텍스트는 모든 글자가 똑같이 나올 확률을 가져 0.038 근처에 있습니다.
이 하나의 숫자는 글자 기반 암호에서 가장 유용한 단서입니다. 카이사르, Atbash, 키워드 치환 암호는 한 글자를 다른 글자로 바꾸기만 하므로 영어 특유의 들쭉날쭉한 빈도 프로필이 그대로 남아 일치 지수가 0.066 근처로 높게 유지됩니다. Vigenère 같은 다중 치환 암호는 여러 알파벳을 동시에 사용해 빈도를 평탄하게 만들고 일치 지수를 0.04 쪽으로 끌어내립니다. 그래서 높은 일치 지수는 단일 치환을, 낮은 일치 지수는 다중 치환을 뜻하며, 그 사이의 값은 둘 다 시도해 보라는 힌트입니다.
문자 집합 단서 읽기
많은 부호화는 알파벳만으로 정체를 드러냅니다. Morse 부호는 점, 선, 구분자만 사용합니다. 이진수는 숫자 0과 1만, 보통 여덟 개씩 묶어 사용합니다. 16진수는 숫자 0에서 9와 글자 A에서 F를 사용하며 문자 개수가 짝수입니다. Base64는 대소문자, 숫자, 더하기, 슬래시를 사용하고, 흔히 끝에 패딩으로 등호 한두 개가 붙으며, 전체 길이가 4의 배수입니다.
숫자에는 저마다의 의미가 있습니다. 1과 5 사이의 숫자 쌍은 Polybius 사각형의 좌표입니다. 모두 1과 26 사이에 드는 숫자는 1이 A이고 26이 Z인 A1Z26일 가능성이 가장 높습니다. 32에서 126 범위의 더 큰 숫자는 10진 ASCII 문자 코드입니다. 글자 A, D, F, G, V, X로만 이루어진 텍스트는 제1차 세계대전 때 쓰인 ADFGX 또는 ADFGVX 야전 암호의 틀림없는 특징입니다.
단일 치환 암호 대 다중 치환 암호
텍스트가 글자이고 일치 지수가 높다면, 거의 확실하게 단일 치환 암호를 보고 있는 것입니다. 단일 치환에서는 각 평문 글자가 항상 같은 암호문 글자로 대응됩니다. 가장 단순한 것은 모든 글자를 같은 양만큼 옮기는 카이사르 암호이며, 식별기는 정확히 한 가지 시프트가 텍스트를 영어로 바꿀 때 이를 확인해 줍니다. Atbash는 알파벳을 뒤집어 A가 Z가 되게 하는 특수한 경우입니다. 시프트도 뒤집기도 통하지 않지만 일치 지수가 여전히 높다면, 치환 해독기가 필요한 일반적인 키워드 또는 아핀 치환입니다.
일치 지수가 낮다면 그 암호는 둘 이상의 알파벳을 사용합니다. 대표적인 예는 반복되는 키워드를 적용해 각 위치마다 다른 시프트를 쓸 수 있게 하는 Vigenère이며, 그 친척으로는 Beaufort, Gronsfeld, Porta가 있습니다. 또 다른 단서인 짝수 길이이면서 쌍 안에 중복 글자가 없다는 점은 대신 한 번에 두 글자를 암호화하는 Playfair 같은 다중 문자 암호를 가리킵니다.
암호를 식별한 다음에 할 일
식별은 첫 단계일 뿐입니다. 결과의 각 후보는 해당 암호의 전용 디코더로 연결되며, 거기서 작업을 마무리할 수 있습니다. 카이사르 암호의 경우 디코더가 25가지 시프트를 모두 무차별 대입한 뒤 빈도 분석으로 가장 좋은 것을 골라 줍니다. Base64, Morse, 이진수, 16진수의 경우 맞는 변환기가 코드를 곧바로 텍스트로 되돌려 줍니다. Vigenère와 치환 암호는 보통 키나 해독기가 필요하지만, 계열을 알면 어떤 기법을 써야 할지 정확히 알 수 있습니다.
후보가 여러 개 나오면 신뢰도가 가장 높은 것부터 목록을 따라 내려가며 작업하세요. 증거가 모호할 때 식별기는 일부러 둘 이상의 가능성을 제시합니다. 짧은 메시지는 확정적인 답을 주는 경우가 드물기 때문입니다. 가장 유력한 디코더를 시도해 보면 거의 항상 몇 초 안에 그 추정이 맞는지 아닌지가 확인됩니다.
유념해야 할 한계
어떤 자동 식별기도 완벽하지 않습니다. 매우 짧은 메시지는 통계가 믿을 만하기에 충분한 글자를 담고 있지 않아, 한 문단이면 명백할 것도 다섯 글자 표본에서는 모호할 수 있습니다. 카이사르 암호를 적용한 뒤 Base64로 변환하는 식으로 여러 겹으로 부호화된 메시지는 처음에는 가장 바깥쪽 겹만 드러납니다. 그것을 해독한 다음 그 결과를 다시 식별기에 넣어 실행하세요.
이 도구는 퍼즐, 게임, 역사에 등장하는 계열인 고전 암호와 흔한 부호화에 초점을 맞춥니다. AES나 RSA 같은 현대 암호는 인식하려 하지 않는데, 그 출력은 완전히 무작위로 보이도록 설계되어 식별할 만한 구조를 전혀 지니지 않기 때문입니다. 결과는 맞는 디코더를 가리켜 주는 전문가의 힌트로 여기고, 보장된 판정으로 받아들이지는 마세요.
자주 묻는 질문
암호 식별기란 무엇인가요?
어떻게 무슨 암호인지 알아내나요?
일치 지수란 무엇인가요?
모든 암호를 식별할 수 있나요?
왜 하나 이상의 암호를 제안하나요?
제 텍스트가 평문이라고 나옵니다. 무슨 뜻인가요?
이 도구가 메시지도 해독해 주나요?
제 텍스트가 서버로 업로드되나요?
어떤 암호와 부호화를 감지할 수 있나요?
왜 매우 짧은 메시지는 식별하지 못하나요?
암호를 손으로 어떻게 식별하나요?
암호와 부호화의 차이는 무엇인가요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요