T

Text Machine

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

빈도 분석

어떤 텍스트든 붙여넣으면 각 글자가 얼마나 자주 나오는지 영어 글자 빈도와 나란히 비교해 보여줍니다. 바이그램과 트라이그램 개수를 읽고, 일치 지수를 확인해 단일 치환 암호인지 다중 치환 암호인지 구분하고, 표를 내보내세요. 모든 작업은 브라우저에서 실행됩니다.

샘플로 사용해 보기:

분석할 텍스트

위에 텍스트를 붙여넣으면 글자 빈도, 바이그램, 트라이그램, 일치 지수가 여기에 표시됩니다.

빈도 분석 사용 방법

  1. 1

    텍스트 붙여넣기

    분석하고 싶은 텍스트나 암호문을 복사해 입력란에 붙여넣으세요. 글자는 대소문자에 상관없이 세며, 공백, 숫자, 문장 부호는 무시됩니다.

  2. 2

    분석 요약 읽기

    문자 수와 글자 수, 서로 다른 글자가 몇 개 나오는지, 가장 빈번한 글자, 그리고 하나의 알파벳을 썼는지 여러 개를 썼는지 힌트를 주는 일치 지수를 확인하세요.

  3. 3

    글자 빈도 차트 살펴보기

    각 글자의 막대를 영어 표시선과 비교하세요. '빈도순'으로 전환하면 글자가 줄세워져 전체 모양이 보입니다 — 치환 암호는 울퉁불퉁하고, 다중 치환 암호는 평탄합니다.

  4. 4

    바이그램과 트라이그램 훑어보기

    가장 흔한 쌍과 세 묶음을 살펴보세요. 암호에서 상위 트라이그램은 흔히 변장한 THE이며, 이는 한 번에 세 글자를 건네줍니다.

  5. 5

    내보내기 또는 공유

    빈도 표를 메모나 스프레드시트용 CSV로 다운로드하거나, 여러분의 텍스트가 그대로 들어 있는 상태로 도구를 다시 여는 공유 가능한 링크를 복사하세요. 모든 내용은 브라우저 안에 머뭅니다.

글자 빈도 분석, 알기 쉽게 풀어보기

빈도 분석이란?

빈도 분석은 각 글자, 글자 쌍, 글자 세 묶음이 텍스트에서 얼마나 자주 나타나는지를 연구하는 것입니다. 언어의 글자들은 똑같이 쓰이지 않기 때문에 — 영어에서 E와 T는 어디에나 있지만 Q와 Z는 드뭅니다 — 빈도의 패턴은 지문처럼 작동합니다. 그 패턴을 세는 것은 고전 암호 분석에서 가장 오래되고 가장 강력한 기법으로, 9세기 아랍 학자 알 킨디가 처음으로 글로 남겼습니다.

이 도구는 여러분이 붙여넣은 텍스트의 글자를 세어 각 글자를 예상 영어 빈도 옆에 막대로 보여주고, 가장 흔한 바이그램과 트라이그램을 나열하며, 일치 지수를 알려줍니다. 이 숫자들을 함께 보면 글자 하나하나 손으로 셀 필요 없이, 그 텍스트가 평범한 글인지, 단순 치환 암호인지, 아니면 여러 알파벳을 동시에 쓰는 것인지 알 수 있습니다.

글자 빈도 차트 읽기

각 행은 알파벳의 한 글자입니다. 채워진 막대는 그 글자가 텍스트 안에서 전체 글자 대비 몇 퍼센트로 나타나는지를 보여주고, 가느다란 세로 표시선은 같은 글자가 일반적인 영어에서 나타나는 빈도를 보여줍니다. 막대가 표시선을 한참 넘어서면 그 글자는 과하게 나타난 것이고, 못 미치면 평소보다 드문 것입니다. 정렬 순서를 바꾸면 글자를 빈도가 높은 것부터 낮은 것까지 줄세울 수 있어, 분포의 모양이 한눈에 분명해집니다.

평범한 영어에서 가장 높은 막대는 E, T, A, O, I, N이며 차트는 울퉁불퉁하고 고르지 않게 보입니다. 단일 치환 암호는 각 글자를 단순히 다른 글자로 바꾸기만 하므로 그 울퉁불퉁한 모양은 유지되지만 봉우리가 다른 글자로 옮겨갑니다. 다중 치환 암호는 같은 평문 글자가 위치에 따라 다르게 암호화되기 때문에, 차트를 모든 막대가 거의 같은 높이가 될 때까지 평탄하게 만듭니다. 이 두 가지 모양을 알아보는 것이 고전 암호를 깨는 데 가장 유용한 단 하나의 기술입니다.

일치 지수

일치 지수, 즉 IoC는 텍스트에서 무작위로 고른 두 글자가 같을 확률을 측정합니다. 평범한 영어는 빈도가 매우 고르지 않아 약 0.067 근처에 있고, 완전히 무작위인 텍스트는 모든 글자가 똑같이 나올 확률을 가져 0.038에 가까워집니다. 하나의 숫자가 분포가 얼마나 울퉁불퉁한지 평탄한지를 담아냅니다.

그래서 일치 지수는 암호 계열을 서로 구분하는 가장 빠른 검사가 됩니다. 카이사르, Atbash, 키워드 치환 암호는 글자에 이름표만 다시 붙이므로 고르지 않은 영어 프로필이 그대로 남아 일치 지수가 0.066 근처로 높게 유지됩니다. Vigenère와 그 밖의 다중 치환 암호는 여러 알파벳을 섞어 빈도를 평탄하게 만들고 일치 지수를 0.04 쪽으로 끌어내립니다. 이 도구는 그 값을 짧은 힌트와 함께 표시하므로, 높은 값은 치환 암호를, 낮은 값은 다중 치환 암호를 가리킵니다.

바이그램, 트라이그램, 그리고 접촉 패턴

낱글자는 시작일 뿐입니다. 영어에는 또한 강하게 선호되는 글자 쌍과 세 묶음이 있습니다. TH, HE, IN, ER, AN이 가장 흔한 바이그램이고, THE, AND, ING, ENT가 트라이그램을 지배합니다. 이 도구는 여러분의 텍스트에서 가장 빈번한 쌍과 세 묶음을 나열하되, 공백이 서로 무관한 두 글자를 잘못된 쌍으로 묶지 않도록 단어 안에서만 셉니다.

이러한 접촉 패턴은 단순한 글자 세기만으로 부족할 때 매우 유용합니다. 치환 암호에서 THE의 변장한 형태는 흔히 가장 흔한 트라이그램으로 나타나, 한 번에 세 글자를 알려줍니다. 반복되는 바이그램은 카시스키 방법을 통해 Vigenère 키의 길이를 드러낼 수 있습니다. 심지어 겹친 글자가 없다는 점이나, 드문 쌍이 수상하게 연달아 나온다는 점도 어떤 암호를 마주하고 있는지에 대한 단서입니다.

빈도 분석으로 암호 깨기

단일 치환 암호를 공략하려면 차트를 빈도순으로 정렬해 영어와 나란히 놓으세요. 가장 흔한 암호 글자는 아마 E, 그 다음은 아마 T, 그리고 가장 흔한 트라이그램은 아마 THE입니다. 그 추측을 연필로 적어 넣은 다음, 바이그램과 트라이그램 목록으로 확장하세요. 일단 E와 T를 알면 쌍 TH와 단어 THE가 금세 자리를 잡고, 나머지 메시지가 거기서부터 술술 풀립니다.

카이사르 암호의 경우 모든 글자가 같은 양만큼 옮겨가기 때문에 같은 논리가 훨씬 더 단순합니다. 암호의 봉우리를 영어의 E와 맞추는 시프트를 찾으면 그것이 키입니다. Vigenère 암호의 경우 빈도 분석은 여전히 통하지만, 텍스트를 키 길이에 따라 열로 나눈 다음에야 가능합니다. 그러면 각 열이 따로따로 풀 수 있는 별개의 카이사르 암호가 되기 때문입니다. 일치 지수를 먼저 알면 이 열 나누기 요령이 애초에 필요한지 아닌지를 알 수 있습니다.

단일 치환 대 다중 치환, 한눈에 보기

딱 하나만 기억한다면 이것으로 하세요. 높은 일치 지수와 뚜렷하게 높은 막대가 있는 울퉁불퉁한 차트는 각 글자가 정확히 하나의 다른 글자로 대응되는 단일 치환 암호를 뜻합니다 — 카이사르, Atbash, 아핀, 또는 키워드 치환입니다. 이들은 평문의 통계가 그대로 비쳐 보이기 때문에 빈도 분석에 곧바로 무너집니다.

낮은 일치 지수와 모든 막대가 거의 같은 높이인 평탄한 차트는 하나의 평문 글자가 여러 다른 암호 글자가 될 수 있는 다중 치환 암호를 뜻합니다 — Vigenère, Beaufort, Gronsfeld, 또는 Porta입니다. 이들은 날것의 글자 빈도를 숨기므로, 먼저 키 길이를 복원한 다음 각 위치를 따로 분석해야 합니다. 차트와 일치 지수는 여러분이 노력을 들이기 전에 이 두 세계 중 어느 쪽에 있는지를 알려줍니다.

한계와 좋은 사용법

빈도 분석은 통계적이므로 믿을 만하려면 충분한 텍스트가 필요합니다. 글자가 열두 개쯤인 짧은 메시지는 순전히 우연만으로 터무니없이 오해를 부르는 빈도를 보일 수 있는 반면, 한 문단이면 예상 패턴에 가깝게 자리를 잡습니다. 표본이 모호해 보일 때, 보통의 원인은 방법이 실패한 것이 아니라 표본이 너무 짧다는 것입니다.

여기 표시된 영어 기준선은 평범한 산문을 위한 것임을 유념하세요. 특수한 텍스트 — 이름 목록, 소스 코드 조각, 또는 다른 언어로 된 글 — 는 저마다의 프로필을 가지므로 맞지 않습니다. 이 도구는 공백, 숫자, 문장 부호를 무시하고 대문자와 소문자를 하나로 묶는데, 이는 고전 암호에는 정확히 원하는 동작이지만 Base64나 Morse 같은 부호화의 구조가 아니라 글자만 분석한다는 뜻입니다. 그런 경우에는 먼저 부호화를 식별해 해독한 다음, 그 아래에 있는 글자에 대해 빈도 분석을 실행하세요.

자주 묻는 질문

빈도 분석이란 무엇인가요?
빈도 분석은 각 글자, 쌍, 세 묶음이 텍스트에서 얼마나 자주 나오는지를 셉니다. 언어는 글자를 고르지 않게 쓰기 때문에 — 영어에서 E와 T는 흔하고 Q와 Z는 드뭅니다 — 그 패턴이 지문처럼 작동합니다. 이는 암호 분석에서 가장 오래된 기법이자 고전 치환 암호를 깨는 주된 방법입니다.
빈도 분석으로 어떻게 암호를 깨나요?
차트를 빈도순으로 정렬해 영어와 맞춰 보세요. 가장 흔한 암호 글자는 아마 E, 그 다음은 T, 그리고 상위 트라이그램은 아마 THE입니다. 그 추측을 연필로 적어 넣은 다음, 메시지가 읽힐 때까지 바이그램과 트라이그램 목록으로 확장하세요. 카이사르 암호라면 봉우리를 E와 맞추는 시프트를 찾기만 하면 됩니다.
일치 지수란 무엇인가요?
일치 지수는 텍스트에서 무작위로 고른 두 글자가 같을 확률을 측정합니다. 영어는 약 0.067이고 무작위 텍스트는 약 0.038입니다. 단일 치환 암호는 그 값을 0.066 근처로 높게 유지하는 반면, Vigenère 같은 다중 치환 암호는 0.04 쪽으로 평탄하게 만들며, 이것이 두 계열을 구분하는 가장 빠른 방법입니다.
단일 치환과 다중 치환의 차이는 무엇인가요?
단일 치환 암호에서는 각 글자가 항상 같은 다른 글자로 대응되므로 울퉁불퉁한 영어 빈도 프로필이 그대로 남아, 높은 일치 지수와 고르지 않은 차트가 그 정체를 드러냅니다. 다중 치환 암호는 여러 알파벳을 쓰므로 하나의 평문 글자가 여러 암호 글자가 되어, 차트를 평탄하게 만들고 일치 지수를 낮춥니다.
이 도구는 왜 바이그램과 트라이그램을 보여주나요?
낱글자만으로는 늘 충분하지 않습니다. 영어에는 TH, HE, THE, ING처럼 강하게 선호되는 쌍과 세 묶음이 있습니다. 치환 암호에서 변장한 THE는 보통 가장 흔한 트라이그램이라 한 번에 세 글자를 건네주고, 반복되는 바이그램은 카시스키 방법을 통해 Vigenère 키 길이를 드러낼 수 있습니다.
막대와 세로 표시선은 무슨 뜻인가요?
채워진 막대는 한 글자가 여러분의 텍스트에서 전체 글자 대비 몇 퍼센트로 나오는지입니다. 같은 행의 가느다란 세로 표시선은 그 글자가 일반적인 영어에서 나타나는 빈도입니다. 표시선을 넘는 막대는 과하게 나타난 것이고, 못 미치는 것은 평소보다 드뭅니다. 이 비교는 여러분의 텍스트가 평범한 영어와 어떻게 다른지 한눈에 보여줍니다.
믿을 만한 결과를 얻으려면 텍스트가 얼마나 필요한가요?
빈도 분석은 통계적이므로 길수록 좋습니다. 열두 글자쯤으로는 순전히 우연으로 오해를 부르는 빈도가 나올 수 있는 반면, 한 문단이면 예상 패턴에 가깝게 자리를 잡습니다. 표본이 모호해 보인다면, 방법이 실패한 것이 아니라 보통 너무 짧은 것입니다. 적어도 한두 문장은 확보하세요.
영어가 아닌 언어에도 통하나요?
이 도구는 글자 A에서 Z를 세어 영어 기준선과 비교하므로, 개수 자체는 어떤 텍스트에도 정확하지만 비교는 영어 산문에만 의미가 있습니다. 다른 언어는 저마다의 빈도 프로필을 가지므로 막대가 표시선과 맞지 않지만, 날것의 개수, 바이그램, 일치 지수는 여전히 유용합니다.
Base64, Morse, 이진수도 분석할 수 있나요?
이 도구는 글자 빈도를 연구하므로 알파벳 텍스트와 암호에 가장 잘 맞습니다. Base64, Morse, 이진수 같은 부호화는 텍스트를 글자가 아니라 기호나 숫자로 나타내므로, 먼저 그것을 식별해 해독한 다음 그 아래에 있는 글자에 대해 빈도 분석을 실행해야 합니다. 어떤 부호화인지는 암호 식별기가 알려줄 수 있습니다.
제 텍스트가 서버로 업로드되나요?
아닙니다. 모든 세기 작업은 전적으로 브라우저 안에서 일어나므로 여러분의 텍스트는 결코 업로드되거나 기록되거나 저장되지 않습니다. 공유 링크조차도 여러분의 텍스트를 URL의 해시 뒤쪽 부분에 담는데, 브라우저는 이 부분을 결코 서버로 보내지 않으므로 여러분이 공유하기로 선택할 때까지 비공개로 유지됩니다.
빈도 표를 내보낼 수 있나요?
네. CSV 내보내기 버튼은 각 글자의 개수, 여러분의 텍스트에서의 퍼센트, 그리고 영어 기준선 퍼센트가 담긴 A부터 Z까지의 전체 표를 다운로드하며, 스프레드시트에서 열거나 메모에 붙여넣을 수 있도록 준비됩니다. 또한 같은 텍스트로 도구를 다시 여는 공유 가능한 링크를 복사할 수도 있습니다.

관련 도구

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

치환 암호 해독기

유닉스 타임스탬프 변환기

JSON ↔ CSV 변환기

CSV를 JSON으로 변환기

JSON ↔ YAML 변환기

텍스트 ↔ 바이너리 변환기