글자 빈도 (Letter Frequencies)

중급암호학수정일

글자 빈도는 텍스트 본문이나 메시지 집합에서 각 문자가 나타나는 횟수 또는 비율을 말합니다. 언어마다 고유한 분포가 있어 고전 암호 분석에서 가장 기본적인 도구로 쓰이며, 분포는 언어와 글의 종류, 텍스트 길이에 따라 달라집니다.

영어의 대표적인 빈도

대규모 영어 텍스트에서 가장 흔한 문자는 대략 E(약 12.7%), T(약 9.1%), A(약 8.2%), O(약 7.5%), I(약 7.0%), N(약 6.7%) 순이며, 가장 드문 문자는 Q, J, X, Z(각각 0.2% 이하)입니다. 정확한 수치는 표본으로 쓴 말뭉치에 따라 조금씩 다릅니다. 다른 언어는 분포가 달라, 스페인어에서는 E와 A가 가장 흔하고 O가 그 뒤를 잇습니다.

빈도 분석의 원리

단순 치환 암호(단일 문자 치환)는 평문의 각 문자를 항상 같은 기호로 바꾸므로, 암호문 기호의 빈도 분포는 평문 언어의 분포를 순서만 바꾼 형태로 그대로 보존합니다. 분석자는 다음 순서로 진행합니다.

  1. 암호문에서 각 기호의 출현 횟수를 셉니다.
  2. 가장 많이 나온 기호를 해당 언어의 고빈도 문자(영어라면 E, T, A)에 대응시켜 봅니다.
  3. 자주 나오는 두 글자 조합(TH, HE, IN)과 세 글자 조합(THE, AND)으로 가설을 확인하고 고쳐 나갑니다.

이 방법은 9세기 아랍 학자 알킨디(al-Kindi)의 저술에 처음 체계적으로 기록되었습니다. 텍스트가 짧으면 분포가 표준에서 크게 벗어날 수 있어 분석이 어려워집니다.

일치 지수

윌리엄 프리드먼이 1922년에 제안한 일치 지수(index of coincidence, IC)는 텍스트에서 무작위로 고른 두 문자가 같을 확률입니다. 글자 수가 N이고 각 문자의 출현 횟수가 ni일 때 IC = Σ ni(ni−1) / (N(N−1))로 계산합니다. 영어 평문은 약 0.066, 26개 문자가 균등하게 섞인 무작위 텍스트는 약 0.038입니다. 단일 문자 치환은 IC를 바꾸지 않으므로 암호문의 IC가 평문 수준이면 단일 치환을 의심할 수 있고, 다중 문자 치환(비즈네르 암호 등)은 IC를 무작위 값 쪽으로 낮추므로 키 길이를 추정하는 데 쓰입니다.

한계

다중 문자 치환과 현대 암호는 문자 빈도를 고르게 만들도록 설계되어 있어, 빈도 분석만으로는 풀 수 없습니다. 오늘날 글자 빈도는 고전 암호 해독과 언어 식별, 암호 교육에서 주로 쓰입니다.

한글 텍스트의 경우

한글은 자모를 모아 음절 단위로 쓰므로, 빈도를 셀 때 음절 단위로 셀지 자모 단위로 셀지에 따라 결과가 달라집니다. 음절 단위로 세면 서로 다른 기호가 수천 개에 이르러 분포가 넓게 퍼지고, 자모 단위로 세면 기호 수가 적어 알파벳과 비슷한 방식으로 분석할 수 있습니다. 어느 경우든 기준이 되는 말뭉치와 같은 단위로 세어야 비교가 의미 있습니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.