X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Cipher_code.git/blobdiff_plain/f468314fbb129d22a901c316d2276d25923c9f47..9763d3e589f51f4c9b93caee04ef268b525d9f0c:/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp?ds=sidebyside diff --git a/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp b/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp index 22a7a90..751c071 100644 --- a/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp +++ b/OneRoundIoT/EnhancedOneRound/enhanced_oneround.cpp @@ -73,18 +73,22 @@ uint xorshift32(const uint t) return x; } -ulong xorshift64(ulong t) + +ulong xorseed; + +ulong xorshift64() { /* Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" */ - ulong x = t; + ulong x = xorseed; x ^= x >> 12; // a x ^= x << 25; // b x ^= x >> 27; // c - return x; + return xorseed=x; } +/* __uint128_t g_lehmer64_state; inline uint64_t splitmix64_stateless(uint64_t index) { @@ -106,7 +110,7 @@ inline uint64_t lehmer64() { return g_lehmer64_state >> 64; } - +*/ @@ -205,9 +209,9 @@ void encrypt_ecb_prng(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbo for(int a=0;a<(h>>3);a++) { - myrand=lehmer64(); + myrand=xorshift64(); rm1[a]=myrand; - myrand=lehmer64(); + myrand=xorshift64(); rm2[a]=myrand; } @@ -331,9 +335,9 @@ void decrypt_ecb_prng(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pb for(int a=0;a<(h>>3);a++) { - myrand=lehmer64(); + myrand=xorshift64(); rm1[a]=myrand; - myrand=lehmer64(); + myrand=xorshift64(); rm2[a]=myrand; } @@ -457,9 +461,9 @@ void encrypt_ecb_rm(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbox, for(int a=0;a<(h>>3);a++) { - myrand=lehmer64(); + myrand=xorshift64(); rm1[a]=myrand; - myrand=lehmer64(); + myrand=xorshift64(); rm2[a]=myrand; } @@ -583,9 +587,9 @@ void decrypt_ecb_rm(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pbox for(int a=0;a<(h>>3);a++) { - myrand=lehmer64(); + myrand=xorshift64(); rm1[a]=myrand; - myrand=lehmer64(); + myrand=xorshift64(); rm2[a]=myrand; } @@ -870,9 +874,9 @@ void encrypt_cbc_prng(uchar* seq_in, uchar *seq_out, int len,uchar* RM, int *Pbo for(int a=0;a<(h>>3);a++) { - myrand=lehmer64(); + myrand=xorshift64(); rm1[a]=myrand; - myrand=lehmer64(); + myrand=xorshift64(); rm2[a]=myrand; } @@ -1039,9 +1043,9 @@ void decrypt_cbc_prng(uchar* seq_in, uchar *seq_out, int len, uchar* RM, int *Pb for(int a=0;a<(h>>3);a++) { - myrand=lehmer64(); + myrand=xorshift64(); rm1[a]=myrand; - myrand=lehmer64(); + myrand=xorshift64(); rm2[a]=myrand; } @@ -1958,8 +1962,8 @@ int main(int argc, char** argv) { inverse_tables(Sbox2,256,Inv_Sbox2); - - lehmer64_seed(myrand); + xorseed=myrand; +// lehmer64_seed(myrand); time_encrypt=0; t=TimeStart(); @@ -2074,8 +2078,9 @@ int main(int argc, char** argv) { store_RGB_pixmap("lena2.ppm", data_R, data_G, data_B, width, height); } - - lehmer64_seed(myrand); + + xorseed=myrand; + // lehmer64_seed(myrand); time_decrypt=0; t=TimeStart(); switch(h) {