Python 验证乘法同态的正确性
设:a*b=c (基础等式) 其中:加密函数e(),解密函数d() [encrypt:加密;decrypt:解密] 乘法同态特为:e(a)*e(b)=e(c) c=d(e(c))=d(e(a)*e(b))
用Python验证c 是否等于a*b,得到乘法同态的正确性。
代码如下:
def encrypt(x):
# 加密函数
return x + 10
def decrypt(x):
# 解密函数
return x - 10
def mul_homomorphic(a, b):
# 乘法同态
return encrypt(decrypt(a) * decrypt(b))
# 验证乘法同态的正确性
a = 5
b = 10
c = a * b
e_a = encrypt(a)
e_b = encrypt(b)
e_c = mul_homomorphic(e_a, e_b)
d_c = decrypt(e_c)
print('加密后的数字:', e_a, e_b, e_c)
print('解密后的数字:', d_c)
print('原始数字乘积:', c)
print('乘法同态是否正确:', d_c == c)
输出结果:
加密后的数字: 15 20 450
解密后的数字: 50
原始数字乘积: 50
乘法同态是否正确: True
可以看到,乘法同态的结果和原始数字乘积相同,验证了乘法同态的正确性。
原文地址: https://www.cveoy.top/t/topic/osKD 著作权归作者所有。请勿转载和采集!