CN112099762B - 快速实现sm2密码算法的协处理系统及方法 - Google Patents

快速实现sm2密码算法的协处理系统及方法 Download PDF

Info

Publication number
CN112099762B
CN112099762B CN202010945115.3A CN202010945115A CN112099762B CN 112099762 B CN112099762 B CN 112099762B CN 202010945115 A CN202010945115 A CN 202010945115A CN 112099762 B CN112099762 B CN 112099762B
Authority
CN
China
Prior art keywords
instruction
unit
address
storage unit
bit
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.)
Active
Application number
CN202010945115.3A
Other languages
English (en)
Other versions
CN112099762A (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.)
Shanghai Jiaotong University
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
Shanghai Jiaotong University
Beijing Smartchip Microelectronics Technology Co Ltd
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 Shanghai Jiaotong University, Beijing Smartchip Microelectronics Technology Co Ltd filed Critical Shanghai Jiaotong University
Priority to CN202010945115.3A priority Critical patent/CN112099762B/zh
Publication of CN112099762A publication Critical patent/CN112099762A/zh
Application granted granted Critical
Publication of CN112099762B publication Critical patent/CN112099762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)

Abstract

一种快速实现SM2密码算法的硬件协处理器,包括:依次相连的接口逻辑单元、取指单元、译码单元、执行单元、数据存储单元以及与取指单元相连的程序存储单元。本发明具有通过自动执行程序存储单元中的指令序列完成SM2加密、解密、签名、验签的计算过程,与基于状态机的设计方法相比节省了硬件资源,并且执行期间不需要与主处理器通信,减少了总线上的数据传输带来的延时,指令序列还可以根据优化算法进行调整,具有面积小、速度快、灵活性高的特点。

Description

快速实现SM2密码算法的协处理系统及方法
技术领域
本发明涉及的是一种信息安全领域的技术,具体是一种快速实现SM2密码算法的协处理系统及方法。
背景技术
现有的协处理器的特点和缺陷具体包括:由有限状态机控制算法流程,缺少适用于SM2算法的专用指令,控制逻辑占用资源较多,且不易修改,或者由主处理器控制算法流程,这样就增加了总线上数据传输带来的延时,降低计算速度。
发明内容
本发明针对现有技术存在的上述不足,提出一种快速实现SM2密码算法的硬件协处理器,具有通过自动执行程序存储单元中的指令序列完成SM2加密、解密、签名、验签的计算过程,与基于状态机的设计方法相比节省了硬件资源,并且执行期间不需要与主处理器通信,减少了总线上的数据传输带来的延时,指令序列还可以根据优化算法进行调整,具有面积小、速度快、灵活性高的特点。
本发明是通过以下技术方案实现的:
本发明涉及一种快速实现SM2密码算法的协处理系统,包括:依次相连的接口逻辑单元、取指单元、译码单元、执行单元、数据存储单元以及与取指单元相连的程序存储单元,其中:接口逻辑单元与主处理器进行通信,接收主处理器发送的数据和控制信号决定协处理器的工作状态,向主处理器返回计算结果、输出起始地址信息和使能信号至取指单元、输出参数和操作数信息至数据存储单元,取指单元在执行算法时使用内部程序计数器记录的当前指令地址从程序存储单元中取出指令并输出至译码单元,译码单元对指令译码并确定当前指令执行内容并分别输出使能信号和运算类型的选择信号至执行单元以实现计算任务、输出地址信息至数据存储单元,数据存储单元接收并存储来自接口逻辑的曲线参数以及来自执行单元的中间数据并根据需要快速输出至执行单元或接口逻辑。
所述的执行单元内优选进一步设有移位运算单元,该移位运算单元①根据模逆控制器的控制信息,将每轮循环中输入标量进行移位处理,并输出左移或右移一位后的结果至r_sh端口,或者②作为模逆运算的中间结果暂存于相连的寄存器中。
本发明涉及一种基于上述系统的流水线式控制方法,通过一个时钟周期的取指、一个时钟周期的译码、若干个时钟周期的执行以及一个时钟周期的写回四级流水方式实现指令的功能,并通过记录每条指令的当前运行周期和执行该指令所需的延时周期,对运行时序进行优化控制,使协处理器能够在处理大部分指令执行阶段的同时完成上一条指令的写回操作和下一条指令的取指、译码操作,提高了整体的运行效率,具体步骤包括:
步骤1)取指,具体包括:程序计数器pc存放当前指令在程序存储单元中的地址,其初始值是SM2算法指令的起始地址0x44。当接收到接口逻辑发送的执行算法的命令时,取指单元将pc的值发送至程序存储单元的地址端口,经过一个时钟周期后取出指令,并将其存放在inst中发送至译码单元。之后对pc的值进行更新,以便去取下一条指令,对pc的更新判断当前指令是否为转移指令,当为转移指令,则将pc赋值为指令中要转移的目的地址,否则令pc=pc+1;当pc增加至算法指令的结束地址时,停止取指操作并不再更新pc,同时给出执行结束的信号。
所述的判断当前指令是否为转移指令,当为条件转移指令时,则进一步判断是否满足转移条件,即数据存储器中地址为rs的数据是否为零,地址为rs的数据最高位是否为零,以及地址为rs的数据是否小于地址为rt的数据。
步骤2)译码,具体是指:译码单元从取指单元获得inst指令并将32位指令分解成8位操作码opr+8位源操作数1地址rs+8位源操作数2地址rt+8位目的操作数地址rd的形式,然后对操作码opr进行判断,按照操作码opr对应关系将操作码转换为具体的行为,完成对相关寄存器的赋值过程,向执行单元发送使能信号和运算类型的选择信号、向数据存储单元发送地址信息。
优选地,由于不同类型的指令需要耗费不同的时钟周期数,所以译码单元同时根据操作码类型设定延时周期。
步骤3)执行,具体是指:通过执行单元完成256位整数的具体计算任务,包括对模数p和模数n的模加减、模乘和模逆运算以及移位运算。
所述的移位运算具体是指:将输入的256位无符号整数向左或向右移动一位,通过同时输入的移位选择信号控制移动方向,以完成移位指令以及模逆运算中的移位操作,移位指令主要用于标量乘算法中对标量在每轮循环当中的处理。
步骤4)写回,具体是指:将执行单元的计算结果写入数据存储单元中,写入地址为译码阶段输出的8位目的操作数地址rd。由于相邻指令之间往往具有数据相关性,而下条指令的执行与当前指令的写回是发生在同一时刻的,这就要求数据存储单元能够及时为下条指令提供更新后的操作数,实现方法是当读写地址相同且写使能的情况下,数据存储单元直接提供即将写入的数据作为输出,并在下个周期将数据写入。
所述的对运行时序进行优化控制,具体为:在指令流水中,取指、译码和写回都只需要一个时钟周期,而执行阶段所需耗费的延时周期数由译码阶段给出,设置一个延时计数器来记录处于执行阶段指令的当前运行周期,在该指令的执行阶段开始时刻将其置零,然后每个时钟周期加1,当延时计数器的值与当前指令的延时周期数相差1时,即可进行后续两条指令的译码和取指,再经过一个时钟周期,可进行前一条指令的写回。
技术效果
本发明整体解决现有硬件协处理器无法实现SM2算法的高率处理问题。本发明针对SM2算法特点设计的专用指令,可以用类似软件编程的方式在硬件上高效灵活地实现SM2算法。
附图说明
图1为SM2硬件协处理器整体架构示意图;
图2为实施例执行单元硬件架构图;
图3为实施例协处理器流水线结构示意图。
具体实施方式
如图1所示,为本实施例涉及一种快速实现SM2密码算法的协处理系统,包括:依次相连的接口逻辑单元、取指单元、译码单元、执行单元、数据存储单元以及与取指单元相连的程序存储单元,其中:接口逻辑单元与主处理器进行通信,接收主处理器发送的数据和控制信号决定协处理器的工作状态,向主处理器返回计算结果、输出起始地址信息和使能信号至取指单元、输出参数和操作数信息至数据存储单元,取指单元在执行算法时使用内部程序计数器记录的当前指令地址从程序存储单元中取出指令并输出至译码单元,译码单元对指令译码并确定当前指令执行内容并分别输出使能信号和运算类型的选择信号至执行单元以实现计算任务、输出地址信息至数据存储单元,数据存储单元接收并存储来自接口逻辑的曲线参数以及来自执行单元的中间数据并根据需要快速输出至执行单元或接口逻辑。
所述的工作状态包括:存取数据、执行算法或者空闲。
所述的程序存储单元中存储实现SM2算法的指令序列以及加密、解密、签名、验签分别对应不同的地址范围。
所述的计算任务,包括256位整数的模加减、模乘、模逆和移位运算;
所述的专用指令,针对SM2算法所需调用的底层运算而专门设计,其长度为32位固定,指令格式为:8位操作码opr+8位源操作数1地址rs+8位源操作数2地址rt+8位目的操作数地址rd,能够实现控制256位整数的模加减、模乘、模逆和移位运算、数据读写、指令跳转等。
所述的操作码决定了指令的功能,根据计算SM2算法的实际需要,协处理器能够执行的操作码与对应的功能如表1所示。
表1
操作码opr[7:0] 功能
10000000 空指令
00000000 ([rs]+[rt])modp->[rd]
00000001 ([rs]–[rt])modp->[rd]
00000010 ([rs]*[rt])modp->[rd]
00000011 [rs]^-1modp->[rd]
00000100 读取rs中的数据
00000101 pc+2->[rd]
00001000 [rs]->[rd]
00001010 [rs]>>1->[rd]
00001011 [rs]<<1->[rd]
00010000 {rt,rd}->pc
00010001 if([rs]!=0){rt,rd}->pc;elsepc+1->pc
00010010 if([rs][255])pc+1->pc;else{rt,rd}->pc
00010100 [rt][15:0]->pc
00011000 if([rs]<[rt])pc+2->pc;elsepc+1->pc
00100000 ([rs]+[rt])modn->[rd]
00100001 ([rs]–[rt])modn->[rd]
00100010 ([rs]*[rt])modn->[rd]
00100011 ([rs]^-1)modn->[rd]
在表1中,[rs],[rt],[rd]分别表示根据相应地址从数据存储单元中取出的数据,p和n为SM2所使用的椭圆曲线参数,所列出的19种操作码可满足协处理器对SM2算法的计算需求
所述的数据和控制信号如表2所示。
表2
所述的接口逻辑单元根据输入的控制信号ctrl确定此时协处理器的工作状态,包括写入数据、读出数据、执行算法和空闲,具体为:
a)当工作状态为写入数据,接口逻辑单元会将data_in信号和addr信号输出至数据存储单元,同时将数据存储单元的写使能信号置1并保持一个时钟周期;
b)当工作状态为读出数据,接口逻辑单元会将addr信号输出至数据存储单元,经过一个时钟周期后从数据存储单元中读出数据并赋值给data_out信号,同时将data_val置1并保持一个时钟周期;
c)当工作状态为执行算法,接口逻辑单元会首先根据alg信号判断算法类型,根据算法类型对程序计数器pc赋初值,即算法对应指令序列的起始地址,然后启动取指单元开始工作,使其从程序存储单元的相应位置开始取指,控制算法的执行,接口逻辑单元会根据程序计数器PC的值来判断算法是否执行结束,当判断算法执行结束后会将计算结果赋值给data_out信号,并将data_val赋值为1;
d)当工作状态为空闲,接口逻辑单元会使pc保持为0,停止数据读写和取指等操作,保持data_val信号为0。
所述的程序存储单元内置实现SM2加密、解密、签名、验签的32位指令序列,在FPGA上以寄存器数组的形式实现,地址位宽是16位,数据位宽是32位,读取一条指令需要耗费一个时钟周期。
所述的指令序列依据算法流程,按照所设计的指令格式手动编写。
所述的地址,其不同的范围对应不同的算法,如按照当前的实现方式,签名对应的地址范围是0x44-0x6A,验签对应的地址范围是0x6B-0x9E,加密对应的地址范围是0x9F-0xD8,解密对应的地址范围是0xD9-0x104,地址0x00是空指令,地址范围0x01-0x43为可以被协议层算法所调用的标量乘算法。通过将程序计数器pc的值初始化为所选择算法的起始地址使算法开始执行,当pc指向所选择算法的结束地址时算法终止执行。指令序列可以根据具体需求重新编写,同时修改接口逻辑单元中对起始地址和结束地址的判定,可以实现更快速更安全的优化算法。
所述的取指单元按照顺序或者转移的方式从程序存储器中取出待执行的指令,该取指单元包括:一个程序计数器pc和一个指令寄存器inst,其中:程序计数器pc存放当前指令在程序存储器中的地址,根据外部控制信号通过接口逻辑单元确定其初始值,指令寄存器inst中存储有所述地址对应的指令并输出至译码单元。
所述的初始值决定了协处理器所要执行的SM2算法,当接收到接口逻辑单元发送的执行算法的命令时,取指单元将程序计数器pc的值输出至程序存储单元的地址端口,经过一个时钟周期后取出程序存储单元中该地址存储的指令,将其存放在指令寄存器inst中以便输出至译码单元;之后对程序计数器pc的值进行更新,以便去取下一条指令。
所述的更新,优选先判断当前指令是否为转移指令:当为转移指令时,则将pc赋值为指令中要转移的目的地址(条件转移指令还需要判断是否满足转移条件),否则将程序计数器pc的值递增1,即pc=pc+1。
优选地,所述的取指单元在接收到接口逻辑单元发送的结束执行的命令时,停止取指操作并不再更新程序计数器pc的值。
如图2所示,所述的执行单元包括:用于完成Montgomery模乘的计算的模乘单元、用于完成二进制扩展Euclidean算法的模逆单元。
所述的模乘单元根据高阶Montgomery模乘算法,将256位整数分解成64位整数执行运算,由于算法中多数操作有一个共同的形式(c,z)=z+xy+c,所以使用一个实现这种形式的乘加单元,用模乘控制器控制每个时钟周期向该单元输入的64位数据,经过36个时钟周期可完成一次256位Montgomery模乘运算。
所述的模逆单元中设有用于执行上层指令的模加减和移位单元,通过来自译码单元的控制命令选择执行的运算类型:当运算类型为模逆运算,则在模逆控制器的控制下完成计算任务,大约耗时1300个时钟周期;当运算类型为模加减或移位运算,则直接将数据输入模加/减或移位单元,只需1个时钟周期即可完成计算。
所述的数据存储单元中存储有椭圆曲线参数、随机数、计算过程中所需用到的常数以及中间值,其优选在FPGA上以Distributed RAM形式实现,具体为:RAM的数据宽度为256位,并选择Dual Port类型,即可以在同一时刻从RAM中读取两个地址对应的256位数据,读写数据均只需要1个时钟周期。计算SM2所需要的椭圆曲线参数、随机数和常数可以通过coe文件在初始化的过程中写入RAM,存储在特定地址范围内,也可以从外部发送写入命令、数据和地址,通过接口逻辑单元将数据写入RAM。
本实施例针对上述系统,采用流水线控制方式,将指令的执行过程分为取指、译码、执行、写回四级流水,其中取指需要两个时钟周期,译码和写回均需要一个时钟周期,执行所需耗费的周期数跟计算类型有关,如模加减需要一个周期,Montgomery模乘需要36个周期,模逆运算大约需要1300个周期。为了使图1中各功能单元能够按照流水的方式执行,设置了一个延时计数器来记录运行周期,在译码阶段设置了执行该指令所需要的延时周期,通过这两个寄存器的值来控制整个电路的运行时序,使协处理器能够在处理大部分指令执行阶段的同时完成上一条指令的写回操作和下一条指令的取指、译码操作,提高了整体的运行效率,流水线结构如图3所示。
经过具体实际实验,在Xilinx ZYNQ-7ZC706评估板的具体环境设置下,协处理器的最高时钟频率为110MHz,可以在2,480K个时钟周期内完成一次SM2中的标量乘运算,时间约为2.25ms,在此基础上执行不包含辅助函数的加密、解密、签名、验签算法所需耗费的时间分别为4.53ms,2.27ms,2.28ms,4.51ms。在资源使用方面,协处理器共占用7,146个Slice,其中LUT的使用量为14,658个,Register的使用量为17,420个,另外执行单元还占用了16个DSP资源。
综上,本发明使用较少的资源实现了较快的计算速度。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

Claims (7)

1.一种快速实现SM2密码算法的协处理系统,其特征在于,包括:依次相连的接口逻辑单元、取指单元、译码单元、执行单元、数据存储单元以及与取指单元相连的程序存储单元,其中:接口逻辑单元与主处理器进行通信,接收主处理器发送的数据和控制信号决定协处理器的工作状态,向主处理器返回计算结果、输出起始地址信息和使能信号至取指单元、输出参数和操作数信息至数据存储单元,取指单元在执行算法时使用内部程序计数器记录的当前指令地址从程序存储单元中取出指令并输出至译码单元,译码单元对指令译码并确定当前指令执行内容并分别输出使能信号和运算类型的选择信号至执行单元以实现计算任务、输出地址信息至数据存储单元,数据存储单元接收并存储来自接口逻辑的曲线参数以及来自执行单元的中间数据并根据需要快速输出至执行单元或接口逻辑;
所述的程序存储单元内置实现SM2加密、解密、签名、验签的32位指令序列,在FPGA上以寄存器数组的形式实现,地址位宽是16位,数据位宽是32位,读取一条指令需要耗费一个时钟周期。
2.根据权利要求1所述的协处理系统,其特征是,所述的执行单元内进一步设有移位运算单元,该移位运算单元①根据模逆控制器的控制信息,将每轮循环中输入标量进行移位处理,并输出左移或右移一位后的结果至r_sh端口,或者②作为模逆运算的中间结果暂存于相连的寄存器中。
3.一种基于权利要求1或2所述系统的流水线式控制方法,其特征在于,通过一个时钟周期的取指、一个时钟周期的译码、若干个时钟周期的执行以及一个时钟周期的写回四级流水方式实现指令的功能,并通过记录每条指令的当前运行周期和执行该指令所需的延时周期,对运行时序进行优化控制,使协处理器能够在处理大部分指令执行阶段的同时完成上一条指令的写回操作和下一条指令的取指、译码操作。
4.根据权利要求3所述的流水线式控制方法,其特征是,具体包括:
步骤1)取指:程序计数器存放当前指令在程序存储单元中的地址,其初始值是SM2算法指令的起始地址0x44;当接收到接口逻辑发送的执行算法的命令时,取指单元将程序计数器的值发送至程序存储单元的地址端口,经过一个时钟周期后取出指令,并将其存放在指令寄存器中发送至译码单元;之后对程序计数器的值进行更新,以便去取下一条指令,即判断当前指令是否为转移指令,当为转移指令,则将程序计数器赋值为指令中要转移的目的地址,否则令程序计数器=程序计数器+1;当程序计数器增加至算法指令的结束地址时,停止取指操作并不再更新程序计数器,同时给出执行结束的信号;
步骤2)译码:译码单元从取指单元获得指令寄存器指令并将32位指令分解成8位操作码opr+8位源操作数1地址rs+8位源操作数2地址rt+8位目的操作数地址rd的形式,然后对操作码opr进行判断,按照操作码opr对应关系将操作码转换为具体的行为,完成对相关寄存器的赋值过程,向执行单元发送使能信号和运算类型的选择信号、向数据存储单元发送地址信息;
步骤3)执行:通过执行单元完成256位整数的具体计算任务,包括对模数p和模数n的模加减、模乘和模逆运算以及移位运算;
步骤4)写回:将执行单元的计算结果写入数据存储单元中,写入地址为译码阶段输出的8位目的操作数地址;当读写地址相同且写使能的情况下,数据存储单元直接提供即将写入的数据作为输出,并在下个周期将数据写入。
5.根据权利要求3或4所述的流水线式控制方法,其特征是,针对不同类型的指令,译码单元根据操作码类型设定延时周期。
6.根据权利要求3或4所述的流水线式控制方法,其特征是,所述的移位运算具体是指:将输入的256位无符号整数向左或向右移动一位,通过同时输入的移位选择信号控制移动方向,以完成移位指令以及模逆运算中的移位操作,移位指令主要用于标量乘算法中对标量在每轮循环当中的处理。
7.根据权利要求3或4所述的流水线式控制方法,其特征是,所述的对运行时序进行优化控制,具体为:在指令流水中,取指、译码和写回都只需要一个时钟周期,而执行阶段所需耗费的延时周期数由译码阶段给出,设置一个延时计数器来记录处于执行阶段指令的当前运行周期,在该指令的执行阶段开始时刻将其置零,然后每个时钟周期加1,当延时计数器的值与当前指令的延时周期数相差1时,即可进行后续两条指令的译码和取指,再经过一个时钟周期,可进行前一条指令的写回。
CN202010945115.3A 2020-09-10 2020-09-10 快速实现sm2密码算法的协处理系统及方法 Active CN112099762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010945115.3A CN112099762B (zh) 2020-09-10 2020-09-10 快速实现sm2密码算法的协处理系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010945115.3A CN112099762B (zh) 2020-09-10 2020-09-10 快速实现sm2密码算法的协处理系统及方法

Publications (2)

Publication Number Publication Date
CN112099762A CN112099762A (zh) 2020-12-18
CN112099762B true CN112099762B (zh) 2024-03-12

Family

ID=73750768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010945115.3A Active CN112099762B (zh) 2020-09-10 2020-09-10 快速实现sm2密码算法的协处理系统及方法

Country Status (1)

Country Link
CN (1) CN112099762B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157636B (zh) * 2021-04-01 2023-07-18 西安邮电大学 协处理器、近数据处理装置和方法
CN113627108B (zh) * 2021-08-13 2023-08-25 山东大学 Fpga中密码算法的最大运行频率自动化搜索方法和系统
CN115291949B (zh) * 2022-09-26 2022-12-20 中国人民解放军国防科技大学 一种面向计算流体力学的加速计算装置和加速计算方法
CN115765990B (zh) * 2022-11-02 2023-07-18 华中科技大学 一种后量子密码算法的ntru安全协处理器
CN116306953B (zh) * 2023-01-17 2023-11-03 深圳国际量子研究院 一种量子物理实验平台的实时测控系统架构

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1508994A (zh) * 2002-12-15 2004-06-30 华为技术有限公司 一种宽带码分多址搜索中多径提取的方法和系统
CN102043916A (zh) * 2010-12-01 2011-05-04 戴葵 一种高性能可扩展公钥密码协处理器结构
CN102156836A (zh) * 2011-04-25 2011-08-17 天津大学 一种椭圆曲线密码处理器
CN102662628A (zh) * 2012-03-23 2012-09-12 山东大学 Rsa加密算法的指令优化处理器
CN102750133A (zh) * 2012-06-20 2012-10-24 中国电子科技集团公司第五十八研究所 支持simd的32位三发射的数字信号处理器
CN103150146A (zh) * 2013-01-31 2013-06-12 西安电子科技大学 基于可扩展处理器架构的专用指令集处理器及其实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612726B2 (en) * 2010-12-07 2013-12-17 King Fahd University Of Petroleum And Minerals Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1508994A (zh) * 2002-12-15 2004-06-30 华为技术有限公司 一种宽带码分多址搜索中多径提取的方法和系统
CN102043916A (zh) * 2010-12-01 2011-05-04 戴葵 一种高性能可扩展公钥密码协处理器结构
CN102156836A (zh) * 2011-04-25 2011-08-17 天津大学 一种椭圆曲线密码处理器
CN102662628A (zh) * 2012-03-23 2012-09-12 山东大学 Rsa加密算法的指令优化处理器
CN102750133A (zh) * 2012-06-20 2012-10-24 中国电子科技集团公司第五十八研究所 支持simd的32位三发射的数字信号处理器
CN103150146A (zh) * 2013-01-31 2013-06-12 西安电子科技大学 基于可扩展处理器架构的专用指令集处理器及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种通用ECC协处理器的设计与实现;蔡亮;戴紫彬;陈璐;;计算机工程;20090220(第04期);全文 *

Also Published As

Publication number Publication date
CN112099762A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN112099762B (zh) 快速实现sm2密码算法的协处理系统及方法
JP5699554B2 (ja) ベクトル処理回路、命令発行制御方法、及びプロセッサシステム
EP2372530A1 (en) Data processing method and device
JP2002333978A (ja) Vliw型プロセッサ
TWI764966B (zh) 用於控制矢量記憶體存取之資料處理裝置及方法
US20030120882A1 (en) Apparatus and method for exiting from a software pipeline loop procedure in a digital signal processor
JP7048612B2 (ja) ベクトル生成命令
JP2023533795A (ja) レジスタデータの消去
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
US20030154469A1 (en) Apparatus and method for improved execution of a software pipeline loop procedure in a digital signal processor
JP4800582B2 (ja) 演算処理装置
US8631173B2 (en) Semiconductor device
JP2009507292A (ja) 分離したシリアルモジュールを備えるプロセッサアレイ
JPH0922379A (ja) マイクロコンピュータ
JP3000857B2 (ja) プログラマブルコントローラ
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP7384374B2 (ja) 中央演算処理装置
JP3461887B2 (ja) 可変長パイプライン制御装置
US20230038919A1 (en) Programmable controller
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
US20050033939A1 (en) Address generation
JP2522563B2 (ja) プログラマブルコントロ―ラ
CN117009287A (zh) 一种于弹性队列存储的动态可重构处理器
JPH05173778A (ja) データ処理装置
JP3063593B2 (ja) プログラマブルコントローラ

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
GR01 Patent grant
GR01 Patent grant