X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Cipher_code.git/blobdiff_plain/baa3ba339cf98c71a013ab96c1af552e82470efe..a199186032cc0c9f92cf713e6a31275e4aa19141:/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 95c602e..d4441a9 100644 --- a/OneRoundIoT/OneRound/one_round_new.cpp +++ b/OneRoundIoT/OneRound/one_round_new.cpp @@ -6,8 +6,11 @@ #include #include #include +#include #include #include +#include + /*#include #include @@ -27,10 +30,12 @@ using namespace std; int key_size=256; +int nb_test=1; +int ctr=0; + + -const int h=16; -const int h2=h*h; @@ -66,6 +71,14 @@ void inverse_tables(uchar *tab, int size_tab,uchar *inv_perm_tabs) { } +void inverse_tables_int(int *tab, int size_tab,int *inv_perm_tabs) { + + for(int i=0;i +void encrypt_ctr(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *PboxRM, uchar *Sbox1, uchar *Sbox2, int enc) { + + +// uchar *X=new uchar[h2]; +// uchar *fX=new uchar[h2]; + uchar X[h2]; + uchar fX[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) { - 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 X[h2]; + uchar fX[h2]; +// unsigned int *lX=(unsigned int*)X; +// unsigned int *lseq_in=(unsigned int*)seq_in; + for(int it=0;it +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]; - inverse_tables(Sbox1,256,Inv_Sbox1); - uchar *Inv_Sbox2=new uchar[256]; - inverse_tables(Sbox2,256,Inv_Sbox2); - + */ + uchar fX[h2]; @@ -190,22 +320,38 @@ void decrypt(uchar* seq_in, uchar *seq_out, int len,uchar* RM1,int *Pbox, int *P - for(int a=0;a(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; + case 128: + for(i=0;i(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,1); + else + encrypt<128*128>(seq, seq2,len,RM1,Pbox,PboxRM,Sbox1,Sbox2,0); + + } + break; + } + time_encrypt+=TimeStop(t); + //cout<<"Time encrypt "<< + cout<<(double)imsize*nb_test/time_encrypt<<"\t"; - uchar Secretkey[key_size]; - uchar counter[key_size]; + if(lena) { + for(int i=0;i(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + else + decrypt<4*4>(seq2,seq,len,RM2,Pbox,PboxRM,Inv_Sbox1,Inv_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,Inv_Sbox1,Inv_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,Inv_Sbox1,Inv_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,Inv_Sbox1,Inv_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,Inv_Sbox1,Inv_Sbox2,0); + } + break; + case 128: + for(i=0;i(seq2, seq,len,RM2,Pbox,PboxRM,Sbox1,Sbox2,0); + else + decrypt<128*128>(seq2,seq,len,RM2,Pbox,PboxRM,Inv_Sbox1,Inv_Sbox2,0); + } + break; } - Dynamickeygenerationnew(Secretkey, counter); + time_decrypt+=TimeStop(t); + //cout<<"Time decrypt " + cout<<(double)imsize*nb_test/time_decrypt<<"\t"; + + if(lena) { + for(int i=0;i