RSA 同态乘法验证 Python 实现:Crypto.PublicKey 模块示例
以下是使用 Crypto.PublicKey 实现 RSA 乘法同态正确性验证的 Python 代码示例:
from Crypto.PublicKey import RSA
import random
# 生成两个 RSA 密钥对
alice_key = RSA.generate(1024)
bob_key = RSA.generate(1024)
# 生成两个随机数
x = random.randint(1, 100)
y = random.randint(1, 100)
# 使用 Alice 的公钥加密 x 和 y
x_encrypted = alice_key.publickey().encrypt(str(x).encode(), None)
y_encrypted = alice_key.publickey().encrypt(str(y).encode(), None)
# 对加密后的数字进行同态乘法运算
z_encrypted = x_encrypted[0] * y_encrypted[0] % alice_key.n
# 使用 Bob 的私钥解密结果
z_decrypted = bob_key.decrypt((z_encrypted,))
# 检查结果是否正确
if z_decrypted == x * y:
print('RSA 同态乘法运算可行!')
else:
print('RSA 同态乘法运算不可行。')
该代码示例演示了如何使用 Crypto.PublicKey 模块生成两个 RSA 密钥对,并使用其中一个密钥对加密两个随机数。然后,将加密的数字进行同态乘法运算,最后使用另一个密钥对解密结果并验证其正确性。如果结果正确,则输出“RSA 同态乘法运算可行”,否则输出“RSA 同态乘法运算不可行”。
原文地址: https://www.cveoy.top/t/topic/osL0 著作权归作者所有。请勿转载和采集!