Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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))