public void GenerateKey()
        {
            ElgamalPublicParams pubKey = GeneratePublicElgamalParams(100);

            _modulus   = pubKey.Modulus.ToString();
            _generator = pubKey.Generator.ToString();
            ElgamalPrivateKey privateKey = GetElgamalPrivateKey(pubKey);

            _openParameter   = privateKey.Y.ToString();
            _secretParameter = privateKey.X.ToString();
            RegenerateSizeParameters();
        }
        private ElgamalPrivateKey GetElgamalPrivateKey(ElgamalPublicParams param)
        {
            ElgamalPublicParams parameters = param;
            ElgamalPrivateKey   pk;
            BigInteger          x;
            BigInteger          y;

            x = NumMethodsClass.GenerateBigInteger(2, parameters.Modulus - 1);

            y = CalculateKeysByPowm(parameters.Generator, x, parameters.Modulus);

            pk.X = x;
            pk.Y = y;
            return(pk);
        }