Exemple #1
0
        public static void DES_PCBCtest()
        {
            var vector = DEShelper.GenerateZeroOne();
            var key    = DEShelper.GenerateDataByBytes(0, 1);
            var data   = DEShelper.GeneratePreDefArrayBlocks(new int[] { 0, 1, 0 });

            Console.WriteLine($"data:\n{data.BlocksToString()}");
            Console.WriteLine($"\nkey:\n{key.ListToString()}");
            Console.WriteLine($"\nvector:\n{vector.ListToString()}");

            var pcbcE = des.EncryptPCBC(data, key, vector);

            Console.WriteLine($"\nEncrypted:\n{pcbcE.BlocksToString()}");
            var pcbcD = des.DecryptPCBC(pcbcE, key, vector);

            Console.WriteLine($"\nDecrypted:\n{pcbcD.BlocksToString()}");
        }
Exemple #2
0
        public static void DES_CTRtest()
        {
            var key     = DEShelper.GenerateDataByBytes(0, 1);
            var data    = DEShelper.GeneratePreDefArrayBlocks(new int[] { 0, 1, 0 });
            var nonce   = DEShelper.GenerateOneZero(32);
            var counter = DEShelper.GeneratePreDefData(32);

            Console.WriteLine($"data:\n{data.BlocksToString()}");
            Console.WriteLine($"\nkey:\n{key.ListToString()}");
            Console.WriteLine($"\nCTR:\n{nonce.ListToString()}{counter.ListToString()}");

            var func         = new Func <int, int>((x) => x + 1);
            var cntFunction  = new Func <IEnumerable <int>, IEnumerable <int> >((input) => DEShelper.BitListOperation(input, (x) => x + 1));
            var cntFunction2 = new Func <IEnumerable <int>, IEnumerable <int> >((input) => DEShelper.BitListOperation(input, (x) => 5 * (x + 1) + 3));

            var ctrE = des.CTR(data, key, nonce, counter, cntFunction);

            Console.WriteLine($"\nEncrypted:\n{ctrE.BlocksToString()}");
            var ctrD = des.CTR(ctrE, key, nonce, counter, cntFunction);

            Console.WriteLine($"\nDecrypted:\n{ctrD.BlocksToString()}");
        }