RSA算法同态验证的代码实现如下:

//生成RSA公私钥对 RSAKeyPair keyPair = RSA.generateKeyPair();

//明文a、b、c BigInteger a = new BigInteger("123456789"); BigInteger b = new BigInteger("987654321"); BigInteger c = a.multiply(b);

//加密明文a、b、c BigInteger ea = RSA.encrypt(a, keyPair.getPublicKey()); BigInteger eb = RSA.encrypt(b, keyPair.getPublicKey()); BigInteger ec = RSA.encrypt(c, keyPair.getPublicKey());

//验证乘法同态 BigInteger dc = RSA.decrypt(ec, keyPair.getPrivateKey()); BigInteger ab = a.multiply(b); if (dc.equals(RSA.encrypt(ab, keyPair.getPublicKey()))) { System.out.println("乘法同态验证成功!"); } else { System.out.println("乘法同态验证失败!");

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

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

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