From 4a9a05a0d853cc5bf3bc5d1872016b3149050fe2 Mon Sep 17 00:00:00 2001
From: Vincent <vincent.steinmann@etu.hesge.ch>
Date: Sat, 19 Jun 2021 21:56:41 +0200
Subject: [PATCH] Clean code

---
 IDEA.py | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/IDEA.py b/IDEA.py
index 69e613a..c58746d 100644
--- a/IDEA.py
+++ b/IDEA.py
@@ -18,6 +18,19 @@ def Mult_mod(a, b):
     mod_value = (2 ** 16) + 1
     return Mod(a * b, mod_value)
 
+def opp_mod(a, n): # Return the opposite for the addition modulo n
+    return Mod(n - a, n)
+
+def Invert_Mod(a):
+    m = (2**16) + 1
+    g = gcd(a, m) 
+      
+    if (g != 1) : 
+        print("Inverse doesn't exist") 
+          
+    else : 
+        return Fast_exp(a, m - 2, m)
+
 def Fast_exp(b, e, m):
     '''
     Function of fast exponation
@@ -44,7 +57,7 @@ def XOR(a, b):
     b = bin(b)
     return int(a,2) ^ int(b,2)
 
-def Sub_str(s, p):
+def Split_str(s, p): #Split a string
     r = list()
     for i in range(0, p):
         r.append(s[(p*i) : (p*i) + p])
@@ -59,19 +72,6 @@ def gcd(a,b):
     else:
         return gcd(b, a % b)
 
-def opp_mod(a, n): # Return the opposite for the addition modulo n
-    return Mod(n - a, n)
-
-def Invert_Mult(a):
-    m = (2**16) + 1
-    g = gcd(a, m) 
-      
-    if (g != 1) : 
-        print("Inverse doesn't exist") 
-          
-    else : 
-        return Fast_exp(a, m - 2, m)
-
 def Round(lst_msg,lst_k):
     step1 = Mult_mod(lst_msg[0],lst_k[0])
     step2 = Add_mod(lst_msg[1],lst_k[1])
@@ -108,7 +108,7 @@ def Final_Round(lst_msg,lst_k):
 def encrypt_sub_key(key, nb, size, subkey_shift):
     subkeys = []
     for _ in range(ceil(len(key)/float(size))): #Ceil return ceiling value
-        subkeys.extend(Sub_str(key, size))
+        subkeys.extend(Split_str(key, size))
         key = Shift(key)
     return subkeys[:nb]
 
@@ -117,7 +117,7 @@ def decrypt_sub_key(subkeys, nb_round, nb_key_round, n):
     for i in range(nb_round + 1):
         for j in range(nb_key_round):
             if j == 0 or j == 3:
-                k[i*nb_key_round+j] = Invert_Mult(subkeys[(4-i)*nb_key_round+j])
+                k[i*nb_key_round+j] = Invert_Mod(subkeys[(4-i)*nb_key_round+j])
             elif j == 1 or j == 2:
                 k[i*nb_key_round+j] = opp_mod(subkeys[(4-i)*nb_key_round+j], n)
             elif i < nb_round:
@@ -134,7 +134,7 @@ def idea(msg, k, size, nb_round, subkey_shift, decrypt):
 
     # Split the message and convert it into int
     padding = 2**size - Mod(len(msg), 2**size) 
-    blocks = [int(x, 2) for x in Sub_str(msg + (padding * '0'), size)]
+    blocks = [int(x, 2) for x in Split_str(msg + (padding * '0'), size)]
 
     lst_k = [int(x, 2) for x in encrypt_sub_key(k, (KEY_ROUND*nb_round+KEY_HALF_ROUND), size, subkey_shift)]
     if decrypt:
-- 
GitLab