RSA 基自动恢复密码系统详解
1. 系统初始化
托管机构在系统中使用了一些加密原语。其中,ENC 是一个语义安全的概率公钥加密算法,它接受三个参数:r(待加密的消息)、s(随机选择的字符串,使加密具有概率性)和 E(公钥)。加密结果 C = ENC(r, s, E) 就是消息 r 的密文。对应的解密函数是 DEC,即 r = DEC(C, D),这里的 D 是与 E 对应的私钥。私钥 D 可能是分布式共享的,此时 r = DEC(C, D1, D2, …, Dm)。
在本系统中,语义安全就足够了,不需要选择密文安全,因为解密操作是为了恢复密钥,而其“密文记录”包含了加密方对密钥的知识证明。
系统与托管代理作为分布式实体的组织方式无关。当有 m 个托管机构时,它们会生成共享私钥 D 的份额 D1, D2, …, Dm,并协作计算对应的公钥 E。为此,可以采用函数共享的概念来实现阈值解码。公钥 E 会作为托管机构的密钥发布,也可以发布多个密钥供用户选择使用。
2. 通用自动恢复系统
2.1 构建认证和恢复机制
我们将加密和零知识证明的概念相结合,并添加到密钥生成过程中。为了提高通信效率(确保新方案能嵌入旧协议),采用了随机预言机的方法。这种方法由 Bellare 和 Rogaway 提出,用于模拟加密哈希函数的使用。最初由 Fiat 和 Shamir 以及 Schnorr 使用,并由 Pointcheval 和 Stern 进行了严格证明。随机预言机模型的证明验证了设计,但不是严格的复杂性理论证明,不过通常能给出高效的解决方案,在本系统中还能减少交互。虽然已知该模型存在一些弱点,但在本系统及其他许多应用中,这种方法