def main(): key = b'YELLOW SUBMARINE' with open('c7.txt') as f: text = f.read().replace('\n', '') text = base642bytes(bytes(text, 'utf-8')) msg = aes_decrypt_ecb(text, key) assert(aes_decrypt_ecb(aes_encrypt_ecb(msg, key), key) == msg) print(msg)
def main(): assert (hamming_dist(b'this is a test', b'wokka wokka!!!') == 37) with open('c6.txt') as file: text = file.read().replace('\n', '') text = base642bytes(bytes(text, 'utf-8')) [key, plainText] = break_repeat_key_xor(text) assert (key == b'Terminator X: Bring the noise') print(key) print('\n\n', plainText)
def main(): unknownString = base642bytes( b'Um9sbGluJyBpbiBteSA1LjAKV2l0aCBteSByYWctdG9wIGRvd24gc28gbXkgaGFpciBjYW4gYmxvdwpUaGUgZ2lybGllcyBvbiBzdGFuZGJ5IHdhdmluZyBqdXN0IHRvIHNheSBoaQpEaWQgeW91IHN0b3A/IE5vLCBJIGp1c3QgZHJvdmUgYnkK' ) ecbOracle = HarderECBOracle(unknownString) assert (len(ecbOracle.randomPrefix) == discover_prefix_length(ecbOracle)) assert (len( ecbOracle.unknownString) == discover_unknown_string_length(ecbOracle)) discoveredString = harder_byte_ecb_decryption(ecbOracle) # assert(discoveredString == unknownString) print(discoveredString)
def main(): unknownString = base642bytes( b'Um9sbGluJyBpbiBteSA1LjAKV2l0aCBteSByYWctdG9wIGRvd24gc28gbXkgaGFpciBjYW4gYmxvdwpUaGUgZ2lybGllcyBvbiBzdGFuZGJ5IHdhdmluZyBqdXN0IHRvIHNheSBoaQpEaWQgeW91IHN0b3A/IE5vLCBJIGp1c3QgZHJvdmUgYnkK' ) ecbOracle = ECBOracle(unknownString) blockLength = discover_block_size(ecbOracle) assert (blockLength == AES.block_size) assert (discover_ecb(ecbOracle, blockLength) == 'ECB') assert (discover_unknown_string_length(ecbOracle) == len( ecbOracle.unknownString)) discoveredString = byte_ecb_decryption(ecbOracle) assert (discoveredString == unknownString) print(discoveredString)
def main(): with open('c10.txt') as f: text = base642bytes(bytes(f.read().replace('\n', ''), 'utf-8')) blockSize = 16 key = 'YELLOW SUBMARINE' iv = b'\x00' * blockSize print(aes_decrypt_cbc(text, key, iv, True), '\n\n') # verify assert (aes_decrypt_cbc(aes_encrypt_cbc(b'Hello World', key, iv, True), key, iv, True) == b'Hello World') # show cases of optional unpadding print( aes_decrypt_cbc(aes_encrypt_cbc(b'Hello World', key, iv, True), key, iv, False))