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)
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)