一个适用于无线传感器网络的异构签密方案的安全性分析*

2020-03-30 09:44周才学刘诚勇
九江学院学报(自然科学版) 2020年4期
关键词:接收者私钥公钥

周才学 刘诚勇

(九江学院信息科学与技术学院 江西九江 332005)

随着通信技术的发展,无线传感器网络技术已经越来越成熟,它非常适合军事传感、目标跟踪和环境监测等领域。由于无线通信的开放性和传感器节点资源的有限性,使得无线传感器网络的安全性受到了挑战。

传统的的公钥密码体制[1]是基于公钥基础设施(public key infrastructure,PKI)技术的,它需要一个可信第三方(certificate authority,CA)来发行一个证书,把用户的公钥与其身份进行绑定。PKI的不足之处是其公钥的管理成本太高,并不适合大规模的应用。

基于身份的密码体制[2](identity-based cryptosystem,IBC)与PKI相比,它的主要优点是消除了公钥证书,使其大大降低了公钥的管理费用,因而IBC更适合资源受限的环境使用。在IBC中,它可以直接从用户的身份信息(如:电话号码、身份号码、电子邮件地址和IP地址)计算用户的公钥。有一个可信的第三方称为私有密钥生成器(private key generator,PKG),它负责为所有用户生成私有密钥。在没有公钥证书的情况下显式验证公钥的真实性。但是,IBC有一个弱点,即存在密钥托管问题,因为PKG持有所有用户的私有密钥。

无证书密码体制[3](certificateless cryptosystem,CLC)相对于IBC而言,它更具安全性,因为它既降低了公钥的管理费用,又不存在密钥托管问题。实际上,无证书密码体制的私钥由两部分组成,一个是可信第三方密钥生成中心(key generation center,KGC)为每个用户生成的部分私有密钥,另一个是用户自己选择的秘密值。

为了既认证又保密地在发送端和接收端之间安全地通信,人们可以使用签密技术[4]。签密能在一个逻辑步骤内同时实现加密和认证,且总的计算代价比传统的先签名再加密要小得多。异构签密[5]是签密概念的进一步推广,它可以实现发送端和接收端使用不同的密码体制。

在发送端,由于无线传感器网络的存储和计算资源都有限,所以PKI技术并不适合它,而基于身份的密码体制又存在密钥托管问题,因此,CLC更适合于像无线传感器这种存储容量小、计算能力有限的微小设备使用。在接收端,服务器通常具有强大的存储和计算能力,能够快速的处理和整合传感器所传送的信息,因而PKI技术更适合它。所以,异构签密就非常适合无线传感器网络向服务器通信这样的环境。

在2016年,Li FG等[6]提出了一个用于无线传感器网络安全通信的实用异构签密方案。在该方案中,发送端采用的是CLC技术,接收端采用PKI技术,它实现了无线传感器网络既保密又认证地与服务器进行安全通信。然而,文章通过分析发现他们的方案是不安全的,因为接收端可以与任何实体合谋,来伪造发送端的签密文,从而不能实现不可否认性。文章分析了原方案不安全的原因,并使用hash函数绑定公钥的方法,对原方案进行了一种可能的改进。

1 基础知识

1.1 双线性映射(bilinear pairings,BP):

设G1是以素数q为阶的加法群,G2是以素数q为阶的乘法群。P是G1的生成元。双线性映射e:G1×G1→G2需要满足如下性质:

(1)双线性性:对于任意a,b∈和P,Q∈G1,有e(aP,bQ)=e(P,Q)ab;

(2)非退化性:e(P,P)≠1G2;

(3)可计算性:对所有的P,Q∈G1,存在有效的多项式时间算法来计算e(P,Q)。

1.2 网络模型

一个异构签密网络模型是由三个主要实体组成,它们分别是无线传感器网络、服务提供商(service provider,SP)和一个互联网服务器(server),如图1所示。其中无线传感器网络由一些传感结点和一个基站组成,这些传感器节点与基站通信,基站不仅与传感器节点通信,还与服务器通信。SP负责为无线传感器网络生成部分私钥,并为服务器生成数字证书,也就是说,SP在CLC中扮演KGC的角色,在PKI中扮演CA的角色。当收集到的数据可用时,基站或者传感器结点将会把所收集到的数据发送给服务器,之后,服务器将会将所收集到的数据进行管理、分析、存储和使用。

图1 网络模型

2 原方案

Li FG等所提出的异构签密方案是由以下7个算法所组成。

(1)初始化:给定一个安全参数k,SP选择一个有着相同素数阶q的加法群G1和一个乘法群G2,G1的生成器P,一个双线性映射e:G1×G1→G2,和四个哈希函数H1:{0,1}*→,H2:G1→。这里的n是指在传输过程中的消息的比特数目。SP随机选择一个主密钥并且设置相关的主公钥Ppub=sP。SP发布系统参数{G1,G2,p,e,n,P,Ppub,g,H1,H2,H3,H4}并使s保密,这里g=e(P,P)。

(2)CLC用户部分私钥生成:用户发送身份ID给SP,SP返回用户的部分私钥为:

DID=P/(H1(ID)+s)

(3)CLC用户密钥生成:身份为ID的用户选择一个随机值作为秘密值,并设置PKID=xID(H1(ID)P+Ppub)作为公钥,这个公钥可以在没有证书的情况下被发布。

(4)CLC完全私钥生成:给定一个部分私钥DID和一个秘密值xID,这个算法返回一个完全私钥:SID=DID/(H2(PKID)+xID)

(5)PKI用户密钥生成:在PKI中的用户选择一个随机值,并设置sk=P/x和公钥pk=xP。

(6)签密:给定一个消息m∈{0,1}n、一个发送者的私钥SID、身份ID、公钥PKID和一个接收者的公钥pk,该算法的工作原理如下:

②计算r=gγ和c=m⊕H3(r)。

③计算h=H4(m,ID,PKID,r)。

④计算S=(γ+h)SID。

⑤计算T=γpk。

⑥输出一个密文σ=(c,S,T)。

(7)解签密:给定一个密文σ,一个发送者的身份ID、公钥PKID、一个接收者的私钥sk,该算法的工作原理如下:

①计算r=e(T,sk)。

②恢复m=c⊕H3(r)。

③计算h=H4(m,ID,PKID,r)。

④当 且 仅 当r=e(S,PKID+H2(PK)(H1(ID)P+Ppub))g-h成立,接收消息;否则返回错误标志⊥。

3 对原方案的攻击

3.1 接收者伪造攻击

(1)接收者拥有自己的私钥x和公钥pk,接收者再注册一个私钥x'和公钥pk'。

(2)假设接收者收到一个签密文σ=(c,S,T),发送者的身份是ID,接收者的公钥是pk,消息是m。

(3)接收者计算T'=x-1x'T=γpk'。

(4)则σ'=(c,S,T')为伪造的签密文,发送者的身份仍然是ID,但接收者的公钥变成了pk',消息仍然是原来的消息m。

3.2 讨论

这种攻击的解释如下:无证书环境的无线传感器网络作为发送者,它们发送签密文给基于PKI环境的服务器,服务器可以解密信息。现在服务器采用以上的攻击方法,则服务器可以与任何实体合谋,伪造一个传感器发送的签密文,内容不变,但接收者变成了那些合谋方。这样就达不到传感器想保密信息内容的目的。

文献[7]曾给出设计签密方案时必须注意的几个问题,其中之一就提到签密方案由签名和加密两部分组成,签名部分应含有接收者的公钥或身份信息。否则,接收者可以用另外一个用户的私钥参与加密运算,生成另外一个加密部分,连同原来的签名部分可以构成一个伪造。而文章在上一节给出的攻击方法刚好属于这种情况,这是原方案不安全的根本原因,因而为了抵抗这种攻击,一种可能的改进就是把原方案的签名部分与接收者的公钥信息进行绑定。具体来说就是在原方案签密算法的第三步计算h=H4(m,ID,PKID,r)时,把接收者的公钥信息pk包含进入,即h=H4(m,ID,PKID,r,pk)。这样在原方案签密算法的第四步计算签名部分S=(γ+h)SID时,S就跟特定的接收者公钥pk进行了绑定,从而上一节给出的攻击方法就失效了。

另外,这种改进不影响原方案的效率。

7 结语

文章对一个适用于无线传感器网络的异构签密方案进行了安全性分析,指出了它不能满足不可伪造性,接收方可以与其它方合谋来伪造签密文,因此它是不安全的。通过分析,文章对原方案进行了一种可能的改进来抵抗这种攻击,改进后的方案与原方案相比效率不变。

猜你喜欢
接收者私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
基于SDN的组播安全机制
功能翻译理论视角下英语翻译技巧探讨
可撤销用户动态更新广播加密方法的研究
一种基于混沌的公钥加密方案
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案