Ejemplo n.º 1
0
while True:
    conn, addr = serv.accept()
    data = str(conn.recv(4096).decode())
    if data.split(':')[0] == 'x_prime':
        alice_conn = conn
        x_prime = int(data.split(':')[1])
        print(x_prime)
    if data.split(':')[0] == 'y_prime':
        bob_conn = conn
        y_prime = int(data.split(':')[1])
        print(y_prime)

    if x_prime != 0 and y_prime != 0:
        if x_prime == -1 or y_prime == -1:
            break

        u = random.randint(0, x_prime)
        v = random.randint(0, y_prime)
        w = u * v
        w_prime = util.closest_large_prime_finder(w)
        u_a, u_b = util.two_party_secret_share(u, x_prime)
        v_a, v_b = util.two_party_secret_share(v, y_prime)
        w_a, w_b = util.two_party_secret_share(w, w_prime)
        alice_msg = str(u_a) + ':' + str(v_a) + ':' + str(w_a)
        bob_msg = str(u_b) + ':' + str(v_b) + ':' + str(w_b)
        alice_conn.send(alice_msg.encode())
        bob_conn.send(bob_msg.encode())
        break

serv.close()
Ejemplo n.º 2
0
import socket
from Util import Util
util = Util()
import time

serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(('127.0.0.1',8082))
serv.listen(1)

trusted_initializer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
trusted_initializer.connect(util.server_address_builder())

desired_input = input('Please input an integer: \n')
desired_operation = input('Secure Two-party Computation for addition or multiplication (a/m): \n')
y = int(desired_input)
prime = util.closest_large_prime_finder(y)
y_a, y_b = util.two_party_secret_share(y,prime)

alice_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
alice_client.connect(('127.0.0.1',8081))
alice_client.send(str('y_a:' + str(y_a)).encode())

if desired_operation == 'a':
    trusted_initializer.send('y_prime:-1'.encode())
    initialized_share = str(trusted_initializer.recv(1024).decode())
    x_b = -1
    alice_sub_addition = -1
    alice_addition = -1
    while True:
        alice_conn, addr = serv.accept()
        data = str(alice_conn.recv(4096).decode())
Ejemplo n.º 3
0
from Util import Util
util = Util()
import time

serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(('127.0.0.1', 8081))
serv.listen(1)

trusted_initializer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
trusted_initializer.connect(util.server_address_builder())

desired_input = input('Please input an integer: \n')
desired_operation = input(
    'Secure Two-party Computation for addition or multiplication (a/m): \n')
x = int(desired_input)
prime = util.closest_large_prime_finder(x)
x_a, x_b = util.two_party_secret_share(x, prime)

bob_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bob_client.connect(('127.0.0.1', 8082))
bob_client.send(str('x_b:' + str(x_b)).encode())

if desired_operation == 'a':
    trusted_initializer.send('x_prime:-1'.encode())
    initialized_share = str(trusted_initializer.recv(1024).decode())
    y_a = -1
    bob_sub_addition = -1
    bob_addition = -1
    while True:
        bob_conn, addr = serv.accept()
        data = str(bob_conn.recv(4096).decode())
from Util import Util
util = Util()
import random

x = 24
y = 36
prime = util.closest_large_prime_finder(x) if x > y else util.closest_large_prime_finder(y)
print('Prime: ' + str(prime))

x_a, x_b = util.two_party_secret_share(x)
y_a, y_b = util.two_party_secret_share(y)

s_a = x_a + y_a
s_b = x_b + y_b
s = (s_a + s_b)
print('Result of secure computation: ' + str(s))
print('Result of simple addition: ' + str(x+y))