def protocol(client, server, params):
    ' TASTYL program to multiply two unsigned values held by C and S using HE '
    conversions.Garbled_Garbled_receive(server.hx, client.hx, 32, [1], False)
    conversions.Garbled_Garbled_receive(server.hy, client.hy, 32, [1], False)
    client.hr = client.hx * client.hy
    client.r = Unsigned(val=client.hr, signed=False, bitlen=64, dim=[1])
    client.r.output(dest=driver, desc='r')
Esempio n. 2
0
def protocol(client, server, params):
    server.ga = Garbled(val=Unsigned(bitlen=59, dim=[1], signed=False, passive=True, empty=True), signed=False, bitlen=59, dim=[1])
    server.gb = Garbled(val=Unsigned(bitlen=86, dim=[1], signed=False, passive=True, empty=True), signed=False, bitlen=86, dim=[1])
    conversions.Garbled_Garbled_send(server.ga, client.ga, 59, [1], False)
    conversions.Garbled_Garbled_send(server.gb, client.gb, 86, [1], False)
    client.gc = client.ga + client.gb
    conversions.Garbled_Garbled_receive(client.gc, server.gc, 87, [1], False)
Esempio n. 3
0
def protocol(client, server, params):
    client.ga = Garbled(val=Signed(bitlen=32,
                                   dim=[1],
                                   signed=True,
                                   passive=True,
                                   empty=True),
                        passive=True,
                        signed=True,
                        bitlen=32,
                        dim=[1])
    client.cc = Signed(val=client.ga,
                       passive=True,
                       signed=True,
                       bitlen=32,
                       dim=[1])
    conversions.Signed_Garbled_send(server.b, client.gb, 32, [1], True)
    client.sc = Signed(val=client.gb,
                       passive=True,
                       signed=True,
                       bitlen=32,
                       dim=[1])
    conversions.Garbled_Garbled_receive(client.ga, server.ga, 32, [1], True)
    server.gb = Garbled(val=Signed(bitlen=32,
                                   dim=[1],
                                   signed=True,
                                   passive=True,
                                   empty=True),
                        signed=True,
                        bitlen=32,
                        dim=[1])
def protocol(client, server, params):
    server.b = Signed(bitlen=32, empty=True, signed=True, dim=[1]).input(src=driver, desc='b')
    client.ga = Garbled(val=Signed(bitlen=32, dim=[1], signed=True, passive=True, empty=True), passive=True, signed=True, bitlen=32, dim=[1])
    conversions.Signed_Garbled_send(server.b, client.gb, 32, [1], True)
    conversions.Garbled_Garbled_receive(client.ga, server.ga, 32, [1], True)
    conversions.Garbled_Signed_send(server.ga, client.cc2, 32, [1], True)
    server.gb = Garbled(val=server.b, signed=True, bitlen=32, dim=[1])
    conversions.Garbled_Signed_send(server.gb, client.sc2, 32, [1], True)
Esempio n. 5
0
def protocol(client, server, params):
    client.a = Unsigned(bitlen=140, empty=True, signed=False,
                        dim=[1]).input(src=driver, desc='a')
    client.ga = Garbled(val=client.a, signed=False, bitlen=140, dim=[1])
    conversions.Garbled_Garbled_receive(server.gb, client.gb, 140, [1], False)
    client.gc = client.ga * client.gb
    client.c = Unsigned(val=client.gc, signed=False, bitlen=280, dim=[1])
    client.c.output(dest=driver, desc='c')
def protocol(client, server, params):
    server.a = Unsigned(bitlen=59, empty=True, signed=False, dim=[1]).input(src=driver, desc='a')
    server.b = Unsigned(bitlen=86, empty=True, signed=False, dim=[1]).input(src=driver, desc='b')
    server.ga = Garbled(val=server.a, signed=False, bitlen=59, dim=[1])
    server.gb = Garbled(val=server.b, signed=False, bitlen=86, dim=[1])
    conversions.Garbled_Garbled_send(server.ga, client.ga, 59, [1], False)
    conversions.Garbled_Garbled_send(server.gb, client.gb, 86, [1], False)
    conversions.Garbled_Garbled_receive(client.gc, server.gc, 87, [1], False)
    server.c = Unsigned(val=server.gc, signed=False, bitlen=87, dim=[1])
    server.c.output(dest=driver, desc='c')
def protocol(client, server, params):
    gc = GarbledCircuit(FairplayCircuit(protocol_path('Add.sfdl.shdl')),
                        ['alice.input', 'bob.input'], ['alice.output'])
    client.x = Signed(bitlen=4, empty=True, signed=True,
                      dim=[1]).input(src=driver, desc='a')
    client.gx = Garbled(val=client.x, signed=True, bitlen=4, dim=[1])
    conversions.Garbled_Garbled_receive(server.gy, client.gy, 4, [1], True)
    (client.gz, ) = gc([client.gx, client.gy])
    client.z = Signed(val=client.gz, signed=True, bitlen=5, dim=[1])
    client.z.output(dest=driver, desc='zc')
Esempio n. 8
0
def protocol(client, server, params):
    client.ga = Garbled(val=Unsigned(bitlen=215,
                                     dim=[1],
                                     signed=False,
                                     passive=True,
                                     empty=True),
                        signed=False,
                        bitlen=215,
                        dim=[1])
    conversions.Garbled_Garbled_receive(server.gb, client.gb, 67, [1], False)
    client.gc = client.ga + client.gb
    conversions.Garbled_Garbled_send(client.gc, server.gc, 216, [1], False)
Esempio n. 9
0
def protocol(client, server, params):
    client.ga = Garbled(val=Unsigned(bitlen=140,
                                     dim=[1],
                                     signed=False,
                                     passive=True,
                                     empty=True),
                        signed=False,
                        bitlen=140,
                        dim=[1])
    conversions.Garbled_Garbled_receive(server.gb, client.gb, 140, [1], False)
    client.gc = client.ga * client.gb
    client.c = Unsigned(val=client.gc, signed=False, bitlen=280, dim=[1])
Esempio n. 10
0
def protocol(client, server, params):
    server.b = Unsigned(bitlen=67, empty=True, signed=False,
                        dim=[1]).input(src=driver, desc='b')
    client.ga = Garbled(val=Unsigned(bitlen=215,
                                     dim=[1],
                                     signed=False,
                                     passive=True,
                                     empty=True),
                        passive=True,
                        signed=False,
                        bitlen=215,
                        dim=[1])
    server.gb = Garbled(val=server.b, signed=False, bitlen=67, dim=[1])
    conversions.Garbled_Garbled_send(server.gb, client.gb, 67, [1], False)
    conversions.Garbled_Garbled_receive(client.gc, server.gc, 216, [1], False)
    server.c = Unsigned(val=server.gc, signed=False, bitlen=216, dim=[1])
    server.c.output(dest=driver, desc='c')
Esempio n. 11
0
def protocol(client, server, params):
    client.ga = Garbled(val=Unsigned(bitlen=106,
                                     dim=[1],
                                     signed=False,
                                     passive=True,
                                     empty=True),
                        passive=True,
                        signed=False,
                        bitlen=106,
                        dim=[1])
    client.gb = Garbled(val=Unsigned(bitlen=247,
                                     dim=[1],
                                     signed=False,
                                     passive=True,
                                     empty=True),
                        passive=True,
                        signed=False,
                        bitlen=247,
                        dim=[1])
    conversions.Garbled_Garbled_receive(client.gc, server.gc, 248, [1], False)
    server.c = Unsigned(val=server.gc, signed=False, bitlen=248, dim=[1])
    server.c.output(dest=driver, desc='c')
Esempio n. 12
0
def protocol(client, server, params):
    client.ga = Garbled(val=Unsigned(bitlen=106, dim=[1], signed=False, passive=True, empty=True), passive=True, signed=False, bitlen=106, dim=[1])
    client.gb = Garbled(val=Unsigned(bitlen=247, dim=[1], signed=False, passive=True, empty=True), passive=True, signed=False, bitlen=247, dim=[1])
    client.gc = client.ga + client.gb
    conversions.Garbled_Garbled_receive(client.gc, server.gc, 248, [1], False)
Esempio n. 13
0
def protocol(client, server, params):
    conversions.Garbled_Garbled_receive(server.ga, client.ga, 764, [1], False)
    conversions.Garbled_Garbled_receive(server.gb, client.gb, 764, [1], False)
    client.gc = client.ga * client.gb
    client.c = Unsigned(val=client.gc, signed=False, bitlen=1528, dim=[1])
    client.c.output(dest=driver, desc='c')
Esempio n. 14
0
def protocol(client, server, params):
    conversions.Garbled_Garbled_receive(server.ga, client.ga, 59, [1], False)
    conversions.Garbled_Garbled_receive(server.gb, client.gb, 86, [1], False)
    client.gc = client.ga + client.gb
    conversions.Garbled_Garbled_send(client.gc, server.gc, 87, [1], False)
Esempio n. 15
0
def protocol(client, server, params):
    conversions.Garbled_Garbled_receive(server.ga, client.ga, 219, [1], False)
    conversions.Garbled_Garbled_receive(server.gb, client.gb, 132, [1], False)
    client.gc = client.ga + client.gb
    client.c = Unsigned(val=client.gc, signed=False, bitlen=220, dim=[1])
Esempio n. 16
0
def protocol(client, server, params):
    client.a = Unsigned(bitlen=215, empty=True, signed=False, dim=[1]).input(src=driver, desc='a')
    client.ga = Garbled(val=client.a, signed=False, bitlen=215, dim=[1])
    conversions.Garbled_Garbled_receive(server.gb, client.gb, 67, [1], False)
    client.gc = client.ga + client.gb
    conversions.Garbled_Garbled_send(client.gc, server.gc, 216, [1], False)