CN1700637A - 一种新型的椭圆曲线密码协处理器 - Google Patents

一种新型的椭圆曲线密码协处理器 Download PDF

Info

Publication number
CN1700637A
CN1700637A CN 200510025913 CN200510025913A CN1700637A CN 1700637 A CN1700637 A CN 1700637A CN 200510025913 CN200510025913 CN 200510025913 CN 200510025913 A CN200510025913 A CN 200510025913A CN 1700637 A CN1700637 A CN 1700637A
Authority
CN
China
Prior art keywords
coprocessor
elliptic curve
register
primary processor
instruction
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
CN 200510025913
Other languages
English (en)
Other versions
CN100536390C (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.)
Dishen Electronic Sci & Tech Shanghai LLC
Original Assignee
Dishen Electronic Sci & Tech Shanghai LLC
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 Dishen Electronic Sci & Tech Shanghai LLC filed Critical Dishen Electronic Sci & Tech Shanghai LLC
Priority to CNB200510025913XA priority Critical patent/CN100536390C/zh
Publication of CN1700637A publication Critical patent/CN1700637A/zh
Application granted granted Critical
Publication of CN100536390C publication Critical patent/CN100536390C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

一种新型的椭圆曲线密码处理器,应用于由主处理器和协处理器构成的ECC公钥密码系统,特点是:主处理器为由嵌入式微处理器构成,含有点乘控制器和通信控制器,经由总线和协处理器专用接口与椭圆曲线密码协处理器联结,该协处理器为硬件控制器,含有成电路联结的总线状态跟随器、译码控制电路和数据通路,分别实施对主处理器的状态跟踪,判别是否是协处理器扩展指令并给出与主处理器交互握手信号;将协处理器扩展指令翻译成微代码并再译成数据通路进行数据交换、与有限域运算的控制信号。本发明的优点是可与嵌入式CPU相配合构成椭圆曲线密码系统;灵活实现系统重配置,降低重开发成本;易于实现运算速度,芯片面积和功耗的最佳结合方案。

Description

一种新型的椭圆曲线密码协处理器
技术领域
本发明主要应用于信息安全领域,用以保证重要、敏感信息的机密性、完整性与不可抵赖性等。
背景技术
椭圆曲线作为代数几何中的重要问题已有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
  管腿名   类型                   描述
时钟和时钟控制信号 CLK 输入   时钟输入信号。所有的输出信号变化应该在时钟信号的上升沿发生,所有的输入信号应该在时钟信号的上升沿采样。
NRESET 输入   Not reset.此信号迫使处理器中止当前执行的指令,然后进入supervlsol模式。此信号至少需要保持有效两个时钟周期。
  流水线状态跟随信号   CPnMREQ 输入   Not memory request.当信号为低时,表明在下一个时钟周期内,信号将要访问memory.
CPnOPC 输入   Not opcode fetch.当信号为低时,表明处理器正在从存储器中取指。为高时,表明数据正在被传送。
  CPTBIT 输入   信号为高时,表明主处理器正在执行Thumb指令。信号为低时,表明主处理器正在执行ARM指令。
握手信号 CPnCPI 输入 Not coprocessor instruction.当ARM7TDMI-s执行协处理器指令,此信号为低,并且等待协处理器的响应。此信号的变化依赖于此响应(即协处理器输出握手信号CPA,CPB)。
CPA 输出 Coprocessor absent handshake(协处理器空缺握手信号)。当CPA为低时,表明协处理器能够处理主处理器的要求(由CPnCPI给出)。当CPA为高时,并且协处理器指令正在被执行,主处理器将忽略握手信号,同时进入undefined instruction trap.当CPA一直保持为低时,主处理器一直处于等待状态,直到CPB变为低,然后完成协处理器指令。
CPB 输出 Coprocessor busy handshake(处理器忙握手信号)。当CPB为高时,表明协处理器能够处理主处理器的要求(由CPnCPI给出),但是不能立即执行。当协处理器准备执行操作时,CPB将变为低。
数据线   MemDataOut[31:0] 输入 数据输入总线。信号传输方向为主处理器到协处理器,或者存储器到协处理器。
  MemDataIn[31:0] 输出 数据输出总线。信号传输方向为协处理器到主处理器,或者协处理器到存储器。
其它   MPINST[7:0] 输入 协处理器扩展指令操作码
  MPNumber[3:0] 输入 协处理器编号
关于椭圆曲线密码协处理器2的指令集设计
椭圆曲线密码协处理器2的指令集设计包含两部分:协处理器扩展指令集的设计和协处理器微代码指令集的设计。前者用于实现点乘运算中群运算层的调度,后者用于实现点乘运算中有限域基本运算,如有限域乘法、有限域平方运算等。
1)协处理器扩展指令集设计
由于本实施例采用“通用主控制器(MCU)+协处理器(Coprocessor)”的实现方案,其中主控制器1采用32位嵌入式微处理器,并在其协处理器扩展指令和相应协处理器接口的基础上开发椭圆曲线密码协处理器2。一共可以扩展16个协处理器,其中12个是有固定用途的,其余四个可以用于嵌入式系统的开发。
32位嵌入式微处理器中用于协处理器扩展的指令分为三类:协处理器数据运算指令、协处理器数据传送指令和协处理器寄存器传送指令。根据点乘调度算法的要求,本实施例定义了12条协处理器扩展指令,如下表2所示:
表2
2)协处理器微代码指令集设计
采用状态机来控制调度协处理器中的有限域运算。由于完成一次点加或者倍点运算的步骤相当多,由此会导致状态机过于庞大,控制逻辑过于复杂,增加了协处理器的设计和验证难度,同时也降低了协处理器的可扩展性。因此,本实施例采用微代码指令来控制协处理器中的有限域运算,降低了状态机的复杂度,易于设计和验证,同时也提高了协处理器的可扩展性。
在定义协处理器微代码指令集时,主要考虑以下原则:1)尽量减少访存次数。2)增强协处理器的可扩展性,包含两层含义。一是对于不同加密强度的要求,可以选择不同的有限域来实现,此时无需改变指令集,只需对数据通路进行相应的扩展即可;二是对于不同的调度算法实现,也无需改变指令集,只需要重新编写相应的微代码程序即可。
基于上述原则,本实施例定义了10条微代码指令,指令字长为8比特,分为有限域数据运算指令、有限域寄存器传送指令和有限域数据传送指令,如下表3所示:
表3
  指令类型   操作码   指令形式   功能描述
有限域数据运算指令   00000011   GFMUL   有限域乘法指令
  00000001   GFSQU   有限域平方指令
  0010xxxx   GFADD Rd   有限域加法指令
  0011xxxx   GFMOD Rd   有限域乘运算取模指令
  0111xxxx   GFSMOD Rd   有限域平方运算取模指令
  1001xxxx   GFSTZ Rs   数据为0判断指令
  有限域寄存器传送指令   11xxxxxx   GFLDR Rs Rd   有限域寄存器传送指令
有限域数据传送指令   0100xxxx   CPLDC Rd   此类指令用来处理协处理器中的一组寄存器和存储器之间的数据交换
  0110xxxx   CPSTC Rs
00010001 CPMRC   主处理器寄存器传送指令,可以使主处理器和协处理器之间进行直接的通信
表中Rs表示源操作数,Rd表示目的操作数。
关于椭圆曲线密码协处理器2的数据通路23的结构
由于串行乘法器的运算速度较慢,其数据吞吐率不高。因此,在高数据吞吐率应用场合下,往往采用基于多项式基的可伸缩分组并行乘法器。可伸缩分组并行技术,是一种串并结合的算法,它将原有的m位数据分成m/D组(D称为可伸缩分组系数),在一个时钟周期内计算一组数据,这样就可以在m/D个时钟周期内完成。所以,此结构可以在系统性能允许的条件下,从硬件实现的速度、面积和功耗三方面出发,找到实现的最佳方案。
假设W,A,B∈GF(2m), A = Σ j = 0 m - 1 α j α j , B = Σ i = 0 d - 1 B i α D i ,
Figure A20051002591300133
其中 B i = Σ j = 0 D - 1 b D i + j α j 0 ≤ i ≤ d Σ j = 0 m - 1 - D ( d - 1 ) b D i + j α j i = d - 1
由此有限域乘法运算: W = AB mod p ( x ) = A Σ i = 0 d - 1 B i α D i mod p ( x )
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)(m:m+D-1)modp(x))αD+W(i-1)(0:m-1)αD+ABd-i
其中 W ( i ) = Σ j = 0 m + D - 2 w j ( i ) α j , W ( i ) ( 0 : m - 1 ) = Σ j = 0 m - 1 w j ( i ) α j , W ( i ) ( m : m + D - 1 ) = Σ j = m m + D - 1 w j ( i ) α j
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为数域转换函数。

Claims (6)

1.一种新型的椭圆曲线密码协处理器,特别适用于由主处理器和协处理器构成的椭圆曲线公钥制密码系统,其特征在于:
a.该主处理器为由嵌入式微处理器构成的主控制器,其包括点乘控制器和通信控制器,分别向协处理器送出协处理器扩展指令和进行数据交换,
b.该椭圆密码协处理器为硬件控制器,主要由总线状态跟随器,译码控制电路和数据通路构成,并设有专用协处理器接口经由总线与主处理器连接,其中,
总线状态跟随器含有流水线跟随器和与之相连接的操作数状态单元,其接受来自主处理器发出的协处理器扩展指令,和从协处理器接口输入流水线状态信号及与主处理器进行交互的握手信号;
译码控制电路接收来自主处理器的指令信号,其含有指令寄存器并后接协处理器扩展指令与协处理器微代码指令两级译码器,并分别形成对总线状态跟随器和数据通路的控制信号;
数据通路包括成双向数据流联结的寄存器堆和数据通路单元,由寄存器堆与公钥密码系统存储器进行数据交换。
2.根据权利要求1所述的新型的椭圆曲线密码协处理器,其特征在于:所述主处理器为32位嵌入式微处理器,并基于协处理器扩展指令和相应的协处理器接口开发该椭圆曲线密码协处理器。
3.根据权利要求1或2所述的新型的椭圆曲线密码协处理器,其特征在于:所述译码控制电路包括依次成电路联结的第一指令寄存器、第一译码器、指针组、微代码组、第二多路选择器、第二指令寄存器和第二译码器。
4.根据权利要求1或2所述的新型的椭圆曲线密码协处理器,其特征在于:所述的数据通路单元包括依次成线路联结的数字串行平方器、数位串行乘法器、有限域加法电路和全零检测电路。
5.根据权利要求4所述的新型的椭圆曲线密码协处理器,其特征在于:在所述的数据通路中设有存储乘法器的两个输入数据的寄存器RA和寄存器RB。
6.根据权利要求4所述的新型的椭圆曲线密码协处理器,其特征在于:在所述的数据通路中设有存储有限域加法电路的两个输入数据的寄存器RC和寄存器RD。
CNB200510025913XA 2005-05-18 2005-05-18 一种椭圆曲线密码协处理器 Expired - Fee Related CN100536390C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200510025913XA CN100536390C (zh) 2005-05-18 2005-05-18 一种椭圆曲线密码协处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200510025913XA CN100536390C (zh) 2005-05-18 2005-05-18 一种椭圆曲线密码协处理器

Publications (2)

Publication Number Publication Date
CN1700637A true CN1700637A (zh) 2005-11-23
CN100536390C CN100536390C (zh) 2009-09-02

Family

ID=35476517

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510025913XA Expired - Fee Related CN100536390C (zh) 2005-05-18 2005-05-18 一种椭圆曲线密码协处理器

Country Status (1)

Country Link
CN (1) CN100536390C (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428140C (zh) * 2007-01-05 2008-10-22 东南大学 椭圆曲线密码体制协处理器的实现方法
US7480744B2 (en) 2006-01-12 2009-01-20 Mediatek, Inc. Method and apparatus for one time programming
CN101826142A (zh) * 2010-04-19 2010-09-08 中国人民解放军信息工程大学 一种可重构椭圆曲线密码处理器
CN101170406B (zh) * 2006-10-27 2010-10-06 北京中电华大电子设计有限责任公司 双核公钥密码算法运算协处理器的一种实现方法
CN102043916A (zh) * 2010-12-01 2011-05-04 戴葵 一种高性能可扩展公钥密码协处理器结构
CN102156836A (zh) * 2011-04-25 2011-08-17 天津大学 一种椭圆曲线密码处理器
CN102307090A (zh) * 2011-06-21 2012-01-04 西安电子科技大学 基于ⅱ型最优正规基的椭圆曲线密码协处理器
CN101405988B (zh) * 2006-03-28 2012-03-21 西门子公司 用于安全地确定数据的方法
CN101547089B (zh) * 2008-03-28 2012-07-25 上海爱信诺航芯电子科技有限公司 集成电路中素数域椭圆曲线密码算法的实现方法
CN103023659A (zh) * 2013-01-08 2013-04-03 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN104267926A (zh) * 2014-09-29 2015-01-07 北京宏思电子技术有限责任公司 获取椭圆曲线密码数据的方法和装置
CN108512665A (zh) * 2017-02-28 2018-09-07 塞尔蒂卡姆公司 在椭圆曲线密码系统中生成椭圆曲线点
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法
CN113704741A (zh) * 2021-09-01 2021-11-26 上海兆芯集成电路有限公司 具备椭圆曲线密码算法的处理器及其处理方法
WO2024138867A1 (zh) * 2022-12-30 2024-07-04 海光信息技术股份有限公司 密码协处理器、密码处理方法、芯片和计算机设备

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480744B2 (en) 2006-01-12 2009-01-20 Mediatek, Inc. Method and apparatus for one time programming
US7602655B2 (en) 2006-01-12 2009-10-13 Mediatek Inc. Embedded system
CN101405988B (zh) * 2006-03-28 2012-03-21 西门子公司 用于安全地确定数据的方法
CN101170406B (zh) * 2006-10-27 2010-10-06 北京中电华大电子设计有限责任公司 双核公钥密码算法运算协处理器的一种实现方法
CN100428140C (zh) * 2007-01-05 2008-10-22 东南大学 椭圆曲线密码体制协处理器的实现方法
CN101547089B (zh) * 2008-03-28 2012-07-25 上海爱信诺航芯电子科技有限公司 集成电路中素数域椭圆曲线密码算法的实现方法
CN101826142A (zh) * 2010-04-19 2010-09-08 中国人民解放军信息工程大学 一种可重构椭圆曲线密码处理器
CN101826142B (zh) * 2010-04-19 2011-11-09 中国人民解放军信息工程大学 一种可重构椭圆曲线密码处理器
CN102043916A (zh) * 2010-12-01 2011-05-04 戴葵 一种高性能可扩展公钥密码协处理器结构
CN102043916B (zh) * 2010-12-01 2012-10-03 戴葵 一种高性能可扩展公钥密码协处理器结构
CN102156836A (zh) * 2011-04-25 2011-08-17 天津大学 一种椭圆曲线密码处理器
CN102307090B (zh) * 2011-06-21 2014-04-02 西安电子科技大学 基于ⅱ型最优正规基的椭圆曲线密码协处理器
CN102307090A (zh) * 2011-06-21 2012-01-04 西安电子科技大学 基于ⅱ型最优正规基的椭圆曲线密码协处理器
CN103023659B (zh) * 2013-01-08 2015-06-10 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN103023659A (zh) * 2013-01-08 2013-04-03 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN104267926A (zh) * 2014-09-29 2015-01-07 北京宏思电子技术有限责任公司 获取椭圆曲线密码数据的方法和装置
CN104267926B (zh) * 2014-09-29 2018-03-09 北京宏思电子技术有限责任公司 获取椭圆曲线密码数据的方法和装置
CN108512665A (zh) * 2017-02-28 2018-09-07 塞尔蒂卡姆公司 在椭圆曲线密码系统中生成椭圆曲线点
CN108512665B (zh) * 2017-02-28 2023-06-16 黑莓有限公司 在椭圆曲线密码系统中生成椭圆曲线点
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法
CN108667623B (zh) * 2018-05-28 2021-10-19 广东工业大学 一种sm2椭圆曲线签名验证算法
CN113704741A (zh) * 2021-09-01 2021-11-26 上海兆芯集成电路有限公司 具备椭圆曲线密码算法的处理器及其处理方法
WO2024138867A1 (zh) * 2022-12-30 2024-07-04 海光信息技术股份有限公司 密码协处理器、密码处理方法、芯片和计算机设备

Also Published As

Publication number Publication date
CN100536390C (zh) 2009-09-02

Similar Documents

Publication Publication Date Title
CN1700637A (zh) 一种新型的椭圆曲线密码协处理器
Chang et al. Residue number systems: A new paradigm to datapath optimization for low-power and high-performance digital signal processing applications
Zhu et al. LWRpro: An energy-efficient configurable crypto-processor for module-LWR
CN103975302B (zh) 矩阵乘法累加指令
CN105335331B (zh) 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
CN105912501A (zh) 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
CN106100844B (zh) 基于点盲化方法的优化自动双线性对加密方法及装置
CN115622684B (zh) 基于全同态加密的隐私计算异构加速方法及装置
CN104579656A (zh) 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器
CN102043916B (zh) 一种高性能可扩展公钥密码协处理器结构
CN107133018A (zh) 执行groestl散列的指令
CN101547089A (zh) 集成电路中素数域椭圆曲线密码算法的实现方法
CN110059493B (zh) 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统
CN103761068A (zh) 优化的蒙哥马利模乘方法、模平方方法和模乘硬件
CN112202547A (zh) 一种轻量级分组密码gfcs实现方法、装置及可读存储介质
CN109479003A (zh) 安全椭圆曲线密码指令
WO2017180276A1 (en) Composite field scaled affine transforms-based hardware accelerator
WO2023160399A1 (zh) 一种加速器、加速方法和电子设备
KR20230141045A (ko) 암호 프로세서 장치 및 이를 채용하는 데이터 처리 장치
CN115801244A (zh) 用于资源受限处理器的后量子密码算法实现方法及系统
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
CN101031904A (zh) 带有两类子处理器以执行多媒体应用的可编程处理器系统
CN101304312B (zh) 一种适用于精简指令集处理器的加密单元
Chen et al. A high-performance unified-field reconfigurable cryptographic processor
Ye et al. A Highly-efficient Lattice-based Post-Quantum Cryptography Processor for IoT Applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090902

Termination date: 20190518

CF01 Termination of patent right due to non-payment of annual fee