
📝 두 번째 수식의 의미: cn⊕pn=kn
이 수식의 각 요소와 전체적인 의미는 다음과 같습니다.
1. 각 요소의 의미
- cn: Ciphertext (암호문)의 n번째 문자 또는 해당 문자의 ASCII (American Standard Code for Information Interchange) 값을 의미합니다. (문제 상황에서는 ASCII 값)
- pn: Plaintext (평문)의 n번째 문자 또는 해당 문자의 ASCII 값을 의미합니다. (여기서는 찾고자 하는 플래그 (Flag)의 n번째 문자)
- ⊕: XOR (Exclusive OR, 배타적 논리합) 연산을 의미합니다.
- kn: Key (키)의 n번째 문자 또는 해당 문자의 ASCII 값을 의미합니다. (문제 상황에서는 반복되는 5글자 키의 n(mod5) 번째 글자)
2. 전체적인 의미 (키 도출)
XOR 암호화의 핵심 속성 중 하나는 가역성 (Reversibility)입니다.
- 원래 암호화 수식: P⊕K=C(평문⊕키=암호문)
- 양변에 P를 다시 XOR하면: (P⊕K)⊕P=C⊕P⟹K=C⊕P
따라서, 두 번째 수식 cn⊕pn=kn은 암호문 한 글자와 평문 한 글자를 XOR하면, 그 암호화에 사용되었던 키의 해당 글자를 도출해낼 수 있다는 원리를 보여줍니다.
이것은 앞선 대화에서 말씀드렸던 알려진 평문 공격 (Known-Plaintext Attack)의 기초가 됩니다. 플래그가 flag{ 로 시작한다고 가정했을 때, 암호문의 첫 5글자와 이 가정된 평문 5글자를 XOR하여 5자리 키 전체를 찾아낼 수 있습니다.