我们是否可以使用 SEAL / PySEAL 库对加密数据执行除法操作Microsoft?



我正在使用 PySEAL 库,它是 Microsoft SEAL 同态加密库的一个分支,用于在加密数据上实现机器学习算法。为此,我需要将数字除以。在 examples.py 源代码中,有一些示例可以执行加法、减法和乘法,但不能执行除法。是否可以使用 PySEAL 库进行除法?如果没有,有没有办法绕过它,比如在这个库中使用其他算术运算将两个数字相除的技巧?

SEAL 不支持密文之间的划分。但是,如果您希望将密文除以明文,则可以使用逆乘法,如下所示:

from seal import *
# context is a SEALContext object
# encoder is a FractionalEncoder object
# encryptor is an Encryptor object
# evaluator is an Evaluator object
# decryptor is a Decryptor object
# Encrypt a float
cipher = Ciphertext()
encryptor.encrypt(encoder.encode(7.0), cipher)
# Divide that float by 10
div_by_ten = encoder.encode(0.1)
evaluator.multiply_plain(cipher, div_by_ten)
# Decrypt result
plain = Plaintext()
decryptor.decrypt(cipher, plain)
result = encoder.decode(plain)
print(result)
>> 0.6999999999999996

请参阅 PySEAL Python 示例中example_weighted_average函数。

最新更新