Beispiel #1
0
def test_enc_dec(t):
    context, secret_key = ts.generate_ckks_keys()
    t_encrypted = t.encrypt("ckks", public_key=context, scale=2 ** 40)
    t_decrypted = t_encrypted.decrypt("ckks", secret_key=secret_key)

    assert t_decrypted.shape == t.shape
    # ckks might introduce some error
    diff = th.abs(t - t_decrypted)
    assert not th.any(diff > 0.1)
Beispiel #2
0
def test_add_plain(t1, t2):
    context, secret_key = ts.generate_ckks_keys()
    t1_encrypted = t1.encrypt("ckks", public_key=context, scale=2 ** 40)
    t_add = t1_encrypted + t2

    assert isinstance(t_add.child, sy.CKKSTensor)
    t_decrypted = t_add.decrypt("ckks", secret_key=secret_key)

    # ckks might introduce some error
    diff = th.abs((t1 + t2) - t_decrypted)
    assert not th.any(diff > 0.1)