恒长的格基群签名方法和装置、存储介质、电子装置与流程

文档序号:24979528发布日期:2021-05-07 22:54阅读:116来源:国知局
恒长的格基群签名方法和装置、存储介质、电子装置与流程

本申请涉及数据安全领域,具体而言,涉及一种恒长的格基群签名方法和装置、存储介质、电子装置。



背景技术:

基于较好的匿名性和可追溯性,群签名广泛用于可信计算平台、拍卖协议或公共交通用户的隐私保护机制、数字管理版权、匿名在线通信和电子商务系统。由于群组成员可以用整个群的名义进行签名,不可避免出现了签名长度与群成员数目相关性的问题。当群组成员较多时,签名长度也超出可接受的范围。特别是在格基密码中,由于密码体系本身参数较大,群签名长度更是不能容忍的长。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种恒长的格基群签名方法和装置、存储介质、电子装置,以至少解决相关技术中群签名长度较长的技术问题。

根据本申请实施例的一个方面,提供了一种恒长的格基群签名方法,包括:接收签名请求,所述签名请求用于请求进行恒长格基群签名;响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名。

可选地,在通过采用无陷门签名技术实现恒长格基群签名时,通过运行群密钥生成算法、群签名生成算法、群签名验证算法以及群成员身份打开算法实现恒长格基群签名。

可选地,在运行群密钥生成算法时,获取安全参数和群成员数目;运行陷门生成算法,根据所述安全参数和所述群成员数目生成验证密钥;运行采样算法生成全部群成员的私钥,并将私钥分配给群成员;生成管理员的密钥对,其中,所述密钥对包括所述管理员的公钥和私钥;根据所述验证密钥、所述群成员的私钥及所述管理员的密钥对生成群公钥。

可选地,在运行群签名生成算法时,利用群公钥中的加密公钥对群成员的身份公钥加密,得到加密身份公钥;利用无陷门签名方案对选取的两个元素和所述加密身份公钥进行两次签名,得到签名结果。

可选地,在运行群签名验证算法时,使用无陷门签名验证方案对签名结果进行验证。

可选地,在运行群成员身份打开算法时,对加密结果进行距离计算,根据设定的距离范围,逐一恢复加密结果中的比特,得到解密结果;采用无陷门签名验证方案对所述解密结果进行验证。

可选地,在采用无陷门签名验证方案对解密结果进行验证之后,通过验证结果追溯进行签名的实际群成员。

根据本申请实施例的另一方面,还提供了一种恒长的格基群签名装置,包括:请求单元,用于接收签名请求,所述签名请求用于请求进行恒长格基群签名;签名单元,用于响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名。

可选地,签名单元还用于在通过采用无陷门签名技术实现恒长格基群签名时,通过运行群密钥生成算法、群签名生成算法、群签名验证算法以及群成员身份打开算法实现恒长格基群签名。

可选地,签名单元还用于在运行群密钥生成算法时,获取安全参数和群成员数目;运行陷门生成算法,根据所述安全参数和所述群成员数目生成验证密钥;运行采样算法生成全部群成员的私钥,并将私钥分配给群成员;生成管理员的密钥对,其中,所述密钥对包括所述管理员的公钥和私钥;根据所述验证密钥、所述群成员的私钥及所述管理员的密钥对生成群公钥。

可选地,签名单元还用于在运行群签名生成算法时,利用群公钥中的加密公钥对群成员的身份公钥加密,得到加密身份公钥;利用无陷门签名方案对选取的两个元素和所述加密身份公钥进行两次签名,得到签名结果。

可选地,签名单元还用于在运行群签名验证算法时,使用无陷门签名验证方案对签名结果进行验证。

可选地,签名单元还用于在运行群成员身份打开算法时,对加密结果进行距离计算,根据设定的距离范围,逐一恢复加密结果中的比特,得到解密结果;采用无陷门签名验证方案对所述解密结果进行验证。

可选地,签名单元还用于在采用无陷门签名验证方案对解密结果进行验证之后,通过验证结果追溯进行签名的实际群成员。

根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本申请实施例中,接收签名请求,所述签名请求用于请求进行恒长格基群签名;响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名,本方案可完全消除群成员数目对签名长度的影响,实现了签名长度的恒定大小,同时也大幅度简短了公私钥长度和签名长度,可以解决相关技术中群签名长度较长的技术问题,提高了签名和验证效率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种可选的恒长的格基群签名方法的流程图;

图2是根据本申请实施例的一种可选的恒长的格基群签名方案的示意图;

图3是根据本申请实施例的一种可选的恒长的格基群签名方案的示意图;

图4是根据本申请实施例的一种可选的恒长的格基群签名方案的示意图;

图5是根据本申请实施例的一种可选的恒长的格基群签名方案的示意图;

图6是根据本申请实施例的一种可选的恒长的格基群签名方案的示意图;

图7是根据本申请实施例的一种可选的恒长的格基群签名装置的示意图;

以及

图8是根据本申请实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

格基群签名(基于格的群签名)是目前比较活跃的密码基本元。在格基群签名中,每一个群成员可以用整个群的名义进行匿名签名,而且每一个合法的群签名都可以追溯其真实的签名者。不幸的是,群签名的长度总是与群成员数目以及安全参数紧紧相关,为了克服以上问题,根据本申请实施例的一方面,提供了一种恒长的格基群签名方法的实施例。

本方案基于lyubashevsky签名(在2012年提出的首个不带陷门的格基签名方案,之后一系列人对其进行优化,形成了一个体系,这里简称为lyubashevsky签名)通过构建加密混合签名的新模式设计了新格基群签名,新设计方案使得签名长度与群成员数目无关,而且还大幅度的简短了公私钥长度和签名长度,提高了签名以及验证效率。

图1是根据本申请实施例的一种可选的恒长的格基群签名方法的流程图,如图1所示,该方法可以包括以下步骤:

步骤s1,接收签名请求,所述签名请求用于请求进行恒长格基群签名。

步骤s2,响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名。

可选地,在通过采用无陷门签名技术实现恒长格基群签名时,通过运行群密钥生成算法、群签名生成算法、群签名验证算法以及群成员身份打开算法实现恒长格基群签名。

可选地,在运行群密钥生成算法时,获取安全参数和群成员数目;运行陷门生成算法,根据所述安全参数和所述群成员数目生成验证密钥;运行采样算法生成全部群成员的私钥,并将私钥分配给群成员;生成管理员的密钥对,其中,所述密钥对包括所述管理员的公钥和私钥;根据所述验证密钥、所述群成员的私钥及所述管理员的密钥对生成群公钥。

可选地,在运行群签名生成算法时,利用群公钥中的加密公钥对群成员的身份公钥加密,得到加密身份公钥;利用无陷门签名方案对选取的两个元素和所述加密身份公钥进行两次签名,得到签名结果。

可选地,在运行群签名验证算法时,使用无陷门签名验证方案对签名结果进行验证。

可选地,在运行群成员身份打开算法时,对加密结果进行距离计算,根据设定的距离范围,逐一恢复加密结果中的比特,得到解密结果;采用无陷门签名验证方案对所述解密结果进行验证。

可选地,在采用无陷门签名验证方案对解密结果进行验证之后,通过验证结果追溯进行签名的实际群成员。

通过上述步骤,接收签名请求,所述签名请求用于请求进行恒长格基群签名;响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名,本方案可完全消除群成员数目对签名长度的影响,实现了签名长度的恒定大小,同时也大幅度简短了公私钥长度和签名长度,可以解决相关技术中群签名长度较长的技术问题,提高了签名和验证效率。

本方案首次提出基于lyubashevsky签名的群签名,使得整个签名和验证过程简化快速且签名长度简短;首次通过改进了陷门生成算法来大幅度简短了公私钥长度;首次通过构造了加密混合签名的新模式生成了恒长群签名,消除了群成员数目与签名长度的相关性;首次在解密基础上加入签名验证实现追溯真实签名者的双重保障,目前第二个恒长的格基群签名方法,比起第一个ling方案,即基于ducas-micciancio签名(带陷门)的零知识的恒长格基群签名方案,在密钥长度和签名长度上有明显的优势。作为一种可选的实施例,如图2所示,下文结合具体的实施方式进一步详述本申请的技术方案。

本方案通过四个算法来实现新的恒长格基群签名,它们分别是群密钥生成算法、群签名生成算法、群签名验证算法和群成员身份打开算法。

在介绍群密钥生成算法之前,先给出陷门生成算法(生成短基的方法,陷门即可能成为攻击的薄弱点,这里就是短的向量基)在rq(整数多项式环模分园多项式生成的子环的商环模q)上的变体:将zq上n*m维矩阵通过转置分块,然后左乘(1,x,…,xn-1)转化为rq上一个元素。

在如图3所示的群密钥生成算法(输入安全参数和成员数目,输出群成员的私钥,管理者的主私钥以及群公钥)中,假设λ是安全参数、n是群成员数目。管理者先运行陷门生成算法变体生成群公钥主要部分之一的用于lyubashevsky签名的验证密钥(a,b,μ),再运行陷门生成后的采样算法生成群成员的全部私钥gsk[i]并将其分配给群成员。之后管理者采用rlwe假设(格上的一个困难问题,至目前,基于rlwe假设的格基密码方案性能最好)生成用于lpr加密方案(在2010年提出的基于格的ind-cca的加密方案,其中ind-cca是不可区分的可抵抗密文攻击的安全性)的公私钥((a,b),s),其中私钥成为管理者的主私钥用于打开签名者身份。在考虑群成员自身公钥的情形下,群公钥管理者主私钥gmsk=s,群成员私钥其中gsk[i]=(xi1,xi2)。

在如图4所示的群签名生成算法(输入被签名信息、签名成员私钥,群公钥,输出群签名)中,为了给信息μ进行签名,群成员π利用群公钥中的lpr加密公钥首先对群成员身份公钥gπ的二进制表示g'π进行加密。然后从rq上的均匀分布[-b,b]m中随机选取两个元素,随后两次采用lyubashevsky签名模式进行签名。不同于lyubashevsky签名输出哈希值,这里的哈希值结合之前加密的结果:对其中一个哈希值(这个哈希值可以直接用群成员公钥进行直接验证)的二进制进行再次加密,然后将加密结果与另一个哈希值再次进行哈希,最终的哈希结果用于lyubashevsky签名的最后拒绝采样(从任意概率分布出发生成期望概率分布的一种常用方法)并输出本次lyubashevsky签名的部分结果。最终输出签名包含所有加密结果以及第二个哈希值以及lyubashevsky签名的部分结果。

在如图5所示的群签名验证算法(输入被签名信息、签名和群公钥,输出接受或者拒绝,结果可判断签名是否对应于被签名信息和群公钥)中,基本沿用lyubashevsky签名验证算法:先计算公用哈希值然后判断哈希值是否符合输入结果,最后验证拒绝采样范围。

在如图6所示的群成员身份打开算法(输入被签名信息、签名、群公钥和管理者主私钥,输出群成员身份。结果可判断被签名信息和签名是否是由输出群成员生成的)中,管理者首先对加密结果进行解密:首先进行距离计算,根据设定的距离范围,逐一恢复加密信息的比特,然后再转化为通用形式。然后在对解密结果进行一个lyubashevsky签名的验证过程。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

根据本申请实施例的另一个方面,还提供了一种用于实施上述恒长的格基群签名方法的恒长的格基群签名装置。图7是根据本申请实施例的一种可选的恒长的格基群签名装置的示意图,如图7所示,该装置可以包括:

请求单元71,用于接收签名请求,所述签名请求用于请求进行恒长格基群签名;签名单元73,用于响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名。

需要说明的是,该实施例中的请求单元71可以用于执行本申请实施例中的步骤s1,该实施例中的签名单元73可以用于执行本申请实施例中的步骤s2。

通过上述模块,接收签名请求,所述签名请求用于请求进行恒长格基群签名;响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名,本方案可完全消除群成员数目对签名长度的影响,实现了签名长度的恒定大小,同时也大幅度简短了公私钥长度和签名长度,可以解决相关技术中群签名长度较长的技术问题,提高了签名和验证效率。

可选地,签名单元还用于在通过采用无陷门签名技术实现恒长格基群签名时,通过运行群密钥生成算法、群签名生成算法、群签名验证算法以及群成员身份打开算法实现恒长格基群签名。

可选地,签名单元还用于在运行群密钥生成算法时,获取安全参数和群成员数目;运行陷门生成算法,根据所述安全参数和所述群成员数目生成验证密钥;运行采样算法生成全部群成员的私钥,并将私钥分配给群成员;生成管理员的密钥对,其中,所述密钥对包括所述管理员的公钥和私钥;根据所述验证密钥、所述群成员的私钥及所述管理员的密钥对生成群公钥。

可选地,签名单元还用于在运行群签名生成算法时,利用群公钥中的加密公钥对群成员的身份公钥加密,得到加密身份公钥;利用无陷门签名方案对选取的两个元素和所述加密身份公钥进行两次签名,得到签名结果。

可选地,签名单元还用于在运行群签名验证算法时,使用无陷门签名验证方案对签名结果进行验证。

可选地,签名单元还用于在运行群成员身份打开算法时,对加密结果进行距离计算,根据设定的距离范围,逐一恢复加密结果中的比特,得到解密结果;采用无陷门签名验证方案对所述解密结果进行验证。

可选地,签名单元还用于在采用无陷门签名验证方案对解密结果进行验证之后,通过验证结果追溯进行签名的实际群成员。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在相应的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本申请实施例的另一个方面,还提供了一种用于实施上述恒长的格基群签名方法的服务器或终端。

图8是根据本申请实施例的一种终端的结构框图,如图8所示,该终端可以包括:一个或多个(仅示出一个)处理器201、存储器203、以及传输装置205,如图8所示,该终端还可以包括输入输出设备207。

其中,存储器203可用于存储软件程序以及模块,如本申请实施例中的恒长的格基群签名方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的恒长的格基群签名方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器203用于存储应用程序。

处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:

接收签名请求,所述签名请求用于请求进行恒长格基群签名;响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名。

处理器201还用于执行下述步骤:

在运行群密钥生成算法时,获取安全参数和群成员数目;运行陷门生成算法,根据所述安全参数和所述群成员数目生成验证密钥;运行采样算法生成全部群成员的私钥,并将私钥分配给群成员;生成管理员的密钥对,其中,所述密钥对包括所述管理员的公钥和私钥;根据所述验证密钥、所述群成员的私钥及所述管理员的密钥对生成群公钥。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图8所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图8其并不对上述电子装置的结构造成限定。例如,终端还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行恒长的格基群签名方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

接收签名请求,所述签名请求用于请求进行恒长格基群签名;响应于所述签名请求,通过采用无陷门签名技术实现恒长格基群签名。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

在运行群密钥生成算法时,获取安全参数和群成员数目;运行陷门生成算法,根据所述安全参数和所述群成员数目生成验证密钥;运行采样算法生成全部群成员的私钥,并将私钥分配给群成员;生成管理员的密钥对,其中,所述密钥对包括所述管理员的公钥和私钥;根据所述验证密钥、所述群成员的私钥及所述管理员的密钥对生成群公钥。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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