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

Private GIT Repository
rc4_hash2
[Cipher_code.git] / OneRoundIoT / OneRound / rc4_hash.cpp
index 3852dd20730c13d504d4d6cd2544d9aa3b13c5e2..0084c37178019ff751f98b0a2242032eb5da1b8b 100644 (file)
@@ -126,12 +126,12 @@ void prga(uchar *sc, uchar *X, int ldata, uchar *r, int h) {
   uchar j0=0;
 
   for (int it=0; it<ldata; it++) {
   uchar j0=0;
 
   for (int it=0; it<ldata; it++) {
-    i0 = ((i0+1)+X[(i0+1)%h]);
+    i0 = X[(i0+1)&(h-1)];
     j0 = (j0 + sc[i0]);
     uchar tmp = sc[i0];
     sc[i0] = sc[j0];
     sc[j0] = tmp;
     j0 = (j0 + sc[i0]);
     uchar tmp = sc[i0];
     sc[i0] = sc[j0];
     sc[j0] = tmp;
-    r[it]=sc[(sc[i0]+sc[j0])&0xFF];
+    r[it]=sc[i0];//sc[(sc[i0]+sc[j0])&255];
   }
 }
 
   }
 }
 
@@ -178,6 +178,8 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, uchar *S, int h) {
      */
      //     if(it==40)
      //  exit(0);
      */
      //     if(it==40)
      //  exit(0);
+
+
      for(int a=0;a<h;a+=4) {
        RM1[a]=S[RM1[a]];
        RM1[a+1]=S[RM1[a+1]];
      for(int a=0;a<h;a+=4) {
        RM1[a]=S[RM1[a]];
        RM1[a+1]=S[RM1[a+1]];
@@ -238,7 +240,6 @@ int main(int argc, char** argv) {
     Secretkey[i]=lrand48()&0xFF;
     counter[i]=lrand48()&0xFF;
   }
     Secretkey[i]=lrand48()&0xFF;
     counter[i]=lrand48()&0xFF;
   }
-
   
   int size = 64;
   uchar DK[size];
   
   int size = 64;
   uchar DK[size];
@@ -323,7 +324,10 @@ int main(int argc, char** argv) {
   for (int i = 0; i < 64 ; i++) {
 //    DK[i]=digest[i];
     DK[i]=mix[i];
   for (int i = 0; i < 64 ; i++) {
 //    DK[i]=digest[i];
     DK[i]=mix[i];
+    //cout<<(int)DK[i]<<" ";
   }
   }
+  //cout<<endl;
+