diff --git a/main.py b/main.py index bd6e5429a90d44ceef976a50eedebba53aa4465b..067d180ea7d50727682a9e0ba430ecdeb4260f65 100644 --- a/main.py +++ b/main.py @@ -179,7 +179,7 @@ def get_bezout_coefficients(a, b): y = [0, 1] while True: - r.append(r[i - 2] % r[i - 1]) + r.append(modulo(r[i - 2], r[i - 1])) # Continue until the rest is equal to 0 if r[i] == 0: @@ -215,7 +215,7 @@ def modular_inverse(a, b): return None if bezout == 1 and modulo(a * x, b) == 1: - return format(x % b, STRING_BINARY_FORMAT) + return format(modulo(x, b), STRING_BINARY_FORMAT) return None @@ -231,7 +231,7 @@ def inverse_add_mod(a): if type(a) == str: a = int(a, BINARY_BASE) - res = NIBBLE_BIT_SIZE - a + res = modulo(-a, NIBBLE_BIT_SIZE) return format(res, STRING_BINARY_FORMAT) @@ -373,15 +373,14 @@ def encrypt(plaintext, subkeys): res_10 = add_mod(res_7, res_9) # 11. Bitwise XOR the results of steps 1 and 9 res_11 = xor(res_1, res_9) - # 12. Bitwise XOR the results of steps 3 and 9 - res_12 = xor(res_3, res_9) - # 13. Bitwise XOR the results of steps 2 and 10 - res_13 = xor(res_2, res_10) + # 12. Bitwise XOR the results of steps 2 and 10 + res_12 = xor(res_2, res_10) + # 13. Bitwise XOR the results of steps 3 and 9 + res_13 = xor(res_3, res_9) # 14. Bitwise XOR the results of steps 4 and 10 res_14 = xor(res_4, res_10) # Create the input for the next round with the final results - # The results of the steps 12 and 13 are swapped - input_block = res_11 + res_13 + res_12 + res_14 + input_block = res_11 + res_12 + res_13 + res_14 current_round += 1