基于公钥自证明的认证加密方案

作者:技术拾光时间:2026-06-26 07:13:11浏览:311

摘要 针对基于认证证书的数字签名方案中公钥集中保存、系统易受主动攻击的短板,本文提出一种基于公钥自证明的认证加密方案。用户以匿名方式注册,获取由用户与CA共同生成的公钥证明,据此可推导出用户的公钥。通信双方的公钥认证与消息签名被整合在一起,由消息接收者在认证签名、恢复消息的过程中完成公钥认证,从而降

摘要

针对基于认证证书的数字签名方案中公钥集中保存、系统易受主动攻击的短板,本文提出一种基于公钥自证明的认证加密方案。用户以匿名方式注册,获取由用户与CA共同生成的公钥证明,据此可推导出用户的公钥。通信双方的公钥认证与消息签名被整合在一起,由消息接收者在认证签名、恢复消息的过程中完成公钥认证,从而降低了存储空间、通信量与计算量。

关键词:数字签名;公钥证书;认证加密;公钥自证明

基于公钥自证明的认证加密方案

系统参数生成:CA选择两个大素数p和q,使p=2p’+1且q=2q’+1,其中p’和q’也是素数;然后计算n=p*q及其欧拉函数φ(n)=(p-1)(q-1)。接着选取一个随机整数e,1

2.2 用户注册阶段

用户向CA注册时,需要获取公钥证书,但CA不能得知用户的私钥,因此公钥的分发不能由CA单方面进行。同时出于匿名要求,即使CA也不能暴露用户真实身份,这需要用户与CA共同协商生成公钥证书。该注册过程称为用户注册协议。

步骤1:用户UA计算hA=h(IDA),其中IDA表示UA的身份标识且对CA保密,UA以匿名身份hA向CA提交注册申请。

步骤2:CA核实用户hA的身份,若通过,则CA计算rA=g-d mod n,并将rA传给UA。

步骤3:UA收到rA后,任选一个随机数作为私钥,计算vA,然后将vA传给CA。

步骤4:CA计算cA,将cA作为CA颁发的公钥证书并传给UA。

步骤5:UA收到CA发送的cA后,进行计算,同时验证等式是否成立。若成立,说明传输过程中参数未被篡改,cA是CA的有效公钥签名;否则签名无效。

该注册过程中,只有CA才能颁发UA的公钥证明。因为CA用私钥对协议交互中产生的特定信息进行了签名,任何不知晓CA私钥的实体均无法伪造,安全性很高。攻击者若想获取UA的私钥,需面对求解离散对数的困难;若想伪造CA的公钥证明,则需破解大素数因子分解难题。

2.3 签名生成阶段

假设用户UA要对消息M签名并传递给指定接收者UB,签名生成过程如下:

步骤1:UA向UB发送签名请求,并将cA、hA传给UB。

步骤2:UB收到请求后,将cB传给UA。

步骤3:UA收到UB发送的cB后,进行计算,然后选取一个随机数k,进行数字签名。

步骤4:UA将签名结果发送给UB。

2.4 消息恢复验证阶段

UB收到签名后,进行如下操作:

步骤1:(省略)

步骤2:…

步骤3:验证消息等式,若成立,则接受签名。该消息恢复验证过程同时实现了对UA和UB身份的双向认证。如果消息是UA的签名,UB使用UA的公钥验证签名,并用自身私钥解密恢复消息,从而完成双向身份认证。

消息恢复等式的正确性证明:若UB恢复的消息M正确,则消息验证等式自然成立。

3 安全性分析

(1)攻击者无法伪造CA的公钥签名。CA为用户UA的公钥签名时使用了自身私钥。任何攻击者若不知晓UA的公钥,就不可能伪造CA的签名,因为只有CA拥有私钥并能生成有效的公钥证明。攻击者若想获取CA的私钥,需面临大素数因子分解的困难。CA当然可以伪造公钥证明,但如果一个用户拥有两个合法的公钥证明,则说明CA不可信赖。

(2)攻击者在不知晓UA私钥的情况下,无法伪造合法签名。攻击者必须获得用户的私钥XA,并截获UB的公钥证明cB,才能假冒UA进行签名。而攻击者无法获取UA的私有密钥xB,也无法根据消息恢复方程求出M。换言之,只有指定的消息接收者UB才有可能计算出M,而UB与消息发送者之间的相互确认依赖于用户公钥的自认证协议。

(3)消息密钥K可以重复使用。对于不同的消息M和M1,r2和s各不相同,攻击者无法从签名等式中反推出签名者的私钥。

4 方案的比较

本文提出的基于公钥自证明的认证加密方案,依据Girault的公钥自证明原理,在Tseng Yuh-Min等人的自证明方案基础上设计,并针对文献[7]指出的Tseng方案缺点进行了改进。

首先,本方案中CA对用户公钥签名时有效引入了CA的私钥,解决了攻击者可冒充CA生成有效公钥认证的问题。在Tseng的认证加密方案中,CA对用户公钥的证明并未使用CA的私钥,攻击者只要知道CA的签名等式就能假冒CA签名。而本方案的认证过程引入了CA私钥,攻击者不知私钥无法生成有效签名,只有CA自身才能用私钥签发有效的公钥证明。

其次,本方案的消息签名修正了Tseng方案中的缺陷。Tseng的认证加密签名方案中,r1和r2存在线性关系,据此可算出gk,进而恢复消息M·gk,但无法直接恢复消息M。本方案避免了该问题。