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()}"); }
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()}"); }