设: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

可以看到,乘法同态的结果和原始数字乘积相同,验证了乘法同态的正确性。

Python 验证乘法同态的正确性

原文地址: https://www.cveoy.top/t/topic/osKD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录