public void Challenge8_DetectAesEcb() { var lines = Utils.GetResourceHexLines("DetectAesEcb.txt"); var ecbLine = lines.Single(line => EcbCbcDetectionOracle.IsEcb(line, 16)); var ecbHex = Utils.ByteArrayToHex(ecbLine); const string expectedHex = "D880619740A8A19B7840A8A31C810A3D08649AF70DC06F4FD5D2D69C744CD283E2DD052F6B641DBF9D11B0348542BB5708649AF70DC06F4FD5D2D69C744CD2839475C9DFDBC1D46597949D9C7E82BF5A08649AF70DC06F4FD5D2D69C744CD28397A93EAB8D6AECD566489154789A6B0308649AF70DC06F4FD5D2D69C744CD283D403180C98C8F6DB1F2A3F9C4040DEB0AB51B29933F2C123C58386B06FBA186A"; Assert.AreEqual(expectedHex, ecbHex); }
public void Challenge11_EcbCbcDetectionOracle() { var oracle = new EcbCbcDetectionOracle(); for (int i = 0; i < 20; i++) { bool isEcb; var ct = oracle.Encrypt("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", out isEcb); Assert.AreEqual(isEcb, EcbCbcDetectionOracle.IsEcb(ct, 16)); } }
public void Challenge11_EcbCbcDetectionOracle() { var oracle = new EcbCbcDetectionOracle(); for (int i = 0; i < 20; i++) { bool isEcb; var ct = oracle.Encrypt("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", out isEcb); Assert.AreEqual(isEcb, EcbCbcDetectionOracle.IsEcb(ct, 16)); } }