本技术涉及大数据,特别涉及一种可验证随机数的生成方法和相关装置。
背景技术:
1、在相关技术中,采用可验证随机函数(verifiable randomfunction,vrf)进行隐私和数据的保护,以提高隐私和数据的安全性。vrf涉及到可验证随机数的生成方,以及生成可验证随机数所需的目标参数和随机数证明的提供方。
2、可以看出可验证随机数的生成主要依赖生成方,该可验证随机数的安全性依赖于生成方,且并不支持对生成方的身份进行认证,存在潜在的安全风险。
3、因此,目前亟需一种提高数据安全性的可验证随机数的生成方法。
技术实现思路
1、有鉴于此,本技术实施例提供了一种可验证随机数的生成方法和相关装置,旨在提高生成的可验证随机数的可信度,进而提高数据的安全性。
2、第一方面,本技术实施例提供了一种可验证随机数的生成方法,应用于客户端,所述方法包括:
3、获取输入消息、所述客户端的私钥和服务器的私钥,所述服务器与所述客户端基于可验证随机函数vrf共同生成可验证随机数;
4、接收由所述服务器发送的承诺值,所述承诺值是基于所述输入消息和第一随机数确定的;
5、基于所述输入消息计算第一中间值和第二中间值并发送给所述服务器;
6、接收由所述服务器发送的第一目标参数,所述第一目标参数是基于所述第一中间值、所述第二中间值、所述第一随机数和所述服务器的私钥确定的;
7、计算所述服务器发送的承诺值的验证值,当所述验证值与所述承诺值一致时,确定第二目标参数,所述第二目标参数是基于所述第一目标参数、所述第一中间值、所述第二中间值、所述客户端的私钥和所述服务器的私钥确定的;
8、基于所述第二目标参数得到所述可验证随机数和随机数证明。
9、可选的,所述基于所述输入消息计算第一中间值和第二中间值并发送给所述服务器,包括:
10、将所述输入消息映射为阿贝尔群中的目标元素;
11、确定第二随机数;
12、基于所述第二随机数计算第一中间值和第二中间值;
13、将所述第一中间值和所述第二中间值发送至所述服务器。
14、可选的,所述第一目标参数包括第三中间值和第四中间值,所述计算所述服务器发送的承诺值的验证值,包括:
15、基于所述目标元素、所述第三中间值和所述第四中间值,计算所述服务器发送的承诺值的验证值。
16、可选的,所述第二目标参数包括挑战过程参数、挑战参数、应答过程参数和应答参数;所述确定第二目标参数,包括:
17、基于所述第一中间值、所述第二中间值、第三中间值和第四中间值计算得到第一挑战过程参数和第二挑战过程参数,所述第三中间值和所述第四中间值由所述服务器计算得到;
18、基于所述第一挑战过程参数、第二挑战过程参数以及第一密码杂凑函数计算得到所述挑战参数,所述第一密码杂凑函数用于将所述输入消息映射到整数集合中;
19、基于所述挑战参数、所述客户端的私钥和所述第二随机数计算得到所述应答过程参数;
20、基于所述应答过程参数和所述服务器的应答过程参数计算得到所述应答参数。
21、可选的,所述基于所述第二目标参数得到所述可验证随机数和随机数证明,包括:
22、基于所述客户端的私钥、所述服务器的随机数过程参数以及所述目标元素,得到所述可验证随机数;
23、基于所述挑战参数以及所述应答参数得到所述随机数证明。
24、可选的,其特征在于,在所述获取输入消息、客户端的私钥和所述服务器的私钥之前,所述方法还包括:
25、确定初始化参数;
26、基于所述初始化参数确定所述客户端的第一私钥、第一公钥和所述第一公钥的散列值,服务器的第二私钥和第二公钥;
27、由所述服务器验证所述第一公钥的完整性,并计算所述第一公钥的验证值;
28、判断所述验证值与所述散列值是否一致,当所述验证值与所述散列值一致,所述服务器和所述客户端分别计算共同公钥。
29、可选的,其特征在于,所述方法还包括:
30、获取所述输入消息、所述可验证随机数和所述随机数证明;
31、将所述输入信息映射为阿贝尔群中的元素;
32、基于所述元素、所述可验证随机数、所述随机数证明和所述共同公钥,计算得到第一验证过程参数和第二验证过程参数;
33、根据所述第一验证过程参数和所述第二验证过程参数,计算得到验证值;
34、判断所述验证值与所述随机数证明是否一致,当所述验证值与所述随机数证明一致,确定可验证随机数验证通过。
35、第二方面,本技术实施例还提供了一种可验证随机数的生成方法,应用于服务器,所述方法包括:
36、获取输入消息、客户端的私钥和所述服务器的私钥,所述服务器与所述客户端基于可验证随机函数vrf共同生成可验证随机数;
37、基于所述输入消息和第一随机数计算承诺值,并将所述承诺值发送至所述客户端;
38、接收第一中间值和第二中间值,所述第一中间值和所述第二中间值由所述客户端基于所述输入消息计算得到;
39、基于所述第一中间值、所述第二中间值、所述第一随机数和所述服务器的私钥,计算第一目标参数并发送至所述客户端;
40、由所述客户端基于所述第一目标参数,得到所述可验证随机数和随机数证明。
41、可选的,所述基于所述输入消息和第一随机数计算承诺值,包括:
42、将所述输入消息映射为阿贝尔群中的目标元素;
43、确定所述第一随机数;
44、基于所述第一随机数计算第三中间值和第四中间值;
45、根据所述目标元素、所述第三中间值和所述第四中间值计算得到所述承诺值。
46、可选的,所述第一目标参数包括挑战过程参数、挑战参数、应答过程参数和过程参数;所述基于所述第一中间值、所述第二中间值、所述第一随机数和所述服务器的私钥,计算第一目标参数并发送至所述客户端,包括:
47、基于所述第一中间值、所述第二中间值、第三中间值和第四中间值计算得到第一挑战过程参数和第二挑战过程参数,所述第三中间值和所述第四中间值由所述服务器计算得到;
48、基于所述第一挑战过程参数、所述第二挑战过程参数以及第一密码杂凑函数计算得到所述挑战参数,所述第一密码杂凑函数用于将所述输入消息映射到整数集合中;
49、基于所述第一随机数、所述服务器的私钥和所述挑战参数计算得到所述应答过程参数;
50、基于所述服务器的私钥和所述目标元素计算得到过程参数;
51、将所述挑战过程参数、所述挑战参数、所述应答过程参数和所述过程参数发送至所述客户端。
52、可选的,其特征在于,在所述获取输入消息、客户端的私钥和所述服务器的私钥之前,所述方法还包括:
53、确定初始化参数;
54、基于所述初始化参数确定所述客户端的第一私钥、第一公钥和所述第一公钥的散列值,服务器的第二私钥和第二公钥;
55、由所述服务器验证所述第一公钥的完整性,并计算所述第一公钥的验证值;
56、判断所述验证值与所述散列值是否一致,当所述验证值与所述散列值一致,所述服务器和所述客户端分别计算共同公钥。
57、可选的,其特征在于,所述方法还包括:
58、获取所述输入消息、所述可验证随机数和所述随机数证明;
59、将所述输入信息映射为阿贝尔群中的元素;
60、基于所述元素、所述可验证随机数、所述随机数证明和所述共同公钥,计算得到第一验证过程参数和第二验证过程参数;
61、根据所述第一验证过程参数和所述第二验证过程参数,计算得到验证值;
62、判断所述验证值与所述随机数证明是否一致,当所述验证值与所述随机数证明一致,确定可验证随机数验证通过。
63、第三方面,本技术实施例提供了一种可验证随机数的生成装置,所述装置应用于客户端,所述装置包括:获取模块、第一接收模块、发送模块、第二接收模块、确定模块及结果得到模块;
64、所述获取模块,用于获取输入消息、所述客户端的私钥和服务器的私钥,所述服务器与所述客户端基于可验证随机函数vrf共同生成可验证随机数;
65、所述第一接收模块,用于接收由所述服务器发送的承诺值,所述承诺值是基于所述输入消息和第一随机数确定的;
66、所述发送模块,用于基于所述输入消息计算第一中间值和第二中间值并发送给所述服务器;
67、所述第二接收模块,用于接收由所述服务器发送的第一目标参数,所述第一目标参数是基于所述第一中间值、所述第二中间值、所述第一随机数和所述服务器的私钥确定的;
68、所述确定模块,用于计算所述服务器发送的承诺值的验证值,当所述验证值与所述承诺值一致时,确定第二目标参数,所述第二目标参数是基于所述第一目标参数、所述第一中间值、所述第二中间值、所述客户端的私钥和所述服务器的私钥确定的;
69、所述结果得到模块,用于基于所述第二目标参数得到所述可验证随机数和随机数证明。
70、第四方面,本技术实施例提供了又一种可验证随机数的生成装置,所述装置应用于服务器,所述装置包括:获取模块、发送模块、接收模块、计算模块及结果得到模块;
71、所述获取模块,用于获取输入消息、客户端的私钥和所述服务器的私钥,所述服务器与所述客户端基于可验证随机函数vrf共同生成可验证随机数;
72、所述发送模块,用于基于所述输入消息和第一随机数计算承诺值,并将所述承诺值发送至所述客户端;
73、所述接收模块,用于接收第一中间值和第二中间值,所述第一中间值和所述第二中间值由所述客户端基于所述输入消息计算得到;
74、所述计算模块,用于基于所述第一中间值、所述第二中间值、所述第一随机数和所述服务器的私钥,计算第一目标参数并发送至所述客户端;
75、所述结果得到模块,用于由所述客户端基于所述第一目标参数,得到所述可验证随机数和随机数证明。
76、第五方面,本技术实施例提供了一种可验证随机数的生成系统,所述系统包括:服务器和客户端;
77、所述服务器用于执行以上方面相关的方法;
78、所述客户端用于执行以上方面相关的方法。
79、第六方面,本技术提供了一种电子设备,所述设备包括:处理器、存储器、系统总线;
80、所述处理器以及所述存储器通过所述系统总线相连;
81、所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行实现第一方面或第二方面所述方法。
82、第七方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现前述第一方面或第二方面任一项所述方法。
83、本技术提供了一种可验证随机数的生成方法和相关装置,在执行所述方法时,首先获取输入消息、客户端的私钥和服务器的私钥,服务器与客户端基于可验证随机函数(vrf)共同生成可验证随机数,接收由服务器发送的承诺值,承诺值是基于输入消息和第一随机数确定的。然后基于输入消息计算第一中间值和第二中间值并发送给服务器,接收由服务器发送的第一目标参数,第一目标参数是基于第一中间值、第二中间值、第一随机数和服务器的私钥确定的。计算服务器发送的承诺值的验证值,当验证值与承诺值一致时,确定第二目标参数,第二目标参数是基于第一目标参数、第一中间值、第二中间值、客户端的私钥和服务器的私钥确定的,基于第二目标参数得到可验证随机数和随机数证明。如此,能够实现客户端和服务器基于同一输入消息合作生成可验证随机数,即客户端和服务器共同作为可验证随机数的生成参与方,且生成的可验证随机数与输入消息的关联性是可验证的。同时可验证随机数是基于第二目标参数生成的,该第二目标参数由客户端的私钥和服务器的私钥共同确定,即可验证随机数的安全性由客户端的私钥和服务器的私钥共同保证,可以实现对密钥的分散存储,提高客户端的私钥和服务器的私钥的安全性,提高攻击门槛在一定程度上降低被攻击的可能。此外,服务器和客户端共同生成可验证随机数的方式,使得服务器能够对客户端进行身份验证,在一定程度上降低客户端的安全风险,有利于提高生成的可验证随机数的可信度,进而提高数据的安全性。
1.一种可验证随机数的生成方法,其特征在于,应用于客户端,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述输入消息计算第一中间值和第二中间值并发送给所述服务器,包括:
3.根据权利要求2所述的方法,其特征在于,所述第一目标参数包括第三中间值和第四中间值,所述计算所述服务器发送的承诺值的验证值,包括:
4.根据权利要求2所述的方法,其特征在于,所述第二目标参数包括挑战过程参数、挑战参数、应答过程参数和应答参数;所述确定第二目标参数,包括:
5.根据权利要求4所述的方法,其特征在于,所述基于所述第二目标参数得到所述可验证随机数和随机数证明,包括:
6.一种可验证随机数的生成方法,其特征在于,应用于服务器,所述方法包括:
7.根据权利要求6所述的方法,其特征在于,所述基于所述输入消息和第一随机数计算承诺值,包括:
8.根据权利要求7所述的方法,其特征在于,所述第一目标参数包括挑战过程参数、挑战参数、应答过程参数和过程参数;所述基于所述第一中间值、所述第二中间值、所述第一随机数和所述服务器的私钥,计算第一目标参数并发送至所述客户端,包括:
9.根据权利要求1~8中任意一项所述的方法,其特征在于,在所述获取输入消息、客户端的私钥和所述服务器的私钥之前,所述方法还包括:
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
11.一种可验证随机数的生成装置,其特征在于,所述装置应用于客户端,所述装置包括:获取模块、第一接收模块、发送模块、第二接收模块、确定模块及结果得到模块;
12.一种可验证随机数的生成装置,其特征在于,所述装置应用于服务器,所述装置包括:获取模块、发送模块、接收模块、计算模块及结果得到模块;
13.一种可验证随机数的生成系统,其特征在于,所述系统包括服务器和客户端;
14.一种电子设备,其特征在于,所述设备包括:处理器、存储器、系统总线;
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现可验证随机数的生成方法的实现程序,所述实现可验证随机数的生成方法的实现程序被处理器执行时实现如权利要求1-10任意一项所述方法的步骤。