[发明专利]一种zk-snark底层双线性对的国密替代实现方法有效
| 申请号: | 201910053544.7 | 申请日: | 2019-01-21 |
| 公开(公告)号: | CN109981276B | 公开(公告)日: | 2021-01-19 |
| 发明(设计)人: | 黎琳;张旭霞 | 申请(专利权)人: | 北京交通大学 |
| 主分类号: | H04L9/30 | 分类号: | H04L9/30;H04L9/08 |
| 代理公司: | 北京市商泰律师事务所 11255 | 代理人: | 黄晓军 |
| 地址: | 100044 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 zk snark 底层 双线 替代 实现 方法 | ||
本发明提供一种zk‑snark底层双线性对的国密替代实现方法,包括:步骤1,确定椭圆曲线的基域和阶:步骤2,确定基域上的椭圆曲线方程:步骤3,确定双线性对的群1的生成元;步骤4,确定二次扩域上的椭圆曲线方程:步骤5,确定群2的生成元:步骤6,确定塔式扩张的约化多项式:步骤7,计算Miller函数:步骤8,计算Final expernation:步骤9,计算R‑ate对。
技术领域
本发明属于计算机信息安全领域,尤其涉及一种zk-snark底层双线性对的国密替代实现方法。
背景技术
Barreto和Naehrig在2005年提出了一种构造素数域上适合对的常曲线的方法,通过此方法构造的曲线称为BN曲线。构造的过程如下:通过参数t求解基域和椭圆曲线阶,基域和椭圆曲线阶均为素数。在确定基域后,循环参数b确定椭圆曲线方程y2=x3+b mod q,直到椭圆曲线方程上具有n阶点。确定椭圆曲线方程后可随机选取椭圆曲线上一个n阶点为群1的生成元。在确定二次扩域后,可循环随机选取二次扩域上的元素ξ确定二次扩域上的椭圆曲线方程y2=x3+b/ξ,直到椭圆曲线方程上点具有n阶性质。在确定二次扩域上的椭圆曲线方程后,可随机选取椭圆曲线方程上的一个n阶点作为群2的生成元。
国密SM9算法中包括了数字签名算法,密钥交换协议,密钥封装算法和公钥加密算法。算法所主要依据双线性对实现。SM9标准中规定了对双线性对的安全性要求:基域q为大于2的191次方的素数上的常曲线或者基域q为大于2的768次方的素数上的超奇异曲线。现行SM9所采用的双线性对是基于BN曲线的双线性对,其安全性要求为256位。
Zk-snark是一种非交互式的零知识证明协议,可广泛应用于隐私保护,群签名等方面。Zk-snark底层采用了双线性对,所基于的椭圆曲线为128位的BN曲线。在zk-snark产生证据的过程中,需要执行多项式除法运算,在zksnark中多项式除法运算采用快速傅立叶变换实现,快速傅立叶变换要求采用的双线性对的椭圆曲线阶减1有足够大的2的幂次方因子。而现行的SM9中所采用的双线性对的系统参数并不符合这一要求,如果直接用SM9中的双线性对直接进行替代,会使得zk-snark产生证据的性能大大降低。因此需要重新计算一组同时满足zk-snark要求和SM9安全性要求的系统参数。
目前还没有有效的算法计算同时满足zk-snark要求和SM9安全性要求的系统参数。
发明内容
本发明的目的是,提供一种zk-snark底层双线性对的国密替代实现方法,在实现双线性对替代的过程中充分考虑安全性和效率。
为达到上述目的,本发明采用如下的技术手段:
一种zk-snark底层双线性对的国密替代实现方法,包括以下步骤:
步骤1,确定椭圆曲线的基域和阶:
步骤2,确定基域上的椭圆曲线方程:
步骤3,确定双线性对的群1的生成元;
步骤4,确定二次扩域上的椭圆曲线方程:
步骤5,确定群2的生成元:
步骤6,确定塔式扩张的约化多项式:
步骤7,计算Miller函数:
步骤8,计算Final expernation:
步骤9,计算R-ate对;将该R-ate对用于zk-snark的底层双线性对的国密替代。
所述步骤1包括:
将参数t初始值设为2的63次方,对t进行如下循环:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910053544.7/2.html,转载请声明来源钻瓜专利网。





