meili 发表于 2022-10-31 01:15:49

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

摘要针对基于认证证书的数字签名方案中公钥集中保存,系统容易受到主动攻击的缺点,提出了一种新的基于公钥自证明的认证加密方案。该方案中用户匿名注册,并获得由用户与CA共同产生的公钥证明,可以根据用户公钥证明推导其公钥;通信双方的公钥认证与消息签名结合在一起,由消息接收者在认证签名、恢复消息时完成公钥认证,因而减少了存储空间、通信量和计算量。关键字数字签名公钥证书认证加密公钥自证明p</I>和<I>q</I>,使<I>p</I>=2<I>p</I><I>’</I>+1和<I>q</I>=2<I>q</I><I>’</I>+1,其中<I>p</I><I>’</I>和<I>q</I><I>’</I>也是素数,然后计算<I>n</I>=<I>p</I>*<I>q</I>,及其欧拉函数φ(n)=(<I>p</I>-l)(<I>q</I>-1)。然后选择一个随机整数<I>e</I>,l<<I>e</I><φ(n),gcd(e,φ(n)=1,并计算d,使得ed=1modφ(n),接着CA选择一个整数<I>g</I>,<I>g</I>是<I>n</I>=<I>p</I>*<I>q</I>的基元。还公布一个单向hash函数<I>h</I>()。CA的秘密参数:<I>p</I>、<I>q</I>、<I>p</I><I>’</I>、<I>q</I><I>’</I>、φ(n)以及<I>d</I>,CA的公开参数:<I>e</I>、<I>n</I>、<I>g</I>和<I>h</I>()。2.2用户注册阶段为了使向CA注册的用户获取的公钥证书,而CA不知道用户的私钥,因此用户公钥的分发不能简单地由CA产生颁布。同时也为了用户身份的匿名要求,对CA也不能暴露,因此公钥证书的产生要由用户与CA共同协商完成。把这个注册过程称之为用户注册协议。步骤1:用户<I>UA</I>计算<I>hA</I>=<I>h(IDA)</I>,其中<I>IDA</I>代表<I>UA</I>的身份标识,且对CA保密,<I>UA</I>以匿名的身份<I>hA</I>向CA提出注册申请;步骤2:CA检查核实用户<I>hA</I>的身份,若<I>hA</I>通过身份检查,则CA计算rA=g-dmodn,将rA传送给<I>UA</I>;步骤3:<I>UA</I>收到rA后,任选一个随机数作为私钥,计算,将<I>v</I>A传送给CA;步骤4:CA计算,则将<I>CA</I>作为CA颁发的公钥证书,并将<I>CA</I>传送给<I>UA</I>;步骤5:<I>UA</I>接收到<I>UA</I>发送的<I>CA</I>后,计算,同时验证等式是否成立,若成立,则证明在传输过程中参数未被篡改,<I>CA</I>是CA的有效公钥签名。否则,签名无效。上述注册过程,只有CA才能颁发<I>UA</I>的公钥的证明。因为在注册过程中,CA使用私钥对<I>UA</I>在协议交互过程中产生的一些特定信息进行签名,任何人若不知道CA私钥,是无法伪造的,其安全性程度高。如果攻击者企图获取<I</p>,<P>>UA</I>的私钥。那么他将面临求解离散对数的困难。如果攻击者企图伪造CA的公钥证明。那么他将面临求大素数的因子分解的困难。2.3签名生成阶段假定用户<I>UA</I>对消息M的签名,并将签名的消息传递给指定的接收者<I>UB</I>。消息M签名生成过程如下:步骤1:<I>UA</I>向<I>UB</I>发送要进行签名的请求,并将<I>CA</I>,<I>hA</I>传送给<I>UB</I>;步骤2:<I>UB</I>接收到<I>UA</I>的签名请求,将<I>CB</I>传送给<I>UA</I>;步骤3:<I>UA</I>接收到<I>UB</I>发送的<I>CB</I>后,计算,然后选择一个随机数<I>k</I>,进行数字签名:<Palign=center></P>步骤4:<I>UAUB</I>。<P>2.4消息恢复验证阶段<I>UB;</P>步骤3:验证消息等式,若消息验证等式成立,则接受这次签名。这个消息恢复验证的过程同时也实现对<I>UA</I>和<I>UB</I>身份的双向认证。如果消息是<I>UA</I>的签名,,则<I>UB</I>使用<I>UA</I>的公钥验证签名,并用自己的私钥解密恢复消息,实现双向的身份认证。消息恢复等式的正确性证明如下:<Palign=center></P>同时如果<I>UB</I>恢复的消息M是正确,则有消息验证等式成立:<Palign=center></P>3安全性分析(1)攻击者不可能伪造CA的公钥签名。CA为用户<I>UA</I>的公钥签名时使用了私钥。任何攻击者不知道<I>UA</I>的公钥是不可能伪造CA的签名。因为,只有CA拥有私钥,能产生有效的公钥证明。而攻击者要想获取CA的私钥,将面临大素数的因子分解困难。CA可以伪造公钥证明,但一个用户有两个合法的公钥证明,则证明CA的不可信赖性。(2)攻击者在不知道<I>UA</I>的私钥的情况下,伪造一个合法的签名是的不可能性。攻击者必须计算用户的私钥XA,并且截获<I>UB</I>的公钥的证明<I>CB</I>,才能假冒<I>UA</I>进行签名。而攻击者要想获取<I>UAUB</I>的私有密钥<I>xB</I>,因此他无法根据消息恢复方程求解得到M。也就是说只有指定的消息接收者<I>UB</I>才可能求解得到M,他与消息发送者之间的相互确认是通过用户公钥的自认证协议实现的。(4)消息密钥K可以多次使用。对于不同的消息<I>M</I>和<I>M1、r2和s都不相同,攻击者不能根据签名等式分析得出签名者的私钥。4方案的比较所提出的基于公钥自证明的认证加密方案是根据Girault的公钥自证明原理,在Tsengyuh-Min等人的自证明方案的基础上进行设计的,同时根据文献中对Tsengyuh-Min方案的缺点分析,提出的一种更安全的公钥自证明方案。首先,本方案中,CA对用户的公钥签名时有效引入CA的私钥,解决了攻击者可以假冒CA产生有效公钥认证的问题。在Tseng的认证加密方案,CA对用户公钥的证明没有使用CA的私钥,攻击者只要知道CA的签名等式,就可以假冒CA的签名。而的认证过程引入了CA的私钥,由于攻击者不知道CA的私钥,就不能产生有效的签名。只有CA才能使用私钥产生有效的签名。同时,本方案的消息签名改正了Tseng的认证加密方案的缺陷。在tseng的认证加密签名方案中,r1和r2具有线性关系,由可以得到<I>gk</I>,且可以恢复消息<I>Mgk</I>,因此不能恢复消息M。</p>,,一种基于公钥自证明认证加密方案飞雪
页: [1]
查看完整版本: 一种基于公钥自证明认证加密方案