⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serpent.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    x4 ^= key.k110;    x2 ^= key.k111;    sboxI2();    x1 ^= key.k104;    x3 ^= key.k105;    x4 ^= key.k106;    x2 ^= key.k107;    sboxI1();    x0 ^= key.k100;    x1 ^= key.k101;    x2 ^= key.k102;    x4 ^= key.k103;    sboxI0();    x0 ^= key.k96;    x3 ^= key.k97;    x1 ^= key.k98;    x4 ^= key.k99;    sboxI7();    x1 = x3;    x3 = x4;    x4 = x2;    x3 ^= key.k92;    x0 ^= key.k93;    x1 ^= key.k94;    x4 ^= key.k95;    sboxI6();    x0 ^= key.k88;    x1 ^= key.k89;    x2 ^= key.k90;    x4 ^= key.k91;    sboxI5();    x1 ^= key.k84;    x3 ^= key.k85;    x4 ^= key.k86;    x2 ^= key.k87;    sboxI4();    x1 ^= key.k80;    x2 ^= key.k81;    x4 ^= key.k82;    x0 ^= key.k83;    sboxI3();    x0 ^= key.k76;    x1 ^= key.k77;    x4 ^= key.k78;    x2 ^= key.k79;    sboxI2();    x1 ^= key.k72;    x3 ^= key.k73;    x4 ^= key.k74;    x2 ^= key.k75;    sboxI1();    x0 ^= key.k68;    x1 ^= key.k69;    x2 ^= key.k70;    x4 ^= key.k71;    sboxI0();    x0 ^= key.k64;    x3 ^= key.k65;    x1 ^= key.k66;    x4 ^= key.k67;    sboxI7();    x1 = x3;    x3 = x4;    x4 = x2;    x3 ^= key.k60;    x0 ^= key.k61;    x1 ^= key.k62;    x4 ^= key.k63;    sboxI6();    x0 ^= key.k56;    x1 ^= key.k57;    x2 ^= key.k58;    x4 ^= key.k59;    sboxI5();    x1 ^= key.k52;    x3 ^= key.k53;    x4 ^= key.k54;    x2 ^= key.k55;    sboxI4();    x1 ^= key.k48;    x2 ^= key.k49;    x4 ^= key.k50;    x0 ^= key.k51;    sboxI3();    x0 ^= key.k44;    x1 ^= key.k45;    x4 ^= key.k46;    x2 ^= key.k47;    sboxI2();    x1 ^= key.k40;    x3 ^= key.k41;    x4 ^= key.k42;    x2 ^= key.k43;    sboxI1();    x0 ^= key.k36;    x1 ^= key.k37;    x2 ^= key.k38;    x4 ^= key.k39;    sboxI0();    x0 ^= key.k32;    x3 ^= key.k33;    x1 ^= key.k34;    x4 ^= key.k35;    sboxI7();    x1 = x3;    x3 = x4;    x4 = x2;    x3 ^= key.k28;    x0 ^= key.k29;    x1 ^= key.k30;    x4 ^= key.k31;    sboxI6();    x0 ^= key.k24;    x1 ^= key.k25;    x2 ^= key.k26;    x4 ^= key.k27;    sboxI5();    x1 ^= key.k20;    x3 ^= key.k21;    x4 ^= key.k22;    x2 ^= key.k23;    sboxI4();    x1 ^= key.k16;    x2 ^= key.k17;    x4 ^= key.k18;    x0 ^= key.k19;    sboxI3();    x0 ^= key.k12;    x1 ^= key.k13;    x4 ^= key.k14;    x2 ^= key.k15;    sboxI2();    x1 ^= key.k8;    x3 ^= key.k9;    x4 ^= key.k10;    x2 ^= key.k11;    sboxI1();    x0 ^= key.k4;    x1 ^= key.k5;    x2 ^= key.k6;    x4 ^= key.k7;    sboxI0();    x2 = x1;    x1 = x3;    x3 = x4;    x0 ^= key.k0;    x1 ^= key.k1;    x2 ^= key.k2;    x3 ^= key.k3;    out[o] = (byte) x0;    out[o + 1] = (byte) (x0 >>> 8);    out[o + 2] = (byte) (x0 >>> 16);    out[o + 3] = (byte) (x0 >>> 24);    out[o + 4] = (byte) x1;    out[o + 5] = (byte) (x1 >>> 8);    out[o + 6] = (byte) (x1 >>> 16);    out[o + 7] = (byte) (x1 >>> 24);    out[o + 8] = (byte) x2;    out[o + 9] = (byte) (x2 >>> 8);    out[o + 10] = (byte) (x2 >>> 16);    out[o + 11] = (byte) (x2 >>> 24);    out[o + 12] = (byte) x3;    out[o + 13] = (byte) (x3 >>> 8);    out[o + 14] = (byte) (x3 >>> 16);    out[o + 15] = (byte) (x3 >>> 24);  }  public boolean selfTest()  {    if (valid == null)      {        boolean result = super.selfTest(); // do symmetry tests        if (result)          {            result = testKat(KAT_KEY, KAT_CT);          }        valid = new Boolean(result);      }    return valid.booleanValue();  }  // Own methods. ----------------------------------------------------------  // These first few S-boxes operate directly on the "registers",  // x0..x4, and perform the linear transform.  private void sbox0()  {    x3 ^= x0;    x4 = x1;    x1 &= x3;    x4 ^= x2;    x1 ^= x0;    x0 |= x3;    x0 ^= x4;    x4 ^= x3;    x3 ^= x2;    x2 |= x1;    x2 ^= x4;    x4 ^= -1;    x4 |= x1;    x1 ^= x3;    x1 ^= x4;    x3 |= x0;    x1 ^= x3;    x4 ^= x3;    x1 = (x1 << 13) | (x1 >>> 19);    x4 ^= x1;    x3 = x1 << 3;    x2 = (x2 << 3) | (x2 >>> 29);    x4 ^= x2;    x0 ^= x2;    x4 = (x4 << 1) | (x4 >>> 31);    x0 ^= x3;    x0 = (x0 << 7) | (x0 >>> 25);    x3 = x4;    x1 ^= x4;    x3 <<= 7;    x1 ^= x0;    x2 ^= x0;    x2 ^= x3;    x1 = (x1 << 5) | (x1 >>> 27);    x2 = (x2 << 22) | (x2 >>> 10);  }  private void sbox1()  {    x4 = ~x4;    x3 = x1;    x1 ^= x4;    x3 |= x4;    x3 ^= x0;    x0 &= x1;    x2 ^= x3;    x0 ^= x4;    x0 |= x2;    x1 ^= x3;    x0 ^= x1;    x4 &= x2;    x1 |= x4;    x4 ^= x3;    x1 ^= x2;    x3 |= x0;    x1 ^= x3;    x3 = ~x3;    x4 ^= x0;    x3 &= x2;    x4 = ~x4;    x3 ^= x1;    x4 ^= x3;    x0 = (x0 << 13) | (x0 >>> 19);    x4 ^= x0;    x3 = x0 << 3;    x2 = (x2 << 3) | (x2 >>> 29);    x4 ^= x2;    x1 ^= x2;    x4 = (x4 << 1) | (x4 >>> 31);    x1 ^= x3;    x1 = (x1 << 7) | (x1 >>> 25);    x3 = x4;    x0 ^= x4;    x3 <<= 7;    x0 ^= x1;    x2 ^= x1;    x2 ^= x3;    x0 = (x0 << 5) | (x0 >>> 27);    x2 = (x2 << 22) | (x2 >>> 10);  }  private void sbox2()  {    x3 = x0;    x0 = x0 & x2;    x0 = x0 ^ x1;    x2 = x2 ^ x4;    x2 = x2 ^ x0;    x1 = x1 | x3;    x1 = x1 ^ x4;    x3 = x3 ^ x2;    x4 = x1;    x1 = x1 | x3;    x1 = x1 ^ x0;    x0 = x0 & x4;    x3 = x3 ^ x0;    x4 = x4 ^ x1;    x4 = x4 ^ x3;    x3 = ~x3;    x2 = (x2 << 13) | (x2 >>> 19);    x1 ^= x2;    x0 = x2 << 3;    x4 = (x4 << 3) | (x4 >>> 29);    x1 ^= x4;    x3 ^= x4;    x1 = (x1 << 1) | (x1 >>> 31);    x3 ^= x0;    x3 = (x3 << 7) | (x3 >>> 25);    x0 = x1;    x2 ^= x1;    x0 <<= 7;    x2 ^= x3;    x4 ^= x3;    x4 ^= x0;    x2 = (x2 << 5) | (x2 >>> 27);    x4 = (x4 << 22) | (x4 >>> 10);  }  private void sbox3()  {    x0 = x2;    x2 = x2 | x3;    x3 = x3 ^ x1;    x1 = x1 & x0;    x0 = x0 ^ x4;    x4 = x4 ^ x3;    x3 = x3 & x2;    x0 = x0 | x1;    x3 = x3 ^ x0;    x2 = x2 ^ x1;    x0 = x0 & x2;    x1 = x1 ^ x3;    x0 = x0 ^ x4;    x1 = x1 | x2;    x1 = x1 ^ x4;    x2 = x2 ^ x3;    x4 = x1;    x1 = x1 | x3;    x1 = x1 ^ x2;    x1 = (x1 << 13) | (x1 >>> 19);    x4 ^= x1;    x2 = x1 << 3;    x3 = (x3 << 3) | (x3 >>> 29);    x4 ^= x3;    x0 ^= x3;    x4 = (x4 << 1) | (x4 >>> 31);    x0 ^= x2;    x0 = (x0 << 7) | (x0 >>> 25);    x2 = x4;    x1 ^= x4;    x2 <<= 7;    x1 ^= x0;    x3 ^= x0;    x3 ^= x2;    x1 = (x1 << 5) | (x1 >>> 27);    x3 = (x3 << 22) | (x3 >>> 10);  }  private void sbox4()  {    x4 = x4 ^ x0;    x0 = ~x0;    x3 = x3 ^ x0;    x0 = x0 ^ x1;    x2 = x4;    x4 = x4 & x0;    x4 = x4 ^ x3;    x2 = x2 ^ x0;    x1 = x1 ^ x2;    x3 = x3 & x2;    x3 = x3 ^ x1;    x1 = x1 & x4;    x0 = x0 ^ x1;    x2 = x2 | x4;    x2 = x2 ^ x1;    x1 = x1 | x0;    x1 = x1 ^ x3;    x3 = x3 & x0;    x1 = ~x1;    x2 = x2 ^ x3;    x4 = (x4 << 13) | (x4 >>> 19);    x2 ^= x4;    x3 = x4 << 3;    x1 = (x1 << 3) | (x1 >>> 29);    x2 ^= x1;    x0 ^= x1;    x2 = (x2 << 1) | (x2 >>> 31);    x0 ^= x3;    x0 = (x0 << 7) | (x0 >>> 25);    x3 = x2;    x4 ^= x2;    x3 <<= 7;    x4 ^= x0;    x1 ^= x0;    x1 ^= x3;    x4 = (x4 << 5) | (x4 >>> 27);    x1 = (x1 << 22) | (x1 >>> 10);  }  private void sbox5()  {    x4 = x4 ^ x2;    x2 = x2 ^ x0;    x0 = ~x0;    x3 = x2;    x2 = x2 & x4;    x1 = x1 ^ x0;    x2 = x2 ^ x1;    x1 = x1 | x3;    x3 = x3 ^ x0;    x0 = x0 & x2;    x0 = x0 ^ x4;    x3 = x3 ^ x2;    x3 = x3 ^ x1;    x1 = x1 ^ x4;    x4 = x4 & x0;    x1 = ~x1;    x4 = x4 ^ x3;    x3 = x3 | x0;    x1 = x1 ^ x3;    x2 = (x2 << 13) | (x2 >>> 19);    x0 ^= x2;    x3 = x2 << 3;    x4 = (x4 << 3) | (x4 >>> 29);    x0 ^= x4;    x1 ^= x4;    x0 = (x0 << 1) | (x0 >>> 31);    x1 ^= x3;    x1 = (x1 << 7) | (x1 >>> 25);    x3 = x0;    x2 ^= x0;    x3 <<= 7;    x2 ^= x1;    x4 ^= x1;    x4 ^= x3;    x2 = (x2 << 5) | (x2 >>> 27);    x4 = (x4 << 22) | (x4 >>> 10);  }  private void sbox6()  {    x4 = ~x4;    x3 = x1;    x1 = x1 & x2;    x2 = x2 ^ x3;    x1 = x1 ^ x4;    x4 = x4 | x3;    x0 = x0 ^ x1;    x4 = x4 ^ x2;    x2 = x2 | x0;    x4 = x4 ^ x0;    x3 = x3 ^ x2;    x2 = x2 | x1;    x2 = x2 ^ x4;    x3 = x3 ^ x1;    x3 = x3 ^ x2;    x1 = ~x1;    x4 = x4 & x3;    x4 = x4 ^ x1;    x2 = (x2 << 13) | (x2 >>> 19);    x0 ^= x2;    x1 = x2 << 3;    x3 = (x3 << 3) | (x3 >>> 29);    x0 ^= x3;    x4 ^= x3;    x0 = (x0 << 1) | (x0 >>> 31);    x4 ^= x1;    x4 = (x4 << 7) | (x4 >>> 25);    x1 = x0;    x2 ^= x0;    x1 <<= 7;    x2 ^= x4;    x3 ^= x4;    x3 ^= x1;    x2 = (x2 << 5) | (x2 >>> 27);    x3 = (x3 << 22) | (x3 >>> 10);  }  private void sbox7()  {    x1 = x3;    x3 = x3 & x0;    x3 = x3 ^ x4;    x4 = x4 & x0;    x1 = x1 ^ x3;    x3 = x3 ^ x0;    x0 = x0 ^ x2;    x2 = x2 | x1;    x2 = x2 ^ x3;    x4 = x4 ^ x0;    x3 = x3 ^ x4;    x4 = x4 & x2;    x4 = x4 ^ x1;    x1 = x1 ^ x3;    x3 = x3 & x2;    x1 = ~x1;    x3 = x3 ^ x1;    x1 = x1 & x2;    x0 = x0 ^ x4;    x1 = x1 ^ x0;    x3 = (x3 << 13) | (x3 >>> 19);    x1 ^= x3;    x0 = x3 << 3;    x4 = (x4 << 3) | (x4 >>> 29);    x1 ^= x4;    x2 ^= x4;    x1 = (x1 << 1) | (x1 >>> 31);    x2 ^= x0;    x2 = (x2 << 7) | (x2 >>> 25);    x0 = x1;    x3 ^= x1;    x0 <<= 7;    x3 ^= x2;    x4 ^= x2;    x4 ^= x0;    x3 = (x3 << 5) | (x3 >>> 27);    x4 = (x4 << 22) | (x4 >>> 10);  }  /** The final S-box, with no transform. */  private void sbox7noLT()  {    x1 = x3;    x3 = x3 & x0;    x3 = x3 ^ x4;    x4 = x4 & x0;    x1 = x1 ^ x3;    x3 = x3 ^ x0;    x0 = x0 ^ x2;    x2 = x2 | x1;    x2 = x2 ^ x3;    x4 = x4 ^ x0;    x3 = x3 ^ x4;    x4 = x4 & x2;    x4 = x4 ^ x1;    x1 = x1 ^ x3;    x3 = x3 & x2;    x1 = ~x1;    x3 = x3 ^ x1;    x1 = x1 & x2;    x0 = x0 ^ x4;    x1 = x1 ^ x0;  }  private void sboxI7noLT()  {    x4 = x2;    x2 ^= x0;    x0 &= x3;    x2 = ~x2;    x4 |= x3;    x3 ^= x1;    x1 |= x0;    x0 ^= x2;    x2 &= x4;    x1 ^= x2;    x2 ^= x0;    x0 |= x2;    x3 &= x4;    x0 ^= x3;    x4 ^= x1;    x3 ^= x4;    x4 |= x0;    x3 ^= x2;    x4 ^= x2;  }  private void sboxI6()  {    x1 = (x1 >>> 22) | (x1 << 10);    x3 = (x3 >>> 5) | (x3 << 27);    x2 = x0;    x1 ^= x4;    x2 <<= 7;    x3 ^= x4;    x1 ^= x2;    x3 ^= x0;    x4 = (x4 >>> 7) | (x4 << 25);    x0 = (x0 >>> 1) | (x0 << 31);    x0 ^= x3;    x2 = x3 << 3;    x4 ^= x2;    x3 = (x3 >>> 13) | (x3 << 19);    x0 ^= x1;    x4 ^= x1;    x1 = (x1 >>> 3) | (x1 << 29);    x3 ^= x1;    x2 = x1;    x1 &= x3;    x2 ^= x4;    x1 = ~x1;    x4 ^= x0;    x1 ^= x4;    x2 |= x3;    x3 ^= x1;    x4 ^= x2;    x2 ^= x0;    x0 &= x4;    x0 ^= x3;    x3 ^= x4;    x3 |= x1;    x4 ^= x0;    x2 ^= x3;  }  private void sboxI5()  {    x2 = (x2 >>> 22) | (x2 << 10);    x0 = (x0 >>> 5) | (x0 << 27);    x3 = x1;    x2 ^= x4;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -