CN106100844A - 基于点盲化方法的优化自动双线性对加密方法及装置 - Google Patents

基于点盲化方法的优化自动双线性对加密方法及装置 Download PDF

Info

Publication number
CN106100844A
CN106100844A CN201610351469.9A CN201610351469A CN106100844A CN 106100844 A CN106100844 A CN 106100844A CN 201610351469 A CN201610351469 A CN 201610351469A CN 106100844 A CN106100844 A CN 106100844A
Authority
CN
China
Prior art keywords
point
bilinear map
encryption
computing
parameter
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.)
Granted
Application number
CN201610351469.9A
Other languages
English (en)
Other versions
CN106100844B (zh
Inventor
郭炜
郝中源
魏继增
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201610351469.9A priority Critical patent/CN106100844B/zh
Publication of CN106100844A publication Critical patent/CN106100844A/zh
Application granted granted Critical
Publication of CN106100844B publication Critical patent/CN106100844B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3026Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及到信息安全及微处理器设计领域,为从硬件实现的角度提升算法的计算效率并进一步节省计算资源,从根本上缩减加解密时间和空间开销,同时使用合理的抗攻击防护措施,有效的提升双线性对加密的安全性,为双线性对加密方法替代目前主流的加密体系提供一种可能。本发明采用的技术方案是,基于点盲化方法的优化自动双线性对加密方法,包括加密和解密两部分,并由证书颁发机构CA利用随机参数s∈[1,p‑1],p为素域的特征,提前给出公钥Kp=sPCA,以及私钥dA=sIDA,此处PCA为公开参数,IDA为用户的身份信息;假设用户B要加密消息给用户A,为双线性对,P、Q均为输入的形参。本发明主要应用于信息安全场合。

Description

基于点盲化方法的优化自动双线性对加密方法及装置
技术领域
本发明涉及到信息安全及微处理器设计领域,特别涉及一种基于点盲化方法的优化自动双线性对加密方法
背景技术
公钥密码体制也称非对称密码,是目前保障信息安全的主要手段。在传统的公钥密码体制往往需要借助证书颁发机构(CA)作为可信第三方,负责用户公钥证书的生成、保管、维护、撤销等环节。这将耗费大量的计算和存储资源,同时也带来了密钥托管和用户私钥的可信性问题。双线性对(pairing)是近几年发展起来的用于构造密码协议的一个重要工具。利用双线性对构造的密码协议不仅具有高安全性、短密钥和快速实现等优点,还具有双线性和非退化性等更多的用其它方法难以实现的功能。2001年,Boneh和Franklin利用双线性对成功地设计了一个基于身份的加密方案(IBE),解决了传统公钥密码体制可信第三方的密钥托管问题。此后,双线性已逐渐成为密码学的热点,并被广泛应用于基于身份的密码、短签名、广播加密、三方密钥协商、同态加密等常规公钥加密系统无法实现的加密应用中。
双线性对是一个映射,它可以把椭圆曲线上的两个输入点P和Q映射到有限域中的一个元素。但是双线性对的计算相比椭圆曲线上的运算更复杂,已成为制约着Paring快速推广的巨大障碍。2004年,Miller算法的应用已使Paring的计算首次降到多项式时间内。不断改进算法执行效率仍是双线性研究的一个重要的方向。作为一种加密标准,双线性对的安全性问题也同样被研究者高度关注。当前针对双线性对的攻击方法主要分故障攻击(Fault Attack)和功耗分析攻击(DPA)两大类。其中,功耗分析攻击的最新研究已表明了二元和三元复合扩域上的pairing加密不再安全,最新的研究已转到素数域下。Mrabet证明了在Edwards坐标系下,无论是Q或者P作为私钥,基于Pairing的密码算法都是能被错误攻击所破解。为此,研究者相继构造出了Tate、Ate等多种双线性对加密协议。其中最新出现的optimal ate双线性对因其曲线参数的选取和构造举要较高的安全性,但针对其硬件实现的速度和防护措施的优化仍需进一步研究。Page等人在针对Tate双线性对故障攻击的研究中提出了点盲化的防御策略,为构造新型的公钥密码体制提供了一条崭新的思路。
但目前尚无成熟技术报道。
发明内容
为克服现有技术的不足,本发明旨在针对BN曲线上的optimal ate双线性对算法设计一种实用的双线性对加密方案。从硬件实现的角度提升算法的计算效率并进一步节省计算资源,从根本上缩减加解密时间和空间开销。同时针对故障攻击和功耗攻击等侧信道攻击方法,使用合理的抗攻击防护措施,有效的提升双线性对加密的安全性,为双线性对加密方法替代目前主流的加密体系提供一种可能。本发明采用的技术方案是,基于点盲化方法的优化自动双线性对加密方法,包括加密和解密两部分,并由证书颁发机构CA利用随机参数s∈[1,p-1],p为素域的特征,提前给出公钥Kp=sPCA,以及私钥dA=sIDA,此处PCA为公开参数,IDA为用户的身份信息;假设用户B要加密消息给用户A,为双线性对,P、Q均为输入的形参,那么:
加密过程中:P为公钥Kp,Q为用户身份信息IDA,用户B随机选择整数τ∈[1,p-1],计算C1=τPCA并把(C1,C2)作为密文发送给A;
解密过程中:P为密文C1,Q为私钥dA,用户A收到密文(C1,C2),计算恢复出明文信息。
双线性对映射算法BN曲线为以下方程所示的一组椭圆曲线:
EBN:y2=x3+b,(且b≠0);
构造BN曲线的参数包括有限域的特征p(t),r次扰点群的阶r(t)以及frobenius映射的迹(trace)tr(t),这些都能够表示为参数t的函数,为此设计可选择SM2加密标准推荐的梅森素数优化运算:
p(t)=36t4+36t3+24t2+6t+1,
r(t)=36t4+36t3+18t2+6t+1,
tr(t)=6t2+1;
此处参数t可选择任意整数且需保证p(t)、r(t)均为不超过256bit的素数;
该族椭圆曲线的嵌入次数k=12,因此该optimal ate双线性对加密需要在12次扩域中运算,扩域运算为素域运算的扩展,通过三次有限域的扩展完成从素域到12次扩域的扩展,其有限域的扩展方式为:
表示扩域,k>1;u、v、w分别为扩域的根,计算时满足u2=-5,v3=u,w3=v;optimal ate双线性对算法可分为Miller循环、Frobenius自同态映射和FE模幂三部分,Miller循环由扩域运算和椭圆曲线上的点加、点倍构成;FE模幂则包括了扩域运算和frobenius映射;点加、点倍、frobenius映射和扩域运算都可分解为素域上的模加减和模乘运算,其输入P为BN曲线上素域有理点群中的点,作为加密时的公钥或解密时的密文C1,构造方法为Ker表示线性映射的核,πp(x,y)为Frobenius映射,x,y为坐标;输入Q属于BN曲线上n次绕点群的子群,作为解密时的私钥或加密时的身份信息IDA,构造方法为该点为12次扩域上的有理点。
利用双线性映射的对称性公式对输入信息进行盲化,为一步标量乘运算,其中δ∈[1,p-1]为随机参数,同时需将δ和δ的逆同时参数化并用NAF格式表示,进一步降低标量乘循环计算次数提升计算效率。
需要在12次扩域中运算具体包括Miller循环、Frobenius映射、FE模幂操作,Miller循环包括点加和点倍两种操作,令点T(XT,YT,ZT)、Q(XQ,YQ,ZQ)表示为雅克比坐标,参照点P(xP,yP)使用仿射坐标表示,则点倍、点加可分别计算为:
点倍R=2T、lT,T(P):
XR=9XT 4-8XTYT 2
YR=3XT 2(4XTYT 2-XR)-8XT 4
ZR=2YTZT
lT,T(P)=2ZRYT 2yP-(6XT 2ZT 2xP)W+(6XT 3-4YT 2)W2
点加R=T+Q、lT,Q(P):
XR=(2YQZT 2-2YT)2-4(XQZT 2-XT)3-8(XQZT 2-XT)2XT
YR=(2YQZT 2-2YT)(4(XQZT 2-XT)2XT-XR)-8(XQZT 2-XT)3YT
ZR=2(XQZT 2-XT)ZT
lT,Q(P)=2ZRyP-4(YQZT 3+YT)xPW+(4XQ(YQZT 3-YT)-2YQZR)W2
Frobenius映射πp(x,y)=(xp,yp),其中指数p为有限域的特征,利用BN曲线下共轭运算特性通过取反操作求得;
FE模幂操作,多次利用特殊参数下的共轭操作替换复杂的扩域模幂计算,将指数(p12-1)/r划分为(p6-1)、(p2+1)和(p4-p2+1)/r三部分,其中f^(p6-1)(p2+1)两部分可利用BN曲线下共轭运算特性求得;第三步(p4-p2+1)/r使用分解方法,将该指数分解为式中λ=f^(p6-1)(p2+1)且y1=λ-1y3=λ-ptt为生成p(t)、r(t)的参数;
以上各步骤均为扩域上的算术运算,计算方法由素域运算的扩展得出;根据有限域的扩展方法,将12次扩域上的数表示为多项式形式:
A=a0+a1u+(a2+a3u)v+(a4+a5u)v2+(a6+a7u+(a8+a9u)v+(a10+a11u)v2)w
其中a0~a11均为素域中的数,u、v、w分别为扩域的根,计算时满足u2=-5,v3=u,w3=v,进而将扩域运算转化为素域运算。
基于点盲化方法的优化自动双线性对加密装置,由IO模块、存储模块、Fp运算核和状态机四部分组成。其中,存储模块共包括4块数据ram分别存放操作数X、Y、模数P和运算结果R;IO模块控制对ram的读写,Fp运算核为执行单元对ram中的操作数进行运算,Fp运算核内部包含模加减和模乘三个模块,此外还有状态机负责控制完成相应的操作。工作时首先由Din端输入操作数,状态机在系统未启动时产生控制信号,控制IO模块对ram的读写;start信号启动后,状态机将ram的读写控制权交给Fp运算核,并由Mode信号选择模加减或模乘中的一个功能进行运算,运算结束后将结果写回ram,状态机将系统状态置为空闲,同时使IO重新获得ram控制权,系统按程序顺序写入操作数进行下一步运算。
IO模块、存储模块、Fp运算核和状态机四部分集成在可编程门阵列FPGA上,工作流程是采用c语言调用Fp硬件模块实现,并按照扩域运算、椭圆曲线运算、双线性对映射的顺序依次搭建相应运算模块并最终完成;其中,采用Miller循环进行标量乘运算,完成对密钥信息P、Q进行盲化,之后进行Miller循环、Frobenius映射、FE模幂操作,Miller循环包括点加和点倍两种操作;Frobenius映射为取反操作;FE模幂操作采用共轭操作替换实现;最后FE模幂操作的输出就是原始密钥加密的结果。
模乘模块使用基于蒙哥马利算法的高基FIOS算法,选择64bit的字的乘加运算作为基本运算单元。
本发明的特点及有益效果是:
本发明使用FPGA平台做硬件设计,实现了基于点盲化方法的optimal ate双线性对加密方案。本发明在硬件架构上实现了256-bit素域运算模块以及基于蒙哥马利算法的FIOS硬件模乘器,提高模乘运算性能。算法上,本发明使用NAF非相邻格式的指数表示方法降低模幂及Miller循环操作次数。同时结合了点盲化的防御策略保护密钥信息,有效抵御DPA和故障攻击,极大的提升了整个optimal ate双线性对加密系统的安全性。
附图说明:
图1 Optimal Ate双线性对算法层次图。
图2蒙哥马利算法运算单元示意图。
图3 FIOS蒙哥马利算法流程图。
图4素域运算模块架构图。
图5系统硬件模块架构图。
图6加密系统算法流程图。
具体实施方式
本发明设计了一种基于点盲化方法的双线性对加密方案。设计使用了基于Barreto-Naehrig(BN)曲线的256位optimal ate双线性对加密算法。该算法具有较少的Miller循环次数,同时又因其参数选择的灵活性而具有较大的优化空间和较高的安全性。硬件结构上,对于计算效率影响较大的模乘操作,本发明使用了基于蒙哥马利方法的FIOS算法,使系统在硬件结构上充分提高硬件的并行性,改善模乘的运算效率。针对故障攻击和DPA攻击,设计将在加密输入端对信息使用点盲化技术,大大提升了双线性对加密方案的安全性。
本发明为设计出高效安全的双线性对密码协处理器方案,选择了基于BN曲线上的optimal ate双线性对算法作为基本加密算法,保证加密过程中所有的运算都在有限域下进行。一个完整的双线性对加密系统可根据运算域的不同划分为如图1所示的四个层次,每个层次的运算都由其下层的运算构成。
一个完整的双线性对加密系统可根据运算域的不同划分为如图1所示的四个层次,每个层次的运算都由其下层的运算构成。其中,Miller循环由扩域运算和椭圆曲线上的点加、点倍构成;FE模幂则包括了扩域运算和frobenius映射;点加、点倍、frobenius映射和扩域运算都可分解为素域上的模加减和模乘运算。针对底层素域上的运算,设计出合理的硬件运算模块,特别针对加密运算核心的模乘操作,使用基于蒙哥马利模乘算法的FIOS优化算法提高模乘运算的并行性。对于扩域上的点加点倍等上层运算则应由软件编译并调用硬件模块来实现。由于Miller循环主要是扩域上点加运算的循环,设计将指数利用非相邻形式编码方法(NAF)重新编码,进一步降低Miller循环的次数。同时利用指数分解和共轭求逆技术将FE模幂操作中的模逆运算降到最低。针对可能的故障攻击和DPA攻击,在程序输入段利用点盲化技术保护使用者的输入信息,提高设计的抗攻击性。
一个完整的双线性对密码方案包括加密和解密两部分,并由证书颁发机构(CA)利用随机参数s∈[1,p-1]提前给出公钥Kp=sPCA,以及私钥dA=sIDA,此处PCA为公开参数,IDA为用户的身份信息。假设用户B要加密消息给用户A,为双线性对,那么:加密过程中:P为公钥,Q为用户A身份信息IDA,用户B随机选择整数τ∈[1,p-1],计算C1=τPCA并把(C1,C2)作为密文发送给A;
解密过程中:P为密文C1,Q为私钥dA,用户A收到密文(C1,C2),计算恢复出明文信息
这里为双线性对映射算法,是双线性对密码方案的计算部分,也是影响速度和安全性等加密性能的关键,其余加减运算均为扩域上的模运算。本设计选择2010年由Vercauteren Frederik提出的optimal ate双线性算法作为双线性对的执行算法。
算法1是本发明基于BN曲线上的optimal ate双线性对加密方案的完整算法。参数的选择对双线性对加密方案的计算效率和安全性有着重要影响。本发明所选择的BN曲线为以下方程所示的一组椭圆曲线:
EBN:y2=x3+b(b≠0);
构造BN曲线的主要参数包括有限域的特征p(t),r次扰点群的阶r(t)以及frobenius映射的迹(trace)tr(t),这些都可以表示为参数t的函数,为此设计可选择SM2加密标准推荐的梅森素数优化运算:
p(t)=36t4+36t3+24t2+6t+1,
r(t)=36t4+36t3+18t2+6t+1,
tr(t)=6t2+1;
在本专利中t=262-254+244,该数值保证了p(t)、r(t)均为不超过256bit的素数。
该族椭圆曲线的嵌入次数k=12,因此该optimal ate双线性对加密需要在12次扩域中运算。扩域运算为素域运算的扩展,本发明所选算法通过三次有限域的扩展完成从素域到12次扩域的扩展,其有限域的扩展方式为:
optimal ate双线性对算法可分为Miller循环、Frobenius自同态映射和FE模幂三部分。本设计选择输入P为BN曲线上素域有理点群中的点,作为加密时的公钥或解密时的密文C1,构造方法为输入Q为BN曲线上n次绕点群的子群,作为解密的私钥或加密的身份信息IDA,构造方法为该点为12次扩域上的有理点。
算法1、optimal ate双线性对算法
在双线性对加密中,输入端的信息私钥Q是整个系统安全性的关键,已出现多种针对性的DPA和故障攻击方法。为此系统利用双线性映射的对称性利用公式对输入信息进行盲化,如图6所示。该操作可视为一步标量乘运算,同时需将δ和δ的逆同时参数化并用NAF格式表示,进一步降低标量乘循环计算次数提升计算效率。根据椭圆曲线离散对数问题的困难性,盲化后的信息几乎不可能被恢复。盲化操作在数据输入端完成,因此之后正真的加密部分便不再有密钥信息出现,这就有效抵御了大多数的DPA和故障攻击手段,提高了系统的安全性。
算法1中的第1步到第8步为Miller循环,包括点加和点倍两种操作。其中第4行为点倍运算,第5、6两行为点加运算本。令点T(XT,YT,ZT)、Q(XQ,YQ,ZQ)表示为雅克比坐标,参照点P(xP,yP)使用仿射坐标表示,则点倍、点加可分别计算为:
点倍R=2T、lT,T(P):
XR=9XT 4-8XTYT 2
YR=3XT 2(4XTYT 2-XR)-8XT 4
ZR=2YTZT
lT,T(P)=2ZRYT 2yP-(6XT 2ZT 2xP)W+(6XT 3-4YT 2)W2
点加R=T+Q、lT,Q(P):
XR=(2YQZT 2-2YT)2-4(XQZT 2-XT)3-8(XQZT 2-XT)2XT
YR=(2YQZT 2-2YT)(4(XQZT 2-XT)2XT-XR)-8(XQZT 2-XT)3YT
ZR=2(XQZT 2-XT)ZT
lT,Q(P)=2ZRyP-4(YQZT 3+YT)xPW+(4XQ(YQZT 3-YT)-2YQZR)W2
上述公式保证了Miller循环中包含的全部运算均为扩域上的加减和乘法运算。对于Miller循环和FE模幂运算中的指数,发明使用了NAF非相邻表达形式。设指数e的位宽为L,利用NAF形式可表示为其中ei∈{-1,0,1}。该表达式为带符号的二进制形式,且表达式是没有任何两个相邻位权值同时非0,这就大大减少了Miller循环和模幂操作的计算次数,提高了计算效率。
算法第9行为Frobenius映射πp(x,y)=(xp,yp),其中指数p为有限域的特征,因此可利用BN曲线下共轭运算特性则可通过简单的取反操作求得。
算法的第12行为FE模幂操作,该步执行前在第10、11行首先执行两步点加运算。对于FE模幂操作,设计多次利用了特殊参数下的共轭操作替换复杂的扩域模幂计算,将指数(p12-1)/r划分为(p6-1)、(p2+1)和(p4-p2+1)/r三部分。其中f^(p6-1)(p2+1)两部分可利用BN曲线下共轭运算特性求得。第三步(p4-p2+1)/r由于包含分数r计算较为复杂。设计使用了Scott等人在08年提出的分解方法,将该指数分解为 式中λ=f^(p6-1)(p2+1)且y1=λ-1 y3=λ-pt该方法可充分利用扩域中的共轭操作替换复杂的模幂操作,同时将模逆操作的次数降到最低。
以上各步骤均为扩域上的算术运算,计算方法可由素域运算的扩展得出。根据本设计所选取的有限域的扩展方法,可将12次扩域上的数表示为多项式形式:
A=a0+a1u+(a2+a3u)v+(a4+a5u)v2+(a6+a7u+(a8+a9u)v+(a10+a11u)v2)w
其中a0~a11均为素域中的数,u、v、w分别为扩域的根,计算时满足u2=-5,v3=u,w3=v,进而将扩域运算转化为素域运算。
双线性对算法的底层为素域上的模加、模减和模乘运算。本发明对此设计了专门的硬件模块以提高加密系统的运算速度。特别是对加密速度有着关键性影响的模乘模块,本发明使用了基于蒙哥马利算法的高基FIOS算法,其基本架构如图2所示。通过对比不同位宽的基导致的计算速度和时钟周期数的差异,设计选择了64bit的字作为基本运算单元,其算法流程如图3所示。由于该模块采用按字相乘实现,保证了计算速度;而且核心运算只有(c,z)=a+xy+b一种,所有的运算可以用同一硬件完成,节省了芯片了面积。
算法2、FIOS蒙哥马利算法
素域上的硬件设计除了模乘模块外还包括模加和模减模块。模加减操作的算法较简单,为了便于上层模块的统一调度,设计同样采用了64-bit基作为基本运算单元。模乘、模加和模减三个模块共同构成素域的运算核心单元,如图4所示。其中的加减操作由超前进位加法器(CLA)完成,若结果越界则先由32压缩器执行A+B-P或A-B+P,再对压缩后的结果使用CLA相加。对于256-bit的操作数只需12个周期便可完成全部模加减运算。
图5为素域模块的整体硬件架构图,整个模块由IO模块、存储模块、Fp运算核和状态机四部分组成。其中,Ram_block共包括4块数据ram(大小16×64bit)分别存放操作数X、Y、模数P和运算结果R。IO模块控制对ram的读写,Fp运算核为执行单元对ram中的操作数进行运算,Fp运算核内部包含模加减和模乘三个模块,此外还有状态机负责控制完成相应的操作。工作时首先由Din端输入操作数,状态机在系统未启动时产生控制信号,控制IO模块对ram的读写;start信号启动后,状态机将ram的读写控制权交给Fp运算核,并由Mode信号选择模加减或模乘中的一个功能进行运算,运算结束后将结果写回ram,状态机将系统状态置为空闲,同时使IO重新获得ram控制权,系统按程序顺序写入操作数进行下一步运算。
素域模块的硬件架构共有五个端口,在vertex 5 FPGA上将由userlogic中的14个寄存器控制硬件端口信号的读写。双线性对算法的上层运算将由c语言调用Fp硬件模块实现,并按照扩域运算、椭圆曲线运算、双线性对映射的顺序依次搭建完成。整个optimal ate双线性对加密系统了算法流程如图6所示。其中输入端标量乘模块完成密钥信息P、Q进行盲化,之后的Miller循环等都是对盲化后的信息进行运算。根据双线性映射的特点,由于输入所乘的参数互为模逆,最后经过FE阶段的输出就是原始密钥加密的结果。这就有效抵御了大多数侧信道攻击手段,提高了系统的安全性。
下面结合附图及实例,对本发明进行进一步详细说明。应该指出,此处所描述的具体实施实例仅仅用以解释本发明,并不用于限定本发明。为使本发明的目的、技术方案和优点更加清晰,本实例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。
本发明选择基于BN曲线上的optimal ate双线性对算法作为基本加密算法,首先需要选择曲线参数并构造有限域。设计BN曲线EBN:y2=x3+b(b≠0)作为椭圆曲线点群的构造曲线,同时选择参数t=262-254+244生成有限域的特征p(t),r次扰点群的阶r(t)以及frobenius映射的迹tr(t)的生成参数。该参数符合SM2加密标准推荐的梅森素数形式,可大幅提高模运算的计算效率。
针对素域模块,按图5所示的结构设计出模加减和模乘模块。设计时核心运算采用64bit位宽,是每一个数据端口对应userlogic中的两个寄存器。模乘采用基于蒙哥马利模乘的FIOS算法,避免了复杂的除法运算。状态机负责接受控制信号并决定算数核心的运行。在运算结束后,系统返回空闲信号以使外部可对ram进行读写。硬件模块的Verilog框架可表示为:
上层扩域运算以Fp模块为基础,通过xilinx EDK工具使用C语言软件调用userlogic实现。Userlogic将硬件模块端口与寄存机链接,使上层扩域的操作表现为对寄存器的读写。根据EDK提供的寄存器地址和读写函数,对硬件模块的读写和控制操作可写为:
点盲化的防御方法需要对输入密钥使用公式执行标量乘运算。设计将δ以参数的形式固化到程序中。由于标量乘运算实际执行的是类似Miller循环中的点加点倍迭代过程,这里将参数δ转化为NAF非相邻形式以减少循环次数。盲化后的密钥将按照图6所示的算法流程进行加密。其在vertex 5上的C语言代码结构为:
加密过程中:用户B随机选择整数τ∈[1,p-1],计算C1=τPCA
最后把(C1,C2)作为密文发送给A
解密过程中:用户A利用私钥dA,计算
恢复出明文信息m。
使用以上代码在Vertex 5平台下运行加密,对比得到的密文和magma高等代数仿真软件结果是否相同。代码中Miller循环和FE算法也可以使用更安全的算法加以改进,进一步提高系统的抗攻击性。
符号说明:
(1)Miller循环为Victor Miller在1986提出的用于加速椭圆曲线上点的标量乘计算的算法,对应算法1中的第1-8行;
(2)FE模幂为双线性对映射结果的幂运算,对应算法1中的第12行;
(3)表示双线性映射,在本文中为Optimal Ate双线性对算法;
(4)表示素域,表示扩域,其中p为有限域的特征p(t);
(5)EBN:y2=x3+b(b≠0)为本设计构造点群所用的BN曲线。
(6)FE模幂运算中,表示f的共轭,指数(p12-1)/r中的p为有限域的特征,r即r次扰点群的阶r(t)。
(7)Ker表示线性映射的核(kernel)、δ、s、τ∈[1,p-1]均为随机选择的参数。

Claims (7)

1.一种基于点盲化方法的优化自动双线性对加密方法,其特征是,包括加密和解密两部分,并由证书颁发机构CA利用随机参数s∈[1,p-1],p为素域的特征,提前给出公钥Kp=sPCA,以及私钥dA=sIDA,此处PCA为公开参数,IDA为用户的身份信息;假设用户B要加密消息给用户A,为双线性对,P、Q均为输入的形参,那么:
加密过程中:P为公钥Kp,Q为用户身份信息IDA,用户B随机选择整数τ∈[1,p-1],计算C1=τPCA并把(C1,C2)作为密文发送给A;
解密过程中:P为密文C1,Q为私钥dA,用户A收到密文(C1,C2),计算恢复出明文信息。
2.如权利要求1所述的基于点盲化方法的优化自动双线性对加密方法,其特征是,双线性对映射算法BN曲线为以下方程所示的一组椭圆曲线:
EBN:y2=x3+b,b≠0;
构造BN曲线的参数包括有限域的特征p(t),r次扰点群的阶r(t)以及frobenius映射的迹(trace)tr(t),这些都能够表示为参数t的函数,为此设计可选择SM2加密标准推荐的梅森素数优化运算:
p(t)=36t4+36t3+24t2+6t+1,
r(t)=36t4+36t3+18t2+6t+1,
tr(t)=6t2+1;
此处参数t可选择任意整数且需保证p(t)、r(t)均为不超过256bit的素数;
该族椭圆曲线的嵌入次数k=12,因此该optimal ate双线性对加密需要在12次扩域中运算,扩域运算为素域运算的扩展,通过三次有限域的扩展完成从素域到12次扩域的扩展,其有限域的扩展方式为:
表示扩域,k>1;u、v、w分别为扩域的根,计算时满足u2=-5,v3 =u,w3=v ;optimalate双线性对算法可分为Miller循环、Frobenius自同态映射和FE模幂三部分,Miller循环由扩域运算和椭圆曲线上的点加、点倍构成;FE模幂则包括了扩域运算和frobenius映射;点加、点倍、frobenius映射和扩域运算都可分解为素域上的模加减和模乘运算,其输入P为BN曲线上素域有理点群中的点,作为加密时的公钥或解密时的密文C1,构造方法为Ker表示线性映射的核,πp(x,y)为Frobenius映射,x,y为坐标;输入Q属于BN曲线上n次绕点群的子群,作为解密时的私钥或加密时的身份信息IDA,构造方法为该点为12次扩域上的有理点。
3.如权利要求1所述的基于点盲化方法的优化自动双线性对加密方法,其特征是,利用双线性映射的对称性公式对输入信息进行盲化,为一步标量乘运算,其中δ∈[1,p-1]为随机参数,同时需将δ和δ的逆同时参数化并用NAF格式表示,进一步降低标量乘循环计算次数提升计算效率。
4.如权利要求1所述的基于点盲化方法的优化自动双线性对加密方法,其特征是,需要在12次扩域中运算具体包括Miller循环、Frobenius映射、FE模幂操作,Miller循环包括点加和点倍两种操作,令点T(XT,YT,ZT)、Q(XQ,YQ,ZQ)表示为雅克比坐标,参照点P(xP,yP)使用仿射坐标表示,则点倍、点加可分别计算为:需要在12次扩域中运算具体包括Miller循环、Frobenius映射、FE模幂操作,Miller循环包括点加和点倍两种操作,令点T(XT,YT,ZT)、Q(XQ,YQ,ZQ)表示为雅克比坐标,参照点P(xP,yP)使用仿射坐标表示,则点倍、点加可分别计算为:
点倍R=2T、lT,T(P):
XR=9XT 4-8XTYT 2
YR=3XT 2(4XTYT 2-XR)-8XT 4
ZR=2YTZT
lT,T(P)=2ZRYT 2yP-(6XT 2ZT 2xP)W+(6XT 3-4YT 2)W2
点加R=T+Q、lT,Q(P):
XR=(2YQZT 2-2YT)2-4(XQZT 2-XT)3-8(XQZT 2-XT)2XT
YR=(2YQZT 2-2YT)(4(XQZT 2-XT)2XT-XR)-8(XQZT 2-XT)3YT
ZR=2(XQZT 2-XT)ZT
lT,Q(P)=2ZRyP-4(YQZT 3+YT)xPW+(4XQ(YQZT 3-YT)-2YQZR)W2
Frobenius映射πp(x,y)=(xp,yp),其中指数p为有限域的特征,利用BN曲线下共轭运算特性通过取反操作求得;
FE模幂操作,多次利用特殊参数下的共轭操作替换复杂的扩域模幂计算,将指数(p12-1)/r划分为(p6-1)、(p2+1)和(p4-p2+1)/r三部分,其中f^(p6-1)(p2+1)两部分可利用BN曲线下共轭运算特性求得;第三步(p4-p2+1)/r使用分解方法,将该指数分解为式中λ=f^(p6-1)(p2+1)且y1=λ-1y3=λ-ptt为生成p(t)、r(t)的参数;
以上各步骤均为扩域上的算术运算,计算方法由素域运算的扩展得出;根据有限域的扩展方法,将12次扩域上的数表示为多项式形式:
A=a0+a1u+(a2+a3u)v+(a4+a5u)v2
+(a6+a7u+(a8+a9u)v+(a10+a11u)v2)w
其中a0~a11均为素域中的数,u、v、w分别为扩域的根,计算时满足u2=-5,v3=u,W3=v,进而将扩域运算转化为素域运算。
5.一种基于点盲化方法的优化自动双线性对加密装置,其特征是,基于点盲化方法的优化自 动双线性对加密装置,由IO模块、存储模块、Fp运算核和状态机四部分组成。其中,存储模块共包括4块数据ram分别存放操作数X、Y、模数P和运算结果R;IO模块控制对ram的读写,Fp运算核为执行单元对ram中的操作数进行运算,Fp运算核内部包含模加减和模乘三个模块,此外还有状态机负责控制完成相应的操作。工作时首先由Din端输入操作数,状态机在系统未启动时产生控制信号,控制IO模块对ram的读写;start信号启动后,状态机将ram的读写控制权交给Fp运算核,并由Mode信号选择模加减或模乘中的一个功能进行运算,运算结束后将结果写回ram,状态机将系统状态置为空闲,同时使IO重新获得ram控制权,系统按程序顺序写入操作数进行下一步运算。
6.如权利要求5所述的基于点盲化方法的优化自动双线性对加密装置,其特征是,IO模块、存储模块、Fp运算核和状态机四部分集成在可编程门阵列FPGA上,工作流程是采用c语言调用Fp硬件模块实现,并按照扩域运算、椭圆曲线运算、双线性对映射的顺序依次搭建相应运算模块并最终完成;其中,采用Miller循环进行标量乘运算,完成对密钥信息P、Q进行盲化,之后进行Miller循环、Frobenius映射、FE模幂操作,Miller循环包括点加和点倍两种操作;Frobenius映射为取反操作;FE模幂操作采用共轭操作替换实现;最后FE模幂操作的输出就是原始密钥加密的结果。
7.如权利要求5所述的基于点盲化方法的优化自动双线性对加密装置,其特征是,模乘模块使用基于蒙哥马利算法的高基FIOS算法,选择64bit的字的乘加运算作为基本运算单元。
CN201610351469.9A 2016-05-24 2016-05-24 基于点盲化方法的优化自动双线性对加密方法及装置 Expired - Fee Related CN106100844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610351469.9A CN106100844B (zh) 2016-05-24 2016-05-24 基于点盲化方法的优化自动双线性对加密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610351469.9A CN106100844B (zh) 2016-05-24 2016-05-24 基于点盲化方法的优化自动双线性对加密方法及装置

Publications (2)

Publication Number Publication Date
CN106100844A true CN106100844A (zh) 2016-11-09
CN106100844B CN106100844B (zh) 2020-08-18

Family

ID=57229880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610351469.9A Expired - Fee Related CN106100844B (zh) 2016-05-24 2016-05-24 基于点盲化方法的优化自动双线性对加密方法及装置

Country Status (1)

Country Link
CN (1) CN106100844B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106911475A (zh) * 2017-01-10 2017-06-30 中国科学院信息工程研究所 一种Tate配对的实现方法及其电路结构
CN108268779A (zh) * 2016-12-30 2018-07-10 航天信息股份有限公司 一种用于对发票进行短密文签名的处理方法及系统
CN109361519A (zh) * 2018-12-07 2019-02-19 武汉理工大学 一种改进的包含秘密的数的生成方法及系统
CN109756335A (zh) * 2018-12-28 2019-05-14 江宝安 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
CN109981276A (zh) * 2019-01-21 2019-07-05 北京交通大学 一种zk-snark底层双线性对的国密替代实现方法
US10841118B2 (en) 2016-11-09 2020-11-17 Sercomm Corporation Automatic pairing method and server
CN111556072B (zh) * 2020-05-12 2020-12-08 深圳市汇智通咨询有限公司 一种改进索引加密算法与系统
CN112131616A (zh) * 2020-09-15 2020-12-25 郑州信大捷安信息技术股份有限公司 一种sm2算法的掩码运算方法及装置
CN112436941A (zh) * 2020-11-03 2021-03-02 海光信息技术股份有限公司 支持标识密码算法的协处理器、方法、芯片及电子设备
CN114143005A (zh) * 2021-11-15 2022-03-04 武汉大学 一种Tate双线性对及其变体的加速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831754A (zh) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 一种椭圆曲线密码系统及实现方法
CN104038341A (zh) * 2014-06-20 2014-09-10 北京航空航天大学 一种基于身份的跨系统代理重加密方法
CN104168108A (zh) * 2014-07-28 2014-11-26 北京航空航天大学 一种泄露密钥可追踪的属性基混合加密方法
CN104579648A (zh) * 2013-10-16 2015-04-29 上海华虹集成电路有限责任公司 一种三元域抗错误攻击Tate双线性对计算方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831754A (zh) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 一种椭圆曲线密码系统及实现方法
CN104579648A (zh) * 2013-10-16 2015-04-29 上海华虹集成电路有限责任公司 一种三元域抗错误攻击Tate双线性对计算方法
CN104038341A (zh) * 2014-06-20 2014-09-10 北京航空航天大学 一种基于身份的跨系统代理重加密方法
CN104168108A (zh) * 2014-07-28 2014-11-26 北京航空航天大学 一种泄露密钥可追踪的属性基混合加密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CONG TANG等: "SKIP: A Secure Key Issuing Scheme for Peer-to-Peer Networks", 《IEEE》 *
丁兆晶等: "针对双线性对密码算法的分支故障攻击", 《密码学报》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10841118B2 (en) 2016-11-09 2020-11-17 Sercomm Corporation Automatic pairing method and server
CN108268779A (zh) * 2016-12-30 2018-07-10 航天信息股份有限公司 一种用于对发票进行短密文签名的处理方法及系统
CN108268779B (zh) * 2016-12-30 2022-03-04 航天信息股份有限公司 一种用于对发票进行短密文签名的处理方法及系统
CN106911475A (zh) * 2017-01-10 2017-06-30 中国科学院信息工程研究所 一种Tate配对的实现方法及其电路结构
CN109361519A (zh) * 2018-12-07 2019-02-19 武汉理工大学 一种改进的包含秘密的数的生成方法及系统
CN109361519B (zh) * 2018-12-07 2020-06-19 武汉理工大学 一种改进的包含秘密的数的生成方法及系统
CN109756335A (zh) * 2018-12-28 2019-05-14 江宝安 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
CN109756335B (zh) * 2018-12-28 2022-04-15 江宝安 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
CN109981276A (zh) * 2019-01-21 2019-07-05 北京交通大学 一种zk-snark底层双线性对的国密替代实现方法
CN111556072B (zh) * 2020-05-12 2020-12-08 深圳市汇智通咨询有限公司 一种改进索引加密算法与系统
CN112131616A (zh) * 2020-09-15 2020-12-25 郑州信大捷安信息技术股份有限公司 一种sm2算法的掩码运算方法及装置
CN112131616B (zh) * 2020-09-15 2022-02-18 郑州信大捷安信息技术股份有限公司 一种sm2算法的掩码运算方法及装置
CN112436941A (zh) * 2020-11-03 2021-03-02 海光信息技术股份有限公司 支持标识密码算法的协处理器、方法、芯片及电子设备
CN114143005A (zh) * 2021-11-15 2022-03-04 武汉大学 一种Tate双线性对及其变体的加速方法
CN114143005B (zh) * 2021-11-15 2023-12-08 武汉大学 一种Tate双线性对及其变体的加速方法

Also Published As

Publication number Publication date
CN106100844B (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN106100844A (zh) 基于点盲化方法的优化自动双线性对加密方法及装置
Gutub et al. Hybrid crypto hardware utilizing symmetric-key and public-key cryptosystems
CN105933102A (zh) 利用隐秘矩阵构造的基于身份的全同态加密方法
JP4682852B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN104135473B (zh) 一种由密文策略的属性基加密实现身份基广播加密的方法
CN107239708A (zh) 一种基于量子混沌映射和分数域变换的图像加密方法
CN100428140C (zh) 椭圆曲线密码体制协处理器的实现方法
CN109039640A (zh) 一种基于rsa密码算法的加解密硬件系统及方法
CN102006161B (zh) 一种对称密钥加密的非线性变换方法及其实现装置
CN104917608B (zh) 一种密钥抗功耗攻击的方法
CN107769910A (zh) 一种基于Latch PUF的抗边信道攻击DES防护方法及电路
CN109327304A (zh) 一种云计算中实现隐私保护的轻量级同态加密方法
CN107425971A (zh) 终端及其无证书的数据加/解密方法和装置
KR20220052858A (ko) Aes 카운터 모드 암호화에서 쿼시그룹 연산으로 암호화된 정수들을 가산하고 비교하기 위한 시스템 및 방법
CN105635135A (zh) 一种基于属性集及关系谓词的加密系统及访问控制方法
CN115801224B (zh) 一种云计算环境中支持浮点数运算的全同态加密方法
CN102279840B (zh) 一种适用于信息加密技术应用的素数族快速生成方法
Attaullah et al. Cryptosystem techniques based on the improved Chebyshev map: an application in image encryption
Kumar et al. A cryptographic model based on logistic map and a 3-D matrix
CN105871552A (zh) 双核并行rsa密码处理方法及协处理器
CN106788963A (zh) 一种改进的格上基于身份的全同态加密方法
CN103812658B (zh) 一种基于流密码的安全通信协议
CN108650072A (zh) 一种支持多种对称密码算法芯片及其抗攻击电路实现方法
CN106559224A (zh) 一种基于证书的抗持续泄漏加密系统及方法
CN103684748B (zh) 对称式加解密方法、对称式加解密系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20200818

Termination date: 20210524