def test():
    sk = SecretKey(500, 2.44e-5, 1024, 2, 10, 3.73e-9, 8, 2, 2.44e-5)
    ck = CloudKey(sk)
    p = np.random.binomial(1, 0.5)
    x = tlweSymEncrypt((p * 2 + -1) * (2**-3), sk.params.alpha, sk.key.trlwe)
    y = IdentityKeySwitch(x, ck)
    np.set_printoptions(threshold=2000)
    if p != tlweSymDecrypt(y, sk.key.tlwe):
        print(p)
        print(tlweSymDecrypt(y, sk.key.tlwe))
        print(i)
        exit()
Пример #2
0
def test():
    sk = SecretKey(500, 2.44e-5, 1024, 2, 10, 3.73e-9, 8, 2, 2.44e-5)
    ck = CloudKey(sk)
    pa = np.random.binomial(1, 0.5)
    pb = np.random.binomial(1, 0.5)
    ca = tlweSymEncrypt((pa * 2 + -1) * (2**-3), sk.params.alpha, sk.key.tlwe)
    cb = tlweSymEncrypt((pb * 2 + -1) * (2**-3), sk.params.alpha, sk.key.tlwe)
    res = HomNAND(ca, cb, ck)
    y = tlweSymDecrypt(res, sk.key.tlwe)
    np.set_printoptions(threshold=2000)
    if (pa & pb) ^ 1 != y:
        print("FAILED")
        print(
            tlweSymDecrypt(
                np.uint32(np.append(np.zeros(ck.params.n), 2**29)) - ca - cb,
                sk.key.tlwe))
        print(y)
        exit()
Пример #3
0
from pyFHE.trlwe import trlweSymEncrypt,trlweSymDecrypt,SampleExtractIndex
from pyFHE.tlwe import tlweSymEncrypt,tlweSymDecrypt
from pyFHE.key import SecretKey, CloudKey
from pyFHE.gatebootstrapping import BlindRotateFFT
from pyFHE.utils import dtot32
import numpy as np

sk = SecretKey(500,2**(-7),1024,2,10,3.73e-9,8,2,2.43e-5)
ck = CloudKey(sk)
r = trlweSymEncrypt(np.full(sk.params.N,2**-3),0,sk.key.trlwe,sk.params.twist)
t =  tlweSymEncrypt(-2**-3,sk.params.alpha,sk.key.tlwe)
bara = np.uint32(np.round(np.double(t) * (2**-32 * 2 * sk.params.N)))
index = (((np.dot(bara[:-1],sk.key.tlwe)-bara[-1])%(2*sk.params.N))+2*sk.params.N)%(sk.params.N)
np.set_printoptions(threshold=2000)
Y = BlindRotateFFT(ck.bkfft,t,r,sk.params)
print(index)
print(trlweSymDecrypt(Y,sk.key.trlwe,sk.params.twist))
print(tlweSymDecrypt(SampleExtractIndex(Y,0),sk.key.trlwe))