public string Decrypt() { foreach (var ch in encryptedMessage.Trim().Split(' ')) { var res = BigInteger.ModPow(int.Parse(ch), d, n); decryptedMessage += Alphabet.GetCharRSA(((int)res + n) % n); } return(decryptedMessage); }
public string Encrypt() { foreach (var ch in message) { int charIndex = Alphabet.GetCharCodeRSA(ch); maxCharCode = charIndex > maxCharCode ? charIndex : maxCharCode; if (maxCharCode >= n) { throw new Exception($"Индекс буквы {Alphabet.GetCharRSA(maxCharCode)} = {maxCharCode} больше/равно n = {n}"); } var res = BigInteger.ModPow(charIndex, e, n); encryptedMessage += res + " "; } return(encryptedMessage); }