一种并行化多接收方签密方法

文档序号:7722534阅读:110来源:国知局

专利名称::一种并行化多接收方签密方法
技术领域
:本发明属于无线网络中组通信数据认证和保密领域,具体涉及一种并行化的多接收方签密方法。
背景技术
:随着对无线网络的深入研究和广泛应用,安全组通信成为一种主要的信息交换方式。在视频会议、证券行情发布、数字内容分发等场合有着良好的应用前景。安全组通信不仅是一种网络通信服务,也是其它安全协议的基本部件之一。在安全组通信中,通常有一个发送方向多个接收方发送相同的或不同的消息。为保证安全性,首先要确保所发送消息的机密性和完整性,即消息的内容不能被不属于通信组的攻击者非法窃取和篡改;同时对发送方可以认证,即通过验证能够识别出消息发送方的身份;且要满足前向安全性和后向安全性,即接收方不能获取在他加入之前和离开以后所传输的消息内容。在无线网络中,安全组通信除应符合以上一般安全性要求外,还应能够充分利用无线信道的广播属性,具有较低的计算和传输开销。通常情况下,机密性通过加密来实现,完整性和认证性通过数字签名来实现,前向安全性和后向安全性通过频繁地更新密钥来实现。签密是一种新的密码技术,通过一个操作来同时实现机密性、完整性和认证性。传统的签密技术用于点对点通信的场合,经过推广之后也可以作为组通信的安全技术之一。签密技术用于安全组通信的现有方法分为两类第一类是广播的多接收方签密方法,只适用于向多个接收方广播相同的消息,不能同时向不同的接收方发送不同的消息,而且在体系结构设计上都采用了串行的结构,没有把多个部分密文计算中存在的潜在并行性开发出来;第二类方法是发送方和每个接收方之间分别执行一次点对点的签密操作,以建立多条点对点的安全链路,为确保安全,每次所使用的参数的不得相关,为提高效率也可以将多个点对点签密操作并行执行,但这种方法只是一种简单的并行,没有根据参数的相关性进一步优化的可能性,而且不恰当的参数选择还可能导致安全隐患。
发明内容本发明的目的在于提出一种并行化多接收方签密方法,该方法充分开发多接收方签密中潜在的并行性,聚合签密文中的相关数据,压縮总体数据量,减少无线广播传输的次数。为了达到上述目的,本发明采用的技术方案如下采用并行化的体系结构设计,以充分利用计算机硬件和软件设计的并行技术;在确保安全性的前提下重用了随机数,以降低计算的复杂性并减少数据量;将多个部分签密文聚合成一则广播的总体签密文,以减少无线传输的次数。包括下列步骤步骤一设定系统参数;步骤二产生密钥;步骤三发送方并行地对多个消息分别计算签密文,并对所产生的多个部分签密文聚合成一个总体签密文数据包;步骤四发送方通过广播信道向接收方群体广播总体签密文数据包;步骤五各接收方获取与其相关的部分签密文,并用自己的私钥和发送方的公钥进行验签。本发明的发送方包含N个能逻辑上并发处理的签密计算单元,每个计算单元每次独立产生一个部分签密文。所述步骤三包括以下步骤1)发送方选择随机数rGZ二并计算U=rP,其中Zq*是乘法群,该乘法群上的元素包括大于等于1且小于q-1的所有整数,P是一个阶为q的乘法循环群^的生成元,U是G丄上的元素;2)发送方将待发送的消息和相应接收方的公钥分为「"MH:组,其中n为接收方的数量,符号「"l表示上取整操作;3)发送方将第j组第i个参数(mj*N+i,xs,YKj*N+i)分配给第i个签密计算单元,其中乂=0,......,「"/7Vl-1,i=1,......,N,mj*N+i为要发送给第j*N+i个接收方的消息,xs为发送方的私钥,YK,N+i为第j*N+i个接收方的公钥;4)每个签密计算单元并发地完成签密文计算,步骤如下(DVj*N+i=XsH"m押+i,rYKj*N+i);②Zj,=(附,w+'H压(",IV飾r!V胸);其中,V,i为乘法循环群^上的元素,Z,i是二进制序列,lU)禾PHJ)为两个散列函数,符号II表示级联操作,符号@表示异或操作;5)发送方收集每个签密计算单元输出的部分签密文,聚合产生一个总体签密文数据包W=(U,Z"......,Zn)。所述步骤五包括以下步骤l)第i个接收方Ri从广播的签密文数据包中获取与其相关的部分签密文Wi二(U,Z》;2)第i个接收方&计算H2(U,xKiU)和(||=Z//2(t/,X范C/);3)第i个接收方&验签,计算h=H丄OvxKiU),验证等式e(Ys,h》=e(P,V》是否成立,当且仅当等式成立时接受发送方所发送的消息,其中h为散列函数的输出,e为双线性映射。本发明的进一步改进在于步骤三第1)步中随机数r的选择和U的计算可以采用预计算的方法,即发送方在空闲时段内完成r的选择和U的计算,将预计算所得到的多个计算值存储在列表中,每次执行签密操作时从列表中选取一对(r,U)。为保证安全性,每一对(r,U)在使用后必须从列表中删除,不得重复使用。本发明的有益效果在于本发明采用了并行的体系结构,部分签密文的计算通过并发执行的多个签密计算单元产生,充分利用了软件和硬件并行技术,提高了签密计算的效率;在确保安全性的前提下重用了随机数,使得多个部分签密文存在共用的数据;多个4部分签密文聚合成为一个总体签密文数据包,压縮了多个部分签密文中的共用数据,减小了总体签密文的长度;每次通信前都根据当前组成员来确定参与计算的公钥和私钥,发送方使用了自己的私钥和接收方的公钥来签密消息,每个接收方只能用自己的私钥和发送方的公钥来验证属于自己的部分签密文、解密出相应的明文消息,从而保证了前向安全性和后向安全性。签密方法的执行效率包括签密文的计算和总体签密文的数据量两个方面,具有较小计算时间和较小总体签密文数据量的方法具有较高的效率。本发明基于c语言在一个实验系统中进行了模拟,在一台配备有双核CPU(中央处理器)的计算机上运行2个线程,分别模拟了发送方同时向2个、10个、1000个接收方签密并发送2贝U、10贝U、1000则不同消息的情况。通过记录CPU运行时间和总体签密文数据量来衡量性能。首先观察了CPU运行时间,从记录的结果发现,本发明方法的CPU运行时间均小于其它方法,而且随着接收方数量的增加,本发明方法的CPU运行时间相对于串行方法的性能提高也在增加,在有2个接收方时CPU运行时间相对于串行运行方法减少了26.9%,在有IO个接收方时CPU运行时间相对于串行运行方法减少了43.9%,在有1000个接收方时CPU运行时间相对于串行运行方法减少了48.6%。然后观察了总体签密文的数据量,本发明方法的总体签密文的数据量均小于其它方法,而且随接收方数量的增加,本发明方法的总体签密文的数据量相对于串行运行方法的性能提高也在增加,在有2个接收方时总体签密文数据量相对于串行运行方法减少了21.4%,在有IO个接收方时总体签密文数据量相对于串行运行方法减少了38.6%,在有1000个接收方时总体签密文数据量相对于串行运行方法减少了42.8%。参照图1,说明了本发明方法中签密文计算部分的逻辑结构。本发明方法在逻辑结构中包括了多个可以并发运行的签密计算单元。虚线框内的部分可以作为一个独立的点对点签密执行部件。具体实施例方式下面结合和具体实施方式对本发明做进一步详细说明。本发明所述的一种并行化的多接收方签密方法,以一个发送节点S为发送方,多个接收节点Ri作为接收方。发送方向每个接收方签密并发送不同的消息IV其中i=1,......,n。发送方具有并行处理能力,拥有N个可以在逻辑上并发执行的签密计算单元,其逻辑结构如图l所示。通过随机数重用和预计算、部分签密文的并行计算、部分签密文聚合和一次广播,可以降低发送方的计算时间,充分利用无线信道的广播特性,提高通信效率。符号一K表示随机选择操作;Z/示阶为q的乘法群,该乘法群中的元素包括大于等于1且小于q-l的所有整数;符号II表示消息的级联操作;符号④表示异或操作。具体包括下列步骤步骤一设定系统参数;由发送方或者一个统一的安全通信平台负责设定安全参数。参数设定后向所有用户广播。所要设定的系统参数如下k为安全参数,q为长度为k比特的素数,^是一个阶为q的乘法循环群,P是^生成元,^中的元素的长度为1比特,62是另一个阶为q的乘法循环群,e:^X^—G2是一个双线性映射,要发送的消息长度为z比特,^:{0,IKXG丄—G丄和H2:G户—{0,1}Z+1为两个散列函数。步骤二产生密钥;发送方选择随机数xs—KZq*作为其私钥,计算并公开Ys=xsPG^作为其公钥;接收方&选择随机数xKi—KZq*作为其私钥,计算并公开YKi=xKiPGGl作为其公钥,其中i=1,......,n。步骤三发送方并行地对多个消息分别计算签密文,并对所产生的多个签密文聚合成一个签密文数据包,包括以下步骤1)发送方选择随机数rGZq*,并计算U=rP;其中Zq*是乘法群,该乘法群上的元素包括大于等于1且小于q-1的所有整数,P是一个阶为q的乘法循环群^的生成元,U是G丄上的元素;2)发送方将待发送的消息和相应的接收方公钥分为「w/JVl组,其中n为接收方的人数,符号「1表示上取整操作;3)发送方将第j组第i个参数(mj*N+i,xs,YKj*N+i)分配给第i个签密计算单元,其中/=0,......,「w/AH-1,i=1,......,N,mj*N+i为要发送给第j*N+i个接收者的消息,xs为发送方的私钥,YK,N+i为第j*N+i个接收方的公钥;4)每个签密计算单元并发地完成签密文计算,具体步骤如下Vj*N+i=XsH"nij,+i,rYKj*N+i);Zy=11K,)场(&尸歸;其中,V,i为乘法循环群^上的元素,Z,i是二进制序列,lU)禾口HJ)为两个散列函数,符号II表示级联操作,符号极表示异或操作;5)发送方收集每个签密计算单元的输出,聚合产生一个总体签密文数据包W=(U,Zn......,Zn)。步骤四发送方通过一个广播信道,向所有的接收方广播总体签密文数据包W;步骤五各接收方获取与其相关的部分签密文,并用自己的私钥和发送方的公钥进行验签。具体步骤如下1)第i个接收方&从广播的总体签密文数据包中获取与其相关的部分签密文Wi=(U,Z》;2)第i个接收方&计算H2(U,xKiU)和(叫ll=Z④玩(t/",&,x范L/);3)第i个接收方&验签,计算h=H丄OvxKiU),验证等式e(Ys,h》=e(P,V》是否成立,当且仅当等式成立时接受发送方所发送的消息,其中h为散列函数的输出,e为双线性映射。本发明在GCC(GNUCompilerCollection)4.4.0.编译环境下,用标准C语言进行了实现,并通过一个实验系统进行了模拟实验,以一台CPU(中央处理器)为1.86GHzIntelCore2CPU6320,1GB内存,操作系统为Ubuntu9.04Linux的台式计算机作为发送方,来完成设定系统参数、产生密钥和签密操作。所处理的消息长度为128比特,安全参数k为384。模拟实验中同时运行2个线程,分别模拟了发送方同时向2个、10个、100Q个接收方签密并发送2贝U、10贝U、1000则不同消息的情况。通过记录CPU运行时间和总体签密文数据量来衡量不同方法的性能。通过表1的对比,本发明首先观察了CPU运行时间,从记录的结果发现,本发明方法的CPU运行时间均小于其它方法,而且随着接收方数量的增加,本发明方法的CPU运行时间相对于串行方法的性能提高也在增加,在有2个接收方时CPU运行时间相对于串行方法减少了26.9%,在有IO个接收方时CPU运行时间相对于串行方法减少了43.9%,在有1000个接收方时CPU运行时间相对于串行方法减少了48.6%。通过表2的对比,发明人然后观察了总体签密文的数据量,本发明方法的总体签密文的数据量均小于其它方法,而且随接收方数量的增加,本发明方法的总体签密文的数据量相对于串行运行方法的性能提高也在增加,在有2个接收方时总体签密文的数据量相对于串行运行方法减少了21.4%,在有IO个接收方时总体签密文的数据量相对于串行运行方法减少了38.6%,在有1000个接收方时总体签密文的数据量相对于串行运行方法减少了42.8%。表1说明了所记录的CPU运行时间和计算得到的性能提高。具体是指本发明方法与传统的串行方法(串行,传统多接收方签密方法参见
背景技术
部分的介绍)和简单并行方法(简单并行,传统多接收方签密方法参见
背景技术
部分的介绍)的CPU运行时间比较。表中第一行指接收方人数分别为2个、10个和1000个,表中第二行、第三行和第四行分别记录了本发明方法、串行方法、简单并行方法的CPU运行时间(单位为毫秒),第五行为计算所得的本发明方法CPU运行时间相对于串行方法的性能提高,计算方法为"性能提高=(串行运行的CPU时间-本发明的CPU运行时间)/串行运行的CPU时间"。表12个接收方io个接收方l,OOO个接收方串行28.81142.0114,002.95简单并行26.15101.819,498.06本发明方法21.0480.357,202.77性能提高26.9%43.4%48.6%表2说明了所记录的总体签密文长度和计算得到的性能提高。具体指本发明方法与传统的串行方法(串行,传统多接收方签密方法参见
背景技术
部分的介绍)和简单并行方法(简单并行,传统多接收方签密方法参见
背景技术
部分的介绍)的总体签密文长度比较。表中第一行指接收方人数分别为2个、10个和1000个,表中第二行、第三行和第四行分别记录了串行方法、简单并行和本发明方法的总体签密文长度(单位为比特),第五行为计算得到的本发明方法总体签密文长度相对于串行方法的性能提高,计算方法为"性能提高=(串行运行的总体签密文长度-本发明的总体签密文长度)/串行运行的总体签密文长度"。表27<table>tableseeoriginaldocumentpage8</column></row><table>权利要求一种并行化多接收方签密方法,包括以下步骤步骤一设定系统参数;步骤二产生密钥;步骤三发送方并行地对多个消息分别计算签密文,并对所产生的多个部分签密文聚合成一个总体签密文数据包;步骤四发送方通过播信道向接收方群体广播总体签密文数据包;步骤五各接收方获取与其相关的部分签密文,并用自己的私钥和发送方的公钥进行验签。2.根据权利要求1所述的并行化多接收方签密方法,其特征在于发送方包含N个能逻辑上并发处理的签密计算单元,每个计算单元每次独立产生一个部分签密文。3.根据权利要求1所述的并行化多接收方签密方法,其特征在于所述步骤三包括以下步骤1)发送方选择随机数reZ/,并计算U=rP,其中Zj是乘法群,该乘法群上的元素包括大于等于1且小于q-l的所有整数,P是一个阶为q的乘法循环群&的生成元,U是^上的元素;2)发送方将待发送的消息和相应接收方的公钥分为「w/iVl组,其中n为接收方的数量,符号「l表示上取整操作;3)发送方将第j组第i个参数(m,N+i,xs,YK,i)分配给第i个签密计算单元,其中_/=0,......,「"/Wl-1,/=1,......,iV,nij術为要发送给第j*N+i个接收方的消息,xs为发送方的私钥,YK,N+i为第j*N+i个接收方的公钥;4)每个签密计算单元并发地完成签密文计算,步骤如下<formula>formulaseeoriginaldocumentpage2</formula>其中,Vj,为乘法循环群^上的元素,Zj,+i是二进制序列,HJ)禾PHJ)为两个散列函数,符号II表示级联操作,符号④表示异或操作;5)发送方收集每个签密计算单元输出的部分签密文,聚合产生一个总体签密文数据包W=(U,Zp......,zn)。4.根据权利要求1所述的并行化多接收方签密方法,其特征在于所述步骤五包括以下步骤1)第i个接收方Ri从广播的签密文数据包中获取与其相关的部分签密文Wi二(U,Zi);2)第i个接收方Ri计算<formula>formulaseeoriginaldocumentpage2</formula>3)第i个接收方Ri验签,计算<formula>formulaseeoriginaldocumentpage2</formula>验证等式<formula>formulaseeoriginaldocumentpage2</formula>是否成立,当且仅当等式成立时接受发送方所发送的消息,其中h为散列函数的输出,e为双线性映射。5.根据权利要求1所述的并行化多接收方签密方法,其特征在于所述步骤三中,在计算多个部分签密文时,重用了随机数r和相应的U。全文摘要本发明属于无线网络中组通信数据认证和保密领域,具体涉及一种并行化多接收方签密方法,包括以下步骤1、设定系统参数;2、产生密钥;3、发送方并行地对多个消息分别计算签密文,并对所产生的多个部分签密文聚合成一个总体签密文数据包;4、发送方通过广播信道向接收方群体广播总体签密文数据包5、各接收方获取与其相关的部分签密文,并用自己的私钥和发送方的公钥进行验签。在多个部分签密文的计算上采用了并行的逻辑结构;具有同时向多个接收方发送不同的消息的能力;在确保安全性的前提下通过重用随机数减少了总体签密文的数据量。克服了其它多接收方签密方法只能广播同一则消息、只能串行运行的缺陷,从而具有更高的传输能力和计算效率。文档编号H04L9/32GK101754205SQ20091025453公开日2010年6月23日申请日期2009年12月25日优先权日2009年12月25日发明者桂小林,韩益亮申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1