오토키 암호
짧은 시작 키워드가 키를 열고 메시지 자체가 그것을 이어 가서 키가 결코 반복되지 않는, 더 강력한 Vigenère 변형인 오토키 암호를 암호화하고 복호화하세요. 암호화와 복호화를 전환하고 계산 과정이 실시간으로 만들어지는 모습을 지켜보세요. 모든 작업은 브라우저에서 실행됩니다.
키워드
QUEENLY 같은 짧은 시작 키워드를 입력하세요. 이것이 키 스트림을 열고, 그 뒤로는 메시지 자체가 이어지므로 키가 결코 반복되지 않습니다. 오직 글자만 사용되며, 대문자와 소문자는 동일하게 취급되고, 키워드에 포함된 공백이나 숫자, 문장 부호는 무시됩니다.
위에 텍스트를 입력하면 오토키 결과가 여기에 표시됩니다.
오토키 암호 사용 방법
- 1
암호화 또는 복호화 선택
평문을 오토키 암호문으로 바꾸려면 암호화를, 암호문에서 평문을 되찾으려면 복호화를 고르세요. 같은 시작 키워드가 두 방향에 모두 쓰입니다.
- 2
시작 키워드 입력
QUEENLY 같은 짧은 키워드를 입력하세요. 이것이 키 스트림을 열고, 그 뒤로는 메시지 자체가 이어집니다. 오직 글자만 사용되며, 키워드의 대소문자와 공백, 문장 부호는 무시됩니다.
- 3
텍스트 입력 또는 붙여넣기
변환하려는 메시지를 입력하세요. 암호는 입력하는 즉시 자동으로 실행되며, 아래의 글자별 계산 과정이 실시간으로 갱신되어 어떤 키 글자가 키워드에서 오고 어떤 것이 메시지에서 오는지 보여 줍니다.
- 4
보기, 복사, 공유
결과를 읽은 뒤, 복사하거나 텍스트 파일로 다운로드하거나, 당신의 정확한 키워드와 방향, 텍스트 그대로 도구를 다시 여는 링크로 공유하세요. 모든 것이 브라우저 안에 머뭅니다.
오토키 암호 이해하기
오토키 암호란 무엇인가요?
오토키 암호는 오토클레이브 암호라고도 불리며, 메시지 자체가 키의 일부가 되는 다중 문자 치환 암호입니다. 짧은 시작 키워드가 키 스트림을 열고, 그 글자들이 떨어지고 나면 키는 그저 평문의 글자들로 계속 이어집니다. 진행하는 키가 메시지만큼 길고 결코 반복되지 않기 때문에, 오토키 암호는 보통의 반복 키 암호를 깨기 쉽게 만드는 규칙적이고 순환하는 패턴을 피합니다.
이 암호는 1586년 프랑스 외교관 Blaise de Vigenère가 발표한 것으로, Giovan Battista Bellaso의 앞선 아이디어에서 비롯되었습니다. 여기에는 잘 알려진 역설이 있습니다: 오늘날 세상이 Vigenère 암호라 부르는 단순한 반복 키 암호는 사실 Bellaso의 것이었던 반면, Vigenère 자신의 더 강력한 발명품은 바로 이 오토키였습니다. 평문을 키 속으로 되먹임으로써, 오토키 암호는 훗날 Kasiski와 Friedman 같은 암호 분석가들이 반복 키를 깨는 데 이용하게 될 주기성을 제거합니다.
오토키 암호가 작동하는 방식
알파벳에 A를 0부터 Z를 25까지 번호를 매깁니다. 시작 키워드를 먼저 적고, 그다음 평문 글자들을 순서대로 이어 가서 키 스트림을 만듭니다. 그 스트림을 메시지 아래에 정렬하여 모든 평문 글자 아래에 키 글자 하나씩이 놓이게 합니다. 암호화하려면 각 키 글자를 그 위의 글자에 더하고 26으로 나눈 나머지로 알파벳을 한 바퀴 둘러 감으므로, 암호문 글자는 C = (P + K) mod 26입니다.
복호화는 왼쪽에서 오른쪽으로 진행해야 합니다. 시작 키워드를 알고 있으므로, P = (C − K) mod 26으로 처음 몇 글자를 복원할 수 있습니다. 복원한 각 평문 글자는 곧이어 키 스트림에 덧붙여져 다음 글자를 복호화하는 데 쓰이고, 끝까지 그런 식으로 이어집니다. Vigenère 암호에서처럼 오직 26개의 글자만 변환됩니다: 공백과 문장 부호, 숫자는 손대지 않고 그대로 통과하며 키 글자를 소모하지 않고, 대소문자는 보존됩니다.
예제 풀이
메시지 HELLO를 시작 키워드 KEY로 암호화합니다. 키 스트림은 키워드 뒤에 평문이 이어진 것으로, 다섯 글자에 대해 K, E, Y, H, E가 됩니다. 각각을 메시지에 더하면 H 더하기 K는 R, E 더하기 E는 I, L 더하기 Y는 J, L 더하기 H는 S, O 더하기 E는 S가 됩니다. 암호문은 RIJSS이며, 마지막 두 키 글자 H와 E가 바로 메시지 자체의 처음 두 글자라는 점에 주목하세요.
RIJSS를 복호화하려면 키워드 KEY로 시작합니다. R 빼기 K는 H, I 빼기 E는 E, J 빼기 Y는 L이 되어 HEL을 복원합니다. 이 복원된 글자들이 이제 키를 연장하므로, 다음 키 글자는 H이고 S 빼기 H는 L, 그다음 키 글자 E는 S 빼기 E는 O가 되어 HELLO를 완성합니다. 복원한 각 글자가 다음 글자를 열어 주는데, 이것이 오토키 암호를 읽는 방식의 핵심입니다.
오토키 대 반복 키 Vigenère
보통의 Vigenère 암호는 자신의 키워드를 거듭거듭 반복합니다: 키 KEY로는 스트림이 KEYKEYKEY 같은 식으로 이어집니다. 그 반복이 치명적 약점인데, 키 길이가 Kasiski 검사나 일치 지수로 밝혀질 수 있고, 그러고 나면 각 열은 단순한 카이사르 이동이 되기 때문입니다. 오토키 암호는 같은 덧셈 규칙을 쓰지만 키를 결코 반복하지 않으므로, 그런 고전적 검사가 통하지 않습니다.
예제 풀이에서 그 차이를 볼 수 있습니다. 키 KEY로 반복 Vigenère는 HELLO를 RIJVS로 암호화하는 반면, 오토키는 RIJSS를 만듭니다 — 둘은 키워드가 지속되는 동안에만 일치하다가 그 뒤로 갈라지는데, 오토키가 평문으로 옮겨 갔기 때문입니다. 메시지를 키 속으로 되먹이는 그 하나의 변화가 Vigenère의 진짜 기여였고, 그의 암호를 지금 그의 이름을 달고 있는 암호보다 눈에 띄게 더 강력하게 만들었습니다.
오토키 대 진행 키 암호
오토키 암호는 진행 키 암호와 밀접하게 관련되어 있습니다. 둘 다 아무것도 반복되지 않도록 메시지만큼 긴 키를 쓰지만, 그 긴 키가 어디서 오는지에서 다릅니다. 진행 키 암호는 약속된 책의 한 페이지처럼 공유된 외부 텍스트에서 키를 끌어오는 반면, 오토키 암호는 짧은 시작 키와 평문 자체로부터 긴 키를 만들어 냅니다.
각 방식에는 함정이 있습니다. 자연 언어에서 가져온 진행 키는 공격당할 수 있는 자체의 통계적 구조를 지니지만, 평문 되먹임이 필요 없습니다. 오토키는 시작 키워드라는 아주 작은 공유 비밀만 있으면 되지만, 키의 일부가 평문이기 때문에 흔한 단어를 알아맞힌 공격자가 그것을 키인 양 메시지에 미끄러뜨려 볼 수 있는데, 이것이 오토키 암호가 깨지는 주된 방법입니다.
오토키 암호를 깨는 방법
키가 결코 반복되지 않기 때문에, 반복 키 암호에 맞서는 표준 도구인 Kasiski 검사와 일치 지수는 오토키 메시지에 직접 통하지 않습니다. 그 점이 오토키를 Vigenère보다 눈에 띄게 더 까다롭게 만들지만, 여전히 안전과는 거리가 멉니다. 흔한 공격은 이 암호를 규정하는 바로 그 특징을 이용합니다: 키의 대부분이 평범한 언어인 평문이라는 점입니다.
분석가는 THE나 그럴듯한 이름처럼 가능성 있는 단어를 알아맞혀 그것을 암호문에 걸쳐 끌고 다니며 키인 양 빼 봅니다. 추측이 맞는 자리에서는 그 연산이 더 많은 평문의 조각을 드러내고, 그것을 다시 양방향으로 연장할 수 있습니다. 짧은 시작 키워드를 무차별 대입하는 것과 결합하면, 이 크립 드래깅으로 오토키 메시지를 손으로 복원할 수 있으므로, 이 암호는 안전한 선택이라기보다 영리한 역사적 진일보로 보는 것이 가장 좋습니다.
오토키 암호는 안전한가요?
아니요. 오토키 암호가 평범한 반복 키 Vigenère보다 강하기는 하지만, 현대의 기준으로는 어떤 실질적 보호도 제공하지 못합니다. 평문을 키로 삼는 의존성이 크립 드래깅에 문을 열어 주고, 짧은 시작 키는 무차별 대입으로 찾아낼 수 있으므로, 작정한 분석가는 연필과 종이로 이를 깰 수 있습니다. 이 암호는 안전한 방법의 어떤 목록이 아니라 고전 암호학의 역사에 속합니다.
오늘날 오토키 암호는 학습과 재미를 위해 높이 평가됩니다. 메시지를 키 속으로 되먹이는 일이 더 단순한 암호를 깨는 주기성 공격을 어떻게 물리치는지 보기에 우아한 방법이며, 퍼즐 헌트와 방 탈출, 깃발 뺏기(CTF) 문제에 등장합니다. 실제 정보를 보호하려면 그 대신 AES 같은 현대적이고 충분히 검증된 알고리즘에 의지해야 합니다.
자주 묻는 질문
오토키 암호란 무엇인가요?
오토키 암호는 어떻게 작동하나요?
오토키 암호는 Vigenère 암호와 어떻게 다른가요?
오토키 암호 예제를 보여 줄 수 있나요?
어떤 키워드를 써야 하나요?
오토키 암호는 어떻게 복호화하나요?
오토키와 진행 키 암호의 차이는 무엇인가요?
이 암호는 공백과 숫자, 문장 부호를 바꾸나요?
키워드는 대소문자를 구별하나요?
오토키 암호는 어떻게 깨나요?
오토키 암호는 안전한가요?
제 텍스트가 서버로 전송되나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요