모든 아티클

ROT13과 시저 암호: 단순한 문자 치환

ROT13은 라틴 문자 A–Z와 a–z만 이동시킨다 — 한국어 텍스트를 통과시켜도 한글은 전혀 바뀌지 않는데, 알고리즘이 애초에 이 좁은 범위 밖의 문자를 인식하지 못하기 때문이다.

한글이 암호화되지 않는 이유

고전적인 ROT13은 26개 라틴 문자만을 위한 치환표에 불과하다. 한글은 유니코드에서 완전히 다른 범위(U+AC00~U+D7A3의 완성형 음절, 또는 자모 영역)에 있으며, 한글의 어떤 문자도 라틴 A–Z/a–z와 겹치지 않는다. 그래서 "안녕하세요"에 ROT13을 적용해도 아무 변화 없이 "안녕하세요" 그대로 나온다.

로마자 표기(로마자화)와는 다른 문제

한글을 ROT13으로 실제로 뒤섞으려면 먼저 로마자 표기법으로 변환해야 하는데, 이는 발음을 기준으로 한 별도의 변환 규칙이며 ROT13과는 전혀 다른 작업이다. 로마자 표기 자체도 표준(국어의 로마자 표기법)과 매큔-라이샤워 표기법 등 여러 방식이 혼재해 있어, 같은 한글 단어도 표기법에 따라 다른 로마자 결과가 나온다.

ROT13이 여전히 쓰이는 곳

  • 국제 포럼에서 영어 텍스트의 스포일러를 숨길 때.
  • 치환 암호를 설명하는 교육용 예제.
  • 라틴 문자 텍스트만을 대상으로 한 가벼운 난독화 — 한글에는 효과가 없다.

이것이 데이터 보호가 아닌 이유

ROT13은 키를 사용하지 않고 즉시 되돌릴 수 있다 — 이는 난독화이지 암호화가 아니다. 한글이든 다른 언어든 실제로 보호하려면 AES 같은 키 기반 암호화 알고리즘이 필요하다.

도구 사용해보기