public byte[] DeCrypt(List <EIGamalMessage> messages_ecrypted, EIGamalPrivateKey private_key) { List <BigInteger> messages_decrypted = Decrypt(messages_ecrypted, private_key); //TODO convert from group to byte [] return(null); }
private List <BigInteger> Decrypt(List <EIGamalMessage> messages, EIGamalPrivateKey private_key) { //Encryption List <BigInteger> messages_plaintext = new List <BigInteger>(); foreach (EIGamalMessage message in messages) { //Decryption BigInteger s2 = message.C1.Pow(private_key.X); //Shared secret messages_plaintext.Add(message.C2 * s2.ModInverse(private_key.G)); } return(messages_plaintext); }