基于混淆技术的安全广播多重签名方法与流程

文档序号:12729940阅读:193来源:国知局

本发明属于网络技术领域,更进一步涉及网络安全技术领域中的广播多重签名方法。本发明是以混淆为基础,提出的一种安全广播多重签名方法,即每一个签名方签名后将自己的部分签名发送给签名收集方,签名收集方将每一个签名方的部分签名合成多重签名的方法。本发明可应用于安全多重数字签名应用当中,对网络环境下签名方的签名私钥提供安全保障作用。



背景技术:

多重签名在安全数字签名应用中占有重要地位,而广播多重签名被认为是在多用户对同一明文进行签名场景中最有效的手段。广播多重签名方案可用于电子商务、电子政务等一系列场景。为了保护每一位签名方的签名私钥的安全性,保证部分签名及多重签名的不可否认、不可伪造等性质,保证在量子计算条件下,密码方案的安全性,需要不可区分混淆技术作为支持。

杨亚涛等人在其发表的论文“广播多重量子数字签名方案的设计与分析”(中国科学技术大学学报41(10):924-927,2011年)中提出了一种量子密钥分配的广播多重数字签名方法。该方法的主要步骤是:(1)初始化参数:发送方、签名方和收集方通过安全通道获取自己的私钥,发送方制备i粒子序列及签名方总人数N个纠缠对,然后发送方通过受控非门操作对粒子序列进行加密,并将加密后的序列发送给每个签名方。(2)签名方进行部分签名:每个签名方收到加密后的粒子序列后先使用受控非门操作进行解密,然后利用粒子序列为要签名的明文生成量子态并对量子态进行幺正变换,将最后结果作为部分签名。(3)部分签名的验证和多重签名的合成:签名收集方先对部分签名的验证,对部分签名进行幺正变换,将其结果进行检测,如果检测结果和明文相同,则验证通过。如果结果不同,则终止。检测结果相同的情况下签名方对部分签名进行乘积运算,得到的结果作为多重签名。(4)接收方对多重签名进行验证,验证通过则接收多重签名,否则不接收多重签名。该方法存在的不足之处是:广播多重签名的公钥随着签名人数的增多而增长,使得广播多重签名的验证算法效率随签名方总人数增多而降低。

华东师范大学在其申请的专利文件文献“一种多重签名生成与验证系统及其方法”(申请号201310008315.6申请日期2013.01.09,公开日期2013.05.08)中提出了一种基于离散对数的多重数字签名方法。该方法的主要步骤是:(1)参数生成:可信中心生成签名方所需的公私钥对和所需要签名的明文。(2)签名方进行部分签名:签名方结合所需要签名的明文和自己的私钥生成部分签名。(3)合成多重签名:签名的收集方接收到每个签名方的部分签名进行结合生成多重签名将多重签名发送给签名的验证方。(4)多重签名的验证:验证方接收到多重签名,验证多重签名,验证成功则成功接收多重签名,验证失败则终止此过程。该方法存在的不足之处是:由于这类的方案直接基于离散对数或大数分解难题构造广播多重签名方法,使得在量子计算条件下,签名方的私钥容易泄露的缺陷。



技术实现要素:

本发明的目是克服上述现有技术直接基于离散对数或大数分解难题构造广播多重签名方法,使得在量子计算条件下,签名方的私钥容易泄露;广播多重签名的公钥随着签名人数的增多而增长,使得广播多重签名的验证算法效率随签名方总人数增多而降低的问题,提出一种在量子计算条件下,安全的广播多重签名方案方法。

实现本发明的主要思想是:密钥产生中心首先为每个签名方生成签名私钥,然后利用数模运算生成多重签名的私钥,签名方根据系统分配的可刺穿伪随机函数计算签名工具,使用自己的私钥和签名工具对明文进行签名,得到部分签名,签名收集方使用经过混淆后的验证公钥判断部分签名是否合法,若是,合成多重签名,否则退出签名系统,然后签名收集方将多重签名发送给签名验证方。签名验证方使用经过混淆后的多重签名验证公钥判断多重签名是否合法,若是,确认多重签名有效,否则退出签名系统。本发明使用不可区分混淆器对签名方所需的公钥进行混淆,使得签名方的私钥在量子计算的条件下安全可靠;使用数模运算计算得到广播多重签名公钥,使得广播多重签名验证算法不随签名方总人数的多少而变化,大大提高了效率。

根据以上思路,本发明的具体实现步骤包括如下:

(1)系统初始化:

(1a)密钥产生中心在[2,210]范围内,为所有签名方选取私钥;

(1b)密钥产生中心使用不可区分混淆器为系统生成所需公钥;

(1c)密钥产生中心将签名方的私钥和系统所需公钥,通过安全通道分别发送给每个签名方;

(2)按照下式,签名方使用混淆器生成签名公钥:

IOi=iO(ski)

其中,IOi表示第i个签名方的签名公钥,iO表示不可区分混淆器,sk表示第i个签名方的签名密钥;

(3)每个签名方进行部分签名:

(3a)发送方通过广播信道发出需要签名的明文给每一个签名方;

(3b)按照下式,每一个签名方进行部分签名操作:

σi=sign(ski,m)

其中,σi表示第i个签名方对明文的部分签名,sign表示部分签名操作,ski表示第i个签名方的签名私钥,m表示需要签名的明文;

(3c)每一个签名方将生成的部分签名发送给签名的收集方;

(4)签名收集方接收每一个签名方发来的部分签名;

(5)签名收集方判断第i个签名方的部分签名是否满足部分签名匹配条件,若是,则执行步骤(6),否则执行步骤(11);

(6)签名收集方判断是否所有部分签名都满足部分签名匹配条件,若是,则执行步骤(7),否则执行步骤(5);

(7)签名收集方使用多重签名数模运算公式,得到广播多重签名;

(8)签名收集方将广播多重签名发送给广播多重签名接收方;

(9)广播多重签名接收方判断所接收的广播多重签名是否满足广播多重签名匹配条件,若是,则执行步骤(10),否则执行步骤(11);

(10)接收方确认广播多重签名有效;

(11)退出签名系统。

本发明与现有技术相比具有如下优点:

第一,由于本发明使用在量子计算条件下安全的不可区分混淆器为系统生成所需公钥,克服了现有技术直接基于离散对数或大数分解难题构造广播多重签名方法,在量子计算条件下,签名方的私钥容易泄露的缺陷,使得本发明在量子计算的条件下,签名者的私钥仍然安全可靠。

第二,由于本发明使用数模运算公式计算得到广播多重签名公钥,广播多重签名公钥长度不随着签名方总人数增多而增长,克服了现有技术中广播多重签名的公钥随着签名人数的增多而增长,使得广播多重签名的验证算法效率随签名方总人数增多而降低的缺陷,使得本发明能够使广播多重签名验证算法不随签名方总人数的多少而变化,大大提高了效率。

附图说明

附图1为本发明的流程图。

具体实施方式

下面结合附图1对本发明做进一步的描述。

本发明是在广播多重签名系统上实现的,本发明的具体实现步骤包括如下:

步骤1,系统初始化。

密钥产生中心为所有签名方在[2,210]范围内选取私钥。密钥产生中心使用不可区分混淆器为系统生成所需公钥。密钥产生中心将签名方的私钥和系统所需公钥通过安全通道分别发送给每个签名方。

步骤2,按照下式,签名方使用混淆器生成签名公钥:

IOi=iO(ski)

其中,IOi表示第i个签名方的签名公钥,iO表示不可区分混淆器,sk表示第i个签名方的签名密钥。

步骤3,每个签名方进行部分签名。

发送方通过广播信道发出需要签名的明文给每一个签名方。

按照下式,每一个签名方进行签名操作:

σi=sign(ski,m)

其中,m表示需要签名的明文,σi表示第i个签名方对明文的签名,ski表示第i个签名方的签名私钥,sign表示签名操作。第i个签名方将生成的部分签名发送给签名的收集方。

步骤4,签名收集方接收每一个签名方发来的部分签名。

步骤5,签名收集方判断第i个签名方的部分签名是否满足部分签名匹配条件,若是,则执行步骤6,否则执行步骤(11)。所述部分签名匹配条件如下:

其中,m表示需要签名的明文,PRF(·)表示可刺穿伪随机函数,ski表示第i个签名方的签名私钥,σi表示第i个签名方的签名。

步骤6,签名收集方判断是否所有签名都满足部分签名匹配条件,若是,则执行步骤(7),否则执行步骤(5)。

步骤7,签名收集方使用使用多重签名数模运算公式计算得到广播多重签名。

所述广播多重签名合成公式如下:

其中,σ表示广播多重签名,Π表示连乘操作,t表示签名产生中心选择的签名方总人数,σi表示第i个签名方的部分签名。

步骤8,签名收集方将广播多重签名发送给广播多重签名接收方。

步骤9,广播多重签名接收方判断所接收的广播多重签名是否满足广播多重签名匹配条件,若是,则执行步骤(10),否则执行步骤(11)。

所述广播多重签名匹配条件如下:

其中,sk表示全部签名方的签名私钥之和。

步骤10,接收方确认广播多重签名有效。

步骤11,退出签名系统。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1