CN110311772A - 一种可编程加解密方法及其系统 - Google Patents
一种可编程加解密方法及其系统 Download PDFInfo
- Publication number
- CN110311772A CN110311772A CN201910518666.9A CN201910518666A CN110311772A CN 110311772 A CN110311772 A CN 110311772A CN 201910518666 A CN201910518666 A CN 201910518666A CN 110311772 A CN110311772 A CN 110311772A
- Authority
- CN
- China
- Prior art keywords
- instruction
- unit
- decoding
- bits
- arithmetic element
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Advance Control (AREA)
Abstract
本发明涉及加解密算法技术领域,公开了一种可编程加解密,包括如下步骤:分配专用处理器;为专用处理器匹配并匹配调用有模乘运算单元、模加运算单元以及除余运算单元,模乘运算单元、模加运算单元以及除余运算单元均为大数运算单元;接收外界指令并译码,译码为根据预先设定的指令集为外界指令匹配出对应具体的操作;保存译码的中间结果;预取变长的指令,需要使用立即数的指令为32比特,其余指令为16比特;运算速度提升到了最优,可将通用处理器数据存取的时间由原来的64次存取操作缩短为2次,大大缩短了数据存取所需的存取时间,大数运算的时间仍保持最优;指令和数据均存放在内存内,节省了大量硬件控制逻辑。
Description
技术领域
本发明涉及加解密算法技术领域,更具体地说,它涉及一种可编程加解密。
背景技术
目前ECC加解密算法主要的实现方法为:由硬件实现ECC所需的基础运算单元,再由通用处理器进行调度,完成ECC所有运算过程,该方法较灵活,硬件辑消耗较少,但运算速度与纯硬件逻辑相比较慢。目前CPU内通用寄存器多为比特寄存器,进行一次模乘运算需要在内存和运算单元之间进行256x4次数据取,一次存取需要由读、写两次操作组成,所以至少需要进行256+32x2x4=6次存取操作,大大减慢了运算时间。若采用纯硬件设计,虽然不存在存取操作的限制,但硬件控制逻辑将非常巨大。
发明内容
针对现有的技术问题,本发明目的一在于提供一种可编程加解密方法,其具有在保证运算速度最优与灵活性的前提下,提高了数据存取速度,达到了硬件逻辑开销最小化的优点。本发明目的二在于提供一种可编程加解密系统,其具有在保证运算速度最优与灵活性的前提下,提高了数据处理速度,达到了硬件逻辑开销最小化优点。
为实现上述目的一,本发明提供了如下技术方案:
一种可编程加解密方法,包括如下步骤:
分配专用处理器;
为专用处理器匹配并匹配调用有模乘运算单元、模加运算单元以及除余运算单元,模乘运算单元、模加运算单元以及除余运算单元均为大数运算单元;
接收外界指令并译码,译码为根据预先设定的指令集为外界指令匹配出对应具体的操作;
保存译码的中间结果;
预取变长的指令,需要使用立即数的指令为32比特,其余指令为16比特。
通过上述技术方案,运算速度提升到了最优,可将通用处理器数据存取的时间由原来的64次存取操作缩短为2次,大大缩短了数据存取所需的存取时间,而大数运算的时间仍保持最优;通过指令集实现,可通过裁剪指令与数据内存,很方便地进行功能裁剪;指令和数据均存放在内存内,节省了大量硬件控制逻辑。
进一步的,所述预取变长的指令中,还包括:
识别指令长度;
从内存中读取一条完整的指令;
译码完整的指令。
通过上述技术方案,通过将控制指令存于内存,实现灵活可裁剪、扩展,且降低了硬件逻辑开销。
进一步的,所述识别指令长度中,还包括:
接收跳转指令;
撤销流水中的指令;
重新从指定地址取指令。
进一步的,所述接收外界指令并译码中,还包括:译码步骤中直接调用大数运算单元。
通过上述技术方案,通过专用处理器内的大数运算单元,实现大数运算单元数据的快速存取操作,达到最优运算速度。
为实现上述目的二,本发明提供了如下技术方案:
一种可编程加解密系统,包括专用处理器、指令读取单元、指令译码单元、通用寄存器、指令预取单元、数据存储单元以及供专用处理器调用的多个大数运算单元,大数运算单元包括模乘运算单元、模加运算单元以及除余运算单元;
指令读取单元用于读取出外界指令;
指令译码单元用于指令译码,它可将由指令读取单元输入的外界指令转化为具体的操作,译码为根据预先设定的指令集为外界指令匹配出对应具体的操作;
通用寄存器用于保存指令译码单元处理的中间结果,通用寄存器用于保存指令译码单元处理的中间结果,内部有多个通用寄存器;
指令预取单元用于指令的预取,指令为16比特、32比特变长,当需要使用立即数的指令为32比特,其余指令为16比特;
数据存取单元用于从内存中读取数据后传给专用处理器,或者将专用处理器提供的数据写入内存。
进一步的,多个通用寄存器包括多个16比特控制用寄存器、多个大数运算单元、状态寄存器、最高位为1的常数寄存器以及程序指针寄存器。
进一步的,指令预取单元识别指令长度,并从内存中读取一条完整的指令然后送入指令译码单元。
进一步的,指令预取单元收到处理器发来的跳转指令时,先撤销流水中的指令,重新从指定地址取指令。
进一步的,指令译码单元与多个大数运算单元控制连接,用于直接控制或者调用多个大数运算单元。
与现有技术相比,本发明的有益效果是:通过专用处理器内的大数运算单元,实现大数运算单元数据的快速存取操作,达到最优运算速度,可将通用处理器数据存取的时间由原来的64次存取操作缩短为2次,大大缩短了数据存取所需的存取时间,而大数运算的时间仍保持最优;通过将控制指令存于内存,实现灵活可裁剪、扩展,且降低了硬件逻辑开销。通过指令集实现,可通过裁剪指令与数据内存,很方便地进行功能裁剪。指令和数据均存放在内存内,节省了大量硬件控制逻辑。通过16、32位可变指令长度,减少了指令代码的内存消耗。
附图说明
图1为本发明实施例一的方法流程示意图;
图2为本发明实施例一指令译码单元支持的指令集;
图3为本发明实施例二的系统框图。
具体实施方式
下面结合附图和实施例,对本发明进行详细描述。
实施例一
一种可编程加解密方法,如图1所示,包括如下步骤:
分配专用处理器。专用处理器为单独列出来的处理器。
为专用处理器匹配并匹配调用有模乘运算单元、模加运算单元以及除余运算单元,模乘运算单元、模加运算单元以及除余运算单元均为大数运算单元。接收外界指令并译码,译码为根据预先设定的指令集为外界指令匹配出对应具体的操作。译码步骤中直接调用大数运算单元。通过专用处理器内的大数运算单元,实现大数运算单元数据的快速存取操作,达到最优运算速度。
保存译码的中间结果。预取变长的指令,需要使用立即数的指令为32比特,其余指令为16比特。识别指令长度,从内存中读取一条完整的指令,译码完整的指令。识别指令长度中,若接收到跳转指令,则撤销流水中的指令,然后重新从指定地址取指令。通过将控制指令存于内存,实现灵活可裁剪、扩展,且降低了硬件逻辑开销。
运算速度提升到了最优,可将通用处理器数据存取的时间由原来的64次存取操作缩短为2次,大大缩短了数据存取所需的存取时间,而大数运算的时间仍保持最优。通过指令集实现,可通过裁剪指令与数据内存,很方便地进行功能裁剪。指令和数据均存放在内存内,节省了大量硬件控制逻辑。
实施例二
一种可编程加解密系统,如图3所示,包括专用处理器、指令读取单元、指令译码单元、通用寄存器、指令预取单元、数据存储单元以及供专用处理器调用的多个大数运算单元,大数运算单元包括模乘运算单元、模加运算单元以及除余运算单元。
指令读取单元用于读取出外界指令。
指令译码单元用于指令译码,它可将由指令读取单元输入的外界指令转化为具体的操作,译码为根据预先设定的指令集为外界指令匹配出对应具体的操作。指令译码单元与多个大数运算单元控制连接,用于直接控制或者调用多个大数运算单元,由指令译码单元直接控制,以达到最快的调用速度。
通用寄存器用于保存指令译码单元处理的中间结果,通用寄存器用于保存指令译码单元处理的中间结果,内部有多个通用寄存器。
指令预取单元用于指令的预取,指令为16比特、32比特变长,当需要使用立即数的指令为32比特,其余指令为16比特。
数据存取单元用于从内存中读取数据后传给专用处理器,或者将专用处理器提供的数据写入内存。
多个通用寄存器包括多个16比特控制用寄存器、多个大数运算单元、状态寄存器、最高位为1的常数寄存器以及程序指针寄存器。大数寄存器位宽由加密算法最大需要支持的密钥位宽决定,状态寄存器用于记录溢出等状态。
指令预取单元识别指令长度,并从内存中读取一条完整的指令然后送入指令译码单元。指令预取单元收到处理器发来的跳转指令时,先撤销流水中的指令,重新从指定地址取指令。
系统由一个专用处理器和多个大数运算单元组成,可根据预设程序,独立完成ECC的加解密、数字签名、数字签名验证等运算,在保证运算速度最优与灵活性的前提下,提高了数据存取速度,达到了硬件逻辑开销最小化。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种可编程加解密方法,其特征在于,包括如下步骤:
分配专用处理器;
为专用处理器匹配并匹配调用有模乘运算单元、模加运算单元以及除余运算单元,模乘运算单元、模加运算单元以及除余运算单元均为大数运算单元;
接收外界指令并译码,译码为根据预先设定的指令集为外界指令匹配出对应具体的操作;
保存译码的中间结果;
预取变长的指令,需要使用立即数的指令为32比特,其余指令为16比特。
2.根据权利要求1所述的方法,其特征在于,所述预取变长的指令中,还包括:
识别指令长度;
从内存中读取一条完整的指令;
译码完整的指令。
3.根据权利要求1所述的方法,其特征在于,所述识别指令长度中,还包括:
接收跳转指令;
撤销流水中的指令;
重新从指定地址取指令。
4.根据权利要求1所述的方法,其特征在于,所述接收外界指令并译码中,还包括:译码步骤中直接调用大数运算单元。
5.一种可编程加解密系统,其特征在于,包括专用处理器、指令读取单元、指令译码单元、通用寄存器、指令预取单元、数据存储单元以及供专用处理器调用的多个大数运算单元,大数运算单元包括模乘运算单元、模加运算单元以及除余运算单元;
指令读取单元用于读取出外界指令;
指令译码单元用于指令译码,它可将由指令读取单元输入的外界指令转化为具体的操作,译码为根据预先设定的指令集为外界指令匹配出对应具体的操作;
通用寄存器用于保存指令译码单元处理的中间结果,通用寄存器用于保存指令译码单元处理的中间结果,内部有多个通用寄存器;
指令预取单元用于指令的预取,指令为16比特、32比特变长,当需要使用立即数的指令为32比特,其余指令为16比特;
数据存取单元用于从内存中读取数据后传给专用处理器,或者将专用处理器提供的数据写入内存。
6.根据权利要求5所述的系统,其特征在于,多个通用寄存器包括多个16比特控制用寄存器、多个大数运算单元、状态寄存器、最高位为1的常数寄存器以及程序指针寄存器。
7.根据权利要求5所述的系统,其特征在于,指令预取单元识别指令长度,并从内存中读取一条完整的指令然后送入指令译码单元。
8.根据权利要求7所述的系统,其特征在于,指令预取单元收到处理器发来的跳转指令时,先撤销流水中的指令,重新从指定地址取指令。
9.根据权利要求7所述的系统,其特征在于,指令译码单元与多个大数运算单元控制连接,用于直接控制或者调用多个大数运算单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910518666.9A CN110311772A (zh) | 2019-06-15 | 2019-06-15 | 一种可编程加解密方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910518666.9A CN110311772A (zh) | 2019-06-15 | 2019-06-15 | 一种可编程加解密方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110311772A true CN110311772A (zh) | 2019-10-08 |
Family
ID=68075842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910518666.9A Pending CN110311772A (zh) | 2019-06-15 | 2019-06-15 | 一种可编程加解密方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110311772A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199151A1 (en) * | 2001-06-26 | 2002-12-26 | Zuraski Gerald D. | Using type bits to track storage of ECC and predecode bits in a level two cache |
CN102156836A (zh) * | 2011-04-25 | 2011-08-17 | 天津大学 | 一种椭圆曲线密码处理器 |
-
2019
- 2019-06-15 CN CN201910518666.9A patent/CN110311772A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199151A1 (en) * | 2001-06-26 | 2002-12-26 | Zuraski Gerald D. | Using type bits to track storage of ECC and predecode bits in a level two cache |
CN102156836A (zh) * | 2011-04-25 | 2011-08-17 | 天津大学 | 一种椭圆曲线密码处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11321469B2 (en) | Microprocessor pipeline circuitry to support cryptographic computing | |
CN101373427B (zh) | 程序执行控制装置 | |
JP5945291B2 (ja) | デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置 | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
KR100942668B1 (ko) | 멀티스레딩된 프로세서 및 이를 포함하는 프로세서 시스템 | |
EP3843322A1 (en) | Method and apparatus for multi-key total memory encryption based on dynamic key derivation | |
CN107771318B (zh) | 基于块大小将指令块映射到指令窗口 | |
US10191742B2 (en) | Mechanism for saving and retrieving micro-architecture context | |
EP0927394B1 (en) | A cache line branch prediction scheme that shares among sets of a set associative cache | |
US20080082843A1 (en) | Dynamic branch prediction predictor | |
CN102144225A (zh) | 实时数据处理方法和装置 | |
EP2836906B1 (en) | System and method for real time instruction tracing | |
WO2013032446A1 (en) | Hardware-based array compression | |
CN109565438A (zh) | 混合aes-sms4硬件加速器 | |
US6378050B1 (en) | Information processing apparatus and storage medium | |
US10069512B2 (en) | Systems, methods, and apparatuses for decompression using hardware and software | |
US7143268B2 (en) | Circuit and method for instruction compression and dispersal in wide-issue processors | |
WO2013101251A1 (en) | Real time instruction tracing compression of ret instructions | |
CN110311772A (zh) | 一种可编程加解密方法及其系统 | |
CN107358125A (zh) | 一种处理器 | |
US6289428B1 (en) | Superscaler processor and method for efficiently recovering from misaligned data addresses | |
US20160147538A1 (en) | Processor with multiple execution pipelines | |
KR920003182B1 (ko) | 마이크로프로세서 | |
EP4202664B1 (en) | System, apparatus and method for throttling fusion of micro-operations in a processor | |
US20040078552A1 (en) | Program counter adjustment based on the detection of an instruction prefix |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191008 |
|
RJ01 | Rejection of invention patent application after publication |