Ejemplo n.º 1
0
        public static string MaHoaTinyDES(char charcanmahoa, string khoanhapvao)
        {
            char   kitucanmahoa = charcanmahoa;
            int    sodecima     = Convert.ToInt32(charcanmahoa);
            string chuoinhiphan = Convert.ToString(sodecima, 2);

            chuoinhiphan = ChuyenThanhDecima8KiTu(chuoinhiphan);
            string khoa = khoanhapvao;
            string KL0  = khoa.Substring(0, 4);
            string KR0  = khoa.Substring(4);
            string L0   = chuoinhiphan.Substring(0, 4);
            string R0   = chuoinhiphan.Substring(4);
            string C    = "";

            //Vòng 1
            for (int i = 1; i <= 3; i++)
            {
                string L1       = R0;
                string expandR0 = GiaiThuatTinyDES.Expand(R0);
                string KL1;
                string KR1;
                if (i == 2)
                {
                    KL1 = GiaiThuatTinyDES.DichVong(KL0, 2);
                    KR1 = GiaiThuatTinyDES.DichVong(KR0, 2);
                }
                else
                {
                    KL1 = GiaiThuatTinyDES.DichVong(KL0, 1);
                    KR1 = GiaiThuatTinyDES.DichVong(KR0, 1);
                }
                string K1            = GiaiThuatTinyDES.Compress(KL1, KR1);
                string expandR0xorK1 = GiaiThuatTinyDES.Xor2Chuoi(expandR0, K1);
                string sbox          = GiaiThuatTinyDES.Sbox(expandR0xorK1);
                string F1            = GiaiThuatTinyDES.Pbox(sbox);
                string R1            = GiaiThuatTinyDES.Xor2Chuoi(L0, F1);
                L0  = L1;
                R0  = R1;
                KL0 = KL1;
                KR0 = KR1;
                C   = L1 + R1;
            }
            int  soketqua   = Convert.ToInt32(C, 2);
            char kituketqua = Convert.ToChar(soketqua);

            return(kituketqua.ToString());
        }
Ejemplo n.º 2
0
        public static string MaHoaTinyDESTest(string chuoinhiphan, string khoanhapvao)
        {
            string khoa = khoanhapvao;
            string KL0  = khoa.Substring(0, 4);
            string KR0  = khoa.Substring(4);
            string L0   = chuoinhiphan.Substring(0, 4);
            string R0   = chuoinhiphan.Substring(4);
            string C    = "";

            for (int i = 1; i <= 3; i++)
            {
                string L1       = R0;
                string expandR0 = GiaiThuatTinyDES.Expand(R0);
                string KL1;
                string KR1;
                if (i == 2)
                {
                    KL1 = GiaiThuatTinyDES.DichVong(KL0, 2);
                    KR1 = GiaiThuatTinyDES.DichVong(KR0, 2);
                }
                else
                {
                    KL1 = GiaiThuatTinyDES.DichVong(KL0, 1);
                    KR1 = GiaiThuatTinyDES.DichVong(KR0, 1);
                }
                string K1            = GiaiThuatTinyDES.Compress(KL1, KR1);
                string expandR0xorK1 = GiaiThuatTinyDES.Xor2Chuoi(expandR0, K1);
                string sbox          = GiaiThuatTinyDES.Sbox(expandR0xorK1);
                string F1            = GiaiThuatTinyDES.Pbox(sbox);
                string R1            = GiaiThuatTinyDES.Xor2Chuoi(L0, F1);
                L0  = L1;
                R0  = R1;
                KL0 = KL1;
                KR0 = KR1;
                C   = L1 + R1;
            }
            return(C);
        }