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); }