commit 7a4dd4bb0dbcda24943c6c6f4a55f37863706a67
parent ec1908d607e1536e792fdc710cca740a5cfbb21a
Author: mpizzzle <michael.770211@gmail.com>
Date: Sun, 5 Nov 2017 21:54:50 +0000
minor refactoring
Diffstat:
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]))