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

Private GIT Repository
new
[Cipher_code.git] / OneRoundIoT / OneRound / rc4_hash.cpp
index d088af7d744ebd13f69148e1fb2ee128bc31de18..3852dd20730c13d504d4d6cd2544d9aa3b13c5e2 100644 (file)
@@ -121,12 +121,12 @@ void rc4keyperm(uchar *key,int len, int rp,int *sc, int size_DK) {
   }
 }
 
   }
 }
 
-void prga(uchar *sc, int ldata, uchar *r) {
+void prga(uchar *sc, uchar *X, int ldata, uchar *r, int h) {
   uchar i0=0;
   uchar j0=0;
 
   for (int it=0; it<ldata; it++) {
   uchar i0=0;
   uchar j0=0;
 
   for (int it=0; it<ldata; it++) {
-    i0 = (i0+1);
+    i0 = ((i0+1)+X[(i0+1)%h]);
     j0 = (j0 + sc[i0]);
     uchar tmp = sc[i0];
     sc[i0] = sc[j0];
     j0 = (j0 + sc[i0]);
     uchar tmp = sc[i0];
     sc[i0] = sc[j0];
@@ -169,7 +169,7 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, uchar *S, int h) {
      //cout<<endl;
      
 
      //cout<<endl;
      
 
-     prga(S, h, RM1);
+     prga(S, X,h, RM1,h);
      /*
      for(int i=0;i<h;i++) {
          cout<<(int)RM1[i]<<" ";
      /*
      for(int i=0;i<h;i++) {
          cout<<(int)RM1[i]<<" ";
@@ -343,7 +343,7 @@ int main(int argc, char** argv) {
 
 
   
 
 
   
-  prga(sc, h, RM1);
+  prga(sc, sc,h,RM1,h);