Beispiel #1
0
 def mul_plain(self, c, a):
     return crypton.mod_pow(c, a, self.n * self.n)
Beispiel #2
0
 def add_plain(self, c, a):
     return (c * crypton.mod_pow(self.g, a, self.n * self.n)) % (self.n *
                                                                 self.n)
Beispiel #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)
Beispiel #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)
Beispiel #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
Beispiel #6
0
 def mul_plain(self, c, a):
     return crypton.mod_pow(c,a,self.n*self.n)
Beispiel #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)
Beispiel #8
0
 def add_plain(self, c, a):
     return (c * crypton.mod_pow(self.g,a,self.n*self.n)) % (self.n*self.n)
Beispiel #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
Beispiel #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)