X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Cipher_code.git/blobdiff_plain/d7b1b0a02049045042632ad2f2d86c6489c20cde..010a3351aa2d70ab318dfffc2e8b530a9393834c:/OneRoundIoT/OneRound/rc4_hash3.cpp diff --git a/OneRoundIoT/OneRound/rc4_hash3.cpp b/OneRoundIoT/OneRound/rc4_hash3.cpp index 07269d0..3cb1e07 100644 --- a/OneRoundIoT/OneRound/rc4_hash3.cpp +++ b/OneRoundIoT/OneRound/rc4_hash3.cpp @@ -138,7 +138,7 @@ void prga(uchar *sc, uchar *X, int ldata, uchar *r, int h) { inline uchar circ(uchar x,int n) {return (x << n) | (x >> (8 - n));} -uint64_t xorshift64( const uint64_t state) +inline static uint64_t xorshift64( const uint64_t state) { uint64_t x = state; x^= x << 13; @@ -148,7 +148,7 @@ uint64_t xorshift64( const uint64_t state) } -static inline uint64_t splitmix64(uint64_t index) { +inline static uint64_t splitmix64(uint64_t index) { uint64_t z = (index + UINT64_C(0x9E3779B97F4A7C15)); z = (z ^ (z >> 30)) * UINT64_C(0xBF58476D1CE4E5B9); z = (z ^ (z >> 27)) * UINT64_C(0x94D049BB133111EB); @@ -163,31 +163,20 @@ static inline uint64_t splitmix64(uint64_t index) { //the proposed hash function, which is based on DSD structure. Sensitivity is ensured by employing the binary diffusion -void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, uchar *S, int h) { +void hash_DSD_BIN(uint64_t * ss, uint64_t* rm,int len,int h) { - // Goal: Calculate the hash value - // Output: RM (hash value) - uchar X[h]; - int ind1,ind2; - - - uint64_t *rm=(uint64_t*)RM1; - // uint64_t *xx=(uint64_t*)X; - uint64_t *ss=(uint64_t*)seq_in; - - - int a; + int ind1=0; + for(int it=0;it>3; - // Mix with dynamic RM - rm[0]=rm[0]^ss[ind1]; + rm[0]=rm[h-1]^ss[ind1]; rm[0]=xorshift64(rm[0] ); - for(a=1;a<(h>>3);a++) { - rm[a]=rm[a]^ss[ind1+a]; - rm[a]=xorshift64(rm[a] ^ rm[a-1]); + for(int a=1;a>3); }