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

文档序号:7664951阅读:270来源:国知局
专利名称:数字签名和验证数字签名的方法、系统、设备和生成器的制作方法
技术领域
本发明涉及通信领域,特别涉及一种数字签名和验证数字签名的方法、系统、设备和生 成器。
背景技术
传统的公钥密码体制包括加密、签名和密钥协商技术,这些技术多数基于某些数论难题, 例如整数分解问题(IFP, Integer Factoring Problem)、离散对数问题(DLP, Discrete Logarithm Problem),以及其在椭圆曲线上扩展的椭圆曲线上的离散对数问题(ECDLP, Elliptic Curve Discrete Logarithm Problem)。然而,在量子计算环境下,这些问题可以通过多项式时间复杂 度和多项式空间复杂度解决。为了增强公钥密码体制在量子计算环境下的安全性,现有技术 提出了一些新的公钥密码学平台,其中包括基于辫子群等非交换群上的一些公钥密码系统。
基于辫子群或者其它非交换群上的密码方案通常基于两类难题共轭搜索难题(CSP, Conjugacy Search Problem)和求根难题(RP, Root Problem),以及由两类难题所演变出的问 题。
上述基于辫子群或者其它非交换群上的密码方案有两个特点 一是定义在无限阶非交换
群上;二是基于纯代数的方法,对数论难题的依赖比较少,既不依赖于大整数分解,也不依 赖于离散对数计算。基于这两个特点,这些密码方案在将来可能能够抵抗量子计算机的攻击。
现有技术中有两种基于辫子群的数字签名方案, 一个方案是基于匹配共轭搜索问题 (MCSP, Matching Conjugacy Search Problem),该方案的缺陷是将两个通过正常途径获得的 己知的两个消息的签名乘起来,就能得到一个新的有效的签名。另一个方案是基于匹配三元 共轭搜索问题(MTSP, Matching Triple conjugacy Search Problem),该方案的签名计算和验 证计算比较复杂。另外,这两个方案均没有被证明可以达到数字签名的标准安全性要求,即 自适应选择消息攻击下存在性不可伪造(EUF-CMA, Existentially Unforgeable against Chosen Message 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, ConjugacyAdjonProblem),基于此共轭连接 问题,提出了一种数字签名方法、系统、设备和生成器。
所谓共轭连接问题是指给定三个辫子p, q和c,其中辫子q和辫子p共轭,即存在某 个辫子s为共轭子,使将辫子p跟辫子c连接起来,即辫子p和c的乘积pc;用 pc与上述辫子s进行共轭,求得辫子r,使得辫子r与辫子pc共轭,用公式表述为r = 其中,s是未公开的,为用户的私钥。
显然,对于拥有私钥的人来说,这个问题很容易求解;而对于没有私钥的人来说,要解 此问题就相当困难。可以证明,这个问题和共轭搜索问题(CSP) —样难。
实施例1
本实施例提供了一种数字签名的方法,利用私钥对欲签名的消息进行共轭连接操作,生成签名辫子,并根据签名辫子生成欲签名的消息的签名。参见图1,该方法具体包括以下步 骤
步骤101:选择系统参数,具体选择的系统参数如下
选择n为系统安全参数,即辫子群数,n取正整数,n取值越高,安全性越高。 Bn为辫子群,辫子群数为n,后续所有辫子的操作均在辫子群Bn上进行。 消息空间和签名空间分别为(0,lf和(0,l"xBn,其中,消息空间指定了欲签名的消息的
长度,签名空间指定了签名后输出结果的长度。设每个消息的长度为k(通常k为大于64位)。 哈希函数H:{0,l}k+Bn为一个抗碰撞的Hash函数,该抗碰撞的哈希函数H用于把一个k
位的随机比特串映射成一个辫子,该抗碰撞哈希函数H的生成过程如下
1) 使用某个公开的抗碰撞哈希函数Ho将消息映射为某个定长的中间消息;
如通过Ho将任意长度的消息映射为L位的二进制串,本实施例中的Ho可以选择现有技 术中的任何一个没有被攻破(或抗碰撞)的哈希函数,如选择SHA256,此处L=256;或 SHA384,此处L:384;或SHA512,此处L-512;或者FORK256, L:256等。
2) 将中间消息划分为等长的若干小段,每段表示某个生成辫子,即某个Artin生成子或 者其逆辫子;
3) 将每段表示成的生成辫子用基础辫子连接,即用基础辫子将生成辫子乘起来,形成目 标辫子;
4) 目标辫子就是最终的哈希函数的输出。
将上述l)中消息作为输入,将目标辫子作为输出,就生成了抗碰撞的Hash函数。 例如对于给定的k位长的消息的二进制串bib2…bk,先用&映射1)11>2...1^为1^位二进 制串CiC2…Cl;
设to为不超过log2ll的最大正整数,并令t^to+l;
再将dC2…cl从左(即最高位)到右(即最低位),每t位划分成一段,共得U段,此处
u为不超过L/t的最大正整数。最后一段如果不足t位,可按照固定的方式补足t位,如在该 段的前面或者后面补0或1,或者在该段的某个固定位填充0或1。本实施例中在后面补l。 将得到的每段t位的二进制串的第一位看作正负号(如0为正,1为负),将后面t-l位看 作0到n-l中间的某个值的二进制编码,则得到一个数+i(或者一i),其中i在0和n-l之间。 把这个t位的二进制串看作为o",(或者o",—。,即第i个Artin生成子(或者第i个Artin生成 子的逆);
得到的u个Artin生成子(或者其逆)分别为C7 ,1或者_1, &=1,2,...,u,令H(b山2…bk)为如下辫子
其中A为基础辫子,即 '
△ = (°V. .°Vl CT _2 )…(0"CT2
可以证明,对于上述方法构造的哈希函数H: {0,l}k^Bn, H的一个碰撞等价为Ho的一 个碰撞。因此,Ho的抗碰撞属性保证了H的抗碰撞属性。
步骤102:根据系统参数生成公钥和私钥;具体过程如下
从辫子群Bn中随机选择两个辫子,分别为第一辫子W和第二辫子P,将第一辫子W作 为共轭子,根据该共轭子获取与第二辫子P共轭的第三辫子P',下面用Q来表示P'。这里可
以通过Q:W"PW计算得到。得到公钥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"PH(m)W。 步骤105:根据签名辫子R生成欲签名的消息m的签名。 将欲签名的消息m和签名辫子组合起来,得到签名(m,R)。
采用上述数字签名的方法,由于充分利用了辫子群运算非交换的特点,没有相应的私钥 就无法正确实施共轭连接操作,因而更加安全。
上述签名方法是对固定长度的消息进行的签名,属于确定性的,根据实际需要,可以按照 下列方式简单地改为概率性的
把原消息空间中的某些比特位看作随机填充位,例如原消息空间设定为k位,取出ko 位作为随机填充位,新的消息空间现在变为k-ko位,即欲签名的消息m的长度变为k-ko位, 如果还有多余的。进行消息签名时,先选择ko位长度的随机比特串c,再将欲签名的消息m(长 度为k-ko位)与c拼接起来,即mllc,然后令签名辫子为I^W-^H(mllc)W,其余步骤同上。 最后,完整的消息签名是(m,c,R)。
采用上述填充ko位长度的随机比特串的方法,由于每次签名时,比特串的内容不同,因 此每次的签名也不同,能够抵抗存储消息攻击。ko位长度长度需要预先设置,这样在后续验 证的时候可以按照该长度区分出欲签名的消息和随机填充的数据。
10实际应用时,如果消息的长度小于k位时,则在消息的头部或尾部补充O或者1;使消 息的长度为k位。当消息的长度大于k位时,将消息划分为多个段,每个段的长度为k位, 当最后一段不足k位时,通过在最后一段中添加O或l补足为k位,依次对每一段应用上述 步骤104中的方法生成签名辫子,再将(m, R)作为该段消息的签名依次发送给对端。
当消息的长度大于k位时,也可以应用后一种方式,将原消息空间中的ko位作为随机填 充位。将消息划分多个段,每个段的长度为k-ko位,进行消息签名时,在每一段后面添加ko 位的随机比特串c,依次对添加比特串后的每一段应用上述步骤104中的方法生成签名辫子, 再将(m, c, R)作为该段消息的签名发送给对端。
上述对不足k位的消息补充0或1的规则需要提前设定,以及作为随机填充位的ko位在 消息头部或尾部也需要提前设定。
实施例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(mllc)。下面叙述中以C-H(m)为例,C= H(mllc)的执行步骤与之相似,不再赘述。
步骤203:对签名者公钥pk中的第三辫子Q进行逆运算,并将运算结果Q"与签名辫子 R进行乘积运算得到第二验证辫子R'^RQ—^W"PH(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";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解析出的包括欲签名的消息的数
12据进行哈希运算,得到第一验证辫子;
第二验证辫子生成模块503,用于对签名者公钥中的第三辫子进行逆运算后与签名辫子 连接得到第二验证辫子;
验证模块504,用于判断第一验证辫子是否与第二验证辫子共轭;用签名者公钥中的第 二辫子与第一验证辫子连接,判断连接结果是否与签名辫子共轭;如果第一验证辫子与第-二 验证辫子共轭,且第二辫子和第一验证辫子连接结果与签名辫子共轭,签名验证通过。
实施例6
参见图6,本实施例提供了一种抗碰撞哈希函数生成器,包括
中间消息生成模块601,用于将包括签名消息的数据经抗碰撞哈希函数映射为预定长度 的中间消息;
基础辫子生成模块602,用于将上述中间消息划分为等长的多个段,将每段作为一个生 成辫子,根据生成辫子得到基础辫子;
目标辫子生成模块603,用于将基础辫子生成模块602中每段的生成辫子用基础辫子连 接,形成目标辫子。
上述方案中的全部或部分步骤可以通过指令控制相应的硬件完成,该指令可以存储于存 储介质中,存储介质,如计算机或服务器的硬盘和内存中。
在本发明实施例利用辫子群密码体制具有的非交换性特点,提出了新的基于辫子的密码 学难题假设,即共轭连接问题;并基于此假设设计了一种新的数字签名方案,该方案增强了 数字签名的安全性和高效性,并且其安全性可以被验证。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内, 所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种数字签名的方法,其特征在于,从系统参数所确定的辫子群中随机选择第一辫子W,作为私钥;以所述第一辫子W为共轭子的共轭对第二辫子P和第三辫子P′作为公钥;将包括欲签名的消息m的数据经哈希变换后与所述公钥中的第二辫子P连接;以所述私钥W作为共轭子,与连接结果进行共轭,生成签名辫子R;根据所述签名辫子R生成所述欲签名的消息m的签名。
2. 如权利要求1所述的数字签名的方法,其特征在于,所述哈希变换为抗碰撞哈希变换。
3. 如权利要求2所述的数字签名的方法,其特征在于,对欲签名的消息进行哈希变换的 步骤具体包括将欲签名的消息经抗碰撞哈希函数Ho映射为预定长度的中间消息;将所述中间消息划分为等长的多个段,将每段作为一个生成辫子,根据所述生成辫子得到基础辫子;将所述每段的生成辫子用所述基础辫子连接。
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. 一种抗碰撞哈希函数生成器,其特征在于,所述生成器包括中间消息生成模块,用于将欲包括签名的消息的数据经抗碰撞哈希函数映射为预定长度 的中间消息;基础辫子生成模块,用于将所述中间消息划分为等长的多个段,将每段作为一个生成辫 子,根据所述生成辫子得到基础辫子;目标辫子生成模块,用于将所述基础辫子生成模块中每段的生成辫子用所述基础辫子连 接,形成目标辫子。
全文摘要
本发明公开了一种数字签名和验证数字签名的方法、系统、设备和生成器,属于通信领域。其方法包括随机选择第一辫子作为私钥;以第一辫子为共轭子的共轭对作为公钥,公钥包括第二辫子和第三辫子;将包括欲签名的消息的数据经哈希变换后与第二辫子连接;以私钥作为共轭子,与连接结果进行共轭生成签名辫子;根据签名辫子生成签名。系统包括签名设备和签名验证设备。签名设备包括密钥生成模块、签名辫子生成模块和签名生成模块。签名验证设备包括解析签名模块、第一验证辫子生成模块、第二验证辫子生成模块和验证模块。本发明通过共轭连接操作进行数字签名,其安全性基础是共轭连接问题的难解性,增强了签名的安全性和有效性。
文档编号H04L9/28GK101425898SQ200710176648
公开日2009年5月6日 申请日期2007年10月31日 优先权日2007年10月31日
发明者位继伟, 曹珍富, 王励成, 董晓蕾 申请人:上海交通大学;华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1