1. 문제
- 비밀번호는 data.txt 파일에 저장되어 있고, 모든 소분자와 대분자들이 13자리씩 밀려있다.
- 카이사르 암호 방식을 사용한것으로 보인다.
- 따라서 모든 문자열들을 13자리 씩 당겨줘야 한다.
2. ROT13란?
- ROT13은 문자를 13자리 회전(shift) 시키는 간단한 치환 암호(substitution cipher)이다.
- 라틴 알파벳에서 각 문자를 13자리 뒤로 이동하며, 알파벳 끝에 도달하면 다시 처음으로 돌아간다.
- Caesar Cipher의 특별한 경우:
- 고대 로마의 줄리어스 시저(Julius Caesar)가 사용한 암호 방식에서 파생.
- 알파벳을 정확히 절반(13자리)만 이동.
- 특징:
- 한 번 ROT13을 적용한 텍스트에 다시 ROT13을 적용하면 원래 텍스트로 복원됨.
- 이는 자기 역함수(Involution) 또는 상호 암호(Reciprocal Cipher)로 알려져 있음.
- Caesar Cipher의 특별한 경우:
2.1 ROT13 예제
- 문장 변환:
- 원본: Why did the chicken cross the road?
- ROT13 적용: Jul qvq gur puvpxra pebff gur ebnq?
- 다시 ROT13 적용: Why did the chicken cross the road? (복원)
- 원본: Why did the chicken cross the road?
- 암호화된 농담:
- 원본:
- Why did the chicken cross the road? Gb trg gb gur bgure fvqr!
- 복원:
- Why did the chicken cross the road? To get to the other side!
- 원본:
3. 풀이
- 해당 명령어로 문자 집합을 변환하여 다시 13자리 씩 밀어서 치환한다.
cat data.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m'
'Wargame > bandit wargame' 카테고리의 다른 글
Bandit Level 12 → 13 (1) | 2025.01.06 |
---|---|
12 → 13 까지 필요한 명령어 (0) | 2025.01.06 |
Bandit Level 10 → 11 (0) | 2025.01.05 |
Bandit Level 9 → 10 (0) | 2025.01.05 |
Bandit Level 8 → 9 (0) | 2025.01.05 |