一种基于SM2的可验证随机函数构造方法和装置制造方法及图纸

技术编号:39008805 阅读:36 留言:0更新日期:2023-10-07 10:40
本发明专利技术提出一种基于SM2的可验证随机函数构造方法和装置,属于计算机技术与信息安全技术领域,旨在基于SM2椭圆曲线公钥密码算法,增强可验证随机函数的安全性,解决现有可验证随机函数难以保证节点使用恶意创建的密钥对时,所生成的函数值仍满足不可预测性。该方法包括初始化、密钥创建、求值、验证四个步骤,构造方法为非交互式,即函数值的生成无需其他节点的参与,适合在节点可能离线的分布式环境下使用。该方法满足恶意密钥创建下的不可预测性,适用于分布式环境下有强安全需求的应用场景,如隐私保护的随机选举、投票系统、抗适应性腐化的区块链共识、密码学货币等。密码学货币等。密码学货币等。

【技术实现步骤摘要】
一种基于SM2的可验证随机函数构造方法和装置


[0001]本专利技术属于计算机技术与信息安全
,旨在基于SM2椭圆曲线公钥密码算法,增强可验证随机函数的安全性,保证可验证随机函数的密钥对自行生成时,函数输出的不可预测性。具体表现为一种基于SM2的可验证随机函数构造方法和装置。

技术介绍

[0002]可验证随机数函数(Verifiable Random Function,VRF)是一种公钥密码算法,它可以生成一个随机的、固定长度的函数值,同时生成一个可验证的证据。该证据可以用来证明该函数值是由特定的私钥和输入所生成的,任何节点都可以利用该证据验证输出的函数值的合法性。VRF在密码学货币、随机选举、身份验证、分布式系统等很多方面具有广泛的应用。特别的,VRF是用于实现隐私保护的选举机制的一项重要技术,在基于委员会的区块链共识等分布式系统中,VRF可用于节点本地判断选举结果,实现选举结果发布前的机密性、选举结果发布后的公开可验证性,以增强系统对适应性腐化攻击的抵御能力,提升系统的健壮性。
[0003]在分布式系统中,难以存在可信的第三方为每个节点正确的生成合法的密钥对,一种更贴合分布式特点的方法是令节点独立创建自己的密钥对。然而,现有大多数VRF构造无法保证节点使用恶意创建的密钥对作为输入时,输出的函数值仍满足不可预测性,即节点可以提前预知函数值,无法保证该值发布前的机密性,因此不适用于分布式系统中来构造安全选举等机制。SM2椭圆曲线公钥密码算法是国家密码管理局发布的国家标准密码算法,其安全性基于求解有限域上椭圆曲线离散对数问题的困难性,在包括金融领域在内的商用密码体系中发挥着重要的作用。本专利技术给出一种基于SM2构造可验证随机数函数的方法,并能够在恶意创建的密钥对场景下满足输出的函数值具备不可预测性。

技术实现思路

[0004]本专利技术的目的在于提出一种基于SM2的可验证随机函数构造方法,实现在使用恶意创建密钥对时输出的函数值的不可预测性。
[0005]为实现上述目的,本专利技术采用以下技术方案:
[0006]一种基于SM2的可验证随机函数构造方法,包括以下步骤:
[0007]初始化步骤:根据初始的安全参数l
VRF
,生成公开的系统参数pp;
[0008]密钥创建步骤:输入公开的系统参数pp,输出密钥对(d,P),其中d为私钥,P为公钥;
[0009]求值步骤:对于输入值m和私钥d,生成函数值y=H(m,[d]H'(m))和证据π,其中H为密码杂凑算法,H'为散列到椭圆曲线算法;
[0010]验证步骤:任意节点利用证据π'、输入值m'、以及对应的公钥P',验证函数值y'确由P'对应的私钥对输入值m'进行求值操作得到。
[0011]进一步地,所述系统参数pp表示为pp:=(G,n,H,H',H
v
),其中H'为散列到椭圆曲
线算法H':{0,1}
*

E(F
q
),将任意长度的字节串映射到椭圆曲线群E(F
q
)的元素;其他参数的生成与SM2椭圆曲线公钥密码算法GM/T 0003.1

2012国家标准第5章的规定保持一致,其中密码杂凑算法H
v
:{0,1}
*

{0,1}
v
,椭圆曲线群E(F
q
)的基点G=(x
G
,y
G
)∈E(F
q
),G≠O,G的阶为n,O为对应椭圆曲线的无穷远点。
[0012]进一步地,密钥创建步骤与GM/T 0003.1

2012国家标准第6章的规定保持一致。
[0013]进一步地,节点执行求值步骤后,当要验证输出的函数值时,节点将函数值y、证据π、与d对应的公钥P、输入值m公开或传递给验证者,验证者执行验证步骤来验证节点对输入值m下求值的合法性。
[0014]进一步地,验证步骤中的输入值m'、公钥P'、函数值y'、证据π',可以与输入值m、公钥P、函数值y、证据π相同或不同。当后者为诚实地执行求值函数所生成,且在传递给验证者过程中没有被篡改时,m'、P'、y'、π'与m、P、y、π相同;否则,m'、P'、y'、π'与m、P、y、π不同。
[0015]一种基于SM2的可验证随机函数构造装置,其为一种计算机设备(计算机、服务器、智能手机等),包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本专利技术方法中各步骤的指令。
[0016]和现有技术相比,本专利技术的主要优势体现在:
[0017]①
在考虑节点任意恶意的生成可验证随机函数的公私钥对时,即节点不遵循密钥创建子算法,利用该构造的求值子算法输出的函数值y仍满足不可预测性,即任何节点在没有执行求值子算法时,无法提前预知输出的函数值;本专利技术能够取得这样的效果,是因为函数值y由执行密码杂凑函数H而生成,由于密码杂凑函数可视作随机预言机,即函数值只有在调用函数后才固定,否则函数值可能会是任意的随机值,这使得执行H之前无法预测所生成的函数值y。此外,求值子算法输出的证据用于向验证者证明,生成函数值y的过程一定有公钥P所对应的私钥作为密码杂凑函数H的输入,以此保证了节点不遵循密钥创建子算法而恶意生成公私钥对时,求值子算法输出的函数值y仍满足不可预测性。
[0018]②
所提可验证随机函数的构造基于国家标准密码算法——SM2椭圆曲线公钥密码算法,除额外引入的散列到椭圆曲线算法外,其他参数和所有操作均可直接使用SM2算法支持的参数和操作,易于部署在支持SM2算法的密码产品和系统。
[0019]③
所提可验证随机函数为非交互式,函数值的生成无需节点间的交互,适合在节点可能离线的环境下使用,如分布式系统等。此外,可保证函数值发布前的机密性,适用于有强安全需求的应用场景,如隐私保护的选举机制、投票系统、抗适应性腐化的区块链共识、密码学货币等。本专利技术能够保证函数值发布前的机密性,是因为函数值由密码杂凑函数H通过输入私钥d计算得到。由于密码杂凑函数具有抗碰撞性质,即难以找到拥有相同函数输出值的两个不同的输入值,因此不持有私钥d的节点无法在函数值发布前计算得到此结果,因此保证了函数值发布前的机密性。
附图说明
[0020]图1是本专利技术的求值流程图;
[0021]图2是本专利技术的验证流程图。
具体实施方式
[0022]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例,对本专利技术做进一步说明。
[0023]本专利技术的一种基于SM2的可验证随机函数构造方法,其具体步骤描述如下:
[0024]1)初始化
[0025]输入安全参数l
VRF
并执行如下步骤:
[0026]1.1)选取有限域F
q
,其中q为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SM2的可验证随机函数构造方法,其特征在于,包括如下步骤:初始化步骤:根据初始的安全参数l
VRF
,生成公开的系统参数pp;密钥创建步骤:输入公开的系统参数pp,输出密钥对(d,P),其中d为私钥,P为公钥;求值步骤:对于输入值m和私钥d,生成函数值y=H(m,[d]H'(m))和证据π,其中H为密码杂凑算法,H'为散列到椭圆曲线算法;验证步骤:任意节点利用证据π'、输入值m'、以及对应的公钥P',验证函数值y'确由P'对应的私钥对输入值m'进行求值操作得到。2.如权利要求1所述的方法,其特征在于,所述系统参数pp表示为pp:=(G,n,H,H',H
v
),其中H'为散列到椭圆曲线算法H':{0,1}
*

E(F
q
),将任意长度的字节串映射到椭圆曲线群E(F
q
)的元素;其他参数的生成与SM2椭圆曲线公钥密码算法GM/T 0003.1

2012国家标准第5章的规定保持一致,其中密码杂凑算法H
v
:{0,1}
*

{0,1}
v
,椭圆曲线群E(F
q
)的基点G=(x
G
,y
G
)∈E(F
q
),G≠O,G的阶为n,O为对应椭圆曲线的无穷远点。3.如权利要求1所述的方法,其特征在于,所述密钥创建步骤与GM/T 0003.1

2012国家标准第6章的规定保持一致。4.如权利要求1所述的方法,其特征在于,所述求值步骤的操作如下:a)计算u=[d]H'(m);b)将u的数据类型转换成字节串,计算y=H(m,u);c)将P的数据类型转换成字节串,计算e=H
v
(m,P),并将e的数据类型转换成整数;d)选取随机整数k∈[1,n

1];e)计算椭圆曲线点(x1,y1)=[k]G,将x1的数据类型转换成整数;f)计算椭圆曲线点(x2,y2)=[k]H'(m),将x2的数据类型转换成整数;g)计算γ=(e+x1+x2)mod n,若γ=0或γ+k=n则返回步骤d);h)计算δ=((1+d)
‑1·
(k

γ
·
d))mod n,若δ=0则返回步骤d);i)将γ和δ的数据类型转换成字符串,输出函数值和证据对(y,π),其中π=(u,(γ,δ))。5.如权利要求1所述的方法,其特征在于,所述...

【专利技术属性】
技术研发人员:胡可欣张振峰
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

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

1