]> AND Private Git Repository - Cipher_code.git/blobdiff - Old_one_round/one_round_light_auth.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Merge branch 'master' of ssh://info.iut-bm.univ-fcomte.fr/Cipher_code
[Cipher_code.git] / Old_one_round / one_round_light_auth.cpp
index 138efb641da09cb8d55f4e664db923c69ab98da3..97abebf8df93a77125167842048d90a6fb09d919 100644 (file)
@@ -129,49 +129,37 @@ template<int h>
 void myhash(uchar *X, uchar* RM2, uchar *Sbox2) {
   uchar Y[h];
   uchar X2[h];
+  uchar Z[h];
 
   for(int k=0;k<h;k++) {
     
       
-    for(int a=0;a<h;a+=4) {
+    for(int a=0;a<h;a++) {
       X2[a]=RM2[a]^X[k*h+a];
-      X2[a+1]=RM2[a+1]^X[k*h+a+1];
-      X2[a+2]=RM2[a+2]^X[k*h+a+2];
-      X2[a+3]=RM2[a+3]^X[k*h+a+3];
     }
 
 
     Y[0]=X2[0]^X2[h-1];
-    Y[1]=Y[0]^X2[0];
-    Y[2]=Y[1]^X2[1];
-    Y[3]=Y[2]^X2[2];
-    for(int a=4;a<h;a+=4) {
+    for(int a=1;a<h;a++) {
       Y[a]=Y[a-1]^X2[a-1];
-      Y[a+1]=Y[a]^X2[a];
-      Y[a+2]=Y[a+1]^X2[a+1];
-      Y[a+3]=Y[a+2]^X2[a+2];
     }
     
     
-    for(int a=0;a<h;a+=4) {
+    for(int a=0;a<h;a++) {
       Y[a]=Sbox2[Y[a]];
-      Y[a+1]=Sbox2[Y[a+1]];
-      Y[a+2]=Sbox2[Y[a+2]];
-      Y[a+3]=Sbox2[Y[a+3]];
+    }
+
+
+    Z[h-1]=Y[h-1]^Y[0];
+    for(int a=h-1;a>0;a--) {
+      Z[a-1]=Z[a]^Y[a];
     }
     
-    
-    
-    RM2[h-1]=Y[h-1]^Y[0];
-    RM2[h-2]=RM2[h-1]^Y[h-1];
-    RM2[h-3]=RM2[h-2]^Y[h-2];
-    RM2[h-4]=RM2[h-3]^Y[h-3];
-    for(int a=h-4;a>0;a-=4) {
-      RM2[a-1]=RM2[a]^Y[a];
-      RM2[a-2]=RM2[a-1]^Y[a-1];
-      RM2[a-3]=RM2[a-2]^Y[a-2];
-      RM2[a-4]=RM2[a-3]^Y[a-3];
+    for(int a=0;a<h;a++) {
+       RM2[a]=Z[a];
     }
+      
+
   }
 }