CN101425898A - 数字签名和验证数字签名的方法、系统、设备和生成器 - Google Patents

数字签名和验证数字签名的方法、系统、设备和生成器 Download PDF

Info

Publication number
CN101425898A
CN101425898A CNA2007101766484A CN200710176648A CN101425898A CN 101425898 A CN101425898 A CN 101425898A CN A2007101766484 A CNA2007101766484 A CN A2007101766484A CN 200710176648 A CN200710176648 A CN 200710176648A CN 101425898 A CN101425898 A CN 101425898A
Authority
CN
China
Prior art keywords
plait
signature
conjugation
message
checking
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007101766484A
Other languages
English (en)
Inventor
曹珍富
董晓蕾
王励成
位继伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Shanghai Jiaotong University
Original Assignee
Huawei Technologies Co Ltd
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Shanghai Jiaotong University filed Critical Huawei Technologies Co Ltd
Priority to CNA2007101766484A priority Critical patent/CN101425898A/zh
Publication of CN101425898A publication Critical patent/CN101425898A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种数字签名和验证数字签名的方法、系统、设备和生成器,属于通信领域。其方法包括:随机选择第一辫子作为私钥;以第一辫子为共轭子的共轭对作为公钥,公钥包括第二辫子和第三辫子;将包括欲签名的消息的数据经哈希变换后与第二辫子连接;以私钥作为共轭子,与连接结果进行共轭生成签名辫子;根据签名辫子生成签名。系统包括:签名设备和签名验证设备。签名设备包括:密钥生成模块、签名辫子生成模块和签名生成模块。签名验证设备包括:解析签名模块、第一验证辫子生成模块、第二验证辫子生成模块和验证模块。本发明通过共轭连接操作进行数字签名,其安全性基础是共轭连接问题的难解性,增强了签名的安全性和有效性。

Description

数字签名和验证数字签名的方法、系统、设备和生成器
技术领域
本发明涉及通信领域,特别涉及一种数字签名和验证数字签名的方法、系统、设备和生成器。
背景技术
传统的公钥密码体制包括加密、签名和密钥协商技术,这些技术多数基于某些数论难题,例如整数分解问题(IFP,Integer Factoring Problem)、离散对数问题(DLP,Discrete LogarithmProblem),以及其在椭圆曲线上扩展的椭圆曲线上的离散对数问题(ECDLP,Elliptic CurveDiscrete Logarithm Problem)。然而,在量子计算环境下,这些问题可以通过多项式时间复杂度和多项式空间复杂度解决。为了增强公钥密码体制在量子计算环境下的安全性,现有技术提出了一些新的公钥密码学平台,其中包括基于辫子群等非交换群上的一些公钥密码系统。
基于辫子群或者其它非交换群上的密码方案通常基于两类难题:共轭搜索难题(CSP,Conjugacy SearchProblem)和求根难题(RP,RootProblem),以及由两类难题所演变出的问题。
上述基于辫子群或者其它非交换群上的密码方案有两个特点:一是定义在无限阶非交换群上;二是基于纯代数的方法,对数论难题的依赖比较少,既不依赖于大整数分解,也不依赖于离散对数计算。基于这两个特点,这些密码方案在将来可能能够抵抗量子计算机的攻击。
现有技术中有两种基于辫子群的数字签名方案,一个方案是基于匹配共轭搜索问题(MCSP,Matching Conjugacy Search Problem),该方案的缺陷是:将两个通过正常途径获得的已知的两个消息的签名乘起来,就能得到一个新的有效的签名。另一个方案是基于匹配三元共轭搜索问题(MTSP,Matching Triple conjugacy Search Problem),该方案的签名计算和验证计算比较复杂。另外,这两个方案均没有被证明可以达到数字签名的标准安全性要求,即自适应选择消息攻击下存在性不可伪造(EUF-CMA,Existentially Unforgeable against ChosenMessage Attack)。所谓选择消息攻击下存在性不可伪造是指:允许攻击者询问(即经过合法途径获得)他所自适应地选择的消息的签名,在这样的前提下,该攻击者能够输出一个成功的伪造签名的概率仍然是可以忽略的。
发明内容
为了增强签名的安全性,本发明实施例提供了一种数字签名和验证数字签名的方法、系统、设备和抗碰撞哈希函数生成器。所述技术方案如下:
一种数字签名的方法,所述方法包括:
从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;
以所述第一辫子W为共轭子的共轭对(P,P′)作为公钥,所述公钥包括第二辫子P和第三辫子P′;
将包括欲签名的消息m的数据经哈希变换后与所述公钥中的第二辫子P连接;
以所述私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;
根据所述签名辫子R生成所述欲签名的消息m的签名。
本发明实施例还提供了一种验证数字签名的方法,所述方法包括:
解析签名,得到包括欲签名的消息的数据和签名辫子;
对所述包括欲签名的消息的数据进行哈希变换,得到第一验证辫子,所述哈希变换与签名者采用的哈希变换相同;
对签名者公钥中的第三辫子进行逆运算后与所述签名辫子连接得到第二验证辫子;
判断所述第一验证辫子是否与所述第二验证辫子共轭;
用签名者公钥中的第二辫子与所述第一验证辫子连接,判断连接结果是否与所述签名辫子共轭;
如果所述第一验证辫子与所述第二验证辫子共轭,且所述第二辫子和所述第一验证辫子连接结果与所述签名辫子共轭,所述签名验证通过。
进一步地,本发明实施例还提供了一种数字签名系统,所述系统包括:
签名设备,用于从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;以所述第一辫子W为共轭子的共轭对(P,P′)作为公钥,所述公钥包括第二辫子P和第三辫子P′;将包括欲签名的消息m的数据经哈希变换后与所述公钥中的第二辫子P连接;以所述私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;根据所述签名辫子R生成所述欲签名的消息m的签名;
签名验证设备,用于解析所述签名设备的签名,得到所述包括欲签名的消息的数据和签名辫子;对所述包括欲签名的消息的数据进行哈希变换,得到第一验证辫子,所述哈希变换与所述签名设备采用的哈希变换相同;对所述签名设备公钥中的第三辫子进行逆运算后与所述签名辫子连接得到第二验证辫子;判断所述第一验证辫子是否与所述第二验证辫子共轭;用所述签名设备公钥中的第二辫子与所述第一验证辫子连接,判断连接结果是否与所述签名辫子共轭;如果所述第一验证辫子与所述第二验证辫子共轭,且所述第二辫子和所述第一验证辫子连接结果与所述签名辫子共轭,所述签名验证通过。
本发明实施例还提供了一种签名设备,所述设备包括:
密钥生成模块,用于从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;以所述第一辫子W为共轭子的共轭对(P,P′)作为公钥,所述公钥包括第二辫子P和第三辫子P′;
签名辫子生成模块,用于将包括欲签名的消息m的数据经哈希变换后与所述密钥生成模块生成的公钥中的第二辫子P连接;以所述私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;
签名生成模块,用于根据所述签名辫子生成模块所生成的签名辫子R生成所述欲签名的消息m的签名。
本发明实施例还提供了一种签名验证设备,所述设备包括:
解析签名模块,用于解析签名,得到包括欲签名的消息的数据和签名辫子;
第一验证辫子生成模块,用于对所述解析签名模块解析出的包括欲签名的消息的数据进行哈希运算,得到第一验证辫子;
第二验证辫子生成模块,用于对签名者公钥中的第三辫子进行逆运算后与所述签名辫子连接得到第二验证辫子;
验证模块,用于判断所述第一验证辫子是否与所述第二验证辫子共轭;用所述签名者公钥中的第二辫子与所述第一验证辫子连接,判断连接结果是否与所述签名辫子共轭;如果所述第一验证辫子与所述第二验证辫子共轭,且所述第二辫子和所述第一验证辫子连接结果与所述签名辫子共轭,所述签名验证通过。
本发明实施例还提供了一种抗碰撞哈希函数生成器,所述生成器包括:
中间消息生成模块,用于将欲做哈希变换的消息映射为预定长度的中间消息;
基础辫子生成模块,用于将所述中间消息划分为等长的多个段,将每段作为一个生成辫子,根据所述生成辫子得到基础辫子;
目标辫子生成模块,用于将所述基础辫子生成模块中每段的生成辫子用所述基础辫子连接,形成目标辫子;
哈希函数生成模块,用于将欲做哈希变换的消息为输入,所述目标辫子生成模块中的目标辫子为输出,生成抗碰撞哈希函数。
本发明实施例提供的技术方案的有益效果是:
通过基于共轭连接操作进行数字签名,其安全性基础是共轭连接问题的难解性,被证明可以达到数字签名的标准安全性要求。
由于充分利用了辫子群运算非交换的特点,没有相应的私钥就无法正确实施共轭连接操作,即使把两个通过正常途径获得的已知的两个消息的签名乘起来,也是不正确的共轭连接,即不能得到一个新的有效的签名,因而更加安全。同时,本发明实施例所述的技术方案的签名计算和验证计算简单,在效率上优于现有技术的方案。
附图说明
图1是本发明实施例1提供的数字签名的方法流程图;
图2是本发明实施例2提供的验证数字签名的方法流程图;
图3是本发明实施例3提供的数字签名的系统的结构示意图;
图4是本发明实施例4提供的签名设备的结构示意图;
图5是本发明实施例5提供的签名验证设备的结构示意图;
图6是本发明实施例6提供的抗碰撞哈希函数生成器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例基于辫子群或一般非交换群的非交换性的特点,提出了一个新的基于辫子群的密码学难题——基于共轭连接问题(CAP,Conjugacy Adjon Problem),基于此共轭连接问题,提出了一种数字签名方法、系统、设备和生成器。
所谓共轭连接问题是指:给定三个辫子p,q和c,其中辫子q和辫子p共轭,即存在某个辫子s为共轭子,使q=s-1ps;将辫子p跟辫子c连接起来,即辫子p和c的乘积pc;用pc与上述辫子s进行共轭,求得辫子r,使得辫子r与辫子pc共轭,用公式表述为r=s-1pcs,其中,s是未公开的,为用户的私钥。
显然,对于拥有私钥的人来说,这个问题很容易求解;而对于没有私钥的人来说,要解此问题就相当困难。可以证明,这个问题和共轭搜索问题(CSP)一样难。
实施例1
本实施例提供了一种数字签名的方法,利用私钥对欲签名的消息进行共轭连接操作,生成签名辫子,并根据签名辫子生成欲签名的消息的签名。参见图1,该方法具体包括以下步骤:
步骤101:选择系统参数,具体选择的系统参数如下:
选择n为系统安全参数,即辫子群数,n取正整数,n取值越高,安全性越高。
Bn为辫子群,辫子群数为n,后续所有辫子的操作均在辫子群Bn上进行。
消息空间和签名空间分别为{0,1}k和{0,1}k×Bn,其中,消息空间指定了欲签名的消息的长度,签名空间指定了签名后输出结果的长度。设每个消息的长度为k(通常k为大于64位)。
哈希函数H:{0,1}k→Bn为一个抗碰撞的Hash函数,该抗碰撞的哈希函数H用于把一个k位的随机比特串映射成一个辫子,该抗碰撞哈希函数H的生成过程如下:
1)使用某个公开的抗碰撞哈希函数H0将消息映射为某个定长的中间消息;
如通过H0将任意长度的消息映射为L位的二进制串,本实施例中的H0可以选择现有技术中的任何一个没有被攻破(或抗碰撞)的哈希函数,如选择SHA256,此处L=256;或SHA384,此处L=384;或SHA512,此处L=512;或者FORK256,L=256等。
2)将中间消息划分为等长的若干小段,每段表示某个生成辫子,即某个Artin生成子或者其逆辫子;
3)将每段表示成的生成辫子用基础辫子连接,即用基础辫子将生成辫子乘起来,形成目标辫子;
4)目标辫子就是最终的哈希函数的输出。
将上述1)中消息作为输入,将目标辫子作为输出,就生成了抗碰撞的Hash函数。
例如:对于给定的k位长的消息的二进制串b1b2...bk,先用H0映射b1b2...bk为L位二进制串c1c2...cL
设t0为不超过log2n的最大正整数,并令t=t0+1;
再将c1c2...cL从左(即最高位)到右(即最低位),每t位划分成一段,共得u段,此处u为不超过L/t的最大正整数。最后一段如果不足t位,可按照固定的方式补足t位,如在该段的前面或者后面补0或1,或者在该段的某个固定位填充0或1。本实施例中在后面补1。
将得到的每段t位的二进制串的第一位看作正负号(如0为正,1为负),将后面t-1位看作0到n-1中间的某个值的二进制编码,则得到一个数+i(或者—i),其中i在0和n-1之间。把这个t位的二进制串看作为σi(或者
Figure A200710176648D00091
),即第i个Artin生成子(或者第i个Artin生成子的逆);
得到的u个Artin生成子(或者其逆)分别为
Figure A200710176648D00092
ej为+1或者—1,ij=1,2,...,u,令H(b1b2...bk)为如下辫子:
H ( b 1 b 2 · · · b k ) = σ i 1 e 1 Δ σ i 2 e 2 Δ · · · Δ σ i m e m
其中Δ为基础辫子,即
Δ=(σ1…σn-1)(σ1…σn-2)…(σ1σ21
可以证明,对于上述方法构造的哈希函数H:{0,1}k→Bn,H的一个碰撞等价为H0的一个碰撞。因此,H0的抗碰撞属性保证了H的抗碰撞属性。
步骤102:根据系统参数生成公钥和私钥;具体过程如下:
从辫子群Bn中随机选择两个辫子,分别为第一辫子W和第二辫子P,将第一辫子W作为共轭子,根据该共轭子获取与第二辫子P共轭的第三辫子P’,下面用Q来表示P’。这里可以通过Q=W-1PW计算得到。得到公钥pk={P,Q}和私钥sk=W。公钥由两部分组成,即用两个共轭的辫子作为公钥,而将其共轭子作为私钥。
步骤103:采用步骤101中生成的抗碰撞哈希函数对欲签名的消息m进行哈希运算得到消息辫子H(m)。
步骤104:利用公钥中的第二辫子P和私钥W对消息辫子H(m)进行共轭连接操作,生成签名辫子。具体过程为:
将第二辫子P与消息辫子H(m)连接起来,即进行乘积运算,得到中间辫子PH(m);
将私钥W作为共轭子,获取与中间辫子PH(m)共轭的签名辫子R=W-1PH(m)W。
步骤105:根据签名辫子R生成欲签名的消息m的签名。
将欲签名的消息m和签名辫子组合起来,得到签名(m,R)。
采用上述数字签名的方法,由于充分利用了辫子群运算非交换的特点,没有相应的私钥就无法正确实施共轭连接操作,因而更加安全。
上述签名方法是对固定长度的消息进行的签名,属于确定性的,根据实际需要,可以按照下列方式简单地改为概率性的:
把原消息空间中的某些比特位看作随机填充位,例如:原消息空间设定为k位,取出k0位作为随机填充位,新的消息空间现在变为k-k0位,即欲签名的消息m的长度变为k-k0位,如果还有多余的。进行消息签名时,先选择k0位长度的随机比特串c,再将欲签名的消息m(长度为k-k0位)与c拼接起来,即m||c,然后令签名辫子为R=W-1PH(m||c)W,其余步骤同上。最后,完整的消息签名是(m,c,R)。
采用上述填充k0位长度的随机比特串的方法,由于每次签名时,比特串的内容不同,因此每次的签名也不同,能够抵抗存储消息攻击。k0位长度长度需要预先设置,这样在后续验证的时候可以按照该长度区分出欲签名的消息和随机填充的数据。
实际应用时,如果消息的长度小于k位时,则在消息的头部或尾部补充0或者1;使消息的长度为k位。当消息的长度大于k位时,将消息划分为多个段,每个段的长度为k位,当最后一段不足k位时,通过在最后一段中添加0或1补足为k位,依次对每一段应用上述步骤104中的方法生成签名辫子,再将(m,R)作为该段消息的签名依次发送给对端。
当消息的长度大于k位时,也可以应用后一种方式,将原消息空间中的k0位作为随机填充位。将消息划分多个段,每个段的长度为k-k0位,进行消息签名时,在每一段后面添加k0位的随机比特串c,依次对添加比特串后的每一段应用上述步骤104中的方法生成签名辫子,再将(m,c,R)作为该段消息的签名发送给对端。
上述对不足k位的消息补充0或1的规则需要提前设定,以及作为随机填充位的k0位在消息头部或尾部也需要提前设定。
实施例2
参见图2,本实施例提供了一种验证数字签名的方法,包括以下步骤:
步骤201:解析签名(m,R),解析出欲签名消息m和签名辫子R。
当签名为(m,c,R)时,本步骤对(m,c,R)进行解析,解析出的欲签名的消息m、比特串c和签名辫子R。
步骤202:采用与签名时相同的抗碰撞哈希函数对欲签名的消息m进行哈希运算,得到第一验证辫子C=H(m)。
当步骤201解析签名的结果为欲签名的消息m、比特串c和签名辫子R时,本步骤可以将欲签名的消息m和比特串c进行拼接;对拼接的结果进行哈希运算,得到第一验证辫子C=H(m||c)。下面叙述中以C=H(m)为例,C=H(m||c)的执行步骤与之相似,不再赘述。
步骤203:对签名者公钥pk中的第三辫子Q进行逆运算,并将运算结果Q-1与签名辫子R进行乘积运算得到第二验证辫子R′=RQ-1=W-1PH(m)WQ-1
步骤204:用签名者公钥中的第二辫子P与第一验证辫子C连接,即相乘,得到PC=PH(m),判断连接的结果是否与签名辫子R共轭;以及判断第一验证辫子C是否与第二验证辫子R′共轭;如果都共轭,执行步骤205;否则,执行步骤206。
步骤205:签名验证通过。
步骤206:签名验证不通过。
下面以其它用户得到上述签名(m,R)为例,简单介绍一下对签名验证设备具体验证过程:
1)将签名(m,R)作为输入,计算两个辫子C=H(m)和R′=RQ-1
2)判断辫子P和辫子C的连接是否与辫子R共轭;以及判断辫子C是否和辫子R′共轭,用公式表示为R~PC和R′~C。
3)当如果R~PC和R′~C共轭关系同时成立,则该签名正确,并输出1;否则,该签名错误,并输出0。
实施例3
参见图3,本实施例提供了一种数字签名系统,包括:
签名设备301,用于从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;以第一辫子W为共轭子的共轭对(P,P′)作为公钥,该公钥包括第二辫子P和第三辫子P′;将包括欲签名的消息m的数据经哈希变换后与上述公钥中的第二辫子P连接;以私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;根据签名辫子R生成欲签名的消息m的签名;
签名验证设备302,用于解析签名设备301的签名,得到包括欲签名的消息的数据和签名辫子;对包括欲签名的消息的数据进行哈希变换,得到第一验证辫子,该哈希变换与签名设备301采用的哈希变换相同;对签名设备301公钥中的第三辫子进行逆运算后与签名辫子连接得到第二验证辫子;判断第一验证辫子是否与第二验证辫子共轭;用签名设备301公钥中的第二辫子与第一验证辫子连接,判断连接结果是否与签名辫子共轭;如果第一验证辫子与第二验证辫子共轭,且第二辫子和第一验证辫子连接结果与签名辫子共轭,签名验证通过。
实施例4
参见图4,本实施例提供了一种签名设备,包括:
密钥生成模块401,用于从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;以第一辫子W为共轭子的共轭对(P,P′)作为公钥,该公钥包括第二辫子P和第三辫子P′;
签名辫子生成模块402,用于将包括欲签名的消息m的数据经哈希变换后与密钥生成模块401生成的公钥中的第二辫子P连接;以私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;
签名生成模块403,用于根据签名辫子生成模块402所生成的签名辫子R生成欲签名的消息m的签名。
实施例5
参见图5,本实施例提供了一种签名验证设备,包括:
解析签名模块501,用于解析签名,得到包括欲签名的消息的数据和签名辫子;
第一验证辫子生成模块502,用于对解析签名模块501解析出的包括欲签名的消息的数据进行哈希运算,得到第一验证辫子;
第二验证辫子生成模块503,用于对签名者公钥中的第三辫子进行逆运算后与签名辫子连接得到第二验证辫子;
验证模块504,用于判断第一验证辫子是否与第二验证辫子共轭;用签名者公钥中的第二辫子与第一验证辫子连接,判断连接结果是否与签名辫子共轭;如果第一验证辫子与第二验证辫子共轭,且第二辫子和第一验证辫子连接结果与签名辫子共轭,签名验证通过。
实施例6
参见图6,本实施例提供了一种抗碰撞哈希函数生成器,包括:
中间消息生成模块601,用于将包括签名消息的数据经抗碰撞哈希函数映射为预定长度的中间消息;
基础辫子生成模块602,用于将上述中间消息划分为等长的多个段,将每段作为一个生成辫子,根据生成辫子得到基础辫子;
目标辫子生成模块603,用于将基础辫子生成模块602中每段的生成辫子用基础辫子连接,形成目标辫子。
上述方案中的全部或部分步骤可以通过指令控制相应的硬件完成,该指令可以存储于存储介质中,存储介质,如计算机或服务器的硬盘和内存中。
在本发明实施例利用辫子群密码体制具有的非交换性特点,提出了新的基于辫子的密码学难题假设,即共轭连接问题;并基于此假设设计了一种新的数字签名方案,该方案增强了数字签名的安全性和高效性,并且其安全性可以被验证。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种数字签名的方法,其特征在于,
从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;
以所述第一辫子W为共轭子的共轭对第二辫子P和第三辫子P′作为公钥;
将包括欲签名的消息m的数据经哈希变换后与所述公钥中的第二辫子P连接;
以所述私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;
根据所述签名辫子R生成所述欲签名的消息m的签名。
2.如权利要求1所述的数字签名的方法,其特征在于,所述哈希变换为抗碰撞哈希变换。
3.如权利要求2所述的数字签名的方法,其特征在于,对欲签名的消息进行哈希变换的步骤具体包括:
将欲签名的消息经抗碰撞哈希函数H0映射为预定长度的中间消息;
将所述中间消息划分为等长的多个段,将每段作为一个生成辫子,根据所述生成辫子得到基础辫子;
将所述每段的生成辫子用所述基础辫子连接。
4.如权利要求1或2所述的数字签名的方法,其特征在于,还包括:
选择系统安全参数n,n取正整数;
根据所述系统安全参数n确定辫子群Bn;所述第一辫子W、第二辫子P属于所述辫子群Bn。
5.如权利要求1或2所述的数字签名的方法,其特征在于,所述包括欲签名的消息m的数据为:
由欲签名消息构成的数据或在欲签名消息m后拼接预设长度的比特串构成的数据。
6.一种验证数字签名的方法,其特征在于,所述方法包括:
解析签名,得到包括欲签名的消息的数据和签名辫子;
对所述包括欲签名的消息的数据进行哈希变换,得到第一验证辫子,所述哈希变换与签名者采用的哈希变换相同;
对签名者公钥中的第三辫子进行逆运算后与所述签名辫子连接得到第二验证辫子;
判断所述第一验证辫子是否与所述第二验证辫子共轭;
用签名者公钥中的第二辫子与所述第一验证辫子连接,判断连接结果是否与所述签名辫子共轭;
如果所述第一验证辫子与所述第二验证辫子共轭,且所述第二辫子和所述第一验证辫子连接结果与所述签名辫子共轭,所述签名验证通过。
7.如权利要求6所述的验证数字签名的方法,其特征在于,所述包括欲签名的消息m的数据为:
由欲签名消息构成的数据或在欲签名消息m后拼接预设长度的比特串构成的数据。
8.一种数字签名系统,其特征在于,所述系统包括:
签名设备,用于从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;以所述第一辫子W为共轭子的共轭对(P,P′)作为公钥,所述公钥包括第二辫子P和第三辫子P′;将包括欲签名的消息m的数据经哈希变换后与所述公钥中的第二辫子P连接;以所述私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;根据所述签名辫子R生成所述欲签名的消息m的签名;
签名验证设备,用于解析所述签名设备的签名,得到所述包括欲签名的消息的数据和签名辫子;对所述包括欲签名的消息的数据进行哈希变换,得到第一验证辫子,所述哈希变换与所述签名设备采用的哈希变换相同;对所述签名设备公钥中的第三辫子进行逆运算后与所述签名辫子连接得到第二验证辫子;判断所述第一验证辫子是否与所述第二验证辫子共轭;用所述签名设备公钥中的第二辫子与所述第一验证辫子连接,判断连接结果是否与所述签名辫子共轭;如果所述第一验证辫子与所述第二验证辫子共轭,且所述第二辫子和所述第一验证辫子连接结果与所述签名辫子共轭,所述签名验证通过。
9.一种签名设备,其特征在于,所述设备包括:
密钥生成模块,用于从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;以所述第一辫子W为共轭子的共轭对第二辫子P和第三辫子P′作为公钥;
签名辫子生成模块,用于将包括欲签名的消息m的数据经哈希变换后与所述密钥生成模块生成的公钥中的第二辫子P连接;以所述私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;
签名生成模块,用于根据所述签名辫子生成模块所生成的签名辫子R生成所述欲签名的消息m的签名。
10.一种签名验证设备,其特征在于,所述设备包括:
解析签名模块,用于解析签名,得到包括欲签名的消息的数据和签名辫子;
第一验证辫子生成模块,用于对所述解析签名模块解析出的包括欲签名的消息的数据进行哈希运算,得到第一验证辫子;
第二验证辫子生成模块,用于对签名者公钥中的第三辫子进行逆运算后与所述签名辫子连接得到第二验证辫子;
验证模块,用于判断所述第一验证辫子是否与所述第二验证辫子共轭;用所述签名者公钥中的第二辫子与所述第一验证辫子连接,判断连接结果是否与所述签名辫子共轭;如果所述第一验证辫子与所述第二验证辫子共轭,且所述第二辫子和所述第一验证辫子连接结果与所述签名辫子共轭,所述签名验证通过。
11.一种抗碰撞哈希函数生成器,其特征在于,所述生成器包括:
中间消息生成模块,用于将欲包括签名的消息的数据经抗碰撞哈希函数映射为预定长度的中间消息;
基础辫子生成模块,用于将所述中间消息划分为等长的多个段,将每段作为一个生成辫子,根据所述生成辫子得到基础辫子;
目标辫子生成模块,用于将所述基础辫子生成模块中每段的生成辫子用所述基础辫子连接,形成目标辫子。
CNA2007101766484A 2007-10-31 2007-10-31 数字签名和验证数字签名的方法、系统、设备和生成器 Pending CN101425898A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2007101766484A CN101425898A (zh) 2007-10-31 2007-10-31 数字签名和验证数字签名的方法、系统、设备和生成器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007101766484A CN101425898A (zh) 2007-10-31 2007-10-31 数字签名和验证数字签名的方法、系统、设备和生成器

Publications (1)

Publication Number Publication Date
CN101425898A true CN101425898A (zh) 2009-05-06

Family

ID=40616254

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101766484A Pending CN101425898A (zh) 2007-10-31 2007-10-31 数字签名和验证数字签名的方法、系统、设备和生成器

Country Status (1)

Country Link
CN (1) CN101425898A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954124A (zh) * 2014-03-28 2015-09-30 华为技术有限公司 加密和解密数据处理方法、装置和系统
CN105049451A (zh) * 2015-08-25 2015-11-11 清华大学 生成数字签名的方法和验证数字签名的方法
CN106506156A (zh) * 2016-12-15 2017-03-15 北京三未信安科技发展有限公司 一种基于椭圆曲线的分布式门限签名方法
CN106603236A (zh) * 2015-10-15 2017-04-26 收付宝科技有限公司 一种用于生成签名的方法和装置
CN110401677A (zh) * 2019-08-23 2019-11-01 RealMe重庆移动通信有限公司 数字版权密钥的获取方法、装置、存储介质及电子设备
CN111628868A (zh) * 2020-05-26 2020-09-04 腾讯科技(深圳)有限公司 数字签名生成方法、装置、计算机设备和存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954124A (zh) * 2014-03-28 2015-09-30 华为技术有限公司 加密和解密数据处理方法、装置和系统
CN104954124B (zh) * 2014-03-28 2018-02-23 华为技术有限公司 加密和解密数据处理方法、装置和系统
CN105049451A (zh) * 2015-08-25 2015-11-11 清华大学 生成数字签名的方法和验证数字签名的方法
CN105049451B (zh) * 2015-08-25 2018-10-30 清华大学 生成数字签名的方法和验证数字签名的方法
CN106603236A (zh) * 2015-10-15 2017-04-26 收付宝科技有限公司 一种用于生成签名的方法和装置
CN106506156A (zh) * 2016-12-15 2017-03-15 北京三未信安科技发展有限公司 一种基于椭圆曲线的分布式门限签名方法
CN110401677A (zh) * 2019-08-23 2019-11-01 RealMe重庆移动通信有限公司 数字版权密钥的获取方法、装置、存储介质及电子设备
CN110401677B (zh) * 2019-08-23 2022-05-17 RealMe重庆移动通信有限公司 数字版权密钥的获取方法、装置、存储介质及电子设备
CN111628868A (zh) * 2020-05-26 2020-09-04 腾讯科技(深圳)有限公司 数字签名生成方法、装置、计算机设备和存储介质
WO2021238527A1 (zh) * 2020-05-26 2021-12-02 腾讯科技(深圳)有限公司 数字签名生成方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN102868528B (zh) 一种公开密钥的可验证生成的设备和对应认证中心
EP1847062B1 (en) Challenge-response signatures and secure diffie-hellman protocols
US6578144B1 (en) Secure hash-and-sign signatures
CN108551392B (zh) 一种基于sm9数字签名的盲签名生成方法及系统
Dehornoy Braid-based cryptography
Brown et al. Provably secure implicit certificate schemes
US8116451B2 (en) Key validation scheme
CN102263638B (zh) 认证设备、认证方法和签名生成设备
Mackenzie More efficient password-authenticated key exchange
CN1941699B (zh) 密码方法、主机系统、可信平台模块和计算机安排
CN109450640B (zh) 基于sm2的两方签名方法及系统
EP2503728B1 (en) Incorporating data into public-key reconstruction data of an ecqv implicit certificate
US8165287B2 (en) Cryptographic hash functions using elliptic polynomial cryptography
CN103733564A (zh) 利用隐式证书链的数字签名
CN101425898A (zh) 数字签名和验证数字签名的方法、系统、设备和生成器
CN104836808B (zh) 基于改进差分错误攻击的sm2签名算法安全性验证方法
CN112653554B (zh) 一种签名方法、系统、设备及可读存储介质
WO1999020020A1 (en) Key validation scheme
TWI511517B (zh) Information processing apparatus, information processing method, program and recording medium
Aguilar-Melchor et al. A code-based undeniable signature scheme
CN102064940B (zh) 一种在线/离线高效的数字签名方法
EP2294753B1 (en) Method and apparatus for generating a signature for a message and method and apparatus for verifying such a signature
JP4848957B2 (ja) 署名および検証方法ならびに署名および検証装置
CN115174057B (zh) 一种基于sm2签名的在线离线签名生成方法及系统
Kunz-Jacques et al. Using hash-based signatures to bootstrap quantum key distribution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20090506