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+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) {
}
+ 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];
+ }
+
+ // 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];
+ // }
- Z[h-1]=Y[h-1]^Y[0];
- for(int a=h-1;a>0;a--) {
- Z[a-1]=Z[a]^Y[a];
- }
-
+ // /*
+ // Z[h-1]=Y[h-1]^Y[0];
+ // Z[h-2]=Z[h-1]^Y[h-1];
+ // Z[h-3]=Z[h-2]^Y[h-2];
+ // Z[h-4]=Z[h-3]^Y[h-3];
+ // for(int a=h-4;a>0;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<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];
+ // 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];
- }
+ // }
}