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

Private GIT Repository
arduino
[Cipher_code.git] / OneRoundIoT / OneRound / one_round_new.cpp
index 2637e31fb8286c68721c7ce4f740e10e649398c0..76fb91c57cda4621aabc11585511bb38910e0245 100644 (file)
@@ -147,8 +147,11 @@ void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, in
   int ind1,ind2;
 
   
   int ind1,ind2;
 
   
-   for(int a=0;a<h2;a++) {
+   for(int a=0;a<h2;a+=4) {
      X[a]=Sbox1[a&0xFF];           //Warning according to the size of h2, we can be outsize of Sbox1[a]
      X[a]=Sbox1[a&0xFF];           //Warning according to the size of h2, we can be outsize of Sbox1[a]
+     X[a+1]=Sbox1[(a+1)&0xFF];
+     X[a+2]=Sbox1[(a+2)&0xFF];
+     X[a+3]=Sbox1[(a+3)&0xFF];           
    }
 
    
    }
 
    
@@ -163,24 +166,16 @@ void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, in
     }
        
 
     }
        
 
-
-    /*for(int a=0;a<h2;a+=4){
-      fX[a]=RM1[X[a]];
-      fX[a+1]=RM1[X[a+1]];
-      fX[a+2]=RM1[X[a+2]];
-      fX[a+3]=RM1[X[a+3]];
-      }*/
-
-    for(int a=0;a<h2;a+=4){
-      fX[a]=X[a];
-      fX[a+1]=X[a+1];
-      fX[a+2]=X[a+2];
-      fX[a+3]=X[a+3];
+    for(int a=0;a<h2;a+=4) {
+      X[a]=Sbox1[X[a]];
+      X[a+1]=Sbox1[X[a+1]];
+      X[a+2]=Sbox1[X[a+2]];
+      X[a+3]=Sbox1[X[a+3]];
     }
     }
-
+   
 
     
 
     
-    *(int*)&fX[0]^=it;
+//    *(int*)&fX[0]^=it;
 
 
 /*    for(int a=0;a<h2;a+=16) {
 
 
 /*    for(int a=0;a<h2;a+=16) {
@@ -188,23 +183,24 @@ void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, in
       *(int*)&fX[a+4]^=it;
       *(int*)&fX[a+8]^=it;
       *(int*)&fX[a+12]^=it;
       *(int*)&fX[a+4]^=it;
       *(int*)&fX[a+8]^=it;
       *(int*)&fX[a+12]^=it;
-    }
-*/  
+    }  
+*/
 
 
+    
     for(int a=0;a<h2;a+=4) {
     for(int a=0;a<h2;a+=4) {
-      fX[a]=fX[a]^RM1[a];
-      fX[a+1]=fX[a+1]^RM1[a+1];
-      fX[a+2]=fX[a+2]^RM1[a+2];
-      fX[a+3]=fX[a+3]^RM1[a+3];
+      fX[a]=X[a]^RM1[a];
+      fX[a+1]=X[a+1]^RM1[a+1];
+      fX[a+2]=X[a+2]^RM1[a+2];
+      fX[a+3]=X[a+3]^RM1[a+3];
     }
 
  
     }
 
  
-    for(int a=0;a<h2;a+=4) {
+    /*   for(int a=0;a<h2;a+=4) {
       fX[a]=Sbox2[fX[a]];
       fX[a+1]=Sbox2[fX[a+1]];
       fX[a+2]=Sbox2[fX[a+2]];
       fX[a+3]=Sbox2[fX[a+3]];
       fX[a]=Sbox2[fX[a]];
       fX[a+1]=Sbox2[fX[a+1]];
       fX[a+2]=Sbox2[fX[a+2]];
       fX[a+3]=Sbox2[fX[a+3]];
-    }
+      }*/
     
      for(int a=0;a<h2;a+=4) {
       fX[a]=fX[a]^seq_in[ind2+a];
     
      for(int a=0;a<h2;a+=4) {
       fX[a]=fX[a]^seq_in[ind2+a];