X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Cipher_code.git/blobdiff_plain/7b02553c06f361be8c2f181d0a6cb4cd6b4fdb39..50aed0e4bc4897c2ccad084a80e1cac8bfe088e3:/OneRoundIoT/OneRound/one_round_hash_new.cpp diff --git a/OneRoundIoT/OneRound/one_round_hash_new.cpp b/OneRoundIoT/OneRound/one_round_hash_new.cpp index a76f70a..84e1ee6 100644 --- a/OneRoundIoT/OneRound/one_round_hash_new.cpp +++ b/OneRoundIoT/OneRound/one_round_hash_new.cpp @@ -135,7 +135,7 @@ void prga(uchar *sc, int ldata, uchar *r) { } } - +inline uchar circ(uchar x,int n) {return (x << n) | (x >> (8 - n));} //the proposed hash function, which is based on DSD structure. Sensitivity is ensured by employing the binary diffusion @@ -168,50 +168,68 @@ void hash_DSD_BIN(uchar* seq_in, uchar* RM1,int len, int *PboxRM, uchar *Sbox1, X[a+3]=RM1[a+3]^seq_in[ind2+a+3]; } -/* Y[0]=Sbox1[X[0]^X[h-1]]; - for(int a=1;a0;a--) { - Z[a-1]=Sbox2[Z[a]^Y[a]]; - } -*/ Y[0]=X[0]^X[h-1]; - for(int a=1;a0;a--) { - Z[a-1]=Z[a]^Y[a]; - } + - for(int a=0;a0;a-=4) { + RM1[a-1]=RM1[a]^Y[a]; + RM1[a-2]=RM1[a-1]^Y[a-1]; + RM1[a-3]=RM1[a-2]^Y[a-2]; + RM1[a-4]=RM1[a-3]^Y[a-3]; } + + // Z[h-1]=Y[h-1]^Y[0]; + // Z[h-2]=Z[h-1]^Y[h-1]; + // for(int a=h-2;a>0;a-=2) { + // Z[a-1]=Z[a]^Y[a]; + // Z[a-2]=Z[a-1]^Y[a-1]; + // } - for(int a=0;a0;a-=4) { + // Z[a-1]=Z[a]^Y[a]; + // Z[a]=Z[a+1]^Y[a+1]; + // Z[a+1]=Z[a+2]^Y[a+2]; + // Z[a+2]=Z[a+3]^Y[a+3]; + // } + // */ + + // for(int a=0;a