Example #1
0
        static public string[] Decode(string[] C, Program.Key secretkey)
        {
            //Console.Write("Secret: " + secretkey.keynum +"|");
            string[]   M = new string[secretkey.n - 1];
            BigInteger bi;
            BigInteger n_ = (BigInteger)secretkey.n;

            for (int i = 0; i < M.Length; i++)
            {
                bi   = (BigInteger)Math.Pow((Convert.ToInt32(C[i])), secretkey.keynum);
                M[i] = (bi % n_).ToString();
            }
            return(M);
        }
Example #2
0
        static public string[] Encode(string[] M, Program.Key openkey)
        {
            //C(i)=(M(I)^e)mod n, где bi=M(i)^e
            //Console.Write("Open: " + openkey.keynum + "|");
            string[]   C = new string[openkey.n - 1];
            BigInteger bi;
            BigInteger n_ = (BigInteger)openkey.n;

            for (int i = 0; i < M.Length; i++)
            {
                bi   = (BigInteger)Math.Pow(i, openkey.keynum);
                C[i] = (bi % n_).ToString();
            }
            return(C);
        }