암호학 level 1
SingleByteXor
어느날, 살인사건이 일어났다.
살인 사건의 유일한 증거물은 쓰여있는 쪽지에는, 다음과 같이 적혀있었다.
54586b6458754f7b215c7c75424f21634f744275517d6d
크립이에게 주어진 단서는, 쪽지의 내용과 이것이 어떤 단일바이트와 XOR해서 만들어진 암호라는 단서 뿐.
과연 크립이는 범인을 찾을 수 있을 것인가…!
-flag 타입은 DH{message}입니다
A^B = C 에서 두 값를 알고있다면 다른 값도 알 수 있다.
[2진수] 입력 중 1이 홀수인 경우, 참.
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
[16진수]
0x41을 0x3C로 XOR = 0x7D
(0100 0001 XOR 0011 1100 = 0111 1101)
단일바이트의 키로 암호화 -> 256(=2^8)가지 경우 존재
-> 반복문을 이용해서 XOR
(16진수)
54 58 6b 64
58 75 4f 7b
21 5c 7c 75
42 4f 21 63
4f 74 42 75
51 7d 6d
(0으로 XOR 하면 원본 그대로이기 때문에 0은 제외하고 1부터 255까지 반복)
정답 : DH{tHe_k1LleR_1s_dReAm}