목록Study/Crypto (3)
촉촉한초코칩
문제 파일이 하나 주어지는데 HxD로 여니, 문제에 있는 문자열이 있었다. 쪽지 ^ 어떤 단일 바이트 = flag 라는 건가? 그런데 암,복호화를 할 때는 키가 있어야 한다. 평문 : P키 : K암호문 : CP[i] ^ K[i] = C[i]평문과 암호문 각각에 키와 xor 연산을 한다. 키가 있어야 하는데.. 키를 찾는 파이썬 코드를 실행해보았다. def xor_decrypt(ciphertext: bytes, key: bytes) -> bytes: return bytes([c ^ key[i % len(key)] for i, c in enumerate(ciphertext)])def brute_force_xor_key(ciphertext: bytes): possible_keys = [] f..
문제 풀이 분석#!/usr/bin/env python3hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)]with open('flag.png', 'rb') as f: plain_s = f.read()plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s]enc_list = list(range(len(plain_list)))for i in range(len(plain_list)): hex_b = plain_list[i] index = hex_list.index(hex_b) enc_list[i] = hex_list[(index + 128) % len(hex_list)]enc_li..