int ind1,ind2;
- for(int a=0;a<h2;a++) {
+ for(int a=0;a<h2;a+=4) {
X[a]=Sbox1[a&0xFF]; //Warning according to the size of h2, we can be outsize of Sbox1[a]
+ X[a+1]=Sbox1[(a+1)&0xFF];
+ X[a+2]=Sbox1[(a+2)&0xFF];
+ X[a+3]=Sbox1[(a+3)&0xFF];
}
for(int a=0;a<h2;a+=4) {
- X[a]=X[Sbox1[a]];
- X[a+1]=X[Sbox1[a+1]];
- X[a+2]=X[Sbox1[a+2]];
- X[a+3]=X[Sbox1[a+3]];
+ X[a]=Sbox1[X[a]];
+ X[a+1]=Sbox1[X[a+1]];
+ X[a+2]=Sbox1[X[a+2]];
+ X[a+3]=Sbox1[X[a+3]];
}
-
- for(int a=0;a<h2;a+=4){
- fX[a]=X[a];
- fX[a+1]=X[a+1];
- fX[a+2]=X[a+2];
- fX[a+3]=X[a+3];
- }
-
+
// *(int*)&fX[0]^=it;
for(int a=0;a<h2;a+=4) {
- fX[a]=fX[a]^RM1[a];
- fX[a+1]=fX[a+1]^RM1[a+1];
- fX[a+2]=fX[a+2]^RM1[a+2];
- fX[a+3]=fX[a+3]^RM1[a+3];
+ fX[a]=X[a]^RM1[a];
+ fX[a+1]=X[a+1]^RM1[a+1];
+ fX[a+2]=X[a+2]^RM1[a+2];
+ fX[a+3]=X[a+3]^RM1[a+3];
}
- for(int a=0;a<h2;a+=4) {
+ /* for(int a=0;a<h2;a+=4) {
fX[a]=Sbox2[fX[a]];
fX[a+1]=Sbox2[fX[a+1]];
fX[a+2]=Sbox2[fX[a+2]];
fX[a+3]=Sbox2[fX[a+3]];
- }
+ }*/
for(int a=0;a<h2;a+=4) {
fX[a]=fX[a]^seq_in[ind2+a];