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

Private GIT Repository
first version cipher_h265
[Cipher_code.git] / OneRoundIoT / OneRound / one_round_hash_new.cpp
index a76f70a4034be7dfea44559ff104c03deff2c553..a72d301ec98184bfd327d62bb05e4bc958aa330e 100644 (file)
@@ -135,7 +135,7 @@ void prga(uchar *sc, int ldata, uchar *r) {
   }
 }
 
   }
 }
 
-
+inline uchar  circ(uchar x,int n) {return (x << n) | (x >> (8 - n));}
 
 
 //the proposed hash function, which is based on DSD structure. Sensitivity is ensured by employing the binary diffusion
 
 
 //the proposed hash function, which is based on DSD structure. Sensitivity is ensured by employing the binary diffusion
@@ -186,31 +186,42 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, int *PboxRM, uchar *Sbox1,
 
     for(int a=0;a<h;a+=4) {
       Y[a]=Sbox1[Y[a]];
 
     for(int a=0;a<h;a+=4) {
       Y[a]=Sbox1[Y[a]];
+      Y[a+1]=Sbox1[Y[a+1]];
+      Y[a+2]=Sbox1[Y[a+2]];
+      Y[a+3]=Sbox1[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];
     }
 
     
     Z[h-1]=Y[h-1]^Y[0];
     for(int a=h-1;a>0;a--) {
       Z[a-1]=Z[a]^Y[a];
     }
 
-    for(int a=0;a<h;a+=4) {
+    /*  for(int a=0;a<h;a+=4) {
       Z[a]=Sbox2[Z[a]];
       Z[a]=Sbox2[Z[a]];
-    }
+      Z[a+1]=Sbox2[Z[a+1]];
+      Z[a+2]=Sbox2[Z[a+2]];
+      Z[a+3]=Sbox2[Z[a+3]];
+
+      }*/
 
     
     
     for(int a=0;a<h;a+=4) {
 
     
     
     for(int a=0;a<h;a+=4) {
-      /*     RM1[a]=Z[a];
+      RM1[a]=Z[a];
       RM1[a+1]=Z[a+1];
       RM1[a+2]=Z[a+2];
       RM1[a+3]=Z[a+3];
       RM1[a+1]=Z[a+1];
       RM1[a+2]=Z[a+2];
       RM1[a+3]=Z[a+3];
-      */
-
+      
+/*
       RM1[a]=Z[a]^RM1[PboxRM[a]];
       RM1[a+1]=Z[a+1]^RM1[PboxRM[a+1]];
       RM1[a+2]=Z[a+2]^RM1[PboxRM[a+2]];
       RM1[a+3]=Z[a+3]^RM1[PboxRM[a+3]];
       RM1[a]=Z[a]^RM1[PboxRM[a]];
       RM1[a+1]=Z[a+1]^RM1[PboxRM[a+1]];
       RM1[a+2]=Z[a+2]^RM1[PboxRM[a+2]];
       RM1[a+3]=Z[a+3]^RM1[PboxRM[a+3]];
-      
+*/    
     }
     
   }
     }
     
   }
@@ -410,7 +421,7 @@ int main(int argc, char** argv) {
   
   time+=TimeStop(t);
   cout<<"Hash Time  "<<time<<endl;
   
   time+=TimeStop(t);
   cout<<"Hash Time  "<<time<<endl;
-
+  cout<<(double)imsize*nb_test/time<<"\t";
 
   for(int i=0;i<h;i++){
     cout<<(int)RM1[i]<<" ";
 
   for(int i=0;i<h;i++){
     cout<<(int)RM1[i]<<" ";