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
Example #2
0
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))
Example #3
0
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))
Example #4
0
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"
Example #5
0
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"