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

Private GIT Repository
new
[Cipher_code.git] / OneRoundIoT / OneRound / one_round_new.cpp
index b394646615906aa4d52019f39b384c82facb2e40..d64021d7d5eb86f1e20c71c85217d259789b255c 100644 (file)
@@ -123,7 +123,7 @@ void prga(uchar *sc, int ldata, uchar *r) {
   uchar j0=0;
 
   for (int it=0; it<ldata; it++) {
   uchar j0=0;
 
   for (int it=0; it<ldata; it++) {
-    i0 = ((i0+1)%255);
+    i0 = ((i0+1)&0xFE); //%255);
     j0 = (j0 + sc[i0])&0xFF;
     uchar tmp = sc[i0];
     sc[i0] = sc[j0];
     j0 = (j0 + sc[i0])&0xFF;
     uchar tmp = sc[i0];
     sc[i0] = sc[j0];
@@ -241,11 +241,16 @@ template<int h2>
 void encrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Sbox1, uchar *Sbox2, int debug) {
 
 
 void encrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Sbox1, uchar *Sbox2, int debug) {
 
 
-  uchar *X=new uchar[h2];
+/*  uchar *X=new uchar[h2];
   uchar *fX=new uchar[h2];
   unsigned int *lX=(unsigned int*)X;
   unsigned int *lseq_in=(unsigned int*)seq_in;
   uchar *fX=new uchar[h2];
   unsigned int *lX=(unsigned int*)X;
   unsigned int *lseq_in=(unsigned int*)seq_in;
-
+*/
+  uchar X[h2];
+  uchar fX[h2];
+//  unsigned int *lX=(unsigned int*)X;
+//  unsigned int *lseq_in=(unsigned int*)seq_in;
+  
 
   for(int it=0;it<len;it++) {
     int ind1=it*h2;
 
   for(int it=0;it<len;it++) {
     int ind1=it*h2;
@@ -299,18 +304,14 @@ void encrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *P
 
 
 template<int h2>
 
 
 template<int h2>
-void decrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Sbox1, uchar *Sbox2, int debug) {
-
-
-  uchar *fX=new uchar[h2];
+void decrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Inv_Sbox1, uchar *Inv_Sbox2, int debug) {
 
 
 
 
+  /*uchar *fX=new uchar[h2];
   uchar *Inv_Sbox1=new uchar[256];
   uchar *Inv_Sbox1=new uchar[256];
-  inverse_tables(Sbox1,256,Inv_Sbox1);
-
   uchar *Inv_Sbox2=new uchar[256];
   uchar *Inv_Sbox2=new uchar[256];
-  inverse_tables(Sbox2,256,Inv_Sbox2);
-  
+  */
+  uchar fX[h2];
 
 
 
 
 
 
@@ -380,18 +381,18 @@ int main(int argc, char** argv) {
     if(strncmp(argv[i],"lena",4)==0) lena = atoi(&(argv[i][4]));          //Use Lena or buffer
   }
 
     if(strncmp(argv[i],"lena",4)==0) lena = atoi(&(argv[i][4]));          //Use Lena or buffer
   }
 
-  printf("nb times %d\n",nb_test);
+/*  printf("nb times %d\n",nb_test);
   printf("ctr %d\n",ctr);
   printf("h %d\n",h);
   printf("lena %d\n",lena);
   printf("size_buf %d\n",size_buf);
   printf("ctr %d\n",ctr);
   printf("h %d\n",h);
   printf("lena %d\n",lena);
   printf("size_buf %d\n",size_buf);
-
+*/
   int h2=h*h;
   
 
       
   int seed=time(NULL);
   int h2=h*h;
   
 
       
   int seed=time(NULL);
-  cout<<seed<<endl;
+//  cout<<seed<<endl;
   srand48(seed);
 
   uchar Secretkey[key_size];
   srand48(seed);
 
   uchar Secretkey[key_size];
@@ -472,7 +473,7 @@ int main(int argc, char** argv) {
   }
 
   
   }
 
   
-  cout<<"hash "<<endl;
+//  cout<<"hash "<<endl;
   for (int i = 0; i < 64 ; i++) {
 //    DK[i]=digest[i];
     DK[i]=mix[i];
   for (int i = 0; i < 64 ; i++) {
 //    DK[i]=digest[i];
     DK[i]=mix[i];
@@ -486,6 +487,11 @@ int main(int argc, char** argv) {
 
   uchar Sbox2[256];
   rc4key(&DK[16], Sbox2, 16);
 
   uchar Sbox2[256];
   rc4key(&DK[16], Sbox2, 16);
+  uchar Inv_Sbox1[256];
+  uchar Inv_Sbox2[256];
+  inverse_tables(Sbox1,256,Inv_Sbox1);
+  inverse_tables(Sbox2,256,Inv_Sbox2);
+
 
 
   
 
 
   
@@ -518,7 +524,7 @@ int main(int argc, char** argv) {
 
   rc4keyperm(keyp, len, rp, Pbox, 16);
 
 
   rc4keyperm(keyp, len, rp, Pbox, 16);
 
-  printf("len %d\n",len);
+//  printf("len %d\n",len);
   for(int i=0;i<len;i++) {
 //    printf("%d \n",Pbox[i]);
   }
   for(int i=0;i<len;i++) {
 //    printf("%d \n",Pbox[i]);
   }
@@ -610,7 +616,7 @@ int main(int argc, char** argv) {
       if(ctr)
        encrypt_ctr<4*4>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
       if(ctr)
        encrypt_ctr<4*4>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
-       decrypt<4*4>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
+       decrypt<4*4>(seq2,seq,len,RM2,Pbox,PboxRM,Inv_Sbox1,Inv_Sbox2,0);
     }
     break;
   case 8:
     }
     break;
   case 8:
@@ -618,7 +624,7 @@ int main(int argc, char** argv) {
       if(ctr)
        encrypt_ctr<8*8>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
       if(ctr)
        encrypt_ctr<8*8>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
-       decrypt<8*8>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
+       decrypt<8*8>(seq2,seq,len,RM2,Pbox,PboxRM,Inv_Sbox1,Inv_Sbox2,0);
     }
     break;
   case 16:
     }
     break;
   case 16:
@@ -626,7 +632,7 @@ int main(int argc, char** argv) {
       if(ctr)
        encrypt_ctr<16*16>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
       if(ctr)
        encrypt_ctr<16*16>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
-       decrypt<16*16>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
+       decrypt<16*16>(seq2,seq,len,RM2,Pbox,PboxRM,Inv_Sbox1,Inv_Sbox2,0);
     }
     break;
   case 32:
     }
     break;
   case 32:
@@ -634,7 +640,7 @@ int main(int argc, char** argv) {
       if(ctr)
        encrypt_ctr<32*32>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
       if(ctr)
        encrypt_ctr<32*32>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
-       decrypt<32*32>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
+       decrypt<32*32>(seq2,seq,len,RM2,Pbox,PboxRM,Inv_Sbox1,Inv_Sbox2,0);
     }
     break;
   case 64:
     }
     break;
   case 64:
@@ -642,7 +648,7 @@ int main(int argc, char** argv) {
       if(ctr)
        encrypt_ctr<64*64>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
       if(ctr)
        encrypt_ctr<64*64>(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
       else
-       decrypt<64*64>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0);
+       decrypt<64*64>(seq2,seq,len,RM2,Pbox,PboxRM,Inv_Sbox1,Inv_Sbox2,0);
     }
     break;
   }
     }
     break;
   }
@@ -666,7 +672,7 @@ int main(int argc, char** argv) {
        equal=false;
       }
     }
        equal=false;
       }
     }
-    cout<<"RESULT CORRECT: "<<equal<<endl;
+//    cout<<"RESULT CORRECT: "<<equal<<endl;
   }
   
 
   }