Appearance
多密钥的公钥加密方案 BCP
BCP 是一种基于 Paillier 结构的双陷门公钥加密系统。它允许系统拥有一个主密钥(Master Key)和一个用户私钥(User Private Key)。
1. Setup
由可信第三方或分布式协议生成公共参数和主密钥:
- 选择两个大素数
,计算 - 计算
- 选择生成元
,使得 的阶是 的倍数(通常需满足 ) - 计算
。 - 其中函数
- 其中函数
- 公共参数 (Params):
- 主密钥 (MK):
2. KeyGen
用户生成自己的公私钥对:
- 用户随机选择私钥
- 计算公钥
- 用户公钥 (PK):
- 用户私钥 (SK):
3. Encrypt
给定明文
- 随机选择随机数
- 计算
- 计算
- 密文 (Ciphertext):
解密
BCP 方案支持两种解密方式。
方式一:使用用户私钥解密 (Exponent Decryption)
持有私钥
证明: 展开
应用
证毕。
方式二:使用主密钥解密 (Factor Decryption)
持有主密钥
核心性质: 对于任意
证明
Carmichael 定理:
对于任意
故而有
所以
算法步骤:
- 恢复随机数
: - 恢复私钥
: - 计算中间项:
- 消除随机性:
- 恢复明文:
详细证明:
Step 1: 展开
所以:
乘以
Step 2: 展开
Step 3: 展开
所以:
乘以 term:
Step 4: 计算
Step 5: 恢复
证毕。