[CryptoHack] XOR Properties

거대한리트리버·2023년 8월 21일
1
post-thumbnail

문제

풀이

xor 연산은 교환법칙, 결합법칙을 만족하고, 항등원은 0, 역원은 자기 자신이다.
이 성질들을 이용하여 아래의 식들에서 flag를 찾는 문제이다.
hex로 주어졌기 때문에 byte로 변환시켜 xor 연산해주면 될 것 같다.

bytes.fromhex 함수로 변환 후 xor 함수로 연산하면 되는 간단한 문제이다.

from pwn import *

KEY1 = 'a6c8b6733c9b22de7bc0253266a3867df55acde8635e19c73313'
KEY2_KEY1 = '37dcb292030faa90d07eec17e3b1c6d8daf94c35d4c9191a5e1e'
KEY2_KEY3 = 'c1545756687e7573db23aa1c3452a098b71a7fbf0fddddde5fc1'
FLAG_KEY1_KEY3_KEY2 = '04ee9855208a2cd59091d04767ae47963170d1660df7f56f5faf'

key1 = bytes.fromhex(KEY1)
key2_1 = bytes.fromhex(KEY2_KEY1)
key2_3 = bytes.fromhex(KEY2_KEY3)
flag_key1_2_3 = bytes.fromhex(FLAG_KEY1_KEY3_KEY2)

key2 = xor(key2_1, key1)
key3 = xor(key2_3, key2)
flag = xor(flag_key1_2_3, key1, key2, key3)

print(flag)

FLAG = crypto{x0r_i5_ass0c1at1v3}

profile
강아지귀여워

0개의 댓글