Ejemplo n.º 1
0
        public int Decrypt(int p, int q, int C, int e)
        {
            int n       = p * q;
            int totient = (p - 1) * (q - 1);
            int d       = new ExtendedEuclid().GetMultiplicativeInverse(e, (int)totient);
            int M       = Mod_Power(C, d, n);

            return(M);
        }
Ejemplo n.º 2
0
        public int Decrypt(int p, int q, int C, int e)
        {
            // d = e ^ -1 mod TotientN
            // M = C ^ d mod n
            int            n        = p * q;
            ExtendedEuclid obj      = new ExtendedEuclid();
            int            TotientN = (p - 1) * (q - 1);
            int            d        = obj.GetMultiplicativeInverse(e, TotientN);

            return(power(C, d, n));
        }
Ejemplo n.º 3
0
        public int Decrypt(int p, int q, int C, int e)
        {
            ExtendedEuclid EX             = new ExtendedEuclid();
            int            n              = p * q;
            int            Qn             = (p - 1) * (q - 1);
            int            extendedNumber = EX.GetMultiplicativeInverse(e, Qn);

            int d      = extendedNumber % Qn;
            int result = C;

            for (int i = 1; i < d; i++)
            {
                result = (int)((result % n) * (C % n)) % n;
            }
            return(result);
            // throw new NotImplementedException();
        }
Ejemplo n.º 4
0
        public int Decrypt(int p, int q, int C, int e)
        {
            int plain = 0;

            int n  = p * q;
            int Qn = (p - 1) * (q - 1);


            ExtendedEuclid ex      = new ExtendedEuclid();
            int            inverse = ex.GetMultiplicativeInverse(e, Qn);
            int            d       = inverse;

            if (d < 0)
            {
                d += Qn;
            }

            //  plain = (int)(Pow(C, d) % n);

            plain = (int)Mod(C, d, n);


            return(plain);
        }