多签名者强指定多个验证者的数字签名文档安全保护方法转让专利

申请号 : CN200910023702.0

文献号 : CN101651542B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张亚玲王尚平王晓峰

申请人 : 西安理工大学

摘要 :

本发明公开了一种多签名者强指定多个验证者的数字签名文档安全保护方法,该方法按照以下步骤具体实施:步骤1.生成系统参数:选择阶为素数的循环群和一个密码学单向哈希函数;步骤2.用户密钥建立:为多个签名者秘密选择私钥,并通过秘密信道分发,分别为每个签名者生成公钥;为多个指定的验证者秘密选择私钥,并通过秘密信道分发;步骤3.签名过程:多个签名者通过运算对消息m计算强指定验证者数字签名;步骤4.验证过程:通过数字运算验证等式是否成立,若成立,验证通过,否则验证失败。本发明的方法运算效率高,能够提供电子文档在存储或传输中的完整性、真实性和不可否认性的安全保护。

权利要求 :

1.一种多签名者强指定多个验证者的数字签名文档安全保护方法,其特征在于,多人共同生成数字签名,并只有指定的多个验证者可以验证该数字签名,该方法按照以下步骤具体实施:步骤1.生成系统参数:

选择阶为素数q的循环群Gg,q,其中g是生成元,即Gg,q=,|Gg,q|=ord(g)=q,q是一个二进制长度为l的素数,l是安全参数,要求在循环群Gg,q中计算离散对数问题DLP是困难的,* l

选择一个密码学单向哈希函数H:{0,1} →{0,1} ;

步骤2.用户密钥建立:

为多个签名者ui,i=1,…,u秘密选择私钥 i=1,…,u,并通过秘密信道分发,分别为每个签名者生成公钥: i=1,…,u;

为多个指定的验证者vj,j=1,…,v秘密选择私钥 j=1,…,v,并通过秘密信道分发,分别为每个验证者生成公钥: j=1,…,v;

步骤3.签名过程:

设:多个签名者为ui,i=1,…,u,强指定多个验证者为vj,j=1,…,v,消息为m;

31)每个签名者ui,i=1,…,u,随机选择 j=1,…,v;计算并将计算结果 发送给签名收集者或者广播给其他的签名者;

32)签名收集者或者签名者将上步每个签名者计算得到的 收集完全后,按照步骤1选择的哈希函数,根据下列公式计算得到c,并将c广播给所有的签名者;

33)每个签名者ui,i=1,…,u计算sij1=rij1, j=

1,…,v,

并将 发送给签名收集者或者广播给其他的签名者;

34)根据步骤32)和步骤33)得到的计算结果,签名收集者或者所有的签名者确定消息m的签名者(u1,…,uu)的强指定验证者(v1,…,vv)的签名是:

35)签名收集者或者签名者将消息m和签名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)发给验证者;

步骤4.验证过程:

41)每个验证者vj,j=1,…,v,计算 i=1,…,u,并将计算结果发送给验证收集者或者直接广播给其他的验证者;

42)验证收集者或者验证者将步骤41)中每个验证者的计算结果收集完后计算将计算得到的 带入

* l

步骤1选取的哈希函数H:{0,1} →{0,1},计算得到 将该计算结果与所收到的签名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)中的c进行比较,如果相等即验证通过,否则验证不通过。

2.根据权利要求1所述的数字签名文档安全保护方法,所述的哈希函数H:{0,* l

1} →{0,1} 选取H=SHA-1或H=MD5。

说明书 :

多签名者强指定多个验证者的数字签名文档安全保护方法

技术领域

[0001] 本发明属于信息安全技术领域,涉及一种多签名者强指定多个验证者的数字签名文档安全保护方法。

背景技术

[0002] 在传统的以书面文件为载体的事务处理中,通常采用手写签字、印章、指纹等方式作为书面签名,具有法律意义。但是互联网的快速发展使得人们通过网络实现快速、远距离的电子商务活动的需求越来越高。在以计算机数据文件为基础的电子邮件、电子商务等的数字通信中,因为书面签名可被任意拷贝,因此签名的安全性非常重要,数字签名技术应运而生。
[0003] 人们通过网络进行电子文档的传输中,可能面临各种安全威胁,例如,文档的内容可能被盗取或篡改,文档的发送者可能是假冒的,文档的发送者可能否认自己曾发送过该文档等。信息加密和数字签名是应对这些安全威胁的重要手段。数字签名也称电子签名或电子签章。通俗的说,电子签名就是通过密码技术对电子文档的电子形式的签名,并非是书面签名的数字图象化,它的作用类似于手写签名或印章。准确的说,数字签名是以密码学的方法对数据文件作用,产生的一组代表签名者身份与数据完整性的数据信息,通常附加在数据文件的后面,数据文件的接收者可以利用签名者的公钥作用在数字签名上,验证数据文件的真实性、完整性。数字签名的应用包括:身份鉴别,可辨别信源的真实性而防止冒充;数据完整性保护,抵御数据的篡改或重排;不可抵赖性,信源事后不可否认其发送过或生成过签名信息,可以防止当事人事后抵赖。
[0004] 多签名者多指定验证者数字签名算法可以为多个用户提供生成数字签名的方法,该签名可以由指定的多个验证者验证。由于数字签名一般都携带了签名者的私钥信息,签名的验证者可能正是数字签名的攻击者,故需要对于签名的验证权进行限制;而多签名者数字签名指由多个签名者共同生成文档的数字签名,适应于多人协同的文档认证应用。例如,在大型虚拟企业的分布式产品设计中,一组设计人员可能希望他们的设计文档的数字签名只有指定的多个设计人员(或验证者)可以验证,这就需要多签名者多个指定验证者的数字签名方案。在实际的电子举报违法现象的应用中,为了提高举报信息的完整性和真实性,多个举报人应该对其举报材料进行签名。为了保护举报人,希望举报材料的真实性只有指定的一组纪检人员可以共同验证。
[0005] 现有的数字签名方案中有多签名者指定验证者算法,也有指定多验证者算法,但还没有对于多签名者多指定验证者数字签名算法,另外现有大部分的指定验证者签名方案中运用了双线性对运算,其运算效率较低。

发明内容

[0006] 本发明的目的是提供一种多签名者强指定多个验证者的数字签名文档安全保护方法,解决了网络环境中多人协同在电子文档上进行数字签名并由指定的多个验证者验证的安全问题。
[0007] 本发明所采用的技术方案是,一种多签名者强指定多个验证者的数字签名文档安全保护方法,多人共同生成数字签名,并只有指定的多个验证者可以验证该数字签名,该方法按照以下步骤具体实施:
[0008] 步骤1.生成系统参数:
[0009] 选择阶为素数q的循环群Gg,q,其中g是生成元,即Gg,q=,|Gg,q|=ord(g)=q,q是一个二进制长度为l的素数,l是安全参数,要求在循环群Gg,q中计算离散对数问题DLP是困难的,
[0010] 选择一个密码学单向哈希函数H:{0,1}*→{0,1}l;
[0011] 步骤2.用户密钥建立:
[0012] 为多个签名者ui,i=1,…,u秘密选择私钥 并通过秘密信道分发,分别为每个签名者生成公钥:
[0013] 为多个指定的验证者vj,j=1,…,v秘密选择私钥 并通过秘密信道分发,分别为每个验证者生成公钥:
[0014] 步骤3.签名过程:
[0015] 设:多个签名者为ui,i=1,…,u,
[0016] 强指定多个验证者为vj,j=1,…,v,
[0017] 消息为m;
[0018] 31)每个签名者ui,i=1,…,u,随机选择 j=1,…,v;计算并将计算结果 发送给签名收集者或者广播给其他
的签名者;
[0019] 32)签名收集者或者签名者将上步每个签名者计算得到的 收集完全后,按照步骤1选择的哈希函数,根据下列公式
[0020]
[0021] 计算得到c,并将c广播给所有的签名者;
[0022] 33)每个签名者ui,i=1,…,u计算sij1:=rij1, j=1,…,v,并将 发送给签名收集者或者广播给其他的签名者;
[0023] 34)根据步骤32)和步骤33)得到的计算结果,签名收集者或者所有的签名者确定消息m的签名者(u1,…,uu)的强指定验证者(v1,…,vv)的签名是:
[0024]
[0025] 35)签名收集者或者签名者将消息m和
[0026] 签名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)发给验证者;
[0027] 步骤4.验证过程:
[0028] 41)每个验证者vj,j=1,…,v,计算 ,i=1,…,u,并将计算结果发送给验证收集者或者直接广播给其他的验证者;
[0029] 42)验证收集者或者验证者将步骤41)中每个验证者的计算结果收集完后计算将计算得到的 带入步骤1选取的哈希* l
函数H:{0,1} →{0,1},
[0030] 计算得到 将该计算结果与所收到的签名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)中的c进行比较,如果相等即验证通过,否则验证不通过。
[0031] 本发明的方法由于没有涉及双线性对运算,运算效率明显提高,并具有签名短、安全性高的特点,确保电子文件在存储及网络传输中的安全性。

具体实施方式

[0032] 下面用具体实施例对本发明进行详细说明。
[0033] 本发明方法的技术方案源于Schnorr签名思想,构造了一个基于Schnorr签名的强指定验证者签名方案,并对于方案的安全性进行了分析;在该方案的基础上,构造了多签名者强指定多个验证者签名方案(MSMV-SDVS)。
[0034] 本发明的方法按照以下步骤具体实施:
[0035] 步骤1.生成系统参数:
[0036] 选择阶为素数q的循环群Gg,q,其中g是生成元,即Gg,q=,|Gg,q|=ord(g)=q,q是一个二进制长度为l的素数,l是安全参数。要求在循环群Gg,q中计算离散对数问题DLP是困难的。
[0037] 选择一个密码学单向哈希函数H:{0,1}*→{0,1}l,例如可选取H=SHA-1或H=MD5。
[0038] 步骤2.用户密钥建立:
[0039] 为多个签名者ui,i=1,…,u秘密选择私钥 并通过秘密信道分发,分别为每个签名者生成公钥:
[0040] 为多个指定的验证者vj,j=1,…,v秘密选择私钥 并通过秘密信道分发,分别为每个验证者生成公钥:
[0041] 步骤3.签名过程:
[0042] 设:多个签名者为ui,i=1,…,u,
[0043] 强指定多个验证者为vj,j=1,…,v,
[0044] 消息为m;
[0045] 31)每个签名者ui,i=1,…,u,随机选择 j=1,…,v;计算并将计算结果 发送给签名收集者或者广播给其他
的签名者;
[0046] 32)签名收集者或者签名者将上步每个签名者计算得到的 收集完全后,按照步骤1选择的哈希函数,根据下列公式
[0047]
[0048] 计算得到c,并将c广播给所有的签名者;
[0049] 33)每个签名者ui,i=1,…,u计算sij1:=rij1, j=1,…,v,并将 发送给签名收集者或者广播给其他的签名者;
[0050] 34)根据步骤32)和步骤33)得到的计算结果,签名收集者或者所有签名者确定消息m的签名者(u1,…,uu)的强指定验证者(v1,…,vv)的签名是:
[0051]
[0052] 35)签名收集者或者签名者将消息m和签名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)发给验证者。
[0053] 步骤4.验证过程:
[0054] 41)每个验证者vj,j=1,…,v,计算 i=1,…,u,并将计算结果发送给验证收集者或者直接广播给其他的验证者;
[0055] 42)验证收集者或者验证者将步骤41)中每个验证者的计算结果收集完后计算将计算得到的 带入步骤1选取的哈希函数H:{0,1}*→{0,1}l,
[0056] 计算得到 将该计算结果与所收到的签名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)中的c进行比较,如果相等即验证通过,否则验证不通过。
[0057] 以下从密码理论上证明本发明方法的正确性。
[0058] 若消息m的多签名者(u1,…,uu)强指定验证者(v1,…,vv)的签名是严格按照签名协议计算的,
[0059] 则 i=1,…,u,j=1,…,v,所以有
[0060]
[0061]
[0062] 故 成立,一定能够通过验证算法。
[0063] 本发明的多签名者多指定验证者数字签名方法,突出特色是可以由多个人共同生成文档的数字签名,同时对于签名的验证权可以进行限制,应用本发明,任意多个签名者可以协同产生文档的数字签名,同时可以由指定的多个人进行签名验证。
[0064] 实施例1
[0065] 设有三名设计人员A、B、C完成了一份电子图纸的审查,并需要共同在文档上签名,指定主管D和主管E可以验证该数字签名。
[0066] 步骤1.生成系统参数:设系统建立的公共参数为阶为素数q的循环群Gg,q,以及安全Hash函数H=SHA-1。
[0067] 步骤2.用户密钥建立:
[0068] 用户A、B、C、D、E的私钥分别为xA,xB,xC,xD,xE,这些私钥分别由每个用户秘密保存,对应地,他们的公钥分别为yA,yB,yC,yD,yE。
[0069] 三名设计人员A、B、C欲对消息m计算强指定两个验证者D和E的数字签名,于是有u=3,v=2。
[0070] 步骤3.签名过程:
[0071] 签名者A随机选择 计算 将AA广播给其他的签名者B和C;
[0072] 签名者B随机选择 计算 将AB广播给其他的签名者A和C;
[0073] 签名者C随机选择 计算 将AC广播给其他的签名者A和B;
[0074] 签名者A、B、C各自计算c=H(m||g||q‖AA‖AB‖AC);
[0075] 签名者A计算
[0076] sAD1=rAD1,sAD2=rAD2-cxA modq,sAE1=rAE1,sAE2=rAE2-cxA modq;
[0077] 签名者B计算
[0078] sBD1=rBD1,sBD2=rBD2-cxBmodq,sBE1=rBE1,sBE2=rBE2-cxB modq;
[0079] 签名者C计算
[0080] sCD1=rCD1,sCD2=rCD2-cxC modq,sCE1=rCE1,sCE2=rCE2-cxC modq;
[0081] 三个签名者分别向其他签名者广播 其中i=A、B、C。则签名者A、B、C均可将消息m的签名者(A,B,C)的强指定验证者(D,E)的签名
发送给验证者。
[0082] 步骤4.验证过程:验证者D计算 验证者E计算 分别互相广播三项计算结果;验证者D和E收
集完对方的广播数据后,均可以计算
[0083]
[0084]
[0085]
[0086] 验证者D和E均可将得到的 带入步骤1选取的哈希函数H=SHA-1,计算得到 将该计算结果与所收到的签名(c;sAD1,sAD2,sAE1,sAE2;sBD1,
sBD2,sBE1,sBE2;sCD1,sCD2,sCE1,sCE2)中的c进行比较,如果相等即验证通过,否则验证不通过。
[0087] 实施例2
[0088] 设有四名工作人员A、B、C、D完成了工作报告,需要共同在报告上签名,并指定主管E、主管F和主管G可以验证该数字签名。
[0089] 步骤1.生成系统参数:设系统建立的公共参数为阶为素数q的循环群Gg,q,以及安全Hash函数H=MD5。
[0090] 步骤2.用户密钥建立:
[0091] 用户A、B、C、D、E、F、G的私钥分别为xA,xB,xC,xD,xE,xF,xG,这些私钥分别由每个用户秘密保存,对应地,他们的公钥分别为yA,yB,yC,yD,yE,yF,yG。
[0092] 工作人员A、B、C、D欲共同对消息m进行数字签名并指定三个验证者E、F、G进行验证,于是有u=4,v=3。设A是签名者中的负责人,即签名收集者,E是验证者中的负责人,即验证收集者。
[0093] 步骤3.签名过程:
[0094] 签 名 者 A 随 机 选 择 计 算
[0095] 签 名 者 B 随 机 选 择 计 算将AB发送给签名收集者A;
[0096] 签 名 者 C 随 机 选 择 计 算将AC发送给签名收集者A;
[0097] 签 名 者 D 随 机 选 择 计 算将AD发送给签名收集者A;
[0098] 收集者A计算c=H(m||g||q‖AA‖AB‖AC‖AD),并将c发送给B、C、D。
[0099] 签 名 者 A ( 兼 收 集 者 ) 计 算并 保 存
[0100] 签名者B计算
[0101] 并 将发送给签名收集者A。
[0102] 签名者C计算
[0103] 并 将发送给签名收集者A。
[0104] 签名者D计算
[0105] 并 将发送给签名收集者A。
[0106] 签名收集者A发送消息m的签名者(A,B,C,D)的强指定验证者(E,F,G)的签名给指定的验证者。
[0107] 步骤4.验证过程:
[0108] 验证者E计算
[0109] 验证者F计算 并发送给验证收集者E;
[0110] 验证者G计算 并发送给验证