Beispiel #1
0
            public static void GenerateKey(out BigInteger N, out BigInteger E, out BigInteger D)
            {
                Calc.Generate.Random gen = new Calc.Generate.Random();
                BigInteger           P   = gen.GetPrimeBig(72);
                BigInteger           Q   = gen.GetPrimeBig(72);

                N = P * Q;
                BigInteger phi = (P - 1) * (Q - 1);

                E = gen.GetPrimeBig(64);
                D = Calc.BigIntWorker.InverseMod(E, phi);
            }
            public static void GenerateKey(out BigInteger N, out BigInteger E, out BigInteger D)
            {
                Calc.Generate.Random gen = new Calc.Generate.Random(Convert.ToUInt32(DateTime.Now.Ticks % 100000000));
                BigInteger           phi;

                do
                {
                    BigInteger P = gen.GetPrimeBig(20);
                    BigInteger Q = gen.GetPrimeBig(20);
                    N   = P * Q;
                    phi = (P - 1) * (Q - 1);
                    E   = gen.GetPrimeBig(15);
                    D   = Calc.BigIntWorker.InverseMod(E, phi);
                } while (E > phi);
            }