Дешифрование текстов, зашифрованных при помощи xor
Подскажите, пожалуйста, как решить задачу: есть несколько шифротекстов, зашифрованных одним ключом. Как расшифровать данные тексты? Xor шифротекстов равен xor исходных сообщений, но непонятно, куда двигаться дальше.
import os
#исходные
plaintext1 = b'hello world'
plaintext2 = b'supersecret'
# задаем ключ
key = os.urandom(len(plaintext1))
print(key)
# функция шифрования
xor = lambda x, y: bytes(a^b for a, b in zip(x, y))
# шифруем
ciphertext1 = xor(plaintext1, key)
ciphertext2 = xor(plaintext2, key)
# набор всех текстовых символов данной кодировки
textchars = bytes({7,8,9,10,12,13,27} | set(range(0x20, 0x7f)))
# множество всех xor всех пар символов
all_xors = sorted((a^b, (a,b))
for a in textchars
for b in textchars)