A
lgorithmique
N
umérique
D
istribuée
Private GIT Repository
projects
/
Cipher_code.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new
[Cipher_code.git]
/
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 fbb517f053f291e54dccc1a584ff4e8374effb11..0bd5788a22481663ae73bb12fd46de6a3bfcd4ac 100644
(file)
--- a/
OneRoundIoT/OneRound/one_round_hash_new.cpp
+++ b/
OneRoundIoT/OneRound/one_round_hash_new.cpp
@@
-168,52
+168,40
@@
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];
}
X[a+3]=RM1[a+3]^seq_in[ind2+a+3];
}
-/* Y[0]=Sbox1[X[0]^X[h-1]];
- for(int a=1;a<h;a++) {
- Y[a]=Sbox1[Y[a-1]^X[a-1]];
- }
- Z[h-1]=Sbox2[Y[h-1]^Y[0]];
- for(int a=h-1;a>0;a--) {
- Z[a-1]=Sbox2[Z[a]^Y[a]];
- }
-*/
Y[0]=X[0]^X[h-1];
Y[0]=X[0]^X[h-1];
- for(int a=1;a<h;a++) {
+ Y[1]=Y[0]^X[0];
+ Y[2]=Y[1]^X[1];
+ Y[3]=Y[2]^X[2];
+ for(int a=4;a<h;a+=4) {
Y[a]=Y[a-1]^X[a-1];
Y[a]=Y[a-1]^X[a-1];
+ Y[a+1]=Y[a]^X[a];
+ Y[a+2]=Y[a+1]^X[a+1];
+ Y[a+3]=Y[a+2]^X[a+2];
}
for(int a=0;a<h;a+=4) {
Y[a]=Sbox1[Y[a]];
}
for(int a=0;a<h;a+=4) {
Y[a]=Sbox1[Y[a]];
- //Y[a]=circ(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];
+ Y[a+1]=Sbox1[Y[a+1]];
+ Y[a+2]=Sbox1[Y[a+2]];
+ Y[a+3]=Sbox1[Y[a+3]];
}
}
+
- for(int a=0;a<h;a+=4) {
- Z[a]=Sbox2[Z[a]];
- //Z[a]=circ(Z[a],7);
+ RM1[h-1]=Y[h-1]^Y[0];
+ RM1[h-2]=RM1[h-1]^Y[h-1];
+ RM1[h-3]=RM1[h-2]^Y[h-2];
+ RM1[h-4]=RM1[h-3]^Y[h-3];
+ for(int a=h-4;a>0;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];
}
}
-
+
- for(int a=0;a<h;a+=4) {
- /* RM1[a]=Z[a];
- RM1[a+1]=Z[a+1];
- RM1[a+2]=Z[a+2];
- RM1[a+3]=Z[a+3];
- */
-
- RM1[a]=Z[a]^RM1[PboxRM[a]];
- RM1[a+1]=Z[a+1]^RM1[PboxRM[a+1]];
- RM1[a+2]=Z[a+2]^RM1[PboxRM[a+2]];
- RM1[a+3]=Z[a+3]^RM1[PboxRM[a+3]];
-
- }
}
}
@@
-240,7
+228,6
@@
int main(int argc, char** argv) {
for(int i=1; i<argc; i++){
if(strncmp(argv[i],"nb",2)==0) nb_test = atoi(&(argv[i][2])); //nb of test
for(int i=1; i<argc; i++){
if(strncmp(argv[i],"nb",2)==0) nb_test = atoi(&(argv[i][2])); //nb of test
- if(strncmp(argv[i],"ctr",3)==0) ctr = atoi(&(argv[i][3])); //CTR ? 1 otherwise CBC like
if(strncmp(argv[i],"h",1)==0) h = atoi(&(argv[i][1])); //size of block
if(strncmp(argv[i],"sizebuf",7)==0) size_buf = atoi(&(argv[i][7])); //SIZE of the buffer
if(strncmp(argv[i],"lena",4)==0) lena = atoi(&(argv[i][4])); //Use Lena or buffer
if(strncmp(argv[i],"h",1)==0) h = atoi(&(argv[i][1])); //size of block
if(strncmp(argv[i],"sizebuf",7)==0) size_buf = atoi(&(argv[i][7])); //SIZE of the buffer
if(strncmp(argv[i],"lena",4)==0) lena = atoi(&(argv[i][4])); //Use Lena or buffer