本申请涉及信息,尤其涉及一种门限环签名生成方法及装置。
背景技术:
1、环签名是一种可以隐藏签名者身份的密码技术。生成签名后,验证者只知道签名来自这个环,但不知道谁是真正的签名者,因此,环签名被广泛应用于对身份隐私有需求的隐私保护场景,例如电子投票和隐私保护加密货币等场景。但是,目前基于商密二号算法(sm2)和商密九号算法(sm9)的环签名方式仅能由单个环成员生成代表整个环的签名,不具备门限密码的特点,即不能多方联合生成一个环签名,不适用于分布式密码应用场景。
技术实现思路
1、本申请实施例提供了一种门限环签名生成方法及装置,能够适用于分布式密码应用场景。
2、第一方面,提供一种门限环签名生成方法,该方法包括:获取n个环成员中的t个签名环成员中每个签名环成员分别对应的随机数,以及获取所述n个环成员中的n-t个非签名环成员中每个非签名环成员分别对应的第一挑战;其中,1<t<n,所述每个非签名环成员对应的第一挑战为所述t个签名环成员中至少一个签名环成员随机选择的;基于待签名信息、所述每个签名环成员对应的随机数和所述每个非签名环成员分别对应的第一挑战获得第一向量,所述第一向量中包括t个元素;基于所述第一向量确定所述每个签名环成员分别对应的第一挑战;利用所述每个签名环成员分别对应的响应和所述n个环成员分别对应的第一挑战,生成门限环签名,第一签名环成员对应的响应为所述第一签名环成员基于所述第一签名环成员对应的所述第一挑战、私钥和所述随机数确定的,所述第一签名环成员为所述每个签名环成员中的任意一个环成员。
3、在本申请实施例中,可以通过待签名信息、每个签名环成员分别对应的随机数和每个非签名环成员分别对应的挑战得到的第一向量,确定t个签名环成员对应的第一挑战,进而可以基于签名环成员对应的第一挑战获得每个签名环成员对应的响应,基于每个签名环成员对应的响应和n个环成员分别对应的挑战可以生成门限环签名。可见,本申请实施例可以允许多个环成员共同发起代表整个环的签名,实现多方联合签名的效果,且可以使得环签名具备门限密码学的特性,能够适用于分布式密码应用场景。
4、在一种可能的实施方式中,基于所述第一向量确定所述每个签名环成员分别对应的第一挑战,符合如下公式:
5、
6、其中,t为签名环成员的数量,n为环成员的数量,h1,h2,…,ht为第一向量中的元素,cn为第n个环成员对应的挑战。上述技术方案中,通过上述方式构建的方程组可以使得未知数存在解,从而能够计算出每个签名环成员分别对应的第一挑战。
7、在一种可能的实施方式中,基于待签名信息、所述每个签名环成员对应的随机数和所述每个非签名环成员分别对应的第一挑战获得第一向量,包括:基于所述每个签名环成员分别对应随机数、所述每个非签名环成员分别对应的公钥和第一挑战获得第一承诺,所述每个非签名环成员分别对应的公钥属于公钥集合,所述公钥集合为所述n个环成员分别对应的公钥形成的集合;对待签名信息、所述第一承诺、所述公钥集合和t进行哈希运算,得到所述第一向量。
8、上述技术方案中,通过签名环成员分别对应的随机数、非签名环成员对应的公钥和第一挑战可以形成承诺环r(第一承诺),以及通过对承诺环r进行哈希运算可以得到t个挑战环c,得到构成第一向量的t个元素,使得可以基于这t个元素计算缺少的t个第一挑战。
9、在一种可能的实施方式中,利用所述每个签名环成员分别对应的响应和所述n个环成员分别对应的第一挑战,生成门限环签名,包括:对所述t个签名环成员分别对应的响应进行合并;利用合并后的响应和所述n个环成员分别对应的第一挑战,生成所述门限环签名。
10、上述技术方案中,将t个响应进行合并可以减小门限环签名的大小,从而减小门限环签名的传输开销。
11、在一种可能的实施方式中,利用所述每个签名环成员分别对应的响应和所述n个环成员分别对应的第一挑战,生成门限环签名之前,还包括:向所述每个签名环成员发送第一请求,所述第一请求用于请求获取响应,向所述第一签名环成员发送的第一请求中包括所述第一签名环成员对应的第一挑战;接收来自所述每个签名环成员的响应。
12、上述技术方案中,由于每个环成员的私钥是不公开的,而生成的门限环签名需要利用到签名环成员的私钥,因此可以将计算得到的第一挑战发送给对应的签名环成员,以获取用于生成门限环签名的响应。
13、在一种可能的实施方式中,所述方法还包括:利用零知识证明算法对所述n个环成员分别对应的第一挑战进行压缩;利用所述每个签名环成员分别对应的响应和所述n个环成员分别对应的第一挑战,生成门限环签名,包括:利用所述每个签名环成员分别对应的响应和压缩后的第一挑战,生成门限环签名。
14、上述技术方案中,利用零知识证明算法对n个第一挑战进行压缩,使得签名过程中不需要累加器的介入,有助于提升门限环签名的安全性。以及利用零知识证明算法对n个第一挑战进行压缩可以减小门限环签名的大小,从而减小门限环签名的传输开销。
15、第二方面,提供一种门限环签名生成装置,该门限环签名生成装置用于实现上述第一方面或第一方面中的任意一种方法,该门限环签名生成装置包括相应的功能模块,分别用于实现以上方法中的步骤。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
16、第三方面,本申请实施例提供一种计算设备集群,该计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器;
17、所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如第一方面中任一种可能的方法。
18、第四方面,本申请实施例提供一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如第一方面中任一种可能的方法。
19、第五方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,使得所述计算设备集群执行如第一方面中任一种可能的方法。
20、第六方面,提供一种电子设备,所述电子设备包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器存储有一个或多个计算机指令,当所述一个或多个计算机指令被所述一个或多个处理器执行时,使得所述电子设备执行如上述第一方面中任一项所述的方法。
21、第七方面,本申请提供一种芯片,所述芯片包括处理器,所述处理器与存储器耦合,用于读取并执行所述存储器中存储的软件程序,以实现上述第一方面中任一项所述的方法。
22、以上第二方面到第七方面的有益效果,请参见第一方面的有益效果,不重复赘述。
1.一种门限环签名生成方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,基于所述第一向量确定所述每个签名环成员分别对应的第一挑战,符合如下公式:
3.如权利要求1所述的方法,其特征在于,基于待签名信息、所述每个签名环成员对应的随机数和所述每个非签名环成员分别对应的第一挑战获得第一向量,包括:
4.如权利要求1所述的方法,其特征在于,利用所述每个签名环成员分别对应的响应和所述n个环成员分别对应的第一挑战,生成门限环签名,包括:
5.如权利要求1~4任一项所述的方法,其特征在于,利用所述每个签名环成员分别对应的响应和所述n个环成员分别对应的第一挑战,生成门限环签名之前,还包括:
6.如权利要求1~4任一项所述的方法,其特征在于,所述方法还包括:
7.一种门限环签名生成装置,其特征在于,所述装置包括:
8.如权利要求7所述的装置,其特征在于,所述处理模块基于所述第一向量确定所述每个签名环成员分别对应的第一挑战,符合如下公式:
9.如权利要求7所述的装置,其特征在于,所述处理模块基于待签名信息、所述每个签名环成员对应的随机数和所述每个非签名环成员分别对应的第一挑战获得第一向量时,具体用于:
10.如权利要求7所述的装置,其特征在于,所述处理模块利用所述每个签名环成员分别对应的响应和所述n个环成员分别对应的第一挑战,生成门限环签名时,具体用于:
11.如权利要求7~10任一项所述的装置,其特征在于,所述处理模块生成门限环签名之前,还用于:
12.如权利要求7~10任一项所述的装置,其特征在于,所述处理模块还用于:
13.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
14.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1~6任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1~6任一项所述的方法。