import rsafrom CryptodomeCipher import PKCS1_OAEP# 生成RSA密钥对pubkey privkey = rsanewkeys2048# 定义加密函数def encryptmsg cipher = PKCS1_OAEPnewpubkey return cipherencryptmsg# 定义解密函数def decryptciphertext
import rsa from Cryptodome.Cipher import PKCS1_OAEP
生成RSA密钥对
(pubkey, privkey) = rsa.newkeys(2048)
定义加密函数
def encrypt(msg): cipher = PKCS1_OAEP.new(pubkey) return cipher.encrypt(msg)
定义解密函数
def decrypt(ciphertext): cipher = PKCS1_OAEP.new(privkey) return cipher.decrypt(ciphertext)
定义同态验证函数
def homomorphic_verify(a, b, c): ea = encrypt(str(a).encode()) eb = encrypt(str(b).encode()) ec = encrypt(str(c).encode()) emul = (ea * eb) % pubkey.n d_emul = int(decrypt(emul).decode()) d_ec = int(decrypt(ec).decode()) if d_emul == d_ec: print("Verification passed!") else: print("Verification failed!")
测试
a = 123 b = 456 c = a * b homomorphic_verify(a, b, c
原文地址: https://www.cveoy.top/t/topic/gAgq 著作权归作者所有。请勿转载和采集!