def encrypt(self, message, mod_n, e): """ Takes message and encrypts it. :param message: secret message :param mod_n: n value of public key :param e: e value of public key :return: list of encrypted signs """ numList = self.uni2num(message) return [PrimeNumberGenerator.modular_exp(letter, e, mod_n) for letter in numList]
def decrypt(self, cipher, mod_n, d): """ Takes encrypted list of longs and decrypt it :param cipher: secret encrypted message :param mod_n: n value of private key :param d: d value of private key :return: unicode message """ message = [PrimeNumberGenerator.modular_exp(letter, d, mod_n) for letter in cipher] return self.num2uni(message)