def insert(self, node): # as server n = self.root if n == None: node.value = node.value[1] # input right cihper self.root = node # first time inset cipher return while True: if tife.decrypt(pp, node.value[0], n.value) == 1: # this is compare if n.left == None: node.parent = n n.left = node node.value = node.value[1] # right cipher break else: n = n.left if tife.decrypt(pp, node.value[0], n.value) == 0: # compare+ if n.right == None: n.parent = n n.right = node node.value = node.value[1] # right cipher break else: n = n.right
def bench_tife(N, group_name, iter=10, simulated=False): f = lambda x, y: 1 if x < y else 0 setup_a = time.time() (pp, sk) = tife.setup(N, f, group_name, simulated) setup_b = time.time() L = [] for index in range(iter): x = random.randint(0, N - 1) y = random.randint(0, N - 1) encryptL_a = time.time() ctx = tife.encryptL(sk, x) encryptL_b = time.time() encryptR_a = time.time() cty = tife.encryptR(sk, y) encryptR_b = time.time() decrypt_a = time.time() result = tife.decrypt(pp, ctx, cty) decrypt_b = time.time() ctsize = get_ct_size(cty) L.append((encryptL_b - encryptL_a, encryptR_b - encryptR_a, decrypt_b - decrypt_a, ctsize)) print("raw runtimes for each iteration: ", L) return (setup_b - setup_a, list_tuple_mean(L))
def bench_tife(N, group_name, iter = 10, simulated = False): f = lambda x,y: 1 if x < y else 0 setup_a = time.time() (pp, sk) = tife.setup(N, f, group_name, simulated) setup_b = time.time() L = [] for index in range(iter): x = random.randint(0, N-1) y = random.randint(0, N-1) encryptL_a = time.time() ctx = tife.encryptL(sk, x) encryptL_b = time.time() encryptR_a = time.time() cty = tife.encryptR(sk, y) encryptR_b = time.time() decrypt_a = time.time() result = tife.decrypt(pp, ctx, cty) decrypt_b = time.time() ctsize = get_ct_size(cty) L.append((encryptL_b - encryptL_a, encryptR_b - encryptR_a, decrypt_b - decrypt_a, ctsize)) print("raw runtimes for each iteration: ", L) return (setup_b - setup_a, list_tuple_mean(L))
def test_tife(): """ Runs a test on two-input functional encryption for the comparison function on toy parameters. """ N = 30 f = lambda x, y: 1 if x < y else 0 x = random.randint(0, N - 1) y = random.randint(0, N - 1) (pp, sk) = tife.setup(N, f) ctx = tife.encryptL(sk, x) cty = tife.encryptR(sk, y) result = tife.decrypt(pp, ctx, cty) assert result == f(x, y), "Failed test_tife"
def test_tife(): """ Runs a test on two-input functional encryption for the comparison function on toy parameters. """ N = 30 f = lambda x,y: 1 if x < y else 0 x = random.randint(0, N-1) y = random.randint(0, N-1) (pp, sk) = tife.setup(N, f) ctx = tife.encryptL(sk, x) cty = tife.encryptR(sk, y) result = tife.decrypt(pp, ctx, cty) assert result == f(x,y), "Failed test_tife"