Esempio n. 1
0
 def mul_plain(self, c, a):
     return crypton.mod_pow(c, a, self.n * self.n)
Esempio n. 2
0
 def add_plain(self, c, a):
     return (c * crypton.mod_pow(self.g, a, self.n * self.n)) % (self.n *
                                                                 self.n)
Esempio n. 3
0
 def sub_cipher(self, c, a):
     gi = crypton.mod_inv(self.g, self.n * self.n)
     return (c * crypton.mod_pow(gi, a, self.n * self.n)) % (self.n *
                                                             self.n)
Esempio n. 4
0
 def encrypt(self, msg):
     r = random.randint(1, self.n - 1)
     return (crypton.mod_pow(self.g, msg, self.n * self.n) *
             crypton.mod_pow(r, self.n, self.n * self.n)) % (self.n *
                                                             self.n)
Esempio n. 5
0
 def decrypt(self, c):
     u = crypton.mod_pow(c, self.__lam, self.n * self.n)
     return (((u - 1) // self.n) * self.__mu) % self.n
Esempio n. 6
0
 def mul_plain(self, c, a):
     return crypton.mod_pow(c,a,self.n*self.n)
Esempio n. 7
0
 def sub_cipher(self, c, a):
     gi = crypton.mod_inv(self.g, self.n*self.n)
     return (c * crypton.mod_pow(gi,a,self.n*self.n)) % (self.n*self.n)
Esempio n. 8
0
 def add_plain(self, c, a):
     return (c * crypton.mod_pow(self.g,a,self.n*self.n)) % (self.n*self.n)
Esempio n. 9
0
 def decrypt(self, c):
     u = crypton.mod_pow(c, self.__lam, self.n*self.n)
     return (((u-1) // self.n) * self.__mu) % self.n
Esempio n. 10
0
 def encrypt(self, msg):
     r = random.randint(1, self.n-1)
     return (crypton.mod_pow(self.g, msg, self.n*self.n) * crypton.mod_pow(r, self.n, self.n*self.n)) % (self.n*self.n)