コード例 #1
0
        public void Get_m1_m2Test()
        {
            // Get_m1_m2 produce outputs that match those in Section 2.7 of setup.pdf
            var k   = 128;
            var Exp = 65537;

            PermutationTest.Get_m1_m2(41, Exp, k, out int m1, out int m2);
            Assert.IsTrue(m1.Equals(24) && m2.Equals(24));
            PermutationTest.Get_m1_m2(89, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(20) && m2.Equals(20));
            PermutationTest.Get_m1_m2(191, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(17) && m2.Equals(17));
            PermutationTest.Get_m1_m2(937, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(13) && m2.Equals(13));
            PermutationTest.Get_m1_m2(1667, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(12) && m2.Equals(12));
            PermutationTest.Get_m1_m2(3187, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(11) && m2.Equals(12));
        }
コード例 #2
0
        public void Get_m1_m2Test()
        {
            // Get_m1_m2 produce outputs that match those in Section 2.7 of setup.pdf
            var k   = 128;
            var Exp = 65537;

            PermutationTest.Get_m1_m2(41, Exp, k, out int m1, out int m2);
            Assert.IsTrue(m1.Equals(25) && m2.Equals(25));
            PermutationTest.Get_m1_m2(997, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(13) && m2.Equals(13));
            PermutationTest.Get_m1_m2(4999, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(11) && m2.Equals(11));
            PermutationTest.Get_m1_m2(7649, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(10) && m2.Equals(11));
            PermutationTest.Get_m1_m2(20663, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(9) && m2.Equals(10));
            PermutationTest.Get_m1_m2(33469, Exp, k, out m1, out m2);
            Assert.IsTrue(m1.Equals(9) && m2.Equals(9));
        }
コード例 #3
0
        public void BenchmarkPermutationTest()
        {
            Console.WriteLine($"Parameters,,, {keySizeList[0]}-bit RSA,, {keySizeList[1]}-bit RSA,, {keySizeList[2]}-bit RSA,");
            Console.WriteLine("alpha, m1, m2, Prove, Verify, Prove, Verify, Prove, Verify");

            foreach (int alpha in alphaList)
            {
                PermutationTest.Get_m1_m2(alpha, Exp.IntValue, k, out int m1, out int m2);
                Console.Write($"{alpha},{m1},{m2}");
                foreach (int keySize in keySizeList)
                {
                    double ProvingTime   = 0.0;
                    double VerifyingTime = 0.0;
                    for (int i = 0; i < iterations; i++)
                    {
                        _ProvingAndVerifyingTest1(Exp, keySize, alpha, out double subPTime, out double subVTime);
                        ProvingTime   += subPTime;
                        VerifyingTime += subVTime;
                    }
                    Console.Write($",{ProvingTime / iterations} ,{VerifyingTime / iterations}");
                }
                Console.WriteLine();
            }
        }