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("乘法同态验证失败!"

同态加密验证。简单的同态加密包含加法同态和乘法同态加法同态算法最经典的是Paillier算法乘法同态算法最经典的是RSA算法。以下是RSA算法同态验证说明: 设: ab=c 基础等式其中:加密函数e解密函数d enctrypt:加密;decrypt:解密 乘法同态特为:eaeb=ecc=dec=deaeb验证c 是否等于ab即可得到乘法同态的正确性。python代码

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

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