cryptopals

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 7a4dd4bb0dbcda24943c6c6f4a55f37863706a67
parent ec1908d607e1536e792fdc710cca740a5cfbb21a
Author: mpizzzle <michael.770211@gmail.com>
Date:   Sun,  5 Nov 2017 21:54:50 +0000

minor refactoring

Diffstat:
Mset3/break_fixed_nonce_ctr_statistically.py | 9++++-----
Mset3/break_fixed_nonce_ctr_using_substitutions.py | 3+--
2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/set3/break_fixed_nonce_ctr_statistically.py b/set3/break_fixed_nonce_ctr_statistically.py @@ -8,6 +8,9 @@ key = Random.new().read(AES.block_size) def encrypt(plaintext): return AES.new(key, AES.MODE_CTR, counter=Counter.new(128)).encrypt(plaintext) +def decrypt(key, msg): + return ''.join([chr(ord(key[i % len(key)]) ^ ord(char)) for i, char in enumerate(msg)]) + def get_candidate_key_byte(transposed_block): candidate = '' candidate_frequency = 0 @@ -22,9 +25,6 @@ def get_candidate_key_byte(transposed_block): return candidate -def decrypt(key, msg): - return ''.join([chr(ord(key[i % len(key)]) ^ ord(char)) for i, char in enumerate(msg)]) - def get_key(file, key_length): split_file = [file[i:i + key_length] for i in range(0, len(file), key_length)] transposed_blocks = [''.join([block[x] for block in split_file[:len(split_file) - 1]]) for x in range(key_length)] @@ -35,8 +35,7 @@ with open('files/20.txt') as f: key_length = min(len(ct) for ct in ciphertexts) ciphertext = ''.join([ct[:key_length] for ct in ciphertexts]) -found_key = get_key(ciphertext, key_length) -plaintext = decrypt(found_key, ciphertext) +plaintext = decrypt(get_key(ciphertext, key_length), ciphertext) for line in [plaintext[i:i + key_length] for i in range(0, len(plaintext), key_length)]: print line diff --git a/set3/break_fixed_nonce_ctr_using_substitutions.py b/set3/break_fixed_nonce_ctr_using_substitutions.py @@ -24,6 +24,5 @@ def drag_crib(crib, a_xor_b): print derp for i in range(40): - if i != 5: print i - drag_crib("r polite ", xor(ciphertexts[i], ciphertexts[5])) + drag_crib("or polite meaningless ", xor(ciphertexts[i], ciphertexts[5]))