nucypher / nufhe

NuCypher fully homomorphic encryption (NuFHE) library implemented in Python
https://nufhe.readthedocs.io/en/latest/
GNU General Public License v3.0
441 stars 53 forks source link

speed of gate bootstrapping #33

Open zj-rayan opened 2 years ago

zj-rayan commented 2 years ago

I tried to test the speed of nufhe gate bootstrapping by the following way but found it much slower than the result shown in nufhe's main page(0.13ms),how can I get appropriate test result?My GPU is GTX 1660Ti.

import random import nufhe import time

size = 32 bits1 = [random.choice([False, True]) for i in range(size)] bits2 = [random.choice([False, True]) for i in range(size)] reference = [not (b1 and b2) for b1, b2 in zip(bits1, bits2)]

ctx = nufhe.Context() secret_key, cloud_key = ctx.make_key_pair()

ciphertext1 = ctx.encrypt(secret_key, bits1) ciphertext2 = ctx.encrypt(secret_key, bits2)

vm = ctx.make_virtual_machine(cloud_key) t1 = time.time() result = vm.gate_nand(ciphertext1, ciphertext2) t2 = time.time() print(t2-t1) # around 3.0s result_bits = ctx.decrypt(secret_key, result)

assert all(result_bits == reference)