一种新型的椭圆曲线密码协处理器的制作方法

文档序号:7613207阅读:216来源:国知局
专利名称:一种新型的椭圆曲线密码协处理器的制作方法
技术领域
本发明主要应用于信息安全领域,用以保证重要、敏感信息的机密性、完整性与不可抵赖性等。
背景技术
椭圆曲线作为代数几何中的重要问题已有100多年的研究历史,但是直到1986年才引入到密码学中,在其提出的早期由于缺乏产生椭圆曲线基本应用参数的有效算法,一直未引起人们的重视,直到1993年才使这一密码体制得以有效的实现。椭圆曲线密码体制(Elliptic Curve Cryptosystem ECC)是一种公钥密码体制,其安全性是基于求椭圆曲线上离散对数的困难性。ECC密码算法之所以引起人们地广泛关注,是因为它除了理论上的意义之外,还有密钥长度短,加密系统的参数选取灵活方便的优点。
ECC与目前广泛应用的RSA(Rivest Shauir Adleuan)密码算法相比,有着很多技术优点
(1)安全性能更高。加密算的安全性能一般通过该算法的抗攻击强度来反映。ECC和其他几种公钥系统相比,其抗攻击性具有绝对的优势。椭圆曲线的离散对数计算困难性在计算复杂度上目前是完全指数级,而RSA是亚指数级的。这体现ECC比RSA的每比特安全性能更高。
(2)计算量小和处理速度快。在一定的相同的计算资源条件下,虽然在RSA公钥处理速度上(加密和签名验证)与ECC有可比性,但在私钥的处理速度上(解密和签名),ECC远比RSA快得多。因此ECC总的速度比RSA要快得多。同时ECC系统的密钥生成速度比RSA快百倍以上。因此在相同条件下,ECC则有更高的加密性能。
(3)存储空间占用小。ECC的密钥尺寸和系统参数与RSA相比要小得多。160位ECC与1024位RSA具有相同的安全强度,210位ECC则与2048位RSA具有相同的安全强度。意味着它所占的存贮空间要小得多。这对于加密算法在资源受限环境上(如智能卡等)的应用具有特别重要的意义。
(4)带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。而公钥加密系统多用于短消息,例如用于数字签名和用于对对称系统的会话密钥传递。带宽要求低使ECC在无线网络领域具有广泛的应用前景。
ECC的这些特点使它在某些领域(如手机、智能卡)的应用将取代RSA,并成为通用的公钥加密算法。许多国际标准化组织(政府、工业界、金融界、商业界等)已将各种椭圆曲线密码体制作为其标准化文件向全球颁布。ECC标准大体可以分为两种形式一类是技术标准,即描述以技术支撑为主的ECC体制,规范了ECC的各种参数的选择,并给出了各级安全强度下的一组ECC参数。另一类是应用标准,即在具体的应用环境中建议使用ECC技术。在标准化的同时,一些基于标准(或草案)的各种椭圆曲线加密、签名、密钥交换的软、硬件也相继问世。
硬件加密与软件加密相比,由于具有加密速度快,性能好等优势,以及硬件便于物理保护,安全性好,装卸方便的特性,一直深受安全界的重视。与此同时超大规模集成电路技术的发展使得设计低成本的硬件加密芯片成为可能。
总之,ECC是一个优于RSA的公钥制算法,现代高带宽、嵌入式应用的需要,使得研究它的高效VLSI实现具有很强的现实意义。此外,由于密码技术的特殊性,密码产品(特别是硬件产品)是进出口限制产品,而一个国家从安全角度考虑也不允许采用别的国家的安全产品来守“大门”。所以研究自主产权的硬件加密技术就显得特别重要。可以相信,ECC技术在信息安全领域中的应用会越来越广。
但是,在椭圆曲线密码体制(ECC)中,关于椭圆曲线密码算法的优化、椭圆曲线密码协处理器的系统架构,以及椭圆曲线密码协处理器的数据通路还存在不尽完善之处,需要作进一步的改进。

发明内容
综上所述,如何改进椭圆曲线密码算法在对点乘调度方案的优化,乃是本发明所要解决的一个技术问题;如何克服目前流行的数据通路加状态控制机的缺点,乃是本发明所要解决的另一个技术问题;而如何改进椭圆曲线密码协处理器的数据通路的高数据吞吐率与合适的硬件复杂度则是本发明所要解决的另一个技术问题。
因此,本发明的目的在于提供一种新型的椭圆曲线密码协处理器。
本发明的技术思路
目前椭圆曲线加密协处理器的实现方式有两种状态机实现方式和指令实现方式。本方案从实现复杂度和性能的角度分析比较了两种实现方式的优劣,最终选择了指令实现方式。
为了提高协处理器的可重用性,指令集设计采用新颖的协处理器扩展指令和微代码指令相结合的形式。微代码指令集设计采用“取/存”的形式,一方面可以提高指令集的代码密度,降低系统对存储容量的要求,另一方面可以降低译码单元的复杂度,减少协处理器的寻址模式,由此可以提高宽比特数据通路的性能。
同时通过在数据通路中增加特殊寄存器组,以减少数据通路与通用寄存器组之间数据交换的次数,从而提高系统性能,从一定程度上降低电路的功耗。
数据通路中的关键模块——有限域乘法器采用可伸缩分组并行结构,以提高数据吞吐率。此外,有限域平方器的设计通过复用可伸缩分组并行乘法器电路,以降低数据通路的面积。
密码系统采用由主控制器(Main Controller Unit MCU)+协处理器(Coprocessor)的系统实现方案,以便用以嵌入式微处理器作为主控制器,并在其协处理器扩展指令和相应协处理器接口的基础上开发椭圆曲线密码协处理器。
如上所述,本发明的技术方案如下
根据本发明的一种新型椭圆曲线密码协处理器,特别适用于由主处理器和协处理器构成的ECC公钥密码系统,特点是该主处理器为由嵌入式处理器构成的主控制器,而该协处理器为硬件控制器,适合目前主流的嵌入式CPU构建的椭圆曲线密码系统,其中,主处理器包括点乘控制器和通信控制器,通过总线和协处理器专用接口实现与椭圆曲线密码协处理器相连接;该协处理器含有依次成电路连接的总线状态跟随器、译码控制电路和数据通路,其中,总线状态跟随器含有流水线跟随器和与之相连接的操作数状态单元,其接受来自主处理器送出的协处理器扩展指令以及从协处理器专用接口输入流水线状态信号及与主处理进行交互的握手信号;该译码控制电路为双重译码电路,将主处理器送来的协处理器扩展指令译成微代码,再将微代码译成控制信号,用以控制数据通路中所进行的有限域运算和数据交换;所述数据通过双向联结的寄存器堆和数据通路单元,由寄存器堆与公钥密码系统中的存储器进行数据交换。
进一步,所述主处理器为32位嵌入式CPU,基于协处理器扩展指令和相应(即专用)的协处理器接口开发该椭圆曲线密码协处理器。
所述译码控制电路包括依次成电路联结的第一指令寄存器、第一译码器、指针组、微代码组、第二多路选择器、第二指令寄存器和第二译码器。
所述数据通路单元包括依次成电路联结的数字串行平方器、数位串行乘法器、有限域加法电路和全零检测电路。
所述数据通路中设有存储所述乘法器的两个输入数据的寄存器RA和寄存器RB,和设有两个存储所述有限域加法电路的两个输入数据的寄存器RC、RD。
依据本方案设计的椭圆曲线密码协处理器具有以下优点
密码协处理器采用了专用协处理器接口,能够与目前主流的嵌入式CPU相配合,实现整个椭圆曲线密码系统;
采用了两级译码系统,即协处理器扩展指令与协处理器微代码指令两级译码,可以非常灵活实现系统的重配置。在协议层的算法发生改变时,无需改变协处理器的硬件架构,而只需变更微代码程序即可。如果使用有限状态机形式的控制单元就无法实现。这样的解决方案可以明显降低系统重开发的成本,同时加速系统上市时间,赢得经济效益;
协处理器设计了一个基于可伸缩分组并行技术的数据通路,这样本方案的数据通路结构可以在系统性能允许的条件下,从硬件实现的速度、面积和功耗三方面出发,找到实现的最佳方案。


图1是本发明主处理器、协处理器构成密码系统的结构示意图2是本发明的椭圆曲线密码协处理器系统架构示意图3是本发明的椭圆曲线密码协处理器的数据通路结构示意图。
具体实施例方式
下面根据图1至图3给出本发明一个较佳实施例,以便更好地说明本发明的结构特征和功能特点,但不是用来限定本发明的范围。
参阅图1所示,本发明的椭圆曲线密码协处理器系应用于由主处理器、协处理器构成的ECC公钥密码系统中。
图1中的主处理器(MCU)主要完成两项任务,包括针对椭圆曲线密码算法中的点乘调度和与协处理器的通讯控制。它主要起到软件控制器的作用,本发明主要针对使用嵌入式的32位RISC CPU。协处理器器就是完成椭圆曲线密码算法中最复杂运算——点乘运算的核心部件,它是全硬件实现,包括有限状态机、微代码以及数据通路等,它们再主处理器的控制下而协同工作,完成复杂的点乘运算。
本发明的椭圆曲线密码协处理器的系统架构如图2所示。该协处理器2共分为三部分,即依次以电路联结的总线状态跟随器21、译码控制电路22和数据通路23。
其中,总线状态跟随器21主要是对主处理器1的状态进行跟踪,判断当前主处理器1所取指令是否为协处理器扩展指令,并负责向主处理器1发送和接收相应的握手信号;译码控制电路22主要负责将群运算层的调度转换为基本的有限域运算,即将协处理器扩展指令11译成相应的微代码指令,再将微代码指令译成相应的控制信号;数据通路23主要进行有限域基本运算层的运算实现。
在图2中,总线状态跟随器21包括流水线跟随器211和控制流水线跟随器211工作的操作数状态单元212,该流水线跟随器211接受来自主处理器1的时钟和时钟控制信号、流水线状态跟随信号、协处理器扩展指令,以及主处理器1与协处理器2交互握手信号。所述的时钟和时钟控制信号由接口CLK、NRESET输入;所述流水线状态跟随信号由接口CPnMREQ、CPnOPC、CPTBIT输入;所述交互握手信号则从接口CPnCPI输入和由接口CPA、CPB输出。
该译码控制电路22包括接受主处理器1的指令和与流水线跟随器211交互联结,包括依次以电路连接的第一指令寄存器221、第一译码器222、指针单元组223、微代码组224、第二多路选择器225、第二指令寄存器226和第二译码器227,以及第一多路选择器228,其中,第一指令寄存器221受流水线跟随器211的控制和数据总线连接主处理器1;第二译码器227输出连接寄存器堆232和数据通路231,以及第一多路选择器228分别连接操作数状态单元212、第一译码器222和第二多路选择器225,该数据通路23包括成双向电路联结的数据通路逻辑模块231和寄存器堆232,并由寄存器堆232与ECC公钥密码系统的存储器13成双向电路连接。
所述协处理器2的接口信号定义如下表1
表1
关于椭圆曲线密码协处理器2的指令集设计
椭圆曲线密码协处理器2的指令集设计包含两部分协处理器扩展指令集的设计和协处理器微代码指令集的设计。前者用于实现点乘运算中群运算层的调度,后者用于实现点乘运算中有限域基本运算,如有限域乘法、有限域平方运算等。
1)协处理器扩展指令集设计
由于本实施例采用“通用主控制器(MCU)+协处理器(Coprocessor)”的实现方案,其中主控制器1采用32位嵌入式微处理器,并在其协处理器扩展指令和相应协处理器接口的基础上开发椭圆曲线密码协处理器2。一共可以扩展16个协处理器,其中12个是有固定用途的,其余四个可以用于嵌入式系统的开发。
32位嵌入式微处理器中用于协处理器扩展的指令分为三类协处理器数据运算指令、协处理器数据传送指令和协处理器寄存器传送指令。根据点乘调度算法的要求,本实施例定义了12条协处理器扩展指令,如下表2所示
表2
2)协处理器微代码指令集设计
采用状态机来控制调度协处理器中的有限域运算。由于完成一次点加或者倍点运算的步骤相当多,由此会导致状态机过于庞大,控制逻辑过于复杂,增加了协处理器的设计和验证难度,同时也降低了协处理器的可扩展性。因此,本实施例采用微代码指令来控制协处理器中的有限域运算,降低了状态机的复杂度,易于设计和验证,同时也提高了协处理器的可扩展性。
在定义协处理器微代码指令集时,主要考虑以下原则1)尽量减少访存次数。2)增强协处理器的可扩展性,包含两层含义。一是对于不同加密强度的要求,可以选择不同的有限域来实现,此时无需改变指令集,只需对数据通路进行相应的扩展即可;二是对于不同的调度算法实现,也无需改变指令集,只需要重新编写相应的微代码程序即可。
基于上述原则,本实施例定义了10条微代码指令,指令字长为8比特,分为有限域数据运算指令、有限域寄存器传送指令和有限域数据传送指令,如下表3所示
表3
表中Rs表示源操作数,Rd表示目的操作数。
关于椭圆曲线密码协处理器2的数据通路23的结构
由于串行乘法器的运算速度较慢,其数据吞吐率不高。因此,在高数据吞吐率应用场合下,往往采用基于多项式基的可伸缩分组并行乘法器。可伸缩分组并行技术,是一种串并结合的算法,它将原有的m位数据分成m/D组(D称为可伸缩分组系数),在一个时钟周期内计算一组数据,这样就可以在m/D个时钟周期内完成。所以,此结构可以在系统性能允许的条件下,从硬件实现的速度、面积和功耗三方面出发,找到实现的最佳方案。
假设W,A,B∈GF(2m),
其中
由此有限域乘法运算
W=([([...([([ABd-1modp(x)]αD+ABd-2)modp(x)]αD+...]αD
+AB1)modp(x)]αD+AB0)modp(x)
高位优先的数位串行乘法器
1、始化令W(0)=0
2、当1≤i≤d时
W(i)=(W(i-1)(mm+D-1)modp(x))αD+W(i-1)(0m-1)αD+ABd-i
其中
3、结果W=W(d)modp(x)
基于上述乘法算法,本实施例设计的一个椭圆曲线密码协处理器的数据通路23的结构如图3所示。其中,数据通路23中的数据通路逻辑模块231设计中最核心的部分是分组并行有限域乘法器2312的设计,此乘法器2312的特点是在面积允许的情况下,通过分组并行输入的方式来提高乘法器2312的处理能力,同时由于乘法器采用多项式基进行表示,提高了乘法器的扩展性,适合VLSI实现。
在此基础上,通过对乘法器单元进行简单配置,使得配置后的平方器2311也具有和乘法器2312相同的特性,同时由于乘法器2312和平方器2311在相同的硬件电路上实现,降低了芯片面积,提高了电路的利用率。
数据通路逻辑模块231上还设计了有限域加法电路2313和全零检测电路2314,数据通路逻辑模块231中采用了4组特殊寄存器,每组寄存器宽度为m(m为有限域的宽度),其中寄存器RA和寄存器RB用于存储乘法器的两个输入数据,寄存器RC和寄存器RD用于存储加法器的两个输入数据。采用特殊寄存器的目的可以表述为如下两点1)减少由于组合电路的误翻转所带来的功耗;2)通过改进算法调度,可以尽量把计算过程中的中间结果存放在特殊寄存器中,并直接在后面的运算中使用,减少了由于将中间结果写入和读出通用寄存器堆带来的时间和能量消耗。由此可以看出,通过在数据通路逻辑模块231中增加特殊寄存器组,减少了指令数目和访问通用寄存器堆的次数。
如图3所示,平方器2311为数位串行平方器,其包括二组平行设置且分别依次连接的多路选择器23111和寄存器RA23112;多路选择器23113和寄存器RB23114,其中,多路选择器23111的输入端连接多路选择器2310的输出端,该多路选择器2310的四个输入端ADD(加法器2313的输出)、寄存器堆模块232的输出、MODP(X)23123的输出、寄存器RC23132的输出连接,寄存器RA23112存放乘法器2312的一输入数据;多路选择器23113的二个输入端分别与P(X)(乘法器生成多项式)和来自寄存器堆的输入连接,寄存器RB23114存放乘法器2312的另一输入数据。
乘法器2312为数位串行乘法器,其包括依次成电路联结的有限状态机23121、与一异或阵列23122和取模MOD P(X)23123,其中,有限状态机23121接受主处理器1送来的有限乘法指令,与一异或阵列23122接受来自平方器2311送出的二个乘法数据,取模MOD P(X)23123输出端分别连接寄存器堆232和加法器2313、全零检测电路2314的输入端。
加法器电路2313包括依次成电路联结的多路选择器23131、寄存器RC23132、有限加法器23133,全零检测电路2314包括依次成电路联结的多路选择器23141、寄存器RD23142和或阵列23143。其中,多路选择器23131、23141的输入端连接取模MOD P(X)23123的输出和来自寄存器堆模块232的输出分别连接;有限域加法器23133的另一输入端连接寄存器RD的输出端。
“GFMUL_rst”信号为有限域乘法器复位信号,作为有限状态机23121的输入。
关于椭圆曲线密码算法的点乘调度方案
目前,蒙哥马利(Montgomery)点乘算法,是至今较优的点乘运算硬件实现算法,其基本思路如下
令Q1=(x1,y1),Q2=(x2,y2),且Q1≠±Q2。同时令Q1+Q2=(x3,y3),Q1-Q2=(x4,y4),则
x3=x4+x1/(x1+x2)+(x1/(x1+x2))2
因此,Q1+Q2的x轴坐标分量可以从1Q1、Q2和Q1-Q2的x轴坐标分量中获得,而
Q1+Q2的y轴坐标分量可以从其x轴坐标分量中变换得到,具体算法表述如下
输入k≥0和点P=(x,y)∈E
输出Q=kP
1)如果可k=0或者x=0,那么输出(0,0)
2)令k←(kl-1,…,k1k0)2,i=l-2
3)令X1←x,Z1←1,X2←x4+b,Z2←x2
4)对于0≤i≤l-2(i递减)
如果ki=1,那么Madd(X1,Z1,X2,Z2),Mdouble(X2,Z2)
否则Madd(X2,Z2,X1,Z1),Mdouble(X1,Z1)
5)计算(Q=Mxy(X1,Z1,X2,Z2))
算法中使用的函数Madd,Mdouble分别为蒙哥马利数域上的椭圆曲线点加、倍点,Mxy为数域转换函数。
权利要求
1.一种新型的椭圆曲线密码协处理器,特别适用于由主处理器和协处理器构成的椭圆曲线公钥制密码系统,其特征在于
a.该主处理器为由嵌入式微处理器构成的主控制器,其包括点乘控制器和通信控制器,分别向协处理器送出协处理器扩展指令和进行数据交换,
b.该椭圆密码协处理器为硬件控制器,主要由总线状态跟随器,译码控制电路和数据通路构成,并设有专用协处理器接口经由总线与主处理器连接,其中,
总线状态跟随器含有流水线跟随器和与之相连接的操作数状态单元,其接受来自主处理器发出的协处理器扩展指令,和从协处理器接口输入流水线状态信号及与主处理器进行交互的握手信号;
译码控制电路接收来自主处理器的指令信号,其含有指令寄存器并后接协处理器扩展指令与协处理器微代码指令两级译码器,并分别形成对总线状态跟随器和数据通路的控制信号;
数据通路包括成双向数据流联结的寄存器堆和数据通路单元,由寄存器堆与公钥密码系统存储器进行数据交换。
2.根据权利要求1所述的新型的椭圆曲线密码协处理器,其特征在于所述主处理器为32位嵌入式微处理器,并基于协处理器扩展指令和相应的协处理器接口开发该椭圆曲线密码协处理器。
3.根据权利要求1或2所述的新型的椭圆曲线密码协处理器,其特征在于所述译码控制电路包括依次成电路联结的第一指令寄存器、第一译码器、指针组、微代码组、第二多路选择器、第二指令寄存器和第二译码器。
4.根据权利要求1或2所述的新型的椭圆曲线密码协处理器,其特征在于所述的数据通路单元包括依次成线路联结的数字串行平方器、数位串行乘法器、有限域加法电路和全零检测电路。
5.根据权利要求4所述的新型的椭圆曲线密码协处理器,其特征在于在所述的数据通路中设有存储乘法器的两个输入数据的寄存器RA和寄存器RB。
6.根据权利要求4所述的新型的椭圆曲线密码协处理器,其特征在于在所述的数据通路中设有存储有限域加法电路的两个输入数据的寄存器RC和寄存器RD。
全文摘要
一种新型的椭圆曲线密码处理器,应用于由主处理器和协处理器构成的ECC公钥密码系统,特点是主处理器为由嵌入式微处理器构成,含有点乘控制器和通信控制器,经由总线和协处理器专用接口与椭圆曲线密码协处理器联结,该协处理器为硬件控制器,含有成电路联结的总线状态跟随器、译码控制电路和数据通路,分别实施对主处理器的状态跟踪,判别是否是协处理器扩展指令并给出与主处理器交互握手信号;将协处理器扩展指令翻译成微代码并再译成数据通路进行数据交换、与有限域运算的控制信号。本发明的优点是可与嵌入式CPU相配合构成椭圆曲线密码系统;灵活实现系统重配置,降低重开发成本;易于实现运算速度,芯片面积和功耗的最佳结合方案。
文档编号H04L9/28GK1700637SQ20051002591
公开日2005年11月23日 申请日期2005年5月18日 优先权日2005年5月18日
发明者曾晓洋, 顾震宇, 章倩苓, 陈超 申请人:上海迪申电子科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1