对于一些学生来说,我需要用Java实现Feistel网络.
我从3个手动回合开始,像这样:
// round 1
int[] left1 = right;
int[] right1 = new int[right.length];
for(int i = 0; i < right.length; i++){
right1[i] = left[i] ^ (right[i] ^ keys[0]);
}
// round 2
int[] left2 = right1;
int[] right2 = new int[right.length];
for(int i = 0; i < right.length; i++){
right2[i] = left1[i] ^ (right1[i] ^ keys[1]);
}
// round 3
int[] left3 = right2;
int[] right3 = new int[right.length];
for(int i = 0; i < right.length; i++){
right3[i] = …Run Code Online (Sandbox Code Playgroud)