CN110677249A - 基于双线性对的密码系统实现方法和密码系统 - Google Patents
基于双线性对的密码系统实现方法和密码系统 Download PDFInfo
- Publication number
- CN110677249A CN110677249A CN201910229099.5A CN201910229099A CN110677249A CN 110677249 A CN110677249 A CN 110677249A CN 201910229099 A CN201910229099 A CN 201910229099A CN 110677249 A CN110677249 A CN 110677249A
- Authority
- CN
- China
- Prior art keywords
- curve
- bilinear
- pairings
- parameter
- generating
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims abstract description 30
- 238000005457 optimization Methods 0.000 abstract description 4
- 238000005538 encapsulation Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Signal Processing (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种基于基于双线性对的密码系统实现方法和密码系统,涉及信息保护技术领域,其中,方法包括构造BLS12曲线E:y2=x3+C,并根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r,其中,所述指定的曲线生成变量u为‑0x300000001FFFC010000或0x4000000FFFFFFA80000或‑0x640007FFFFFFFFFFF00或‑0x63FFFFFFFC000000080或0x10FFFFFFFFFFFFFFF;调用定义在所述曲线E的点群上的双线性对,实现密码算法。本发明通过构造BLS12曲线E,并根据指定的曲线生成变量u生成曲线参数p和曲线参数r,最后调用定义在所述曲线E的点群上的双线性对,实现密码算法。使得各种双线性对计算优化技巧得以利用,从而实现提高安全级别的同时,提高双线性对的快速计算。解决了现有技术中难以选择双线性对友好的椭圆曲线的问题。
Description
技术领域
本发明涉及信息保护技术领域,特别是涉及一种基于双线性对的密码系统实现方法和一种基于双线对的密码系统。
背景技术
随着信息技术的不断发展和应用,电子信息的安全性问题变得越来越重要。而密码学作为信息安全的核心,在信息安全中扮演着极为重要的角色。双线性对作为标识密码技术中的关键操作,在过去几年引起了研究人员的广泛兴趣。双线性对e:G1×G2→G3,其中,G1、G2、G3的阶均为素数r,可以构造许多有广泛应用的密码算法,例如:基于标识的密码算法、短签名算法、基于属性的的加密算法、非交互零知识证明协议等。
现有的双线性对定义在椭圆曲线点群上,主要可适用的有:Weil对、Tate对、Ate对、优化的Ate对,R-ate对等。这些双线性对的计算都需要选择合适的定义于域FP上的椭圆曲线参数E/FP:y2=x3+Ax3+Bx2+C,以便在达到需要的安全级别的同时实现双线性对的快速计算。然而,现有的安全密码技术中并未能够提供确定的一个或多个可以实现密码系统高效和安全的椭圆曲线参数。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种基于双线性对的密码系统实现方法和一种基于双线性对的密码系统以克服上述问题或者至少部分地解决上述问题。
为了解决上述问题,本发明实施例公开了一种基于双线性对的密码系统实现方法,包括:
构造BLS12曲线E:y2=x3+C,并根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r,其中,所述指定的曲线生成变量u为-0x300000001FFFC010000或0x4000000FFFFFFA80000或-0x640007FFFFFFFFFFF00或-0x63FFFFFFFC000000080或0x10FFFFFFFFFFFFFFF;
调用定义在所述曲线E的点群上的双线性对,实现密码算法。
在一个优选实施方式中,所述根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r的步骤,包括如下计算公式:
p=(u-1)2(u4-u2+1)/3+u;
r=u4-u2+1。
在一个优选实施方式中,所述双线性对包括Weil对、Tate对、Ate对、优化的Ate对及R-ate对。
在一个优选实施方式中,在所述调用定义在所述曲线E点群上的双线性对,实现密码算法的步骤之前,还包括:
确定所述曲线E的常数项C,其中,所述常数项C的取值为:-2^32+1<C<2^32-1。
在一个优选实施方式中,还包括:
根据所述密码算法生成系统参数params、主密钥msk及主公钥mpk;
加密明文Msg并生成对应的密文CT。
为了解决上述问题,本发明实施例公开了一种基于双线对的密码系统,包括:
第一算法模块,用于调用BLS12曲线E:y2=x3+C,并根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r,其中,所述指定的曲线生成变量u为-0x300000001FFFC010000或0x4000000FFFFFFA80000或-0x640007FFFFFFFFFFF00或-0x63FFFFFFFC000000080或0x10FFFFFFFFFFFFFFF;
第二算法模块,用于调用定义在所述曲线E的点群上的双线性对,实现密码算法。
在一个优选实施方式中,所述第一算法模块包括如下计算公式:
p=(u-1)2(u4-u2+1)/3+u;
r=u4-u2+1。
在一个优选实施方式中,所述双线性对包括Weil对、Tate对、Ate对、优化的Ate对及R-ate对。
在一个优选实施方式中,还包括:
第三算法模块,用于确定所述曲线E的常数项C,其中,所述常数项C的取值为:-2^32+1<C<2^32-1。
在一个优选实施方式中,还包括:
系统参数生成模块,用于根据所述密码算法生成系统参数params、主密钥msk及主公钥mpk;
密文生成模块,用于加密明文Msg并生成对应的密文CT。
与现有技术相比,本发明实施例的有益效果在于:通过构造BLS12曲线E,并根据指定的曲线生成变量u生成曲线参数p和曲线参数r,最后调用定义在所述曲线E的点群上的双线性对,实现密码算法。使得各种双线性对计算优化技巧得以利用,从而实现提高安全级别的同时,提高双线性对的快速计算。解决了现有技术中难以选择双线性对友好的椭圆曲线的问题。
附图说明
图1是本发明的一种基于双线性对的密码系统实现方法实施例的步骤流程图;
图2是本发明的一种基于双线性对的密码系统实现方法实施例的步骤流程图;
图3是本发明的一种基于双线性对的密码系统实现方法实施例的步骤流程图;
图4是本发明的一种基于双线性对的密码系统实施例的结构框图;
图5是本发明的一种基于双线性对的密码系统实施例的结构框图;
图6是本发明的一种基于双线性对的密码系统实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
请参照图1,本发明实施例提供一种基于双线性对的密码系统实现方法,包括以下步骤:
S01,构造BLS12曲线E:y2=x3+C;并根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r,其中,所述指定的曲线生成变量u为-0x300000001FFFC010000或0x4000000FFFFFFA80000或-0x640007FFFFFFFFFFF00或-0x63FFFFFFFC000000080或0x10FFFFFFFFFFFFFFF。
根据Barbulescu-Duquesne理论,对于128位安全性,应该选择超过461为素数字段定义的BN和BLS曲线,实际上,BN和BLS曲线都可以达到略高于130位安全性。但是G1、G2、G3在BN曲线上具有较大的群阶和较大的运算;其运算速度不及BLS12曲线,占据的成本也比BLS12曲线要高很多,因此,本实施例的椭圆曲线采用BLS12曲线。
所述根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r的步骤,包括如下计算公式:
p=(u-1)2(u4-u2+1)/3+u;
r=u4-u2+1。
通过将所述指定的曲线生成变量u代入上述计算公式,可以对应生成所述曲线参数p和曲线参数r。
S02,调用定义在所述曲线E的点群上的双线性对,实现密码算法。
双线性对是指一种两种循环群之间对应的映射关系,具体是满足双线性性、非退化性和可计算性的映射e:G1×G2→G3,其中,G1是一个生成元为P的r(r为素数)阶加法循环群,G2是同阶的乘法循环群。
通过调用定义在所述曲线E的点群上的双线性对,实现密码算法,所述密码算法具有更高的安全性和更快的运算效率。
在一实施例中,在所述基于双线性对的密码系统实现方法中,在所述调用定义在所述曲线E点群上的双线性对,实现密码算法的步骤中,所述双线性对包括Weil对、Tate对、Ate对、优化的Ate对及R-ate对。
在一实施例中,在所述基于双线性对的密码系统实现方法中,在所述调用定义在所述曲线E点群上的双线性对,实现密码算法的步骤之前,还包括:
确定所述曲线E的常数项C,其中,所述常数项C的取值为:-2^32+1<C<2^32-1。
C的选择与点乘计算有关,为了加快点乘计算,一般选择较小的C值。根据选择的C值确定当前曲线上的群应满足双线性对的双线性属性要求。
通过构造BLS12曲线E,并根据指定的曲线生成变量u生成曲线参数p和曲线参数r,以及确定的常数项C的值,最后调用定义在所述曲线E的点群上的双线性对,实现密码算法。使得各种双线性对计算优化技巧得以利用,从而实现提高安全级别的同时,提高双线性对的快速计算,从而提高密码系统的高效和安全性。
在一实施例中,在所述基于双线性对的密码系统实现方法中,在所述调用定义在所述曲线E的点群上的双线性对,构造密码算法的步骤之后,还包括:
根据所述密码算法生成系统参数params、主密钥msk及主公钥mpk;
加密明文Msg并生成对应的密文CT。
请参照图2,所述根据所述密码算法生成系统参数params、主密钥msk及主公钥mpk的步骤,具体包括如下子步骤:
S301,选择三群G1、G2、G3和一个双线性对e:G1×G2→G3;其中,G1群为y2=x3+C上阶为r的点群,G2群是曲线E对应扭曲线E’上阶为r的点群,G3为Fp12上阶为r的乘法子群;
S302,随机选择G1群中的生成元Q1和G2群中的生成元Q2;
S303,随机在群Zr *中生成主密钥s,计算R1=sQ1;
S304,根据所述R1,计算J=e(R1,Q2);
S305,生成所述系统参数params=<Q1,Q2,G1,G2,G3,e,p>、所述主密钥msk=s、所述主公钥mpk=(R1,J)。
请参照图3,所述加密明文Msg并生成对应的密文CT的步骤,具体包括以下子步骤:
S401,根据所述系统参数params、所述主公钥mpk和用户标识ID,采用SM9算法的会话密钥封装机制KEM.Enc,生成会话密钥K和会话密钥封装密文CTKEM;
S402,根据所述会话密钥K、标签L和所述明文Msg,采用SM9算法的数据封装机制DEM.Enc,生成数据封装密文CTDEM;
S403,将所述会话密钥封装密文CTKEM和所述数据封装密文CTDEM进行拼接,生成对应的密文CT。
在一实施例中,所述指定的曲线生成变量u的值为-0x300000001FFFC010000,根据曲线参数p=(u-1)2(u4-u2+1)/3+u的计算公式,计算曲线参数p=2695034945195302403287202739236296658773716595713270407388741433172040269009649551205815281263723892369460995102611136580044059552427;根据曲线参数r=u4-u2+1的计算公式,计算曲线参数r=2695034945195302403287202739236296658773716595713270407388741433172040269009649551205815281263723892369460995102611136580044059552427;确定常数项C=4对应的曲线可满足优化的Ate双线性对的双线性属性。
本实施例根据所述指定的曲线生成变量u=-0x300000001FFFC010000,曲线参数p=2695034945195302403287202739236296658773716595713270407388741433172040269009649551205815281263723892369460995102611136580044059552427,曲线参数r=2695034945195302403287202739236296658773716595713270407388741433172040269009649551205815281263723892369460995102611136580044059552427,常数项C=4,并结合优化的Ate双线性对,可得,G2群的余因子为37x581位素数,可以快速校验点是否是G2群中成员;G3群的余因子为素数,无需额外校验G3群中成员;根据所述曲线生成变量u的值计算得到的曲线参数p,使得一些加速Fp12上离散对数求解的方法无法使用,从而提高3~5%的安全性。另外曲线生成变量u可以表达为u=-(2^74-2^72+2^41-2^26+2^16),使得优化的Ate双线性对计算过程的米勒循环计算降低至78,而随机选择的u对应的计算过程的米勒循环平均数为110,因此,当曲线生成变量参数u=-(2^74-2^72+2^41-2^26+2^16)时,有利于双线性对的高效实现。
在一实施例中,所述指定的曲线生成变量u的值为0x4000000FFFFFFA80000,根据曲线参数p=(u-1)2(u4-u2+1)/3+u的计算公式,计算曲线参数p=0x555555D555557955550E555512F3FFFABEAAB7F4E002A047FEA4FFF D1A57D4C13A036688A0AC98F2B2427093C80014E66AAFFFFFFE2AAAB;根据曲线参数r=u4-u2+1的计算公式,计算曲线参数r=0x100000100000007FFFFCDFFFFFBD800044BFFF00F1FF7D66801C39310AFFFFFE1C000000001;确定常数项C=6对应的曲线可满足优化的Ate双线性对的双线性属性。
本实施例根据所述曲线生成变量u的值计算得到的曲线参数p,使得一些加速Fp12上离散对数求解的方法无法使用,从而提高3~5%的安全性;G2群的余因子包含457比特的素数,可以快速校验点是否是G2群中成员;G3群的余因子为素数,无需额外校验G3群中成员;优化的Ate双线性对计算过程的米勒循环计算降低至78。
在一实施例中,所述指定的曲线生成变量u的值为0x10FFFFFFFFFFFFFFF,根据曲线参数p=(u-1)2(u4-u2+1)/3+u的计算公式,计算曲线参数p=0x7AC5205555555551B8F280000000000A9EC855555555554623E000000000000AE9AAAAAAAAAAAAA77AAAAAAAAAAAAAAB;根据曲线参数r=u4-u2+1的计算公式,计算曲线参数r=0x14640FFFFFFFFFFFB33C0000000000005A4FFFFFFFFFFFFFDE000000000000001;确定常数项C=1对应的曲线可满足优化的Ate双线性对的双线性属性。
本实施例根据所述曲线生成变量u的值计算得到的曲线参数p,使得一些加速Fp12上离散对数求解的方法无法使用,从而提高3~5%的安全性。G2群的余因子包括1255比特的素数,可以快速校验点是否是G2群中成员。G3群的余因子为素数,无需额外校验G3群中成员;优化的Ate双线性对计算过程的米勒循环计算降低至66。
在一实施例中,所述指定的曲线生成变量u的值为-0x63FFFFFFFC000000080,根据曲线参数p=(u-1)2(u4-u2+1)/3+u的计算公式,计算曲线参数p=0x4D9C370542B4F6357C8BBFB9786E40C4881707EB541C6FBD00DF917F87CEE7453E3FFD6D82D1AAB40323150552254F32AACAAC1AAA95552B;根据曲线参数r=u4-u2+1的计算公式,计算曲线参数r=0x5F5E0FFFF0BDC0001F6EDFFFFC50400003CF0D8EFFB4803200337F9AFFFE00040000FFFC001;确定常数项C=4对应的曲线可满足优化的Ate双线性对的双线性属性。
本实施例根据所述曲线生成变量u的值计算得到的曲线参数p,使得一些加速Fp12上离散对数求解的方法无法使用,从而提高3~5%的安全性,优化的Ate双线性对计算过程的米勒循环计算降低至79。
在一实施例中,所述指定的曲线生成变量u的值为-0x640007FFFFFFFFFFF00,根据曲线参数p=(u-1)2(u4-u2+1)/3+u的计算公式,计算曲线参数p=0x4D9C5C461B08AF607E4E1B3BBEB3E3DA9642FEE252E434BF8F40648A43BE0D847E77A0F4B9CBF580007394D44A7FFCEAAA8054AAAB5555AB;根据曲线参数r=u4-u2+1的计算公式,计算曲线参数r=0x5F5E2E8483A98031C2F7F159FED3FFF80EA5FFE6FFB3FFFBFE7000A800100000000FFFF0001;确定常数项C=-3对应的曲线可满足优化的Ate双线性对的双线性属性。
本实施例,根据所述曲线生成变量u的值计算得到的曲线参数p,使得一些加速Fp12上离散对数求解的方法无法使用,从而提高3~5%的安全性,优化的Ate双线性对计算过程的米勒循环计算降低至79。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种基于双线性对的密码系统实施例的结构框图,具体可以包括如下模块:
第一算法模块100,用于构造BLS12曲线E:y2=x3+C,并根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r,其中所述指定的曲线生成变量u为-0x300000001FFFC010000或0x4000000FFFFFFA80000或-0x640007FFFFFFFFFFF00或0x6FFFFFFFFFA00000000或0x10FFFFFFFFFFFFFFF。
所述第一算法模块100包括如下计算公式:
p=(u-1)2(u4-u2+1)/3+u;
r=u4-u2+1。
通过将所述指定的曲线生成变量u代入上述计算公式,可以对应生成所述曲线参数p和曲线参数r。
第二算法模块200,用于调用定义在所述曲线E的点群上的双线性对,实现密码算法。
双线性对是指一种两种循环群之间对应的映射关系,具体是满足双线性性、非退化性和可计算性的映射e:G1×G2→G3,其中,G1是一个生成元为P的r(r为素数)阶加法循环群,G2是同阶的乘法循环群。
通过调用定义在所述曲线E的点群上的双线性对,实现密码算法,所述密码算法具有更高的安全性和更快的运算效率。
在一实施例中,在所述基于双线性对的密码系统中,所述第二算法模块200中,所述双线性对包括Weil对、Tate对、Ate对、优化的Ate对及R-ate对。
在一实施例中,在所述基于双线性对的密码系统中,还包括:
第三算法模块,用于确定所述曲线E的常数项C,其中,所述常数项C的取值为:-2^32+1<C<2^32-1。
C的选择与点乘计算有关,为了加快点乘计算,一般选择较小的C值。根据选择的C值确定当前曲线上的群应满足双线性对的双线性属性要求。
通过构造BLS12曲线E,并根据指定的曲线生成变量u生成曲线参数p和曲线参数r,最后调用定义在所述曲线E的点群上的双线性对,实现密码算法。使得各种双线性对计算优化技巧得以利用,从而实现提高安全级别的同时,提高双线性对的快速计算,从而提高密码系统的高效和安全性。
在一实施例中,在所述基于双线性对的密码系统中,还包括:
系统参数生成模块,用于根据所述密码算法生成系统参数params、主密钥msk及主公钥mpk,并将所述系统参数params和所述主公钥mpk公开,将所述主密钥msk发送至接收用户端。
密文生成模块,用于加密明文Msg并生成对应的密文CT。根据所述系统参数params、主密钥msk、主公钥mpk以及用户标识ID,加密明文Msg并生成对应的密文CT。并将所述密文CT发送至接收用户端。
请参照图5,所述系统参数生成模块,用于根据所述密码算法生成系统参数params、主密钥msk及主公钥mpk,并将所述系统参数params和所述主公钥mpk公开,将所述主密钥msk发送至接收用户端,包括如下子模块:
第一选择子模块301,用于选择三群G1、G2、G3和一个双线性对e:G1×G2→G3;其中,G1群为y2=x3+C上阶为r的点群,G2群是曲线E对应扭曲线E’上阶为r的点群,G3为Fp12上阶为r的乘法子群;
第二选择子模块302,用于随机选择G1群中的生成元Q1和G2群中的生成元Q2;
第一生成子模块303,用于随机在群Zr *中生成主密钥s,计算R1=sQ1;
第二生成子模块304,用于根据所述R1,计算J=e(R1,Q2);
第三生成子模块305,用于生成所述系统参数params=<Q1,Q2,G1,G2,G3,e,p>、所述主密钥msk=s、所述主公钥mpk=(R1,J)。
请参照图6,密文生成模块,用于加密明文Msg并生成对应的密文CT,包括如下子模块:
会话密钥封装子模块401,用于根据所述系统参数params、所述主公钥mpk和用户标识ID,采用SM9算法的会话密钥封装机制KEM.Enc,生成会话密钥K和会话密钥封装密文CTKEM;
数据封装子模块402,用于根据所述会话密钥K、标签L和所述明文Msg,采用SM9算法的数据封装机制DEM.Enc,生成数据封装密文CTDEM;
加密子模块403,用于将所述会话密钥封装密文CTKEM和所述数据封装密文CTDEM进行拼接,生成对应的密文CT。
本实施例系统参数生成模块根据密码算法生成系统参数params、主密钥msk及主公钥mpk;再根据系统参数params、主密钥msk、用户标识ID及主公钥mpk结合MS9算法的会话密钥封装机制KEM.Enc和数据封装机制DEM.Enc加密明文Msg,并生成对应的密文CT。由于密码算法采用指定的曲线生成变量u可以减少计算过程的米勒循环次数,从而实现密码系统的高效性;根据曲线生成变量u可以确定对应的曲线参数p,使得一些加速Fp12上离散对数求解的方法无法使用,从而提高密码系统的安全性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种基于双线性对的密码系统实现方法和一种基于双线性对的密码系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于双线性对的密码系统实现方法,其特征在于,包括:
构造BLS12曲线E:y2=x3+C,并根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r,其中,所述指定的曲线生成变量u为-0x300000001FFFC010000或0x4000000FFFFFFA80000或-0x640007FFFFFFFFFFF00或-0x63FFFFFFFC000000080或0x10FFFFFFFFFFFFFFF;
调用定义在所述曲线E的点群上的双线性对,实现密码算法。
2.根据权利要求1所述的基于双线性对的密码系统实现方法,其特征在于,所述根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r的步骤,包括如下计算公式:
p=(u-1)2(u4-u2+1)/3+u;
r=u4-u2+1。
3.根据权利要求2所述的基于双线性对的密码系统实现方法,其特征在于,所述双线性对包括Weil对、Tate对、Ate对、优化的Ate对及R-ate对。
4.根据权利要求3所述的基于双线性对的密码系统实现方法,其特征在于,在所述调用定义在所述曲线E点群上的双线性对,实现密码算法的步骤之前,还包括:
确定所述曲线E的常数项C,其中,所述常数项C的取值为:-2^32+1<C<2^32-1。
5.根据权利要求4所述的基于双线性对的密码系统实现方法,其特征在于,还包括:
根据所述密码算法生成系统参数params、主密钥msk及主公钥mpk;
加密明文Msg并生成对应的密文CT。
6.一种基于双线性对的密码系统,其特征在于,包括:
第一算法模块,用于构造BLS12曲线E:y2=x3+C,并根据指定的曲线生成变量u生成所述曲线E的曲线参数p和曲线参数r,其中,所述指定的曲线生成变量u为-0x300000001FFFC010000或0x4000000FFFFFFA80000或-0x640007FFFFFFFFFFF00或-0x63FFFFFFFC000000080或0x10FFFFFFFFFFFFFFF;
第二算法模块,用于调用定义在所述曲线E的点群上的双线性对,实现密码算法。
7.根据权利要求6所述的基于双线性对的密码系统,其特征在于,所述第一算法模块包括如下计算公式:
p=(u-1)2(u4-u2+1)/3+u;
r=u4-u2+1。
8.根据权利要求7所述的基于双线性对的密码系统,其特征在于,所述双线性对包括Weil对、Tate对、Ate对、优化的Ate对及R-ate对。
9.根据权利要求8所述的基于双线性对的密码系统,其特征在于,还包括:
第三算法模块,用于确定所述曲线E的常数项C,其中,所述常数项C的取值为:-2^32+1<C<2^32-1。
10.根据权利要求9所述的基于双线性对的密码系统,其特征在于,还包括:
系统参数生成模块,用于根据密码算法生成系统参数params、主密钥msk及主公钥mpk;
密文生成模块,用于加密明文Msg并生成对应的密文CT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910229099.5A CN110677249A (zh) | 2019-03-25 | 2019-03-25 | 基于双线性对的密码系统实现方法和密码系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910229099.5A CN110677249A (zh) | 2019-03-25 | 2019-03-25 | 基于双线性对的密码系统实现方法和密码系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110677249A true CN110677249A (zh) | 2020-01-10 |
Family
ID=69068542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910229099.5A Pending CN110677249A (zh) | 2019-03-25 | 2019-03-25 | 基于双线性对的密码系统实现方法和密码系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110677249A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769557A (zh) * | 2020-12-30 | 2021-05-07 | 北京宏思电子技术有限责任公司 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
CN112769556A (zh) * | 2020-12-30 | 2021-05-07 | 北京宏思电子技术有限责任公司 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150071435A1 (en) * | 2013-09-06 | 2015-03-12 | Tata Consultancy Services Limited | Identity based encryption |
CN107017987A (zh) * | 2017-03-15 | 2017-08-04 | 深圳奥联信息安全技术有限公司 | 一种安全密码技术中选择双线性对的椭圆曲线方法 |
-
2019
- 2019-03-25 CN CN201910229099.5A patent/CN110677249A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150071435A1 (en) * | 2013-09-06 | 2015-03-12 | Tata Consultancy Services Limited | Identity based encryption |
CN107017987A (zh) * | 2017-03-15 | 2017-08-04 | 深圳奥联信息安全技术有限公司 | 一种安全密码技术中选择双线性对的椭圆曲线方法 |
Non-Patent Citations (1)
Title |
---|
RAZVAN BARBULESCU,SYLVAINDUQUESNE: "Updating Key Size Estimations for Pairings", 《JOURNAL OF CRYPTOLOGY》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769557A (zh) * | 2020-12-30 | 2021-05-07 | 北京宏思电子技术有限责任公司 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
CN112769556A (zh) * | 2020-12-30 | 2021-05-07 | 北京宏思电子技术有限责任公司 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
CN112769556B (zh) * | 2020-12-30 | 2022-08-19 | 北京宏思电子技术有限责任公司 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
CN112769557B (zh) * | 2020-12-30 | 2022-10-18 | 北京宏思电子技术有限责任公司 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Almaiah et al. | A new hybrid text encryption approach over mobile ad hoc network | |
JP5297688B2 (ja) | ベクトル秘匿型内積計算システム、ベクトル秘匿型内積計算方法及び暗号鍵共有システム | |
CN107819585A (zh) | Sm9数字签名协同生成方法及系统 | |
WO2009143713A1 (zh) | 双因子组合公钥生成和认证方法 | |
Ariffin | A new efficient asymmetric cryptosystem based on the integer factorization problem | |
CN102957538A (zh) | 信息处理设备和信息处理方法 | |
CN110677249A (zh) | 基于双线性对的密码系统实现方法和密码系统 | |
GB2421410A (en) | Generating and Identifier-Based Public / Private key Pair from a Multi-Component Signature | |
CN105339995B (zh) | 解密装置、解密能力提供装置、其方法、以及记录介质 | |
JP3854226B2 (ja) | 鍵ペア決定およびrsa鍵生成のための方法並びに装置 | |
US20050220299A1 (en) | Public key cryptographic methods and systems | |
Mittal et al. | A quantum secure ID-based cryptographic encryption based on group rings | |
Abdelfatah | A color image authenticated encryption using conic curve and Mersenne twister | |
Pugila et al. | An efficeient encrpytion algorithm based on public key cryptography | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及系统 | |
Somsuk | The improving decryption process of RSA by choosing new private key | |
Swami et al. | Dual modulus RSA based on Jordan-totient function | |
CN104579661B (zh) | 基于身份的电子签章的实现方法和装置 | |
Rahman et al. | Elliptic curve cryptography | |
CN105915340B (zh) | 基于理想格上Gu-Map1多线性映射实例的多接收者匿名签密方法 | |
CN109756335B (zh) | 一种阶为梅森素数的有限域乘法群的公钥加密解密方法 | |
Wade et al. | The Iso-ElGamal Cryptographic Scheme | |
CN109981254A (zh) | 一种基于有限李型群分解问题的微型公钥加密方法 | |
US20080019508A1 (en) | Public key cryptographic methods and systems with rebalancing | |
Saeednia | Improvement of Günther's identity-based key exchange protocol |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200110 |