X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/Cipher_code.git/blobdiff_plain/a192918e4a83ec711dd109921ebc9fdb39fa6512..8ab61a3fc84bc21726008bf15700c3ae546b8f08:/Old_one_round/one_round_light_auth.cpp diff --git a/Old_one_round/one_round_light_auth.cpp b/Old_one_round/one_round_light_auth.cpp index 138efb6..97abebf 100644 --- a/Old_one_round/one_round_light_auth.cpp +++ b/Old_one_round/one_round_light_auth.cpp @@ -129,49 +129,37 @@ template<int h> void myhash(uchar *X, uchar* RM2, uchar *Sbox2) { uchar Y[h]; uchar X2[h]; + uchar Z[h]; for(int k=0;k<h;k++) { - for(int a=0;a<h;a+=4) { + for(int a=0;a<h;a++) { X2[a]=RM2[a]^X[k*h+a]; - X2[a+1]=RM2[a+1]^X[k*h+a+1]; - X2[a+2]=RM2[a+2]^X[k*h+a+2]; - X2[a+3]=RM2[a+3]^X[k*h+a+3]; } Y[0]=X2[0]^X2[h-1]; - Y[1]=Y[0]^X2[0]; - Y[2]=Y[1]^X2[1]; - Y[3]=Y[2]^X2[2]; - for(int a=4;a<h;a+=4) { + for(int a=1;a<h;a++) { Y[a]=Y[a-1]^X2[a-1]; - Y[a+1]=Y[a]^X2[a]; - Y[a+2]=Y[a+1]^X2[a+1]; - Y[a+3]=Y[a+2]^X2[a+2]; } - for(int a=0;a<h;a+=4) { + for(int a=0;a<h;a++) { Y[a]=Sbox2[Y[a]]; - Y[a+1]=Sbox2[Y[a+1]]; - Y[a+2]=Sbox2[Y[a+2]]; - Y[a+3]=Sbox2[Y[a+3]]; + } + + + Z[h-1]=Y[h-1]^Y[0]; + for(int a=h-1;a>0;a--) { + Z[a-1]=Z[a]^Y[a]; } - - - RM2[h-1]=Y[h-1]^Y[0]; - RM2[h-2]=RM2[h-1]^Y[h-1]; - RM2[h-3]=RM2[h-2]^Y[h-2]; - RM2[h-4]=RM2[h-3]^Y[h-3]; - for(int a=h-4;a>0;a-=4) { - RM2[a-1]=RM2[a]^Y[a]; - RM2[a-2]=RM2[a-1]^Y[a-1]; - RM2[a-3]=RM2[a-2]^Y[a-2]; - RM2[a-4]=RM2[a-3]^Y[a-3]; + for(int a=0;a<h;a++) { + RM2[a]=Z[a]; } + + } }