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

Private GIT Repository
update
[Cipher_code.git] / OneRoundIoT / OneRound / rc4_hash2.cpp
index 10f98230d3c74bcabbe36590489545c18e4a1ed4..386ddf77d15bf464348be30ef0b67f41777a563c 100644 (file)
@@ -168,9 +168,6 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, uchar *S, int h) {
 
   // Goal: Calculate the hash value
   // Output: RM (hash value)
-
-//  uchar *X=new uchar[h2];
-//  uchar *fX=new uchar[h2];
   uchar X[h];
   int ind1,ind2;
 
@@ -182,8 +179,6 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, uchar *S, int h) {
 
   
   for(int it=0;it<len;it++) {
-    //ind1=Pbox[it]*h;
-    //ind2=Pbox[(it+len/2)]*h;
 
     ind1=(it*h)>>3;
     // Mix with dynamic RM
@@ -192,7 +187,7 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, uchar *S, int h) {
     
     for(int a=0;a<(h>>3);a++) {
        rm[a]=rm[a]^ss[ind1+a];
-       sum+=rm[a];
+       sum^=rm[a];
      }
 
 
@@ -200,8 +195,8 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, uchar *S, int h) {
 
      rm[0]=xorshift64(sum);
      for(int a=1;a<(h>>3);a++) {
-       rm[a]^=xorshift64(rm[a-1]);
-       //rm[a]^=splitmix64(rm[a-1]);
+       rm[a]=xorshift64(rm[a-1]);
+       //rm[a]=splitmix64(rm[a-1]);
      }
 
 
@@ -303,10 +298,12 @@ int main(int argc, char** argv) {
   if(change==1) {
     
     seq[4]++;
+    seq[5]--;
   }
   if(change==2) {
     
     seq[9]++;
+    seq[10]--;
   }
 
   printf("seq 4 %d\n",seq[4]);