同态加密验证。简单的同态加密包含加法同态和乘法同态加法同态算法最经典的是Paillier算法乘法同态算法最经典的是RSA算法。以下是RSA算法同态验证说明: 设: ab=c 基础等式其中:加密函数e解密函数d enctrypt:加密;decrypt:解密 乘法同态特为:eaeb=ecc=dec=deaeb验证c 是否等于ab即可得到乘法同态的正确性。python代码
RSA同态加密验证
from Crypto.Util.number import * import random
生成RSA密钥对
p = getPrime(512) q = getPrime(512) n = p * q phi = (p - 1) * (q - 1) e = 65537 d = inverse(e, phi)
加密函数
def encrypt(m): return pow(m, e, n)
解密函数
def decrypt(c): return pow(c, d, n)
生成随机数a和b
a = random.randint(1, n-1) b = random.randint(1, n-1)
计算c = a * b
c = a * b
加密a、b和c
ea = encrypt(a) eb = encrypt(b) ec = encrypt(c)
验证乘法同态
if decrypt(ec) == decrypt(ea) * decrypt(eb): print("乘法同态验证成功!") else: print("乘法同态验证失败!"
原文地址: https://www.cveoy.top/t/topic/gAps 著作权归作者所有。请勿转载和采集!