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

Private GIT Repository
update openssl
[Cipher_code.git] / OneRoundIoT / EnhancedOneRound / enhanced_oneround.cpp
index 22a7a90fbb3270021aaaf0827a7cfb935873748a..751c07180c80e6990daa6c75d2b1bc110ad17511 100644 (file)
@@ -73,18 +73,22 @@ uint xorshift32(const uint t)
   return x;
 }
 
   return x;
 }
 
-ulong xorshift64(ulong t)
+
+ulong xorseed;
+
+ulong xorshift64()
 {
         /* Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" */
 {
         /* 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
 
 
         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) {
 __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;
 }
 
   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++) {
 
     
     for(int a=0;a<(h>>3);a++) {
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm1[a]=myrand;
       rm1[a]=myrand;
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm2[a]=myrand;
     }  
 
       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++) {
 
 
     for(int a=0;a<(h>>3);a++) {
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm1[a]=myrand;
       rm1[a]=myrand;
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm2[a]=myrand;
     }
 
       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++) {
 
     
     for(int a=0;a<(h>>3);a++) {
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm1[a]=myrand;
       rm1[a]=myrand;
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm2[a]=myrand;
     }  
 
       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++) {
 
 
     for(int a=0;a<(h>>3);a++) {
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm1[a]=myrand;
       rm1[a]=myrand;
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm2[a]=myrand;
     }
 
       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++) {
 
     
     for(int a=0;a<(h>>3);a++) {
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm1[a]=myrand;
       rm1[a]=myrand;
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm2[a]=myrand;
     }  
 
       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++) {
 
     
     for(int a=0;a<(h>>3);a++) {
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm1[a]=myrand;
       rm1[a]=myrand;
-      myrand=lehmer64();
+      myrand=xorshift64();
       rm2[a]=myrand;
     }  
     
       rm2[a]=myrand;
     }  
     
@@ -1958,8 +1962,8 @@ int main(int argc, char** argv) {
   inverse_tables(Sbox2,256,Inv_Sbox2);
 
 
   inverse_tables(Sbox2,256,Inv_Sbox2);
 
 
-
-  lehmer64_seed(myrand);
+  xorseed=myrand;
+//  lehmer64_seed(myrand);
   time_encrypt=0;
   t=TimeStart();
 
   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);
   }
 
     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) {
   time_decrypt=0;
   t=TimeStart();
   switch(h) {