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

Private GIT Repository
first version of cipher_jpg
[Cipher_code.git] / OneRoundIoT / OneRound / one_round_new.cpp
index e7b98ae1d430e37b93c51052b1b5b64712fcbe6a..be38534e2b865310957a7877e6fe942e46800315 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];           
    }
 
    
    }
 
    
@@ -164,19 +167,12 @@ void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, in
        
 
     for(int a=0;a<h2;a+=4) {
        
 
     for(int a=0;a<h2;a+=4) {
-      X[a]=X[Sbox1[a]];
-      X[a+1]=X[Sbox1[a+1]];
-      X[a+2]=X[Sbox1[a+2]];
-      X[a+3]=X[Sbox1[a+3]];
+      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]];
     }
     }
-    
-    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];
-    }
-
+   
 
     
 //    *(int*)&fX[0]^=it;
 
     
 //    *(int*)&fX[0]^=it;
@@ -192,19 +188,19 @@ void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, in
 
     
     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];
@@ -419,6 +415,7 @@ int main(int argc, char** argv) {
   
   if(lena==1) {
     load_RGB_pixmap("lena.ppm", &width, &height, &data_R, &data_G, &data_B);
   
   if(lena==1) {
     load_RGB_pixmap("lena.ppm", &width, &height, &data_R, &data_G, &data_B);
+//    load_RGB_pixmap("8192.ppm", &width, &height, &data_R, &data_G, &data_B);
     imsize=width*height*3;
 //  load_RGB_pixmap("No_ecb_mode_picture.ppm", &width, &height, &data_R, &data_G, &data_B);
   }
     imsize=width*height*3;
 //  load_RGB_pixmap("No_ecb_mode_picture.ppm", &width, &height, &data_R, &data_G, &data_B);
   }
@@ -493,7 +490,10 @@ int main(int argc, char** argv) {
 
 
 
 
 
 
-  double time=0;
+  double time_encrypt=0;
+  double time_decrypt=0;
+  
+
   double t=TimeStart();  
   rc4key(DK, Sbox1, 8);
   
   double t=TimeStart();  
   rc4key(DK, Sbox1, 8);
   
@@ -511,8 +511,8 @@ int main(int argc, char** argv) {
   
   rc4keyperm(&DK[48], h2, rp, PboxRM, 16);
   
   
   rc4keyperm(&DK[48], h2, rp, PboxRM, 16);
   
-  time+=TimeStop(t);
-  cout<<"Time initializaton "<<time<<endl;
+  //time+=TimeStop(t);
+  //cout<<"Time initializaton "<<time<<endl;
 
 
 
 
 
 
@@ -536,7 +536,7 @@ int main(int argc, char** argv) {
 
 
   
 
 
   
-  time=0;
+  time_encrypt=0;
   t=TimeStart();
 
   int i;
   t=TimeStart();
 
   int i;
@@ -602,8 +602,9 @@ int main(int argc, char** argv) {
     }
     break;
   }
     }
     break;
   }
-  time+=TimeStop(t);
-  cout<<"Time encrypt "<<time<<endl;
+  time_encrypt+=TimeStop(t);
+  //cout<<"Time encrypt "<<
+  cout<<(double)imsize*nb_test/time_encrypt<<"\t";
 
 
   if(lena) {
 
 
   if(lena) {
@@ -616,7 +617,7 @@ int main(int argc, char** argv) {
   }
   
 
   }
   
 
-  time=0;
+  time_decrypt=0;
   t=TimeStart();
   switch(h) {
   case 4:
   t=TimeStart();
   switch(h) {
   case 4:
@@ -669,8 +670,9 @@ int main(int argc, char** argv) {
     break;
   }
 
     break;
   }
 
-  time+=TimeStop(t);
-  cout<<"Time decrypt "<<time<<endl;
+  time_decrypt+=TimeStop(t);
+  //cout<<"Time decrypt "
+  cout<<(double)imsize*nb_test/time_decrypt<<"\t";
 
   if(lena) {
     for(int i=0;i<oneD;i++) {
 
   if(lena) {
     for(int i=0;i<oneD;i++) {