CN2864808Y - 椭圆曲线加密算法的协处理器 - Google Patents
椭圆曲线加密算法的协处理器 Download PDFInfo
- Publication number
- CN2864808Y CN2864808Y CN 200520146617 CN200520146617U CN2864808Y CN 2864808 Y CN2864808 Y CN 2864808Y CN 200520146617 CN200520146617 CN 200520146617 CN 200520146617 U CN200520146617 U CN 200520146617U CN 2864808 Y CN2864808 Y CN 2864808Y
- Authority
- CN
- China
- Prior art keywords
- signal
- arithmetic
- fundamental operation
- control unit
- register
- 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 - Lifetime
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本实用新型是一种椭圆曲线加解密协处理器,其特征在于包括:一个指令译码器;一个运算控制器;一个基本运算控制器;一个基本运算器;寄存器组;I/O缓冲模块;多路选通器;其中:所述指令译码器与运算控制模块和I/O缓冲器相连;所述运算控制器与指令译码器、多路选通器和基本运算控制器分别相连;所述基本运算控制器与运算控制器和基本运算器相连;所述基本运算器与基本运算控制器和多路选通器相连;所述I/O缓冲器与寄存器组和指令译码器相连;所述寄存器组与I/O缓冲器和选通器相连;所述多路选通器与寄存器组和基本运算器相连。本实用新型简化了外部控制,减少了与外部MCU的交互,提高了点乘的运算速度。
Description
技术领域
本实用新型涉及椭圆曲线算法在IC卡中的芯片的实现,特别是一种椭圆曲线(ECC)加解密协处理器。
背景技术
随着计算机网络的迅速发展,相互之间进行通信的用户数量的增多,RSA等公钥密码体制的公钥位数大(一般为1024比特以上)的弱点逐渐暴露出来。在提供同样安全等级的情况下,椭圆曲线密码系统具有更短的密钥长度。智能IC卡(集成电路)常用在安全性要求比较高的场合。相对于传统的磁条卡或者存储卡,智能卡内部有mcu,不仅处理能力加强,而且提高了系统的保密能力。而智能卡,为安全原因所增加的成本却不能太多。由于椭圆曲线密码的密钥较短,这可以为智能卡节省较多的存储空间,不仅能降低智能卡成本,同时也使得其它程序可利用更多的存储器来完成更复杂的任务。椭圆曲线密码系统(ECC)在1985年分别由Victor Miller和Neal Koblitz独立提出。其安全性是基于椭圆曲线上的加法群的离散对数问题(ECDLP)求解的困难性。随着计算能力的提高需要密钥长度的增加,ECC相对其它公钥密码系统(RSA)相比更具优势。由于它的每位具有更高的安全性,导致它的运算速度高,同时节约功耗,带宽,存储空间和证书长度。
ECC加密中核心运算就是点乘运算,由于它计算步骤的复杂性,所以一般只有一些基本计算用硬件实现,而大部分采用软核的方式来实现。对于时钟频率较低的设备,它的软硬件交互太多,导致运算的速度慢。而一些高速实现的设计中,芯片的面积偏大。
发明内容
本实用新型目的是提出了一种在IC卡上的椭圆曲线加密算法的协处理器,在满足系统安全性前提下,加快运算速度,减小芯片面积,从而降低用户成本。
本实用新型的上述目的是这样实现的,一种椭圆曲线加解密协处理器,其特征在于包括:
一个指令译码器;一个运算控制器;一个基本运算控制器;一个基本运算器;寄存器组;I/O缓冲模块;多路选通器;其中:所述指令译码器与运算控制模块和I/O缓冲器相连;所述运算控制器与指令译码器、多路选通器和基本运算控制器分别相连;所述基本运算控制器与运算控制器和基本运算器相连;所述基本运算器与基本运算控制器和多路选通器相连;所述I/O缓冲器与寄存器组和指令译码器相连;所述寄存器组与I/O缓冲器和选通器相连;所述多路选通器与寄存器组和基本运算器相连。
其中,指令译码器(1)具有:接收外部mcu的wr写信号、rd读信号、rst复位信号、8位的addr地址信号的输入端;向运算控制器输出4个经译码产生的启动信号的输出端;向控制I/O缓冲器输出经译码产生的读/写数据的信号的输出端;接收从运算控制器返回的状态值的输入端。
其中,运算控制器包括分别控制完成预计算(22n mod p)、点加(P1+P2)、倍点(2P)和求逆运算(Z-1mod p)的4个有限状态机和一个8位的计数器,用于向指令译码器返回状态值,以及产生控制多路选通器完成寄存器组与基本运算器之间数据交换的信号。
其中,基本运算控制器具有分别控制完成模乘、模减运算的2个有限状态机和一个7位的计数器。
其中,基本运算器包括蒙哥马利模乘电路、全加电路和临时寄存器。
其中,I/O缓冲器包括192位的buff寄存器。
其中,寄存器组包括多个寄存器。
其中,多路选通器具有接收来自运算控制器的读写信号的输入端。
其中,寄存器组模块分别存储加解密所需的192位模数p、明文或密文、中间临时变量、以及椭圆曲线参数a。
其中,基本运算器中的模乘电路和全加电路使用高速全加器和2级流水的蒙哥马利模乘器。
本实用新型的技术效果是:接口方式的简单,不需要与外部mcu做握手信号。采用状态机方式,使运算速度大大加快。将预计算,求逆,点加,倍点运算转化为基本的蒙哥马利模乘和全加,规整了计算操作,减少中间步骤。合理的进行寄存器的调度,减少了寄存器的个数。整个点乘部分由外部mcu调度协处理完成,其它运算部分均由硬件完成。这样仅根据外部数据和地址总线的宽度略做调整,就可以满足不同宽度数据的加解密。
下面结合附图对本实用新型进行详细说明。
附图说明
图1是本实用新型的椭圆曲线(ECC)加解密协处理器的配置图;
图2是图1中的基本运算器的电路图;
图3示出了图1中预计算状态机21的工作过程;
图4示出了图1中点加控制机22的工作过程;
图5示出了图1中求逆控制机24的工作过程;
图6示出了图1中模乘控制机31的工作过程;
图7示出了图1中减法控制机32的工作过程;
图8是显示了外部mcu调度的流程图。
具体实施方式
一般来说,本实用新型提供了运算控制器2;模乘及加法等基本运算器4;寄存器组6;译码及输入出缓冲电路1,5。其中:译码1及输入出缓冲模块5通过双向数据线、外部地址、数据总线,和外部交换数据;外部数据写入输入出缓冲模块5后,运算控制器2产生控制信号将输入出缓冲寄存器中的数据读出,写入寄存器组的相应单元,当所需运算数据写完后,运算控制器2依次启动加/解密过程,相继启动4个状态机,运算中产生的中间数据,经过多路选通器从基本运算器写入寄存器组6;同时,运算控制器2还接收基本运算控制器3的状态信号。运算控制器2还会向指令译码器1返回其状态值。输入出缓冲器5还将向外部CPU发出内部运算状态信号。
参见图1本实用新型的椭圆曲线加解密协处理器包括:一个指令译码器1;一个运算控制器2;一个基本运算控制器3;一个基本运算器4;寄存器组6;I/O缓冲模块5;多路选通器7。其中,所述运算控制器2和基本运算控制器3可以由CPU、微处理器等计算部件实现。
所述指令译码器1与运算控制模块2和I/O缓冲器5相连;所述运算控制器2与指令译码器1、多路选通器7和基本运算控制器3分别相连;所述基本运算控制器3与运算控制器2和基本运算器5相连;所述基本运算器4与基本运算控制器3和多路选通器7相连;所述I/O缓冲器5与寄存器组6和指令译码器1相连;所述寄存器组6与I/O缓冲器5和选通器7相连;所述多路选通器7与寄存器组5和基本运算器4相连。
从图1中可以看到,指令译码器1具有:接收外部mcu的wr写信号、rd读信号、rst复位信号、8位的addr地址信号的输入端;向运算控制器2输出4个经译码产生的启动信号的输出端;向控制I/O缓冲器输出经译码产生的读/写数据的信号的输出端;接收从运算控制器2返回的状态值的输入端。
其中,运算控制器2包括分别控制完成预计算(22n mod p)、点加(P1+P2)、倍点(2P)和求逆运算(Z-1mod p)的4个有限状态机和一个8位的计数器,用于向指令译码器返回状态值,以及产生控制多路选通器7完成寄存器组与基本运算器5之间数据交换的信号。
基本运算控制器3具有分别控制完成模乘,模减运算的2个有限状态机和一个7位的计数器。
基本运算器4包括蒙哥马利模乘电路、全加电路和临时寄存器。
I/O缓冲器5包括192位的buff寄存器。
寄存器组6包括多个寄存器。
多路选通器7具有接收来自运算控制器2的读写信号的输入端。
寄存器组模块6分别存储加解密所需的192位模数p、明文或密文、中间临时变量、以及椭圆曲线参数a。
基本运算器4中的模乘电路和全加电路使用高速全加器和2级流水的蒙哥马利模乘器。
另外在本实用新型中,运算控制器2和基本运算控制器3都会产生数据转移信号,控制多路选通器7,完成数据在4和6之间的交换。使得在点加和倍点运算中,即最大限度的利用了前面的计算结果,又省去了不必要的寄存器。
相应的芯片内部控制流程如图8。指令译码器接收外部CPU产生的信号,译码发出Start开始信号,启动输入出缓冲器准备接受数据。随后将点的坐标值x,y,z和椭圆曲线参数a以及素数p分别从安全的EEPROM中取出送入输入出缓冲器中的buff寄存器中。再由输入出缓冲器控制将buff中的数值送入寄存器组的Ti中。启动蒙哥马利预计算单元,采用移位模的方式完成R的计算。分别将x,y,z,a,p与R做蒙哥马利模乘。外部mcu根据[k]中1的个数,启动相应的点加和倍点运算,经过点加和倍点控制流程(用点加和倍点控制机完成),将结果存入相应的寄存器Ti中。启动求逆过程,将结果换为仿射坐标。最后仿射坐标值x,y与数1做蒙哥马利模乘,把结果换回正常值。通过输入出缓冲器向外部mcu发出Ready信号。
再参见图1,在上述的实现IC卡ECC加密算法的协处理器中,运算控制器包括一个8位的状态计数器,由计数器抽头产生的控制逻辑根据状态控制信号的不同反过来作用于计数器,形成4个有限状态机。它与指令译码器1和基本运算控制器3分别相连。4个有限状态机,分别控制完成预计算(22n modp),点加(P1+P2),倍点(2P)和求逆运算(Z-1mod p)。同时控制7完成寄存器组6与基本运算器4之间的数据交换,其内部状态返回指令译码器1。
指令译码器根据输入信号的变化,译码产生Pre_S信号,用于启动预计算状态机;产生Ad_P,Db_P信号,用于点加和倍点计算状态机;产生Inv_S信号,用于启动求逆状态机。
预计算状态机控制信号序列中会产生,Pre_work,T6_X,(-N)_Y信号。点加和倍点状态机控制信号序列中会产生Mont_S,Sub_S,Ti_X,Ti_Y,X_Ti,Y_Ti等信号。求逆状态机控制信号序列中会产生Mont_S,T1_X,T1_Y等信号。在这些信号序列的控制下,完成点乘运算。其中预计算控制机,在工作状态下会启动2中的计数器counter,记录循环次数。
4个状态机分别完成四种不同运算。预计算中,用每次左移1位减p的方式完成。如图4,点加计算中,共产生16次模乘,3次全加,5次模减操作。倍点计算中,共产生10次模乘,5次全加,3次模减操作。运算控制器3向指令译码器1返回的状态值A_Sta位宽为4,每位分别表示4个状态机的状态,由Pre_R,Ad_R,Db_R,Inv_R组成。
在图1中,从基本运算控制器3返回运算控制器2的信号M_Sta位宽为2,每位分别表示蒙哥马利模乘,模减的状态,由Mont_R和Sub_R组成。
基本运算控制器3包括7位的计数器单元,和模乘,模减两个有限状态机。如图6,7,每个状态机都会产生基本运算器内部寄存器的工作信号,读写信号,移位信号,选通信号的一个序列控制完成模乘,模减运算。内部计数器用于控制模乘的循环次数。
运算控制器2给基本运算控制器3的控制信号有Sub_S,Mont_S两个状态机的启动信号,3返回给2的A_Sta信号,它包括Sub_R,Mont_R两个状态机的结束信号。
如图2所示,基本运算器4包括模乘器,全加器,存储器单元。它通过一个多路选通器,与寄存器组相连。运算控制器2产生读写信号控制6中寄存器Ti到4中X,Y,R操作数寄存器,或者反之。基本运算单元中,模乘电路和全加电路构成了单元的主体。存储单元中,5个200位的寄存器存储加法,减法和乘法时的操作数,一般情况下寄存器N中存大素数p,循环移位寄存器X存储另一个乘数。为了模减和加法的方便,将192位数扩展符号位后成为200位进行计算。寄存器X和Temp都是循环移位寄存器。图中信号Pre_work由21中产生,控制全加器的操作数来自Y和N寄存器,每个clk的结果存入Y寄存器中。信号Sel_Temp,Sel_Y,Sel_R控制全加器结果送入相应寄存器中。信号X_R,#(-2)_R将X寄存器中的数或常数值-2送入R寄存器中。信号Mul_work,Mul_sel->Add由31中产生,前者表示模乘进行中,控制中间值寄存器C0,S0寄存器的输入和寄存器X的移位;后者控制4:2加法器的结果做全加。信号Mov_T产生于24,控制寄存器Temp的移位。其中C0,S0是200位的寄存器。X,Y是200位的移位寄存器,作为模乘的两个乘数寄存器。寄存器N放素数p。R和Y作为全加器的两个输入。两级加法器完成4个输入,2个输出的加法,延时仅为二位全加延时。而200位的全加器采用的是文献“A.Satoh,N.Ooba,K.Takano and E.D’Avignon,“High-speedMARS hardware,”Third Advanced Encryption Standard(AES)CandidateConference,April 2000”提到的全加器,它的全加延时仅相当于30个一位全加延时。在工作频率不高的环境下(5-50M),200位的全加最多二个时钟周期内就可完成。模乘的初始阶段通过4中全加器预计算R的值,而后开始执行100次的循环,最后再控制全加器完成一次全加操作计算出模乘的结果。加上控制逻辑和寄存器存取时间,一次192位的模乘共需103个时钟周期。做全加时,直接由将寄存器R和Y中的值送入全加器,计算出结果根据图中选择信号,决定送入哪个寄存器。做模减操作时,事实上是做了2次的全加,一次加上减数的补码,一次加上N的2l(l=1,2,3)。计算路径与全加类似。C00表示C0寄存器的最低位,C>>2表示数据线在该处右移2位,Mux/logic表示部分逻辑和选通器。部分逻辑中包括N寄存器的值扩展成2lN,寄存器Y中的值取反,符号位判断等简单逻辑。
寄存器组,它与多路选通器7和输入出缓冲模块5相连。它包括寄存器Ti(i=1…7)。寄存器Ti(i=1…6)存储点的坐标或点加和倍点时的临时结果,T7寄存器存储椭圆曲线参数a的值。各寄存器初始值为T1=Z1,T2=Y0,T3=X0,T4=Z0,T5=Y1,T6=X1。这里的每个寄存器都与基本运算器里的寄存器建立有数据通路。如图1,其中Ti_X,Ti_Y等(i=1…6)表示每个寄存器之间的传输信号。
输入出缓冲模块5,其与指令译码器1和寄存器组模块6相连。内含一个8位循环移位的192位寄存器,它将送入的8位数据拼成192位。输出数据时,将192位的数据8位送出。
如图3,预计算22n mod p,采用循环移位加负p的方式实现。设p是192位的数,由于它是素数,它的首末位都是1。负p在硬件中,通过191个反相器直接将p的1-191位取反,最低位保持不变即可。第一步,将p取成负p。第二步,左移一位,与负p做一次全加,根据结果的符号位决定是取全加后的值还是原值。实际上这一步做了一次乘2和模p的操作。由计数器控制,依次循环执行这一步192次,即可得到22n mod p的值,存入基本运算模块里乘数寄存器中,预计算结束。启动相应点加和倍点运算的预处理,即分别将x,y,z,a送入另一个乘数寄存器,做蒙哥马利模乘,后送入寄存器组模块相应寄存器中。
从上述的体系结构看,本发明的协处理器在数据处理的规整性,可并行性,器件的复用性,可重构性上具有创新性。本发明最大的特点在于用加法器和状态机实现了椭圆曲线中的模加,模减,模乘以及求逆计算。相对于以前的基于专门的乘法器,加法器,除法器的结构,有效降低了芯片的面积;同时合理安排点乘过程中的计算序列和存储器的使用,采用多路选通器,最大程度上利用前面的运算结果而又不增加太多的寄存器,从而提高了点乘的运算速度。
下面参照图3至图7说明预计算状态机21、点加控制机22、倍点点加控制机23、求逆控制机24、模乘控制机31和减法控制机32的操作过程。
首先参见图3,预计算状态机21操作如下:
空闲:没有其它信号激励或复位情况,对外不产生控制信号。启动: 发出内部信号(-N)->Y,控制4的N寄存器中的数取反加1送入Y寄存器。具体见预计算22n mod p。
工作:产生内部信号Pre_work,该信号有效时,2中counter计数器开始计数,每个clk,4中全加器的两个输入分别是2*Y和(-N),其结果送入Y寄存器。
完成:产生内部信号Pre_ready和T7_X,Y_R,将6中寄存器T7的数送入4中X寄存器。信号Pre_ready从5中data_out数据线送出。参见图4,点加控制机22操作如下:
启动:产生信号T1->X,Y。
序号 | 操作 | 计算结果存入 | 操作后的数据交换 |
1.2.3.4.5.6.7.8.9.10.11.12. | Z1*Z1(Z12)Z12*Z1(Z13)Z13*Y0(S0)X0*Z12(U0)Z0*Z0(Z02)Z02*Z0(Z03)Z03*Y1(S1)X1*Z02(U1)U0+U1(T)U0-U1(W)S0+S1(M)S0-S1(R) | T2T3T2T5T6T5TEMPT2TEMPT3 | T2->TEMPTEMP->YT2->X;T3->YTEMP->X,Y;T4->TEMPT5->TEMPTEMP->YT5->X;T6->YT2->RTEMP->T5,T3->R,T6->YTEMP->T6;T1->X;T2->Y |
13.14.15.16.17.18.19.20.21.22.23.24. | Z0*Z1Z0*Z1*W(Z2)W*W(W2)W*W2(W3)W2*TR2R2-W2*T(X2)M*W3X2+X2W2*T-2*X2(V)V*RV*R-M*W3(2*Y2) | T1T2T5T4T4T2T6XRT5 | T2->YT2->X,YT5->YT3->X,YX->R,T5->YT2->X;T6->YT4->Y,RT5->R,T6->YT3->YT2->YT4->T6 |
倍点点加控制机23的操作类似点加控制机22的操作,即:
启动:产生信号T1->X,Y。
序号 | 操作 | 计算结果存入 | 操作后的数据交换 |
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18. | Z1 2Z1 4a*Z1 4X1 2X1 2+X1 2(2*X1 2)2*X1 2+X1 2(3*X1 2)3*X1 2+a*Z1 4(M)Y1+Y1(2*Y1)2*Y1*Z1(Z2)4*Y1 24*X1*Y1 2(S)M2S+S(2*S)M2-2*S(X2)16*Y1 4S-X2M*(S-X2)M*(S-X2)-T(8*Y1 4) | T2R,YYRT3T2,XT1T2T6T5T4T5T2XRT5 | T7->YT6->X,YT2->YT5->Y,RT1->YT2->X,YT6->YT3->X,YT6->Y,RT5->R;T4->YT2->X,YT6->R,T5->YT3->YT2->YT5->T6 |
上述寄存器器T1…T7在6中,寄存器X,Y,R,Temp在4中。
参见图5,求逆控制机24操作如下:
空闲:没有其它信号激励或复位情况,对外不产生控制信号。
预备:产生信号#-2->R,将4中寄存器R的值置为-2,同时打开全加通路,计算N+R。
启动:产生信号sel->Temp,将4中全加结果送入Temp寄存器中。同时产生信号T1->X,Y。控制6的T4寄存器中的数送入4中X,Y寄存器。
态1:产生信号Mont_S,启动模乘状态机。
缓冲:根据Temp[0]中的值,产生T1->Y信号。产生4中Temp寄存器的移位信号Mov_T,同时启动2中counter计数器加1。
态2:产生信号Mont_S,启动模乘状态机。
完成:产生信号Inv_ready,信号Inv_ready从5中data_out数据线送出。
参见图6,模乘控制机31操作如下:
空闲:没有其它信号激励或复位情况,对外不产生控制信号。
预备:产生信号打开全加通路,计算Y+N。
启动:产生信号sel->R,将4中全加结果送入R寄存器中。
态1:产生信号Mul_work,启动4中counter1计数器。
态2:产生Mul_sel->Add,进行全加。
完成:产生Sel->X,Y,把全加结果送入4中X,Y寄存器。产生信号Mont_R,信号Mont_R从3中返回2。
参见图7,减法控制机32操作如下:
空闲:没有其它信号激励或复位情况,对外不产生控制信号。
态1:产生信号打开全加通路N+R。
态2:产生信号Sel->R。打开全加通路Y+R。
完成:产生信号Sel->R。产生信号Sub_R,信号Mont_R从3中返回2。
下面参照图1说明该协处理器外部引脚功能:
wr:1bit;wr为高,表示外部mcu要写数据。
rd:1bit;rd为高,表示外部mcu要读数据。
clk:1bit;系统时钟。
rst:1bit;硬复位信号,低有效。
addr:8bits;地址线。
data_in:8bits;数据输入线。
data_out:8bits;数据输出线。
Mcu控制协处理器完成点乘运算的流程:
1)soffreset
2)循环执行BUS->Buff指令24次,送192位的素数p。
3)buff->N
4)循环执行BUS->Buff指令24次,送192位的P点X的坐标值Px。
5)buff->T3
6)循环执行BUS->Buff指令24次,送192位的P点Y的坐标值Py。
7)buff->T2
8)循环执行BUS->Buff指令24次,送192位的P点Z的坐标值Pz。
9)buff->T4
10)循环执行BUS->Buff指令24次,送192位的椭圆曲线参数a。
11)buff->T7
12)Pre_S //开始预计算
13)Pre_Ready //mcu从总线上读到
14)Mont_M //开始蒙哥马利模乘
15)Mont_Ready //mcu从总线上读到
16)X->T7 //4中寄存器X的值送入6中T7寄存器
17)R->X //4中寄存器R的值送入4中X寄存器
18)T3->Y
19)Mont_M
20)Mont_Ready
21)X->T3,T6
22)R->X
23)T2->Y
24)Mont_M
25)Mont_Ready
26)X->T2,T5
27)R->X
28)T4->Y
29)Mont_M
30)Mon_Ready
31)X->T4,T1
32)For(i=1;i<192;i++)
33)Db_S
34)Db_Ready
35)ifki为1
36)Ad_S
37)Ad_Ready
38)End
39)Inv_S //开始求逆
40)Inv_Ready
41)X_R
42)Mont_S
43)Mont_Ready
44)X_Temp
45)T6_Y
46)Mont_S
47)MonT_Ready
48)X_T6
49)Temp_Y
50)R_X
51)Mont_S
52)Mont_Ready
53)T5_Y
54)Mont_S
55)Mont_Ready
56)Set_one
57)Mont_S
58)Mont_Ready
59)X_T5
60)Set_one
61)T6_Y
62)Mont_S
63)Mont_Ready
64)T6_Buff
65)循环执行Buff->Bus指令24次,送出192位的P点X的坐标值Px。
66)T5_Buff
67)循环执行Buff->Bus指令24次,送出192位的P点Y的坐标值Py。
第1-11步:送192位的素数p,点P的X,Y,Z和参数a。
第12-31步:预计算与预处理。
第32-38步:点乘。
第39-41步:求逆。
第42-64步:将P点坐标值由jacobin坐标转化为仿射坐标。
第65-67步:送出。
Claims (9)
1.一种椭圆曲线加解密协处理器,其特征在于包括:
一个指令译码器(1);
一个运算控制器(2);
一个基本运算控制器(3);
一个基本运算器(4);
寄存器组(6);I/O缓冲模块(5);
多路选通器(7);其中:
所述指令译码器(1)与运算控制模块(2)和I/O缓冲器(5)相连;
所述运算控制器(2)与指令译码器(1)、多路选通器(7)和基本运算控制器(3)分别相连;
所述基本运算控制器(3)与运算控制器(2)和基本运算器(5)相连;
所述基本运算器(4)与基本运算控制器(3)和多路选通器(7)相连;
所述I/O缓冲器(5)与寄存器组(6)和指令译码器(1)相连;
所述寄存器组(6)与I/O缓冲器(5)和选通器(7)相连;
所述多路选通器(7)与寄存器组(5)和基本运算器(4)相连。
2.根据权利要求1所述的椭圆曲线加解密协处理器,其特征在于,指令译码器(1)具有:
接收外部mcu的wr写信号、rd读信号、rst复位信号、8位的addr地址信号的输入端;
向运算控制器(2)输出4个经译码产生的启动信号的输出端;
向控制I/O缓冲器输出经译码产生的读/写数据的信号的输出端;
接收从运算控制器(2)返回的状态值的输入端。
3.根据权利要求1所述的椭圆曲线加解密协处理器,其特征在于,运算控制器(2)包括分别控制完成预计算、点加、倍点和求逆运算的4个有限状态机和一个8位的计数器,用于向指令译码器返回状态值,以及产生控制多路选通器(7)完成寄存器组与基本运算器(5)之间数据交换的信号。
4.根据权利要求1所述的椭圆曲线加解密协处理器,其特征在于,基本运算控制器(3)具有分别控制完成模乘,模减运算的2个有限状态机和一个7位的计数器。
5.根据权利要求1所述的椭圆曲线加解密协处理器,其特征在于,基本运算器(4)包括蒙哥马利模乘电路、全加电路和临时寄存器。
6.根据权利要求1所述的椭圆曲线加解密协处理器,其特征在于,I/O缓冲器(5)包括192位的buff寄存器。
7.根据权利要求1所述的椭圆曲线加解密协处理器,寄存器组(6)包括多个寄存器。
8.根据权利要求1所述的椭圆曲线加解密协处理器,其特征在于,多路选通器(7)具有接收来自运算控制器(2)的读写信号的输入端。
9.根据权利要求1所述的椭圆曲线加解密协处理器,基本运算器(4)中的模乘电路和全加电路使用高速全加器和2级流水的蒙哥马利模乘器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200520146617 CN2864808Y (zh) | 2005-12-23 | 2005-12-23 | 椭圆曲线加密算法的协处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200520146617 CN2864808Y (zh) | 2005-12-23 | 2005-12-23 | 椭圆曲线加密算法的协处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN2864808Y true CN2864808Y (zh) | 2007-01-31 |
Family
ID=37677259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200520146617 Expired - Lifetime CN2864808Y (zh) | 2005-12-23 | 2005-12-23 | 椭圆曲线加密算法的协处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN2864808Y (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536913A (zh) * | 2014-12-10 | 2015-04-22 | 山东华芯半导体有限公司 | 一种基于多块ram的大数运算电路及数据转移方法 |
CN106844223A (zh) * | 2016-12-20 | 2017-06-13 | 北京大学 | 数据搜索系统及方法 |
US11145365B2 (en) | 2016-12-20 | 2021-10-12 | Peking University | Data search systems and methods |
-
2005
- 2005-12-23 CN CN 200520146617 patent/CN2864808Y/zh not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536913A (zh) * | 2014-12-10 | 2015-04-22 | 山东华芯半导体有限公司 | 一种基于多块ram的大数运算电路及数据转移方法 |
WO2016091166A1 (zh) * | 2014-12-10 | 2016-06-16 | 山东华芯半导体有限公司 | 一种运算电路以及数据转移方法 |
CN104536913B (zh) * | 2014-12-10 | 2017-07-28 | 山东华芯半导体有限公司 | 一种基于多块ram的大数运算电路的数据转移方法 |
CN106844223A (zh) * | 2016-12-20 | 2017-06-13 | 北京大学 | 数据搜索系统及方法 |
US11145365B2 (en) | 2016-12-20 | 2021-10-12 | Peking University | Data search systems and methods |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1182460C (zh) | 信息处理装置与ic卡 | |
CN1702613A (zh) | 蒙哥马利模乘法器 | |
CN1530824A (zh) | 用于执行蒙哥马利型模乘法的装置及方法 | |
CN1259617C (zh) | 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路 | |
Lai et al. | Elixir: High-throughput cost-effective dual-field processors and the design framework for elliptic curve cryptography | |
CN1296817C (zh) | 模乘方法及装置及模乘计算单元 | |
CN1364284A (zh) | 数据变换装置和数据变换方法以及记录用以在计算机上执行数据变换方法的程序的计算机可读取存储媒体 | |
CN1258057A (zh) | 信息处理装置 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1242321C (zh) | 应用蒙哥马利算法的幂剩余运算器 | |
CN1387340A (zh) | 多级计数装置 | |
CN104579656A (zh) | 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器 | |
CN1648853A (zh) | 多字乘法-累加电路和蒙哥马利模乘法-累加电路 | |
CN1738238A (zh) | 高速可配置rsa加密算法及协处理器 | |
CN1764881A (zh) | 协助处理密码消息的指令 | |
CN1700637A (zh) | 一种新型的椭圆曲线密码协处理器 | |
Koschuch et al. | Hardware/software co-design of elliptic curve cryptography on an 8051 microcontroller | |
CN2864808Y (zh) | 椭圆曲线加密算法的协处理器 | |
CN1967469A (zh) | 高效模乘方法及装置 | |
CN101031904A (zh) | 带有两类子处理器以执行多媒体应用的可编程处理器系统 | |
CN101304312B (zh) | 一种适用于精简指令集处理器的加密单元 | |
CN1315040C (zh) | 一种逻辑可重组电路 | |
CN1571952A (zh) | 用于椭圆曲线上的点的通用计算方法 | |
CN114138235A (zh) | 软硬协同的分段扫描式蒙哥马利模幂计算系统及可读存储介质 | |
CN1230736C (zh) | 智能卡模乘器vlsi结构的计算机实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20070131 |
|
EXPY | Termination of patent right or utility model |