q
,使p
=2p
’
+1和q
=2q
’
+1,其中p
’
和q
’
也是素数,然后计算n
=p
*q
,及其欧拉函数φ(n)=(p
-l)(q
-1)。然后选择一个随机整数e
,l<e
<φ(n),gcd(e,φ(n)=1,并计算d,使得ed=1modφ(n),接着CA选择一个整数g
,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后,任选一个随机数作为私钥,计算,将v
A传送给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
的公钥验证签名,并用自己的私钥解密恢复消息,实现双向的身份认证。消息恢复等式的正确性证明如下:同时如果UB
恢复的消息M是正确,则有消息验证等式成立:3安全性分析(1)攻击者不可能伪造CA的公钥签名。CA为用户UA
的公钥签名时使用了私钥。任何攻击者不知道UA
的公钥是不可能伪造CA的签名。因为,只有CA拥有私钥,能产生有效的公钥证明。而攻击者要想获取CA的私钥,将面临大素数的因子分解困难。CA可以伪造公钥证明,但一个用户有两个合法的公钥证明,则证明CA的不可信赖性。(2)攻击者在不知道UA
的私钥的情况下,伪造一个合法的签名是的不可能性。攻击者必须计算用户的私钥XA,并且截获UB
的公钥的证明CB
,才能假冒UA
进行签名。而攻击者要想获取UAUB
的私有密钥xB
,因此他无法根据消息恢复方程求解得到M。也就是说只有指定的消息接收者UB
才可能求解得到M,他与消息发送者之间的相互确认是通过用户公钥的自认证协议实现的。(4)消息密钥K可以多次使用。对于不同的消息M
和M1、r2和s都不相同,攻击者不能根据签名等式分析得出签名者的私钥。4方案的比较所提出的基于公钥自证明的认证加密方案是根据Girault的公钥自证明原理,在Tsengyuh-Min等人的自证明方案的基础上进行设计的,同时根据文献[7]中对Tsengyuh-Min方案的缺点分析,提出的一种更安全的公钥自证明方案。首先,本方案中,CA对用户的公钥签名时有效引入CA的私钥,解决了攻击者可以假冒CA产生有效公钥认证的问题。在Tseng的认证加密方案,CA对用户公钥的证明没有使用CA的私钥,攻击者只要知道CA的签名等式,就可以假冒CA的签名。而的认证过程引入了CA的私钥,由于攻击者不知道CA的私钥,就不能产生有效的签名。只有CA才能使用私钥产生有效的签名。同时,本方案的消息签名改正了Tseng的认证加密方案的缺陷。在tseng的认证加密签名方案中,r1和r2具有线性关系,由可以得到
gk
,且可以恢复消息Mgk
,因此不能恢复消息M。,,一种基于公钥自证明认证加密方案飞雪