paillier同态加密算法库 如何生成 RSAPublicKey 和 RSAPrivateKey 并获得密钥字符串和公私钥文件

本文介绍了如何使用paillier同态加密算法库生成RSAPublicKey和RSAPrivateKey,包括获取公钥和私钥字符串,保存为文件以及从字符串恢复公钥和私钥文件。讨论了公钥和私钥的PEM格式,以及相关操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

paillier同态加密算法库地址:

https://github.com/FISCO-BCOS/paillier-lib

开发示例 

// generate the key pair for encrypt and decrypt
KeyPair keypair = PaillierKeyPair.generateGoodKeyPair();
RSAPublicKey pubKey = (RSAPublicKey)keypair.getPublic();
RSAPrivateKey priKey = (RSAPrivateKey)keypair.getPrivate();

// encrypt the first number with public key
BigInteger i1 = BigInteger.valueOf(1000000);
String c1 = PaillierCipher.encrypt(i1, pubKey);

// encrypt the second number with same public key
BigInteger i2 = BigInteger.valueOf(2012012012);
String c2 = PaillierCipher.encrypt(i2, pubKey);

// paillier add with numbers
String c3 = PaillierCipher.ciphertextAdd(c1,c2);

// decrypt the result
BigInteger o3 = PaillierCipher.decrypt(c3, priKey);

 其中,生成并用于加密的公钥为:

RSAPublicKey 类型

生成并用于解密的私钥为: 

RSAPrivateKey 类型

但实际上使用 keypair 的 get 方法得到的公私密钥就是 security 库中常用的普通 PublicKey 和 PrivateKey ,只是进行了强制类型转换,相关操作可以直接参考。

import java.security.*;

获取公钥字符串

可以使用如下方法:

PaillierKeyPair.publicKeyToPem()
        KeyPair keypair = PaillierKeyPair.generateGoodKeyPair();
        RSAPublicKey pubKey = (RSAPublicKey) keypair.getPublic();
        RSAPrivateKey priKey = (RSAPrivateKey) keypair.getPrivate();

        System.out.println("RSAPublicKey");
        String pubstr = PaillierKeyPair.publicKeyToPem(pubKey);
        System.out.println(pubstr);

 结果:

获取私钥字符串

可以使用如下方法:

PaillierKeyPair.privateKeyToPem()
        KeyPair keypair = PaillierKeyPair.generateGoodKeyPair();
        RSAPublicKey pubKey = (RSAPublicKey) keypair.getPublic();
        RSAPrivateKey priKey = (RSAPrivateKey) keypair.getPrivate();

        System.out.println("RSAPrivat
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值