def encrypt_msgs(self, msgs, pk, bits=settings.KEYBITS): p, g, y = pk k = MixCrypt(bits=bits) k.k = ElGamal.construct((p, g, y)) cipher = [k.encrypt(i) for i in msgs] return cipher
def encrypt_msg(self, msg, v, bits=settings.KEYBITS): aux = v pk = aux.pub_key p, g, y = (pk.p, pk.g, pk.y) k = MixCrypt(bits=bits) k.k = ElGamal.construct((p, g, y)) return k.encrypt(msg)
def encrypt_msgs(self, msgs, pk, bits=settings.KEYBITS): p, g, y = pk k = MixCrypt(bits=bits) k.k = ElGamal.construct((p, g, y)) cipher = [] for vote in msgs: a, b = k.encrypt(vote[0]) cipher.append([a, b, vote[1], vote[2]]) return cipher
#!/usr/bin/env python import sys from mixnet.mixcrypt import MixCrypt from mixnet.mixcrypt import ElGamal PK = sys.argv[1] MSG = sys.argv[2] p, g, y = map(int, PK.split(',')) k = MixCrypt(bits=256) k.k = ElGamal.construct((p, g, y)) print(','.join(map(str, k.encrypt(int(MSG)))))
#!/usr/bin/env python import sys from mixnet.mixcrypt import MixCrypt from mixnet.mixcrypt import ElGamal SK = sys.argv[1] MSG = sys.argv[2] p, g, y, x = map(int, SK.split(',')) a, b = map(int, MSG.split(',')) k = MixCrypt(bits=256) k.k = ElGamal.construct((p, g, y, x)) print(k.decrypt((a, b)))