Esempio n. 1
0
        public ChuoiNhiPhan ThucHienDES(ChuoiNhiPhan ChuoiVaoDai, int MaHoaHayGiaiMa)// 1 ma hoa, -1 giai ma
        {
            KhoaDES.SinhKhoaCon(MaHoaHayGiaiMa);


            ChuoiNhiPhan[] DSChuoiVao = ChuoiVaoDai.Chia(ChuoiVaoDai.DoDai / 64);
            ChuoiNhiPhan   ChuoiVao, ChuoiKQ;

            ChuoiKQ = new ChuoiNhiPhan(0);
            for (int k = 0; k < DSChuoiVao.Length; k++)
            {
                ChuoiVao = DSChuoiVao[k];
                ChuoiNhiPhan[] ChuoiSauIP;
                ChuoiNhiPhan   ChuoiSauIP_1;
                ChuoiNhiPhan   L, R, F, TG;
                ChuoiSauIP = CacThongSo.TinhIP(ChuoiVao, MaHoaHayGiaiMa);
                L          = ChuoiSauIP[0];
                R          = ChuoiSauIP[1];

                for (int i = 0; i < 16; i++)
                {
                    F  = HamF(R, KhoaDES.DayKhoaPhu[i]);
                    L  = L.XOR(F);
                    TG = L;
                    L  = R;
                    R  = TG;
                }
                ChuoiSauIP_1 = CacThongSo.TinhIP_1(R, L, MaHoaHayGiaiMa);
                ChuoiKQ      = ChuoiKQ.Cong(ChuoiSauIP_1);
            }
            return(ChuoiKQ);
        }
Esempio n. 2
0
        public static string ChuyenNhiPhanSangChu(ChuoiNhiPhan ChuoiVao)
        {
            int soChu = ChuoiVao.DoDai / 8;

            ChuoiNhiPhan[] MangChuoi = ChuoiVao.Chia(soChu);
            string         KQ        = "";

            foreach (var ch in MangChuoi)
            {
                KQ += (char)ChuoiNhiPhan.ChuyenNhiPhanSangSo(ch);
            }
            return(KQ);
        }