From: couturie <you@example.com> Date: Wed, 5 Dec 2018 17:53:15 +0000 (+0100) Subject: update X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Cipher_code.git/commitdiff_plain/f468314fbb129d22a901c316d2276d25923c9f47?hp=5a7eea601652ce1be1864e6c75e143659384ab3b update --- diff --git a/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp b/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp index 389a223..22a7a90 100644 --- a/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp +++ b/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp @@ -32,8 +32,8 @@ using namespace std; int key_size=256; int nb_test=1; int cbcprng=0; -int cbc=0; -int ecb=0; +int cbcrm=0; +int ecbrm=0; int ecbprng=0; @@ -187,7 +187,7 @@ void prga(uchar *sc, int ldata, uchar *r) { template<int h> -void encrypt_ecb(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, ulong myrand, int debug) { +void encrypt_ecb_prng(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, ulong myrand, int debug) { uchar X[h]; uchar Y[h]; @@ -313,7 +313,259 @@ void encrypt_ecb(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, in template<int h> -void decrypt_ecb(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, uchar *Inv_Sbox1, uchar *Inv_Sbox2, ulong myrand, int debug) { +void decrypt_ecb_prng(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, uchar *Inv_Sbox1, uchar *Inv_Sbox2, ulong myrand, int debug) { + + uchar invfX[h]; + uchar invgY[h]; + uchar fX[h]; + uchar gY[h]; + uchar RM1[h]; + uchar RM2[h]; + uchar tmp[h]; + ulong *rm1=(ulong*)RM1; + ulong *rm2=(ulong*)RM2; + + for(int it=0;it<len/2;it++) { + int ind1=Pbox[it]*h; + int ind2=Pbox[it+len/2]*h; + + + for(int a=0;a<(h>>3);a++) { + myrand=lehmer64(); + rm1[a]=myrand; + myrand=lehmer64(); + rm2[a]=myrand; + } + + + + for(int a=0;a<h;a+=4) { + gY[a]=seq_in[ind2+a]; + gY[a+1]=seq_in[ind2+a+1]; + gY[a+2]=seq_in[ind2+a+2]; + gY[a+3]=seq_in[ind2+a+3]; + } + + for(int a=0;a<h;a+=4) { + fX[a]=seq_in[ind1+a]; + fX[a+1]=seq_in[ind1+a+1]; + fX[a+2]=seq_in[ind1+a+2]; + fX[a+3]=seq_in[ind1+a+3]; + } + + + + + for(int a=0;a<h;a+=4) { + tmp[a]=Inv_Sbox1[gY[a]]^RM2[a]; + tmp[a+1]=Inv_Sbox1[gY[a+1]]^RM2[a+1]; + tmp[a+2]=Inv_Sbox1[gY[a+2]]^RM2[a+2]; + tmp[a+3]=Inv_Sbox1[gY[a+3]]^RM2[a+3]; + } + + + for(int a=0;a<h;a+=4) { + invgY[a]=Inv_Sbox2[tmp[a]]^fX[a]; + invgY[a+1]=Inv_Sbox2[tmp[a+1]]^fX[a+1]; + invgY[a+2]=Inv_Sbox2[tmp[a+2]]^fX[a+2]; + invgY[a+3]=Inv_Sbox2[tmp[a+3]]^fX[a+3]; + } + + + + /* for(int a=0;a<h;a+=4) { + invgY[a]=Inv_Sbox2[Inv_Sbox1[gY[a]]^RM2[a]]^fX[a]; + invgY[a+1]=Inv_Sbox2[Inv_Sbox1[gY[a+1]]^RM2[a+1]]^fX[a+1]; + invgY[a+2]=Inv_Sbox2[Inv_Sbox1[gY[a+2]]^RM2[a+2]]^fX[a+2]; + invgY[a+3]=Inv_Sbox2[Inv_Sbox1[gY[a+3]]^RM2[a+3]]^fX[a+3]; + } */ + + + + + for(int a=0;a<h;a+=4) { + tmp[a]=Inv_Sbox2[fX[a]]^invgY[a]; + tmp[a+1]=Inv_Sbox2[fX[a+1]]^invgY[a+1]; + tmp[a+2]=Inv_Sbox2[fX[a+2]]^invgY[a+2]; + tmp[a+3]=Inv_Sbox2[fX[a+3]]^invgY[a+3]; + + } + + for(int a=0;a<h;a+=4) { + invfX[a]=Inv_Sbox1[tmp[a]]^RM1[a]; + invfX[a+1]=Inv_Sbox1[tmp[a+1]]^RM1[a+1]; + invfX[a+2]=Inv_Sbox1[tmp[a+2]]^RM1[a+2]; + invfX[a+3]=Inv_Sbox1[tmp[a+3]]^RM1[a+3]; + + } + + + /* + for(int a=0;a<h;a+=4) { + invfX[a]=Inv_Sbox1[Inv_Sbox2[fX[a]]^invgY[a]]^RM1[a]; + invfX[a+1]=Inv_Sbox1[Inv_Sbox2[fX[a+1]]^invgY[a+1]]^RM1[a+1]; + invfX[a+2]=Inv_Sbox1[Inv_Sbox2[fX[a+2]]^invgY[a+2]]^RM1[a+2]; + invfX[a+3]=Inv_Sbox1[Inv_Sbox2[fX[a+3]]^invgY[a+3]]^RM1[a+3]; + + } + */ + + for(int a=0;a<h;a+=4) { + seq_out[ind2+a]=invfX[a]; + seq_out[ind2+a+1]=invfX[a+1]; + seq_out[ind2+a+2]=invfX[a+2]; + seq_out[ind2+a+3]=invfX[a+3]; + } + + for(int a=0;a<h;a+=4) { + seq_out[ind1+a]=invgY[a]; + seq_out[ind1+a+1]=invgY[a+1]; + seq_out[ind1+a+2]=invgY[a+2]; + seq_out[ind1+a+3]=invgY[a+3]; + } + + + + } + + + + +} + + + + + + +template<int h> +void encrypt_ecb_rm(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, ulong myrand, int debug) { + + uchar X[h]; + uchar Y[h]; + uchar fX[h]; + uchar gY[h]; + uchar RM1[h]; + uchar RM2[h]; + uchar tmp[h]; + ulong *rm1=(ulong*)RM1; + ulong *rm2=(ulong*)RM2; + + for(int it=0;it<len/2;it++) { + int ind1=Pbox[it]*h; + int ind2=Pbox[it+len/2]*h; + + + for(int a=0;a<(h>>3);a++) { + myrand=lehmer64(); + rm1[a]=myrand; + myrand=lehmer64(); + rm2[a]=myrand; + } + + + + for(int a=0;a<h;a+=4) { + X[a]=seq_in[ind2+a]; + X[a+1]=seq_in[ind2+a+1]; + X[a+2]=seq_in[ind2+a+2]; + X[a+3]=seq_in[ind2+a+3]; + } + + for(int a=0;a<h;a+=4) { + Y[a]=seq_in[ind1+a]; + Y[a+1]=seq_in[ind1+a+1]; + Y[a+2]=seq_in[ind1+a+2]; + Y[a+3]=seq_in[ind1+a+3]; + } + + + for(int a=0;a<h;a+=4) { + tmp[a]=Sbox1[X[a]^RM1[a]]; + tmp[a+1]=Sbox1[X[a+1]^RM1[a+1]]; + tmp[a+2]=Sbox1[X[a+2]^RM1[a+2]]; + tmp[a+3]=Sbox1[X[a+3]^RM1[a+3]]; + } + + for(int a=0;a<h;a+=4) { + fX[a]=Sbox2[tmp[a]^Y[a]]; + fX[a+1]=Sbox2[tmp[a+1]^Y[a+1]]; + fX[a+2]=Sbox2[tmp[a+2]^Y[a+2]]; + fX[a+3]=Sbox2[tmp[a+3]^Y[a+3]]; + } + + + /*for(int a=0;a<h;a+=4) { + fX[a]=Sbox2[Sbox1[X[a]^RM1[a]]^Y[a]]; + fX[a+1]=Sbox2[Sbox1[X[a+1]^RM1[a+1]]^Y[a+1]]; + fX[a+2]=Sbox2[Sbox1[X[a+2]^RM1[a+2]]^Y[a+2]]; + fX[a+3]=Sbox2[Sbox1[X[a+3]^RM1[a+3]]^Y[a+3]]; + } + */ + + + + for(int a=0;a<h;a+=4) { + tmp[a]=Sbox2[fX[a]^Y[a]]; + tmp[a+1]=Sbox2[fX[a+1]^Y[a+1]]; + tmp[a+2]=Sbox2[fX[a+2]^Y[a+2]]; + tmp[a+3]=Sbox2[fX[a+3]^Y[a+3]]; + + } + for(int a=0;a<h;a+=4) { + gY[a]=Sbox1[tmp[a]^RM2[a]]; + gY[a+1]=Sbox1[tmp[a+1]^RM2[a+1]]; + gY[a+2]=Sbox1[tmp[a+2]^RM2[a+2]]; + gY[a+3]=Sbox1[tmp[a+3]^RM2[a+3]]; + + } + + + /* for(int a=0;a<h;a+=4) { + gY[a]=Sbox1[Sbox2[fX[a]^Y[a]]^RM2[a]]; + gY[a+1]=Sbox1[Sbox2[fX[a+1]^Y[a+1]]^RM2[a+1]]; + gY[a+2]=Sbox1[Sbox2[fX[a+2]^Y[a+2]]^RM2[a+2]]; + gY[a+3]=Sbox1[Sbox2[fX[a+3]^Y[a+3]]^RM2[a+3]]; + + } */ + + + + + + + for(int a=0;a<h;a+=4) { + seq_out[ind2+a]=gY[a]; + seq_out[ind2+a+1]=gY[a+1]; + seq_out[ind2+a+2]=gY[a+2]; + seq_out[ind2+a+3]=gY[a+3]; + } + + for(int a=0;a<h;a+=4) { + seq_out[ind1+a]=fX[a]; + seq_out[ind1+a+1]=fX[a+1]; + seq_out[ind1+a+2]=fX[a+2]; + seq_out[ind1+a+3]=fX[a+3]; + } + + + + } + + + + +} + + + + + + + + +template<int h> +void decrypt_ecb_rm(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, uchar *Inv_Sbox1, uchar *Inv_Sbox2, ulong myrand, int debug) { uchar invfX[h]; uchar invgY[h]; @@ -905,7 +1157,7 @@ void decrypt_cbc_prng(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pb template<int h> -void encrypt_cbc_rm(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, uint myrand, int debug) { +void encrypt_cbc_rm(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, uchar *IV, int debug) { uchar X[h]; uchar Y[h]; @@ -918,30 +1170,30 @@ void encrypt_cbc_rm(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, uchar tmp[h]; - int gg=(Sbox1[12]&(h-1))*(Sbox2[32]&(h-1)); for(int a=0;a<h;a+=4) { - IV1[a]=RM[gg+a]; - IV1[a+1]=RM[gg+a+1]; - IV1[a+2]=RM[gg+a+2]; - IV1[a+3]=RM[gg+a+3]; + IV1[a]=IV[a]; + IV1[a+1]=IV[a+1]; + IV1[a+2]=IV[a+2]; + IV1[a+3]=IV[a+3]; } - gg=gg=(Sbox1[102]&(h-1))*(Sbox2[72]&(h-1)); for(int a=0;a<h;a+=4) { - IV2[a]=RM[gg+a]; - IV2[a+1]=RM[gg+a+1]; - IV2[a+2]=RM[gg+a+2]; - IV2[a+3]=RM[gg+a+3]; + IV2[a]=IV[h+a]; + IV2[a+1]=IV[h+a+1]; + IV2[a+2]=IV[h+a+2]; + IV2[a+3]=IV[h+a+3]; } for(int it=0;it<len/2;it++) { int ind1=Pbox[it]*h; int ind2=Pbox[it+len/2]*h; - RM1=&RM[PboxSRM[it]*h+Sbox1[it&255]]; - RM2=&RM[PboxSRM[len/2-it]*h+Sbox2[it&255]]; + + RM1=&RM[PboxSRM[it]*h]; + RM2=&RM[h*h+PboxSRM[len/2-it]*h]; + for(int a=0;a<h;a+=4) { X[a]=seq_in[ind2+a]; @@ -1084,7 +1336,7 @@ void encrypt_cbc_rm(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, template<int h> -void decrypt_cbc_rm(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, uchar *Inv_Sbox1, uchar *Inv_Sbox2, uint myrand, int debug) { +void decrypt_cbc_rm(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pbox, int *PboxSRM, uchar *Sbox1, uchar *Sbox2, uchar *Inv_Sbox1, uchar *Inv_Sbox2, uchar *IV, int debug) { uchar invfX[h]; uchar invgY[h]; @@ -1096,33 +1348,30 @@ void decrypt_cbc_rm(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pbox uchar *RM2; uchar tmp[h]; - int gg=(Sbox1[12]&(h-1))*(Sbox2[32]&(h-1)); for(int a=0;a<h;a+=4) { - IV1[a]=RM[gg+a]; - IV1[a+1]=RM[gg+a+1]; - IV1[a+2]=RM[gg+a+2]; - IV1[a+3]=RM[gg+a+3]; + IV1[a]=IV[a]; + IV1[a+1]=IV[a+1]; + IV1[a+2]=IV[a+2]; + IV1[a+3]=IV[a+3]; } - gg=gg=(Sbox1[102]&(h-1))*(Sbox2[72]&(h-1)); for(int a=0;a<h;a+=4) { - IV2[a]=RM[gg+a]; - IV2[a+1]=RM[gg+a+1]; - IV2[a+2]=RM[gg+a+2]; - IV2[a+3]=RM[gg+a+3]; + IV2[a]=IV[h+a]; + IV2[a+1]=IV[h+a+1]; + IV2[a+2]=IV[h+a+2]; + IV2[a+3]=IV[h+a+3]; } - for(int it=0;it<len/2;it++) { int ind1=Pbox[it]*h; int ind2=Pbox[it+len/2]*h; - RM1=&RM[PboxSRM[it]*h+Sbox1[it&255]]; - RM2=&RM[PboxSRM[len/2-it]*h+Sbox2[it&255]]; + RM1=&RM[PboxSRM[it]*h]; + RM2=&RM[h*h+PboxSRM[len/2-it]*h]; @@ -1510,19 +1759,20 @@ int main(int argc, char** argv) { for(int i=1; i<argc; i++){ if(strncmp(argv[i],"nb",2)==0) nb_test = atoi(&(argv[i][2])); //nb of test - if(strncmp(argv[i],"cbc",3)==0) cbc=1; - if(strncmp(argv[i],"cbcprng",7)==0) {cbcprng=1;cbc=0;} - if(strncmp(argv[i],"ecb",3)==0) ecb = 1; - if(strncmp(argv[i],"ecbprng",7)==0) {ecbprng=1; ecb=0;} + if(strncmp(argv[i],"cbcrm",5)==0) cbcrm=1; + if(strncmp(argv[i],"cbcprng",7)==0) {cbcprng=1;cbcrm=0;} + if(strncmp(argv[i],"ecbrm",5)==0) ecbrm = 1; + if(strncmp(argv[i],"ecbprng",7)==0) {ecbprng=1; ecbrm=0;} if(strncmp(argv[i],"h",1)==0) h = atoi(&(argv[i][1])); //size of block if(strncmp(argv[i],"sizebuf",7)==0) size_buf = atoi(&(argv[i][7])); //SIZE of the 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("cbc %d\n",cbc); + printf("cbcrm %d\n",cbcrm); printf("cbcprng %d\n",cbcprng); - printf("ecb %d\n",ecb); + printf("ecbrm %d\n",ecbrm); + printf("ecbprng %d\n",ecbprng); printf("h %d\n",h); printf("lena %d\n",lena); printf("size_buf %d\n",size_buf); @@ -1645,8 +1895,8 @@ int main(int argc, char** argv) { uchar Inv_Sbox1[256]; uchar Inv_Sbox2[256]; uchar sc[256]; - uchar RM[h*h+256]; - + uchar RM[h*h*2+256]; + uchar IV[2*h]; ulong myrand=0; @@ -1662,7 +1912,7 @@ int main(int argc, char** argv) { rc4key(&DK[8], Sbox2, 8); rc4key(&DK[16], sc, 16); - prga(sc, h*h+256, RM); + prga(sc, h*h*2+256, RM); @@ -1720,10 +1970,12 @@ int main(int argc, char** argv) { { if(cbcprng) encrypt_cbc_prng<4>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(cbc) - encrypt_cbc_rm<4>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(ecb) - encrypt_ecb<4>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(cbcrm) + encrypt_cbc_rm<4>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,IV,0); + if(ecbrm) + encrypt_ecb_rm<4>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(ecbprng) + encrypt_ecb_prng<4>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); } break; case 8: @@ -1731,10 +1983,12 @@ int main(int argc, char** argv) { { if(cbcprng) encrypt_cbc_prng<8>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(cbc) - encrypt_cbc_rm<8>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(ecb) - encrypt_ecb<8>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(cbcrm) + encrypt_cbc_rm<8>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,IV,0); + if(ecbrm) + encrypt_ecb_rm<8>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(ecbprng) + encrypt_ecb_prng<8>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); } break; case 16: @@ -1742,10 +1996,12 @@ int main(int argc, char** argv) { { if(cbcprng) encrypt_cbc_prng<16>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(cbc) - encrypt_cbc_rm<16>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(ecb) - encrypt_ecb<16>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(cbcrm) + encrypt_cbc_rm<16>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,IV,0); + if(ecbrm) + encrypt_ecb_rm<16>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(ecbprng) + encrypt_ecb_prng<16>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); } break; case 32: @@ -1753,10 +2009,12 @@ int main(int argc, char** argv) { { if(cbcprng) encrypt_cbc_prng<32>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(cbc) - encrypt_cbc_rm<32>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(ecb) - encrypt_ecb<32>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(cbcrm) + encrypt_cbc_rm<32>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,IV,0); + if(ecbrm) + encrypt_ecb_rm<32>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(ecbprng) + encrypt_ecb_prng<32>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); } break; case 64: @@ -1764,10 +2022,12 @@ int main(int argc, char** argv) { { if(cbcprng) encrypt_cbc_prng<64>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(cbc) - encrypt_cbc_rm<64>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(ecb) - encrypt_ecb<64>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(cbcrm) + encrypt_cbc_rm<64>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,IV,0); + if(ecbrm) + encrypt_ecb_rm<64>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(ecbprng) + encrypt_ecb_prng<64>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); } break; @@ -1776,10 +2036,12 @@ int main(int argc, char** argv) { { if(cbcprng) encrypt_cbc_prng<128>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(cbc) - encrypt_cbc_rm<128>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(ecb) - encrypt_ecb<128>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(cbcrm) + encrypt_cbc_rm<128>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,IV,0); + if(ecbrm) + encrypt_ecb_rm<128>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(ecbprng) + encrypt_ecb_prng<128>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); } break; @@ -1788,10 +2050,12 @@ int main(int argc, char** argv) { { if(cbcprng) encrypt_cbc_prng<256>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(cbc) - encrypt_cbc_rm<256>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); - if(ecb) - encrypt_ecb<256>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(cbcrm) + encrypt_cbc_rm<256>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,IV,0); + if(ecbrm) + encrypt_ecb_rm<256>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); + if(ecbprng) + encrypt_ecb_prng<256>(seq, seq2,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,myrand,0); } break; @@ -1819,68 +2083,84 @@ int main(int argc, char** argv) { for(i=0;i<nb_test;i++) { if(cbcprng) decrypt_cbc_prng<4>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(cbc) - decrypt_cbc_rm<4>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(ecb) - decrypt_ecb<4>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(cbcrm) + decrypt_cbc_rm<4>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,IV,0); + if(ecbrm) + decrypt_ecb_rm<4>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(ecbprng) + decrypt_ecb_prng<4>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); } break; case 8: for(i=0;i<nb_test;i++) { if(cbcprng) decrypt_cbc_prng<8>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(cbc) - decrypt_cbc_rm<8>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(ecb) - decrypt_ecb<8>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(cbcrm) + decrypt_cbc_rm<8>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,IV,0); + if(ecbrm) + decrypt_ecb_rm<8>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(ecbprng) + decrypt_ecb_prng<8>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); } break; case 16: for(i=0;i<nb_test;i++) { if(cbcprng) decrypt_cbc_prng<16>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(cbc) - decrypt_cbc_rm<16>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(ecb) - decrypt_ecb<16>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(cbcrm) + decrypt_cbc_rm<16>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,IV,0); + if(ecbrm) + decrypt_ecb_rm<16>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(ecbprng) + decrypt_ecb_prng<16>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); } break; case 32: for(i=0;i<nb_test;i++) { - if(cbc) + if(cbcprng) decrypt_cbc_prng<32>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - else - decrypt_ecb<32>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(cbcrm) + decrypt_cbc_rm<32>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,IV,0); + if(ecbrm) + decrypt_ecb_rm<32>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(ecbprng) + decrypt_ecb_prng<32>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); } break; case 64: for(i=0;i<nb_test;i++) { if(cbcprng) decrypt_cbc_prng<64>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(cbc) - decrypt_cbc_rm<64>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(ecb) - decrypt_ecb<64>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(cbcrm) + decrypt_cbc_rm<64>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,IV,0); + if(ecbrm) + decrypt_ecb_rm<64>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(ecbprng) + decrypt_ecb_prng<64>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); } break; case 128: for(i=0;i<nb_test;i++) { if(cbcprng) decrypt_cbc_prng<128>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(cbc) - decrypt_cbc_rm<128>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(ecb) - decrypt_ecb<128>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(cbcrm) + decrypt_cbc_rm<128>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,IV,0); + if(ecbrm) + decrypt_ecb_rm<128>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(ecbprng) + decrypt_ecb_prng<128>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); } break; case 256: for(i=0;i<nb_test;i++) { if(cbcprng) decrypt_cbc_prng<256>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(cbc) - decrypt_cbc_rm<256>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); - if(ecb) - decrypt_ecb<256>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(cbcrm) + decrypt_cbc_rm<256>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,IV,0); + if(ecbrm) + decrypt_ecb_rm<256>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); + if(ecbprng) + decrypt_ecb_prng<256>(seq2,seq,len,RM,Pbox,PboxSRM,Sbox1,Sbox2,Inv_Sbox1,Inv_Sbox2,myrand,0); } break; }