Home
Writeups Misc About
Stream of Consciousness

Stream of Consciousness

The ciphertexts in the challenge are encrypted with AES-CTR with the same, new zero counter. Hence, the keystream used to xor the plaintexts to obtain the ciphertexts will be the same for all ciphertexts. This now becomes the classic, and taught by many cryptographic courses in universities worldwide about the many time pad.

The one-time pad cannot be used multiple times (hence the name) because an attacker can xor the two ciphertexts to obtain the xor of the corresponding plaintext. It is thanks to the non-unform distribution of the plaintext space, and the redundancy of some languages (in this case English) that will help us crack the original plaintext.

There are some Python implementations to ease the pain of guessing words and looking at the output in a text editor, one that I used for my previous university assignment is MTP.

Otherwise, we can always do this with the traditional way of xor every pair of ciphertexts, then xor a portion of some guesses that we had (using some crib, in technical terms), then see on all other decrypted plaintexts whether it makes sense or not.

The following script demonstrates the manual solving process of this challenge, which heavily involves guesswork.

Python Implementation: