【技术实现步骤摘要】
一种基于SM2的可验证随机函数构造方法和装置
[0001]本专利技术属于计算机技术与信息安全
,旨在基于SM2椭圆曲线公钥密码算法,增强可验证随机函数的安全性,保证可验证随机函数的密钥对自行生成时,函数输出的不可预测性。具体表现为一种基于SM2的可验证随机函数构造方法和装置。
技术介绍
[0002]可验证随机数函数(Verifiable Random Function,VRF)是一种公钥密码算法,它可以生成一个随机的、固定长度的函数值,同时生成一个可验证的证据。该证据可以用来证明该函数值是由特定的私钥和输入所生成的,任何节点都可以利用该证据验证输出的函数值的合法性。VRF在密码学货币、随机选举、身份验证、分布式系统等很多方面具有广泛的应用。特别的,VRF是用于实现隐私保护的选举机制的一项重要技术,在基于委员会的区块链共识等分布式系统中,VRF可用于节点本地判断选举结果,实现选举结果发布前的机密性、选举结果发布后的公开可验证性,以增强系统对适应性腐化攻击的抵御能力,提升系统的健壮性。
[0003]在分布式系统中,难以存在可信的第三方为每个节点正确的生成合法的密钥对,一种更贴合分布式特点的方法是令节点独立创建自己的密钥对。然而,现有大多数VRF构造无法保证节点使用恶意创建的密钥对作为输入时,输出的函数值仍满足不可预测性,即节点可以提前预知函数值,无法保证该值发布前的机密性,因此不适用于分布式系统中来构造安全选举等机制。SM2椭圆曲线公钥密码算法是国家密码管理局发布的国家标准密码算法,其安全性基于求解有限域上 ...
【技术保护点】
【技术特征摘要】
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所述的方法,其特征在于,所述...
【专利技术属性】
技术研发人员:胡可欣,张振峰,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。