From 8a914a741dbd5f0ccd5551457037f2f028c130c2 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Tue, 19 Dec 2023 12:12:37 +0200 Subject: [PATCH] Update the cracking for S-DES to remove the wrong decoded texts. --- cryptography_s_des_exploring/cracking.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cryptography_s_des_exploring/cracking.py b/cryptography_s_des_exploring/cracking.py index 39ada3f..28cd510 100644 --- a/cryptography_s_des_exploring/cracking.py +++ b/cryptography_s_des_exploring/cracking.py @@ -5,7 +5,7 @@ from rich.prompt import Prompt from cryptography_s_des_exploring.sdes.decrypt import decrypt_block -from cryptography_s_des_exploring.sdes.blocks import decode, decode_bytes +from cryptography_s_des_exploring.sdes.blocks import encode, decode, decode_bytes def cast_to_key(number: int): @@ -18,15 +18,19 @@ def cracking(ciphertext): start = time.monotonic() + decoded_ciphertext = list(decode_bytes(ciphertext)) + for n in range(0, 1024): key = cast_to_key(n) - decoded = decode_bytes(ciphertext) - decrypted = list(map(lambda b: decrypt_block(key, b), decoded)) + decrypted = list(map(lambda b: decrypt_block(key, b), decoded_ciphertext)) try: - decoded = decode(decrypted) - founded.append((key, decoded)) + decoded_text = decode(decrypted) + + if len(decrypted) == len(list(encode(decoded_text))): + founded.append((key, decoded_text)) + except UnicodeDecodeError as e: continue except binascii.Error as e: