一种高效的聚合数字签名方法技术

技术编号:19150964 阅读:44 留言:0更新日期:2018-10-13 10:30
提供了一种高效的聚合数字签名方法,是目前已知的唯一一种基于一般性有限群且可证明安全的聚合签名方法,解决了这个领域长期未解决的公开问题。所发明专利技术的聚合数字签名方法的可证明安全引入了非延展单向函数这一新型基础原语。所发明专利技术的聚合数字签名方法可大幅缩小签名的存储空间和验证时间,特别有利于在区块链和密码货币领域应用。

An efficient method for aggregated digital signature

This paper presents an efficient aggregate digital signature method, which is the only known aggregate signature method based on general finite group and proven security, and solves the long-standing open problems in this field. The provable security of the proposed aggregate digital signature method introduces a new basic primitive, non-extension one-way function. The invented aggregate digital signature method can greatly reduce the storage space and verification time of the signature, and is especially advantageous in the application of block chains and cryptographic currency.

【技术实现步骤摘要】
一种高效的聚合数字签名方法
本专利技术涉及密码技术,尤其涉及聚合数字签名方法。具体而言,聚合签名指的是这样一种技术:将多个独立生成的签名聚合起来,以减少签名存储的空间,并加快签名验证的时间。
技术介绍
预备知识和符号标示记G为一个有限群G′中的一个循环子群,其中记G′的阶为N,G的阶为q,g是G的生成元,记1G为G′的单位元,记G/1G为G中除了1G之外的所有元素构成的集合。一般而言,q为一个大的素数(典型地,|q|=160,其中|q|表示的是以2进制表示的q的长度),一般而言,|q|表示系统的安全参数。记Zq为数字集合{0,1,…,q-1},记为数字集合{1,…,q-1}。在下面的
技术介绍
描述中,采用乘法表示(multiplicativerepresentation)群上的操作,即G′和G为乘法群。这只是为了表述上的方便,所有有关
技术介绍
的叙述均可等价地应用到加法群上,比如,椭圆曲线,或者其他的代数群或具体的群,有限域,复数或复合模(compositemoduli)等。一般而言,对于乘法群上的操作,指数上的操作是对q求模,而群上元素的操作是对N或N+1求模或其它操作以保证操作的结果是G′或G中的元素;比如gx通常指的是gxmodq,gxgy通常表示的是gxgy∈G′,x+y∈Zq和xy∈Zq表示的是x+ymodq和xymodq。为了表述的方便起见,假定参数G,q,g是固定的并被所有的用户事先获知(这是一种实用中的普遍情况);或者,将这些参数包含在证书中或者在协议运行之前交换和协商这些参数并达成一致。假定离散对数假设在G上成立,即给定X=gx∈G(其中x从Zq中随机选取),没有概率多项式时间的算法能够以不可忽略的概率由X求出x。在下面的叙述中使用“^”符号(比如,)来标示一个用户或设备或程序的逻辑或“区别性”的身份(identity),比如一个名字,一个设备或程序序列号,一个email或IP地址,甚至是方法运行中的一个角色等。在某些情况下,这些身份可能伴随或包含于一个数字证书。记{…}为一个信息或数值的集合。哈希函数用来将一个字符串转换成一个数值或者一个固定长度的串等。典型地,哈希函数的输入,即任意一个字符串(或若干个字符串的联结),首先被编码为一个{0,1}*中的0-1串,然后将哈希函数作用在该转化后的0-1串输入上从而得到一个固定长度的0-1串输出。这儿{0,1}*表示的是所有0-1串的集合。哈希函数在密码学中的一个基本功能是提供一个“单向”和“抗碰撞”的转换,这儿“单向”指的是给定一个函数的输出求出其输入或前像是困难的,“抗碰撞(collision-resistant)”指的是给定一个输入难以找到另外一个不同的输入使得哈希函数在这两个不同输入上的输出相同。哈希函数范围可以非常广泛:从一个简单的混合(mixing)函数到一个具有伪随机输出性质的函数。具有伪随机输出性质的哈希函数在密码学分析中常被理想化为一个“随机圣谕(randomoracle)”。有几个哈希函数在密码学中被广泛使用:比如MD5将任意长度的数据转换为一个128-位的0-1串,而另一个常用的哈希函数SHA的输出是160位的0-1串。记f,h:{0,1}*→Zq为两个转换函数。典型地,f,h的输入,即任意一个字符串(或若干个字符串的联结),首先被编码为一个{0,1}*中的0-1串,然后将f,h作用在该转化后的0-1串输入上从而得到一个Zq中的数值(典型地,Zq中的数值亦用2进制表示)。特别地,f,h可以是哈希函数。在应用中,转换函数的所有输入首先转换为0-1串,然后将转换后的0-1串连接成一个0-1串(联结的顺序可以变化),最后在将转换函数作用到该联结后的0-1串从而得到输出。在大多数情况下,转换函数的输入的顺序不重要(顺序可以被变化)。比如,以转换函数f为例,设x为一个字符串,记x(2)为x的2进制0-1串编码表示;设S={s1,…,st},t≥0,为t个字符串的集合,记为s1,s2,…,st的2进制0-1串编码表示,则其中“||”表示的是字符串联结操作符。注意联结的顺序可以变化,但联结的顺序需固定且所有的用户知晓且使用相同的顺序进行联结操作。对于若其中si,1≤i≤t,是空串,则上述关于转换函数f的描述同样适用转换函数h。假定签名者,记为有一个签名公钥U,签名公钥U与签名者身份A的绑定由一个可信的第三方机构来执行。通常,可信的第三方机构会检查的身份的有效性以及U的有效性,然后对做一个数字签名,并将以及可信第三方的签名形成一个针对公钥证书,记为但是在区块链和去中心化应用中,并没有中心化的机构对用户身份和其公钥进行绑定。数字签名方法是密码技术的主要应用之一。基于离散对数的数字签名方案主要有Schnorr签名方案和国际数字签名标准(DigitalSignatureStandard(DSS))方案。聚合签名指的是这样一种技术:将多个独立生成的签名聚合起来,以减少签名存储的空间,并加快签名验证的时间。Schnorr签名方案运作如下:签名公钥:U=g-w∈G,其中其中,G是有限群G′中的一个循环子群,g是G的生成元;记Zq为数字集合{0,1…,q-1},为数字集合{1…,q-1},q为一个大的素数(典型地,|q|=160,其中|q|表示的是以2进制表示的q的长度)。签名私钥:w。签名的生成:记m∈{0,1}*为需要签名的信息,{0,1}*表示的是所有0-1串的集合。令h:{0,1}*→Zq为一个抗碰撞的哈希函数。从Zq中随机选取r,计算a=gr∈G;计算d=h(a,m);计算z=r+dw∈Zq;将(d,z)作为对m的签名。签名的验证:得到{m,(d,z)}以及签名公钥U后,签名验证者验证是否h(gzUd,m)=d。若h(gzUd,m)=d则接受签名,否则拒绝。数字签名标准(DSS)方案运作如下:签名公钥:U=gw∈G,其中签名私钥:w。签名的生成:记m∈{0,1}*为需要签名的信息。令h:{0,1}*→Zq为一个抗碰撞的哈希函数。令f:G′→Zq是一个转换函数。一般而言,若(p是个素数),f直接可以是“modq”操作;若G′是定义在有限域上的一个椭圆曲线群(即:a∈G表示椭圆曲线上的一个点(x,y)),f(a)=x。签名者做如下计算:从Zq中随机选取r,计算a=gr∈G,计算d=f(a);e=h(m);计算将(d,z)作为对m的签名。签名的验证:得到{m,(d,z)}以及签名公钥U后,签名验证者如下验证签名的有效性:计算验证若则接受签名,否则拒绝。Schnorr签名方案和数字签名标准(DSS)方案应用于签名聚合的可能性:已有的研究表明DSS签名方案不适合做签名聚合。而已有的研究成果表明Schnorr签名用于聚合签名时也不安全,这是通过具体的攻击来表明的。实际上,如何在一般的有限循环群上构建聚合签名是长期未解决的公开问题,本专利技术给出的高效聚合签名方案是第一个基于一般有限群的聚合签名方案,并具有可证明安全保证。
技术实现思路
本专利技术给出一种高效的聚合数字签名方法,是目前唯一已知的基于一般有限群的聚合签名方案,解决了基于一般有限群构建可证明安全聚合签名的长期公开问题。所专利技术的聚合签名方法在区块链和密码货币领域具有重要应用。本专利技术提供一种高效的聚本文档来自技高网
...

【技术保护点】
1.一种高效的聚合数字签名方法,其中,

【技术特征摘要】
1.一种高效的聚合数字签名方法,其中,表示签名者,n≥1是一个正整数表示系统中需要聚合的签名的数目,的公钥为的私钥为wi=xi∈Zq={0,1,2,…,q-1}或wi=-xi∈Zq,其中g是一个阶为N的有限群G′中的一个阶为素数q的循环子群G的生成元,mi∈{0,1}*为待签名的信息,其中{0,1}*表示的是任意长度的0-1串的集合;这儿,对于任意的i,j,1≤i≠j≤n,有可能和/或Ai=Aj和/或mi=mj;表示签名聚合者,表示聚合签名验证者,所述方法包括:由所述签名者得到ri∈Zq、和/或其中f是一个从{0,1}*到Zq的转换函数且ai是f的输入之一,是一个包含的集合的能够为空的子集合;由所述签名者得到其中h:{0,1}*→Zq是一个从{0,1}*到Zq的抗碰撞的转换函数且mi是h的输入之一,是一个包含的集合的能够为空的子集合,其中,{0,1}*表示的是任意0-1串的集合;由所述签名者计算zi,其中zi的计算基于diri+eiwi或diri-eiwi或eiri+diwi或eiri-diwi或-(diri+eiwi)或-(diri-diwi)或-(eiri+diwi)或-(eiri-diwi);具体选用哪种方式可由用户协商或签名者指定,但是一旦确定就应固定,并且所有的签名验证者知晓z的计算方式;由所述签名者将或或或作为对信息mi的数字签名,其中,是一个包含的集合的能够为空的子集合,系统参数{G′,G,g,q},转换函数h,f,以及辅助输入或者是固定的并被所有的用户事先获知,或者被包含在证书中,或者在协议运行之前或之中被交换和协商;所述签名聚合者设置三个初始变量其中为初始化为空的集合,z初始化为0;由所述签名聚合者得到消息和签名对{mi,si},得到所述签名者的公钥Ai∈G、得到ai∈G,然后验证{Ai,mi,si,ai}的有效性,若验证通过则令:z:=z+zimodq;收集和聚合一定量的签名后,输出或或其中M={m1,…,mk},说明m可能相同,某些情况下要检查m相同或或所述聚合签名验证者得到或或后,记其中k是一个正整数满足1≤k≤n;如下验证聚合签名的有效性:确认z∈Zq,否则聚合签名无效;如果收到的是验证的有效性,验证的有效性并确保其中||表示的集合的大小,对于每一个j,1≤j≤k,得到和如果收到的是验证验证的有效性并确保其中||表示的集合的大小,对于每一个j,1≤j≤k,得到然后按照如下情况之一验证聚合签名的有效性:若zi的计算基于diri+eiwi或diri-eiwi或-(diri+eiwi)或-(diri-eiwi),则通过计算函数来验证聚合签名的有效性;若zi的计算基于eiri+diwi或eiri-diwi或-(eiri+diwi)或-(eiri-diwi),则通过计算函数来验证聚合签名的有效性。2.如权利要求1所述的方法,其中,所述签名聚合者如下得到所述签名者的公钥Ai...

【专利技术属性】
技术研发人员:赵运磊黄兴忠
申请(专利权)人:上海扈民区块链科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1