CN109981276B - 一种zk-snark底层双线性对的国密替代实现方法 - Google Patents
一种zk-snark底层双线性对的国密替代实现方法 Download PDFInfo
- Publication number
- CN109981276B CN109981276B CN201910053544.7A CN201910053544A CN109981276B CN 109981276 B CN109981276 B CN 109981276B CN 201910053544 A CN201910053544 A CN 201910053544A CN 109981276 B CN109981276 B CN 109981276B
- Authority
- CN
- China
- Prior art keywords
- point
- elliptic curve
- domain
- determining
- calculating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种zk‑snark底层双线性对的国密替代实现方法,包括:步骤1,确定椭圆曲线的基域和阶:步骤2,确定基域上的椭圆曲线方程:步骤3,确定双线性对的群1的生成元;步骤4,确定二次扩域上的椭圆曲线方程:步骤5,确定群2的生成元:步骤6,确定塔式扩张的约化多项式:步骤7,计算Miller函数:步骤8,计算Final expernation:步骤9,计算R‑ate对。
Description
技术领域
本发明属于计算机信息安全领域,尤其涉及一种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进行如下循环:
根据公式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包括:
将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包括:
随机选取基域上的元素x作为x坐标,根据椭圆曲线方程y2=x3+b mod q带入x坐标,求解对应的y坐标;
如果无解,则重新随机选取x坐标,进行下一次循环;
如果有解,则设点P为(x,y),根据椭圆曲线的多倍点算法,计算点P的n倍点nP;如果nP不是无穷远点,则重新随机选取x坐标,进入下一次循环;如果nP是无穷远点,则确定点P为群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包括:
随机选取二次扩域上的元素作为x坐标,计算y′=x3+b/ξ;
利用二次扩域上的求解平方根算法求解y’的平方根;
如果无解,则重新随机选取二次扩域上的元素x作为x坐标,重新求解平方根,直到有解,则设y’的平方根为y,设点p为(x,y),利用椭圆曲线的多倍点算法计算点p的q+1-t倍点,设为P1点,则P1点为群2的生成元。
所述步骤6包括:
根据扭曲线参数,确定四次扩域的约化多项式和十二次扩域的约化多项式,其中四次扩域的约化多项式为x2-ξ,十二次扩域的约化多项式为x3-v,v2=ξ,其中ξ为扭曲线参数。
所述步骤7包括:
根据椭圆曲线的点加运算和倍点运算,计算椭圆曲线的点加线函数和倍点线函数,再根据Miller算法计算Miller函数。
所述步骤8包括:
确定二次扩域、四次扩域、十二次扩域上的Frobenius运算和广义Frobenius运算,根据Final expernation(幂指数计算)的优化算法对Final expernation幂指数计算的运算过程进行优化。
所述步骤9包括:
根据输入的群1上的点P和群2上的点Q,计算Miller函数,计算双线性对的群1和群2的Frobenius运算,根据R-ate对的计算公式计算R-ate对。
一种zk-snark底层双线性对的国密替代实现方法,
本发明的有益效果在于:
本发明给出了计算同时满足zk-snark要求和SM9安全性要求的双线性对的系统参数的方案,本发明中步骤1计算椭圆去曲线阶时,t每次自增220,满足了zk-snark所要求的椭圆曲线阶减1有足够大的2的高次幂因子,且t的初始值为263,满足了SM9安全性要求中双线性对的阶至少为256位。
附图说明
图1是本发明所述的zk-snark底层双线性对的国密替代实现方法;
图2是求解基域和椭圆曲线阶的流程图;
图3是求解基域上椭圆曲线方程的流程图;
图4是求解群1生成元的流程图。
图5是求解二次扩域上椭圆曲线方程的流程图。
图6是求解群2生成元的流程图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
图1是本发明所述的zk-snark底层双线性对的国密替代实现方法;图2是求解基域和椭圆曲线阶的流程图;图3是求解基域上椭圆曲线方程的流程图;图4是求解群1生成元的流程图。图5是求解二次扩域上椭圆曲线方程的流程图。图6是求解群2生成元的流程图。以下结合各图进行描述。
一种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,确定基域上的椭圆曲线方程:将1设为x坐标,将b的初始值设为1,对b进行如下循环:计算y≡b+1 mod 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的生成元:随机选取基域上的元素x作为x坐标,根据椭圆曲线方程y2=x3+b mod q带入x坐标,求解对应的y坐标,如果无解,则重新随机选取x坐标,进行下一次循环,如果有解,则设点P为(x,y),根据椭圆曲线的多倍点算法计算点P的n倍点nP,如果nP不是无穷远点,则重新随机选取x坐标,进入下一次循环;如果nP是无穷远点,则确定点P为群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,确定群2的生成元:随机选取二次扩域上的元素作为x坐标,计算y′=x3+b/ξ利用二次扩域上的求解平方根算法求解y’的平方根,如果无解,则重新随机选取二次扩域上的元素x作为x坐标,重新求解平方根,直到有解,则设y’的平方根为y,设点p为(x,y),利用椭圆曲线的多倍点算法计算点p的q+1-t倍点,设为P1点,则P1点为群2的生成元。
步骤6,确定塔式扩张的约化多项式:根据扭曲线参数确定四次扩域的约化多项式和十二次扩域的约化多项式,其中四次扩域的约化多项式为x2-ξ,十二次扩域的约化多项式为x3-v,v2=ξ,其中ξ为扭曲线参数。
步骤7,计算Miller函数:根据椭圆曲线的点加运算和倍点运算计算椭圆曲线的点加线函数和倍点线函数,再根据Miller算法计算Miller函数。
步骤8,计算Final expernation:确定二次扩域,四次扩域,十二次扩域上的Frobenius运算和广义Frobenius运算,根据Final expernation优化算法对Finalexpernation的运算过程进行优化。
步骤9,计算R-ate对:根据输入的群1上的点P和群2上的点Q计算Miller函数,计算双线性对的群1和群2的Frobenius运算,根据R-ate对的计算公式计算R-ate对。
本发明提供一种符合SM9安全性要求和zk-snark要求的双线性对系统参数的实现方法,可直接用于zk-snark的底层双线性对的国密替代。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
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的生成元。
6.根据权利要求1所述的方法,其特征在于,所述步骤6包括:
根据扭曲线参数,确定四次扩域的约化多项式和十二次扩域的约化多项式,其中四次扩域的约化多项式为x2-ξ,十二次扩域的约化多项式为x3-v,v2=ξ,其中ξ为扭曲线参数。
7.根据权利要求1所述的方法,其特征在于,所述步骤7包括:
根据椭圆曲线的点加运算和倍点运算,计算椭圆曲线的点加线函数和倍点线函数,再根据Miller算法,计算Miller函数。
8.根据权利要求1所述的方法,其特征在于,所述步骤8包括:
确定二次扩域、四次扩域、十二次扩域上的Frobenius自同态运算和广义Frobenius自同态运算,根据Final expernation优化算法对Final expernation幂函数的运算过程进行优化。
9.根据权利要求1所述的方法,其特征在于,所述步骤9包括:
根据输入的群1上的点P和群2上的点Q,计算Miller函数,计算双线性对的群1和群2的Frobenius自同态运算,根据R-ate对的计算公式计算R-ate对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910053544.7A CN109981276B (zh) | 2019-01-21 | 2019-01-21 | 一种zk-snark底层双线性对的国密替代实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910053544.7A CN109981276B (zh) | 2019-01-21 | 2019-01-21 | 一种zk-snark底层双线性对的国密替代实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109981276A CN109981276A (zh) | 2019-07-05 |
CN109981276B true CN109981276B (zh) | 2021-01-19 |
Family
ID=67076652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910053544.7A Expired - Fee Related CN109981276B (zh) | 2019-01-21 | 2019-01-21 | 一种zk-snark底层双线性对的国密替代实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109981276B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111373694B (zh) * | 2020-02-21 | 2023-05-02 | 香港应用科技研究院有限公司 | 零知识证明硬件加速器及其方法 |
US11546161B2 (en) * | 2020-02-21 | 2023-01-03 | Hong Kong Applied Science and Technology Research Institute Company Limited | Zero knowledge proof hardware accelerator and the method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836670A (zh) * | 2015-05-12 | 2015-08-12 | 中国科学院软件研究所 | 一种基于随机数未知的sm2签名算法安全性验证方法 |
CN108268779A (zh) * | 2016-12-30 | 2018-07-10 | 航天信息股份有限公司 | 一种用于对发票进行短密文签名的处理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8868910B2 (en) * | 2012-02-09 | 2014-10-21 | Hewlett-Packard Development Company, L.P. | Elliptic curve cryptographic signature |
CN106100844B (zh) * | 2016-05-24 | 2020-08-18 | 天津大学 | 基于点盲化方法的优化自动双线性对加密方法及装置 |
-
2019
- 2019-01-21 CN CN201910053544.7A patent/CN109981276B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836670A (zh) * | 2015-05-12 | 2015-08-12 | 中国科学院软件研究所 | 一种基于随机数未知的sm2签名算法安全性验证方法 |
CN108268779A (zh) * | 2016-12-30 | 2018-07-10 | 航天信息股份有限公司 | 一种用于对发票进行短密文签名的处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109981276A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Provably secure certificate-based signature scheme without pairings | |
CN105187205B (zh) | 无证书的基于层次身份基的认证密钥协商方法和协商系统 | |
CN107437993A (zh) | 一种基于无证书两方认证密钥协商方法和装置 | |
CN109450640B (zh) | 基于sm2的两方签名方法及系统 | |
CN112446052B (zh) | 一种适用于涉密信息系统的聚合签名方法及系统 | |
Gu et al. | Conjugacy systems based on nonabelian factorization problems and their applications in cryptography | |
CN104092534A (zh) | 实现sm3密码杂凑算法中的迭代压缩的方法 | |
CN109981276B (zh) | 一种zk-snark底层双线性对的国密替代实现方法 | |
CN110175473B (zh) | 基于格上困难问题的数字签名方法 | |
CN101291214A (zh) | 一种生成组密钥的方法、系统和设备 | |
CN109547209A (zh) | 一种两方sm2数字签名生成方法 | |
CN105245343A (zh) | 一种基于多变量密码技术的在线离线签名系统及方法 | |
Wang et al. | A modified efficient certificateless signature scheme without bilinear pairings | |
EP2600563A1 (en) | Authentication device, authentication method, and program | |
CN101820626B (zh) | 基于无线mesh网络身份的无可信pkg的部分盲签名方法 | |
CN115174037B (zh) | 一种基于sm9签名的变色龙哈希函数的构造方法及装置 | |
Tan | Efficient identity-based authenticated multiple key exchange protocol | |
CA3020828A1 (en) | Method and system for cheon resistant static diffie-hellman security | |
CN115174056B (zh) | 一种基于sm9签名的变色龙签名生成方法及装置 | |
KR101367101B1 (ko) | 다항식환을 이용한 키 합의 방법 및 이를 위한 장치 | |
CN110430041B (zh) | 云服务场景下无证书数字签名方法 | |
Mohamed et al. | Towards algebraic cryptanalysis of HFE challenge 2 | |
Bhatia et al. | Post-Quantum Cryptography | |
CN115801261B (zh) | 一种基于国密算法的密文求交方法 | |
CN106936568B (zh) | 一种基于格的密码分析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210119 Termination date: 20220121 |