正文复制

一种基于公钥自证明认证加密方案
摘要针对基于认证证书的数字签名方案中公钥集中保存,系统容易受到主动攻击的缺点,提出了一种新的基于公钥自证明的认证加密方案。该方案中用户匿名注册,并获得由用户与CA共同产生的公钥证明,可以根据用户公钥证明推导其公钥;通信双方的公钥认证与消息签名结合在一起,由消息接收者在认证签名、恢复消息时完成公钥认证,因而减少了存储空间、通信量和计算量。关键字数字签名公钥证书认证加密公钥自证明p和q,使p=2p’+1和q=2q’+1,其中p’和q’也是素数,然后计算n=p*q,及其欧拉函数φ(n)=(p-l)(q-1)。然后选择一个随机整数e,leg,g是n=p*q的基元。还公布一个单向hash函数h()。CA的秘密参数:p、q、p’、q’、φ(n)以及d,CA的公开参数:e、n、g和h()。2.2用户注册阶段为了使向CA注册的用户获取的公钥证书,而CA不知道用户的私钥,因此用户公钥的分发不能简单地由CA产生颁布。同时也为了用户身份的匿名要求,对CA也不能暴露,因此公钥证书的产生要由用户与CA共同协商完成。把这个注册过程称之为用户注册协议。步骤1:用户UA计算hA=h(IDA),其中IDA代表UA的身份标识,且对CA保密,UA以匿名的身份hA向CA提出注册申请;步骤2:CA检查核实用户hA的身份,若hA通过身份检查,则CA计算rA=g-dmodn,将rA传送给UA;步骤3:UA收到rA后,任选一个随机数作为私钥,计算,将vA传送给CA;步骤4:CA计算,则将CA作为CA颁发的公钥证书,并将CA传送给UA;步骤5:UA接收到UA发送的CA后,计算,同时验证等式是否成立,若成立,则证明在传输过程中参数未被篡改,CA是CA的有效公钥签名。否则,签名无效。上述注册过程,只有CA才能颁发UA的公钥的证明。因为在注册过程中,CA使用私钥对UA在协议交互过程中产生的一些特定信息进行签名,任何人若不知道CA私钥,是无法伪造的,其安全性程度高。如果攻击者企图获取>UA的私钥。那么他将面临求解离散对数的困难。如果攻击者企图伪造CA的公钥证明。那么他将面临求大素数的因子分解的困难。2.3签名生成阶段假定用户UA对消息M的签名,并将签名的消息传递给指定的接收者UB。消息M签名生成过程如下:步骤1:UA向UB发送要进行签名的请求,并将CA,hA传送给UB;步骤2:UB接收到UA的签名请求,将CB传送给UA;步骤3:UA接收到UB发送的CB后,计算,然后选择一个随机数k,进行数字签名:
步骤4:UAUB。2.4消息恢复验证阶段UB;
步骤3:验证消息等式,若消息验证等式成立,则接受这次签名。这个消息恢复验证的过程同时也实现对UA和UB身份的双向认证。如果消息是UA的签名,,则UB使用UA的公钥验证签名,并用自己的私钥解密恢复消息,实现双向的身份认证。消息恢复等式的正确性证明如下: