X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Cipher_code.git/blobdiff_plain/4fa9c3d0a87911ef71653cb99aa1c70f633a9473..27b3be6422ff306284e39782fb676dba2fbfdb94:/OneRoundIoT/OneRound/one_round_new.cpp?ds=inline diff --git a/OneRoundIoT/OneRound/one_round_new.cpp b/OneRoundIoT/OneRound/one_round_new.cpp index 59210a8..165fb19 100644 --- a/OneRoundIoT/OneRound/one_round_new.cpp +++ b/OneRoundIoT/OneRound/one_round_new.cpp @@ -31,8 +31,9 @@ int key_size=256; int nb_test=1; int ctr=0; -const int h=16; -const int h2=h*h; + + + @@ -134,7 +135,7 @@ void prga(uchar *sc, int ldata, uchar *r) { - +template void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Sbox1, uchar *Sbox2, int enc) { @@ -142,9 +143,9 @@ void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, in uchar *fX=new uchar[h2]; int ind1,ind2; - + for(int a=0;a void encrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Sbox1, uchar *Sbox2, int debug) { @@ -205,61 +248,42 @@ void encrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *P int ind1=it*h2; int ind2=Pbox[it]*h2; - for(int a=0;a void decrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Sbox1, uchar *Sbox2, int debug) { @@ -295,22 +319,38 @@ void decrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *P - for(int a=0;a10000) { - printf("nb tests is not correct\n"); - exit(0); - } - else - printf("nb tests = %d\n\n",nb_test); -*/ int seed=time(NULL); @@ -365,23 +409,44 @@ int main(int argc, char** argv) { int width; int height; + uchar *data_R, *data_G, *data_B; - load_RGB_pixmap("lena.ppm", &width, &height, &data_R, &data_G, &data_B); + int imsize; + uchar *buffer; + + if(lena==1) { + load_RGB_pixmap("lena.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); - + } + else { + width=height=size_buf; + imsize=width*height; + buffer=new uchar[imsize]; + for(int i=0;i(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,1); + else + encrypt<4*4>(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,0); + + } + break; + case 8: + for(i=0;i(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,1); + else + encrypt<8*8>(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,0); + + } + break; + case 16: + for(i=0;i(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,1); + else + encrypt<16*16>(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,0); + + } + break; + case 32: + for(i=0;i(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,1); + else + encrypt<32*32>(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,0); + + } + break; + case 64: + for(i=0;i(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,1); + else + encrypt<64*64>(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,0); + + } + break; } - time+=TimeStop(t); cout<<"Time encrypt "<(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + else + decrypt<4*4>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + } + break; + case 8: + for(i=0;i(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + else + decrypt<8*8>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + } + break; + case 16: + for(i=0;i(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + else + decrypt<16*16>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + } + break; + case 32: + for(i=0;i(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + else + decrypt<32*32>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + } + break; + case 64: + for(i=0;i(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + else + decrypt<64*64>(seq2,seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + } + break; } time+=TimeStop(t); cout<<"Time decrypt "<