[发明专利]一种zk-snark底层双线性对的国密替代实现方法有效
申请号: | 201910053544.7 | 申请日: | 2019-01-21 |
公开(公告)号: | CN109981276B | 公开(公告)日: | 2021-01-19 |
发明(设计)人: | 黎琳;张旭霞 | 申请(专利权)人: | 北京交通大学 |
主分类号: | H04L9/30 | 分类号: | H04L9/30;H04L9/08 |
代理公司: | 北京市商泰律师事务所 11255 | 代理人: | 黄晓军 |
地址: | 100044 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 zk snark 底层 双线 替代 实现 方法 | ||
1.一种zk-snark底层双线性对的国密替代实现方法,其特征在于,包括以下步骤:
步骤1,确定椭圆曲线的基域和阶:具体包括:
将参数t初始值设为2的63次方,对t进行如下循环:
根据公式q(t)=36t4+36t3+24t2+6t+1,n(t)=q(t)-6t2’计算q(t)和n(t)的值;
利用素性检测算法判断q(t)和n(t)是否为素数;
如果q(t)和n(t)均为素数,则确定基域为q(t),椭圆曲线阶为n(t);
如果q(t)和n(t)不满足均为素数,则计算t=t+220,进行下一次循环;
步骤2,确定基域上的椭圆曲线方程:
步骤3,确定双线性对的群1的生成元;
步骤4,确定二次扩域上的椭圆曲线方程:
步骤5,确定群2的生成元:
步骤6,确定塔式扩张的约化多项式:
步骤7,计算Miller函数:
步骤8,Miller函数的幂函数的优化运算:
步骤9,计算R-ate对;将该R-ate对用于zk-snark的底层双线性对的国密替代。
2.根据权利要求1所述的方法,其特征在于,所述步骤2包括:
将1设为x坐标,将b的初始值设为1,对b进行如下循环:
计算y≡b+1mod p,利用基域上求解平方跟算法求解y的平方根;
如果无解,则设b=b+1,进入下一次循环;
如果求解平方根有解,设y的平方根为y0,设点P为(1,y0),根据椭圆曲线的多倍点算法,计算点P的n倍点nP;如果nP不是无穷远点,则设b=b+1,进入下一次循环;如果nP是无穷远点,则确定基域上的椭圆曲线方程为y2=x3+b mod q。
3.根据权利要求1所述的方法,其特征在于,所述步骤3包括:
随机选取基域上的元素x作为x坐标,根据椭圆曲线方程y2=x3+b mod q带入x坐标,求解对应的y坐标;
如果无解,则重新随机选取x坐标,进行下一次循环;
如果有解,则设点P为(x,y),根据椭圆曲线的多倍点算法,计算点P的n倍点nP;如果nP不是无穷远点,则重新随机选取x坐标,进入下一次循环;如果nP是无穷远点,则确定点P为群1的生成元。
4.根据权利要求1所述的方法,其特征在于,所述步骤4包括:
随机选取二次扩域上的元素ξ,其中ξ即不是二次扩域上的二次元也不是二次扩域上的三次元;
随机选取二次扩域上的元素x作为x坐标,在二次扩域上计算y′=x3+b/ξ,利用二次扩域上的求解平方根算法求解y’的平方根;
如果无解,则重新随机选取二次扩域上的元素x作为x坐标,重新求解平方根,直到有解,则设y’的平方根为y,设点p为(x,y),利用椭圆曲线的多倍点算法计算点p的q+1-t倍点,设为P1点,计算点P1的n倍点n P1,如果n P1不是无穷远点,则重新随机选取二次扩域上的元素ξ,重新进行计算,如果n P1是无穷远点,则确定二次扩域上的椭圆曲线方程为y2=x3+b/ξ。
5.根据权利要求1所述的方法,其特征在于,所述步骤5包括:
随机选取二次扩域上的元素作为x坐标,计算y′=x3+b/ξ;
利用二次扩域上的求解平方根算法求解y’的平方根;
如果无解,则重新随机选取二次扩域上的元素x作为x坐标,重新求解平方根,直到有解,则设y’的平方根为y,设点p为(x,y),利用椭圆曲线的多倍点算法计算点p的q+1-t倍点,设为P1点,则P1点为群2的生成元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910053544.7/1.html,转载请声明来源钻瓜专利网。