Esempio n. 1
0
 public void setKey(Byte a1, Byte a2, Byte a3, Byte a4, Byte a5, Byte a6, Byte a7, Byte a8)
 {
     key = new byt();
     key.convert64(a1, a2, a3, a4, a5, a6, a7, a8);
 }
Esempio n. 2
0
 public void setText(Byte a1, Byte a2, Byte a3, Byte a4, Byte a5, Byte a6, Byte a7, Byte a8)
 {
     text = new byt();
     text.convert64(a1, a2, a3, a4, a5, a6, a7, a8);
 }
Esempio n. 3
0
            public void encrypt()
            {
                enc = new byt();
                byt p1, p2, p3, p4, p5;
                p1 = new byt();
                p2 = new byt();
                p3 = new byt();
                p4 = new byt();
                p5 = new byt();
                byt k1, k2, k3, k4;
                k1 = new byt();
                k2 = new byt();
                k3 = new byt();
                k4 = new byt();

                k1.PC1(key);
                p1.IP(text);
                k2.convert28(k1, 0);
                k3.convert28(k1, 1);
                p2.convert32(p1, 0);
                p3.convert32(p1, 1);

                for (int i = 0; i < 16; i++)
                {
                    k2.leftShift();
                    k3.leftShift();

                    if (i != 0 && i != 1 && i != 8 && i != 15)
                    {
                        k2.leftShift();
                        k3.leftShift();
                    }

                    k1.convert56(k2, k3);
                    k4.PC2(k1);
                    p4.E(p3);
                    p5.xor(k4, p4);
                    p4.S(p5);
                    p5.P(p4);
                    p4.xor(p5, p2);
                    p2.copy(p3);
                    p3.copy(p4);
                }

                p1.convert64(p3, p2);
                enc.IIP(p1);
            }
Esempio n. 4
0
            public void returnByte(byt a)
            {
                re = new Byte[8];

                for (int i = 0; i < 8; i++)
                {
                    re[i] = 0;

                    for (int j = 0; j < 8; j++)
                    {
                        re[i] *= 2;
                        re[i] += (Byte)a.b[i * 8 + j];
                    }
                }
            }
Esempio n. 5
0
            public void S(byt a)
            {
                set(32);
                ftable aa;
                aa = new ftable();
                aa.S();

                for (int i = 0; i < 8; i++)
                {
                    int i1 = 2 * a.b[i * 6] + a.b[i * 6 + 5], i2 = 8 * a.b[i * 6 + 1] + 4 * a.b[i * 6 + 2] + 2 * a.b[i * 6 + 3] + a.b[i * 6 + 4];
                    byt x;
                    x = new byt();
                    x.convert4(aa.mm[i, i1, i2]);

                    for (int j = 0; j < 4; j++)
                    {
                        b[i * 4 + j] = x.b[j];
                    }
                }
            }
Esempio n. 6
0
            public void xor(byt a, byt aa)
            {
                set(a.bb);

                for (int i = 0; i < bb; i++)
                {
                    b[i] = a.b[i] ^ aa.b[i];
                }
            }
Esempio n. 7
0
            public void PC1(byt a)
            {
                set(56);
                ftable aa;
                aa = new ftable();
                aa.PC1();

                for (int i = 0; i < 56; i++)
                {
                    b[i] = a.b[aa.m[i]];
                }
            }
Esempio n. 8
0
            public void PC2(byt a)
            {
                set(48);
                ftable aa;
                aa = new ftable();
                aa.PC2();

                for (int i = 0; i < 48; i++)
                {
                    b[i] = a.b[aa.m[i]];
                }
            }
Esempio n. 9
0
            public void IP(byt a)
            {
                set(64);
                ftable aa;
                aa = new ftable();
                aa.IP();

                for (int i = 0; i < 64; i++)
                {
                    b[i] = a.b[aa.m[i]];
                }
            }
Esempio n. 10
0
            public void P(byt a)
            {
                set(32);
                ftable aa;
                aa = new ftable();
                aa.P();

                for (int i = 0; i < 32; i++)
                {
                    b[i] = a.b[aa.m[i]];
                }
            }
Esempio n. 11
0
            public void copy(byt a)
            {
                bb = a.bb;
                set(bb);

                for (int i = 0; i < bb; i++)
                {
                    b[i] = a.b[i];
                }
            }
Esempio n. 12
0
            public void convert64(byt a, byt aa)
            {
                set(64);

                for (int i = 0; i < 32; i++)
                {
                    b[i] = a.b[i];
                }

                for (int i = 0; i < 32; i++)
                {
                    b[i + 32] = aa.b[i];
                }
            }
Esempio n. 13
0
            public void convert56(byt a, byt aa)
            {
                set(56);

                for (int i = 0; i < 28; i++)
                {
                    b[i] = a.b[i];
                }

                for (int i = 0; i < 28; i++)
                {
                    b[i + 28] = aa.b[i];
                }
            }
Esempio n. 14
0
            public void convert32(byt a, int lr)
            {
                set(32);
                int s = 0;

                if (lr > 0)
                {
                    s = 32;
                }

                for (int i = 0; i < 32; i++)
                {
                    b[i] = a.b[s];
                    s++;
                }
            }
Esempio n. 15
0
            public void convert28(byt a, int lr)
            {
                set(28);
                int s = 0;

                if (lr > 0)
                {
                    s = 28;
                }

                for (int i = 0; i < 28; i++)
                {
                    b[i] = a.b[s];
                    s++;
                }
            }