CN107302431A - 同时实现rsa/ecc加解密算法的装置 - Google Patents
同时实现rsa/ecc加解密算法的装置 Download PDFInfo
- Publication number
- CN107302431A CN107302431A CN201610230897.6A CN201610230897A CN107302431A CN 107302431 A CN107302431 A CN 107302431A CN 201610230897 A CN201610230897 A CN 201610230897A CN 107302431 A CN107302431 A CN 107302431A
- Authority
- CN
- China
- Prior art keywords
- module
- sent
- control module
- parameter
- calculating
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种同时实现RSA/ECC加解密算法的装置,包括:CPU接口模块,用于接收配置参数并发送给主控模块,返回状态参数;主控模块,用于接收并存储配置参数,根据所述配置参数向复杂计算控制模块发送计算命令;将状态参数发送给所述CPU接口模块;接收读取命令并向基本计算模块发送计算参数;复杂计算控制模块,用于接收计算命令,根据所述计算命令,生成运算命令发送给基本计算模块;接收基本计算模块的完成信号;基本计算模块,用于接收运算命令,并向主控模块发送读取命令以获取计算参数,根据运算命令以及计算参数完成计算,向复杂计算控制模块发送完成信号,同时将计算结果发送给主控模块。
Description
技术领域
本发明涉及公钥加解密技术,尤其涉及一种同时实现RSA/ECC加解密算法的装置。
背景技术
RSA公钥加密算法是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被国际标准化组织(International Organizationfor Standardization,ISO)推荐为公钥数据加密标准。
RSA公钥加密算法的安全性是基于大素数因式分解的困难性,随着计算机处理速度与分布式计算等理论的飞速发展,较短的RSA密钥已不再安全。目前1024位长度的密钥也可以在较短的时间内被破解,因此,为了提高RSA加密的安全强度,需要采用更高位宽的密钥。但是,随着密钥长度的增加,RSA加解密的速度将大幅降低,严重影响使用效率。
椭圆曲线密码学(Elliptic curve cryptography,ECC)加密算法的安全性是基于解决椭圆曲线离散对数问题的困难性,目前已知的公钥加密体制中,ECC加密算法是对每比特所提供加密强度最高的一种体制,即在位宽相同的情况下,ECC加密算法具有最高的安全强度。因此,在对位宽,功耗,安全性等方面有更高要求的应用场景下,ECC加密算法具有极大的优势。
公钥加密算法中密钥对的生成需要若干个随机的大素数,以及一系列复杂的计算;目前绝大部分的密钥对生成是通过软件实现的;但通过软件生成公钥密钥对耗时较长,且会有被第三方窃取素数或随机因子的风险。
RSA加密算法的核心为大数模幂运算,ECC加密算法的核心为椭圆点乘运算;由于计算步骤非常复杂,目前大部分加解密装置只是单一实现其中一种加密算法,而可以同时实现两种加密算法的装置,又很难平衡运算速度、面积和功耗,不能适配于分别对速度或面积有较高要求的不同场景。
发明内容
有鉴于此,本发明实施例期望提供一种同时实现RSA/ECC加解密算法的装置,以在一个装置中同时实现RSA/ECC两种加解密算法。
本发明实施例的技术方案是这样实现的:
一种同时实现RSA/ECC加解密算法的装置,所述装置包括:
中央处理器CPU接口模块、主控模块、复杂计算控制模块和基本计算模块;
其中,所述CPU接口模块,用于接收配置参数并发送给所述主控模块,返回所述主控模块中的状态参数;
所述主控模块,用于接收并存储配置参数,根据所述配置参数向所述复杂计算控制模块发送计算命令;将所述状态参数发送给所述CPU接口模块;接收所述基本计算模块发送的读取命令,向所述基本计算模块发送计算参数;
所述复杂计算控制模块,用于接收所述主控模块发送的计算命令,根据所述计算命令,生成运算命令发送给所述基本计算模块;接收所述基本计算模块的完成信号;
所述基本计算模块,用于接收所述运算命令,并向所述主控模块发送读取命令以获取所述计算参数,根据所述运算命令以及获取的所述计算参数完成计算,向所述复杂计算控制模块发送完成信号,同时将计算结果发送给所述主控模块。
如上所述的装置,其中,所述计算命令中包含RSA/ECC计算;
所述复杂计算控制模块具体用于,将接收到的所述计算命令中的RSA/ECC计算分解成一系列模乘运算,并生成与各模乘运算对应的运算命令发送给所述基本计算模块。
如上所述的装置,其中,所述装置还包括:
从机接口和主机接口;
所述从机接口,用于接收所述CPU接口模块发送的所述配置参数,并将所述配置参数发送给所述主控模块;
所述主机接口,用于接收所述主控模块发送的所述配置参数,并进行存储。
如上所述的装置,其中,所述装置还包括:
存储模块,用于存储明文参数、密文参数、密钥参数和所述基本计算模块的计算中间结果。
如上所述的装置,其中,所述配置参数用于配置所述装置运行的算法为RSA算法或ECC算法、密钥位宽以及工作模式,所述工作模式包括加密模式和解密模式。
如上所述的装置,其中,所述CPU接口模块、所述从机接口和所述主机接口均支持外围总线APB协议、系统总线AHB协议、片内总线AXI协议和ACE_Lite总线协议。
一种同时实现RSA/ECC加解密算法的装置,所述装置包括:
中央处理器CPU接口模块、主控模块、复杂计算控制模块、基本计算模块、直接内存存取DMA控制器、密钥生成模块、真随机数发生模块和大数乘法处理模块;
其中,所述CPU接口模块,用于接收配置参数并发送给所述主控模块,返回所述主控模块中的状态参数;
所述主控模块,用于接收并存储配置参数,根据所述配置参数向所述密钥生成模块发送密钥生成命令;向所述复杂计算控制模块发送计算命令;将所述状态参数发送给所述CPU接口模块;接收所述基本计算模块发送的读取命令,向所述基本计算模块发送计算参数;
所述复杂计算控制模块,用于接收所述主控模块发送的计算命令,根据所述计算命令,生成加减法运算命令发送给所述基本计算模块,生成模乘运算命令发送给所述大数乘法处理模块;接收所述基本计算模块和所述大数乘法处理模块的完成信号;
所述基本计算模块,用于接收所述加减法运算命令,并向所述主控模块发送读取命令以获取所述计算参数,根据所述加减法运算命令以及获取的所述计算参数完成计算,向所述复杂计算控制模块发送所述完成信号,同时将计算结果发送给所述主控模块;
所述密钥生成模块,用于接收所述密钥生成命令,并调用所述真随机数发生模块生成随机数生成密钥对,并发送给所述主控模块进行存储;
所述真随机数发生模块,用于产生真随机数并发送给所述密钥生成模块;
所述DMA控制器,用于接收并存储数据;
所述大数乘法处理模块,用于接收所述模乘运算命令,并向所述DMA控制器发送读取命令以获取所述计算参数,根据所述模乘运算命令以及获取的所述计算参数完成计算,将计算的中间结果存储至存储器,向所述复杂计算控制模块发送所述完成信号。
如上所述的装置,其中,所述计算命令中包含RSA/ECC计算;
所述复杂计算控制模块具体用于,将接收到的所述计算命令中的RSA/ECC计算分解成一系列模乘运算和加减运算,并生成所述加减法运算命令发送给所述基本计算模块,生成所述模乘运算命令发送给所述大数乘法处理模块。
如上所述的装置,其中,所述装置还包括:
从机接口和主机接口;
所述从机接口,用于接收所述CPU接口模块发送的所述配置参数,并将所述配置参数发送给所述主控模块;
所述主机接口,用于接收所述主控模块发送的所述配置参数,并进行存储。
如上所述的装置,其中,所述CPU接口模块、所述主机接口和所述从机接口均支持外围总线APB协议、系统总线AHB协议、片内总线AXI协议和ACE_Lite总线协议。
如上所述的装置,其中,所述配置参数用于配置所述装置运行的算法为RSA算法或ECC算法、密钥位宽以及工作模式,所述工作模式包括加密模式和解密模式。
如上所述的装置,其中,所述装置还包括:
存储模块,用于存储明文参数、密文参数、密钥参数、所述基本计算模块的计算中间结果和所述大数乘法处理模块的计算中间结果。
如上所述的装置,其中,所述存储模块采用双口随机存取存储器RAM。
如上所述的装置,其中,所述大数乘法处理模块,具体用于调用可伸缩的循环脉动阵列完成任意位宽的大数模乘运算。
本发明实施例提供的同时实现RSA/ECC加解密算法的装置,包括:所述CPU接口模块,用于接收配置参数并发送给所述主控模块,返回所述主控模块中的状态参数;所述主控模块,用于接收并存储配置参数,根据所述配置参数向所述复杂计算控制模块发送计算命令;将所述状态参数发送给所述CPU接口模块;接收所述基本计算模块发送的读取命令,向所述基本计算模块发送计算参数;所述复杂计算控制模块,用于接收所述主控模块发送的计算命令,根据所述计算命令,生成运算命令发送给所述基本计算模块;接收所述基本计算模块的完成信号;所述基本计算模块,用于接收所述运算命令,并向所述主控模块发送读取命令以获取所述计算参数,根据所述运算命令以及获取的所述计算参数完成计算,向所述复杂计算控制模块发送完成信号,同时将计算结果发送给所述主控模块。能够同时实现RSA/ECC两种公钥加解密算法,用户可以根据速度优先或面积优先的具体场景进行相应的配置,大幅提高本发明在不同应用场景下的适配性。
附图说明
图1为本发明实施例一提供的同时实现RSA/ECC加解密算法的装置的结构示意图;
图2为使用本实施例提供的同时实现RSA/ECC加解密算法的装置完成公钥加密运算的配置示意图一;
图3为本发明实施例二提供的同时实现RSA/ECC加解密算法的装置的结构示意图;
图4为使用本实施例提供的同时实现RSA/ECC加解密算法的装置完成公钥加密运算的配置示意图二。
具体实施方式
在本发明的各实施例中,本发明提出了一种RSA/ECC公钥加解密装置,可以同时实现RSA/ECC两种公钥加解密算法。用户可以根据速度优先或面积优先的具体场景进行相应的配置,大幅提高本发明在不同应用场景下的适配性。该装置支持外围总线(Advanced Peripheral Bus,APB)协议、系统总线(AdvancedHigh performance Bus,AHB)协议、片内总线(Advanced eXtensible Interface,AXI)协议和ACE_Lite等多种总线协议,支持RSA/ECC密钥生成功能,根据存储空间大小,可支持任意长度的密钥。
图1为本发明实施例一提供的同时实现RSA/ECC加解密算法的装置的结构示意图。如图1所示,本实施例提供的装置包括:
中央处理器(Central Processing Unit,CPU)接口模块、主控模块、复杂计算控制模块和基本计算模块;
其中,所述CPU接口模块,用于接收配置参数并发送给所述主控模块,返回所述主控模块中的状态参数;
所述主控模块,用于接收并存储配置参数,根据所述配置参数向所述复杂计算控制模块发送计算命令;将所述状态参数发送给所述CPU接口模块;接收所述基本计算模块发送的读取命令,向所述基本计算模块发送计算参数;
所述复杂计算控制模块,用于接收所述主控模块发送的计算命令,根据所述计算命令,生成运算命令发送给所述基本计算模块;接收所述基本计算模块的完成信号;
所述基本计算模块,用于接收所述运算命令,并向所述主控模块发送读取命令以获取所述计算参数,根据所述运算命令以及获取的所述计算参数完成计算,向所述复杂计算控制模块发送完成信号,同时将计算结果发送给所述主控模块。
所述计算命令中包含RSA/ECC计算;所述复杂计算控制模块具体用于,将接收到的所述计算命令中的RSA/ECC计算分解成一系列模乘运算,并生成与各模乘运算对应的运算命令发送给所述基本计算模块。
需要说明的是,所述复杂计算控制模块主要实现ECC算法中的椭圆点乘、椭圆点加运算,RSA算法中的大数模幂运算,以及通用的模除和Montgomey预计算等运算控制;所述基本计算模块主要实现大数的加法、减法、乘法、模约减和模乘等基本运算。
进一步地,所述装置还包括:从机接口和主机接口;所述从机接口,用于接收所述CPU接口模块发送的所述配置参数,并将所述配置参数发送给所述主控模块;所述主机接口,用于接收所述主控模块发送的所述配置参数,并进行存储。
进一步地,所述装置还包括:存储模块,用于存储明文参数、密文参数、密钥参数和所述基本计算模块的计算中间结果。
需要说明的是,所述配置参数用于配置所述装置运行的算法为RSA算法或ECC算法、密钥位宽以及工作模式,所述工作模式包括加密模式和解密模式;所述CPU接口模块、所述从机接口和所述主机接口均支持APB协议、AHB协议、AXI协议和ACE_Lite总线协议。
参照图2,对使用本实施例提供的同时实现RSA/ECC加解密算法的装置完成公钥加密运算的过程进行详细说明。
具体的,图2所示的应用场景为在面积优先或功耗优先场景,具体的工作流程如下:
装置初始化。处理器通过总线访问装置CPU接口,发送配置参数。首先配置装置的算法为RSA或ECC算法,其次配置密钥位宽,最后配置工作模式为加密模式。
接收并存储数据。总线主机发送明文、密钥等数据到装置的从机接口,从机接口将数据传递给主控模块,主控模块将从机接口数据传递给主机接口由主机接口控制完成存储。
RSA/ECC加密复杂计算控制。主控模块发送RSA/ECC加密命令到复杂计算控制模块,复杂计算控制模块根据命令将RSA模幂运算分解成一系列的模乘运算,将ECC点乘运算分解成一系列的椭圆点加运算,并将椭圆点加运算分解成大数模乘和加法运算。所有的运算命令均发送至基本计算模块。
完成基本计算。基本计算模块收到复杂计算控制模块发出的模乘、加法、模约减等命令后,发送读取命令至主控模块,通过主控模块从存储器中读取计算参数,调用模块内部的面积较小的加法器、乘法器等基本运算单元实现大数乘法、加法与模约减运算。计算完成后通过主控模块将结果存入存储器中,发送完成信号至复杂计算控制模块,并等待下一次基本运算命令。
加密完成,发送密文。主控模块控制主机接口读取存储器中的密文数据,通过从机接口发送给总线主机。
本实施例的技术方案,可以同时实现RSA加解密运算和ECC加解密运算,通过CPU对装置控制寄存器配置实现RSA与ECC的切换;实现RSA签名/验证、ECDSA签名/验证以及ECDH密钥交换功能;减少软件预计算等操作,降低预计算的复杂度,提高了运算效率。同时可以根据存储空间的大小,可支持任意长度的密钥。
图3为本发明实施例二提供的同时实现RSA/ECC加解密算法的装置的结构示意图。如图3所示,本实施例提供的同时实现RSA/ECC加解密算法的装置包括:
CPU接口模块、主控模块、复杂计算控制模块、基本计算模块、直接内存存取DMA控制器、密钥生成模块、真随机数发生模块和大数乘法处理模块;
其中,所述CPU接口模块,用于接收配置参数并发送给所述主控模块,返回所述主控模块中的状态参数;
所述主控模块,用于接收并存储配置参数,根据所述配置参数向所述密钥生成模块发送密钥生成命令;向所述复杂计算控制模块发送计算命令;将所述状态参数发送给所述CPU接口模块;接收所述基本计算模块发送的读取命令,向所述基本计算模块发送计算参数;
所述复杂计算控制模块,用于接收所述主控模块发送的计算命令,根据所述计算命令,生成加减法运算命令发送给所述基本计算模块,生成模乘运算命令发送给所述大数乘法处理模块;接收所述基本计算模块和所述大数乘法处理模块的完成信号;
所述基本计算模块,用于接收所述加减法运算命令,并向所述主控模块发送读取命令以获取所述计算参数,根据所述加减法运算命令以及获取的所述计算参数完成计算,向所述复杂计算控制模块发送所述完成信号,同时将计算结果发送给所述主控模块;
所述密钥生成模块,用于接收所述密钥生成命令,并调用所述真随机数发生模块生成随机数生成密钥对,并发送给所述主控模块进行存储;
所述真随机数发生模块,用于产生真随机数并发送给所述密钥生成模块;
所述DMA控制器,用于接收并存储数据;
所述大数乘法处理模块,用于接收所述模乘运算命令,并向所述DMA控制器发送读取命令以获取所述计算参数,根据所述模乘运算命令以及获取的所述计算参数完成计算,将计算的中间结果存储至存储器,向所述复杂计算控制模块发送所述完成信号。
具体的,所述大数乘法处理模块,具体用于调用可伸缩的循环脉动阵列完成任意位宽的大数模乘运算。
具体的,所述计算命令中包含RSA/ECC计算;所述复杂计算控制模块具体用于,将接收到的所述计算命令中的RSA/ECC计算分解成一系列模乘运算和加减运算,并生成所述加减法运算命令发送给所述基本计算模块,生成所述模乘运算命令发送给所述大数乘法处理模块。
进一步地,所述装置还包括:从机接口和主机接口;所述从机接口,用于接收所述CPU接口模块发送的所述配置参数,并将所述配置参数发送给所述主控模块;所述主机接口,用于接收所述主控模块发送的所述配置参数,并进行存储。
需要说明的是,所述CPU接口模块、所述主机接口和所述从机接口均支持APB协议、AHB协议、AXI协议和ACE_Lite总线协议;所述配置参数用于配置所述装置运行的算法为RSA算法或ECC算法、密钥位宽以及工作模式,所述工作模式包括加密模式和解密模式。
进一步地,所述装置还包括:存储模块,用于存储明文参数、密文参数、密钥参数、所述基本计算模块的计算中间结果和所述大数乘法处理模块的计算中间结果;实际应用中,所述存储模块采用双口随机存取存储器RAM。
参照图4,对使用本实施例提供的同时实现RSA/ECC加解密算法的装置完成公钥加密运算的过程进行详细说明。
具体的,图4所示的应用场景为在速度优先场景,具体的工作流程如下:
装置初始化。处理器通过总线访问装置CPU接口,发送配置参数。首先配置装置的算法为RSA或ECC算法,其次配置密钥位宽以及调用大数乘法处理器,再次配置使能密钥生成功能,最后配置工作模式为加密模式。
接收并存储数据。总线主机发送数据到装置的从机接口,从机接口将数据传递给DMA控制器,DMA控制器将从机接口数据传递给主机接口,由主机接口控制完成存储。
生成密钥对。主控模块发送密钥生成命令至密钥生成模块,密钥生成模块调用真随机数产生模块生成随机数,完成筛选质数因子,生成密钥,删除质数因子等操作实现密钥对生成。密钥对通过主控模块控制存储在存储器中,并根据具体需求,将公钥发出。
RSA/ECC加密复杂计算控制。主控模块发送RSA/ECC加密命令到复杂计算控制模块,复杂计算控制模块根据命令将RSA模幂运算分解成一系列的模乘运算,将ECC点乘运算分解成一系列的椭圆点加运算,并将椭圆点加运算分解成大数模乘和加法运算。根据CPU配置,模乘运算命令发送至大数乘法处理模块,加法运算命令发送至基本计算模块。
模乘与加法计算。大数乘法处理模块根据复杂计算控制模块发出的命令开始一次模乘运算。从存储器中读取计算参数后,经过模块内部的循环脉动阵列完成模乘计算,中间结果存储到为该模块专门开辟的存储空间中。模乘计算完成后,大数乘法处理模块发送完成信号至复杂计算控制模块,并等待下一次模乘运算命令。基本计算模块收到复杂计算控制模块发出的加法命令后,发送读取命令至主控模块,通过主控模块从存储器中读取计算参数,调用模块内部的加法器实现大数加法与模约减运算。计算完成后通过主控模块将结果存入存储器中,发送完成信号至复杂计算控制模块,并等待下一次基本运算命令。
加密完成,发送密文。DMA控制器控制主机接口读取存储器中的密文数据,通过从机接口发送给总线主机。
本实施例的技术方案,可以同时实现RSA加解密运算和ECC加解密运算,通过CPU对装置控制寄存器配置实现RSA与ECC的切换;实现RSA签名/验证、ECDSA签名/验证以及ECDH密钥交换功能;装置中包含了真随机数发生器与密钥生成模块,可以在装置中实现密钥生成功能。与通常的软件生成密钥相比,安全性更强,密钥生成速度更快,用户操作更便捷;复杂计算控制模块能够实现ECC点乘,RSA模幂,通用的模除以及Montgomery预计算等多种复杂运算;减少了软件预计算等操作,降低了预计算的复杂度,提高了运算效率。同时可以根据存储空间的大小,可支持任意长度的密钥。可以适用于速度优先、面积优先、功耗优先等各种不同应用场景。装置中包含了大数运算处理模块,可以快速完成模乘运算,大幅提高加解密运算速度。同时,装置中的复杂计算控制模块可以根据不同的应用场景需求,选择是否调用大数运算处理模块,从而匹配各种需求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (14)
1.一种同时实现RSA/ECC加解密算法的装置,其特征在于,所述装置包括:
中央处理器CPU接口模块、主控模块、复杂计算控制模块和基本计算模块;
其中,所述CPU接口模块,用于接收配置参数并发送给所述主控模块,返回所述主控模块中的状态参数;
所述主控模块,用于接收并存储配置参数,根据所述配置参数向所述复杂计算控制模块发送计算命令;将所述状态参数发送给所述CPU接口模块;接收所述基本计算模块发送的读取命令,向所述基本计算模块发送计算参数;
所述复杂计算控制模块,用于接收所述主控模块发送的计算命令,根据所述计算命令,生成运算命令发送给所述基本计算模块;接收所述基本计算模块的完成信号;
所述基本计算模块,用于接收所述运算命令,并向所述主控模块发送读取命令以获取所述计算参数,根据所述运算命令以及获取的所述计算参数完成计算,向所述复杂计算控制模块发送完成信号,同时将计算结果发送给所述主控模块。
2.根据权利要求1所述的装置,其特征在于,所述计算命令中包含RSA/ECC计算;
所述复杂计算控制模块具体用于,将接收到的所述计算命令中的RSA/ECC计算分解成一系列模乘运算,并生成与各模乘运算对应的运算命令发送给所述基本计算模块。
3.根据权利要求2所述的装置,其特征在于,所述装置还包括:
从机接口和主机接口;
所述从机接口,用于接收所述CPU接口模块发送的所述配置参数,并将所述配置参数发送给所述主控模块;
所述主机接口,用于接收所述主控模块发送的所述配置参数,并进行存储。
4.根据权利要求3所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储明文参数、密文参数、密钥参数和所述基本计算模块的计算中间结果。
5.根据权利要求4所述的装置,其特征在于,所述配置参数用于配置所述装置运行的算法为RSA算法或ECC算法、密钥位宽以及工作模式,所述工作模式包括加密模式和解密模式。
6.根据权利要求5所述的装置,其特征在于,所述CPU接口模块、所述从机接口和所述主机接口均支持外围总线APB协议、系统总线AHB协议、片内总线AXI协议和ACE_Lite总线协议。
7.一种同时实现RSA/ECC加解密算法的装置,其特征在于,所述装置包括:
中央处理器CPU接口模块、主控模块、复杂计算控制模块、基本计算模块、直接内存存取DMA控制器、密钥生成模块、真随机数发生模块和大数乘法处理模块;
其中,所述CPU接口模块,用于接收配置参数并发送给所述主控模块,返回所述主控模块中的状态参数;
所述主控模块,用于接收并存储配置参数,根据所述配置参数向所述密钥生成模块发送密钥生成命令;向所述复杂计算控制模块发送计算命令;将所述状态参数发送给所述CPU接口模块;接收所述基本计算模块发送的读取命令,向所述基本计算模块发送计算参数;
所述复杂计算控制模块,用于接收所述主控模块发送的计算命令,根据所述计算命令,生成加减法运算命令发送给所述基本计算模块,生成模乘运算命令发送给所述大数乘法处理模块;接收所述基本计算模块和所述大数乘法处理模块的完成信号;
所述基本计算模块,用于接收所述加减法运算命令,并向所述主控模块发送读取命令以获取所述计算参数,根据所述加减法运算命令以及获取的所述计算参数完成计算,向所述复杂计算控制模块发送所述完成信号,同时将计算结果发送给所述主控模块;
所述密钥生成模块,用于接收所述密钥生成命令,并调用所述真随机数发生模块生成随机数生成密钥对,并发送给所述主控模块进行存储;
所述真随机数发生模块,用于产生真随机数并发送给所述密钥生成模块;
所述DMA控制器,用于接收并存储数据;
所述大数乘法处理模块,用于接收所述模乘运算命令,并向所述DMA控制器发送读取命令以获取所述计算参数,根据所述模乘运算命令以及获取的所述计算参数完成计算,将计算的中间结果存储至存储器,向所述复杂计算控制模块发送所述完成信号。
8.根据权利要求7所述的装置,其特征在于,所述计算命令中包含RSA/ECC计算;
所述复杂计算控制模块具体用于,将接收到的所述计算命令中的RSA/ECC计算分解成一系列模乘运算和加减运算,并生成所述加减法运算命令发送给所述基本计算模块,生成所述模乘运算命令发送给所述大数乘法处理模块。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
从机接口和主机接口;
所述从机接口,用于接收所述CPU接口模块发送的所述配置参数,并将所述配置参数发送给所述主控模块;
所述主机接口,用于接收所述主控模块发送的所述配置参数,并进行存储。
10.根据权利要求9所述的装置,其特征在于,所述CPU接口模块、所述主机接口和所述从机接口均支持外围总线APB协议、系统总线AHB协议、片内总线AXI协议和ACE_Lite总线协议。
11.根据权利要求9所述的装置,其特征在于,所述配置参数用于配置所述装置运行的算法为RSA算法或ECC算法、密钥位宽以及工作模式,所述工作模式包括加密模式和解密模式。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储明文参数、密文参数、密钥参数、所述基本计算模块的计算中间结果和所述大数乘法处理模块的计算中间结果。
13.根据权利要求12所述的装置,其特征在于,所述存储模块采用双口随机存取存储器RAM。
14.根据权利要求8所述的装置,其特征在于,所述大数乘法处理模块,具体用于调用可伸缩的循环脉动阵列完成任意位宽的大数模乘运算。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610230897.6A CN107302431A (zh) | 2016-04-14 | 2016-04-14 | 同时实现rsa/ecc加解密算法的装置 |
PCT/CN2016/107549 WO2017177686A1 (zh) | 2016-04-14 | 2016-11-28 | 同时实现rsa/ecc加解密算法的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610230897.6A CN107302431A (zh) | 2016-04-14 | 2016-04-14 | 同时实现rsa/ecc加解密算法的装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107302431A true CN107302431A (zh) | 2017-10-27 |
Family
ID=60042240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610230897.6A Pending CN107302431A (zh) | 2016-04-14 | 2016-04-14 | 同时实现rsa/ecc加解密算法的装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107302431A (zh) |
WO (1) | WO2017177686A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199324A (zh) * | 2020-10-27 | 2021-01-08 | 南京大学 | 一种针对多种加解密计算的可重构加速核心系统及其加速方法 |
CN112765077B (zh) * | 2021-01-18 | 2024-01-26 | 三未信安科技股份有限公司 | 一种pci密码卡主控异步调度系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100583757C (zh) * | 2006-12-31 | 2010-01-20 | 航天信息股份有限公司 | 一种ecc\rsa加解密协处理器 |
CN101201811B (zh) * | 2006-12-11 | 2010-05-12 | 边立剑 | 用于soc的加解密协处理器 |
CN101764684B (zh) * | 2009-10-26 | 2012-07-04 | 广州杰赛科技股份有限公司 | 实现sms4算法的加解密系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279725A (zh) * | 2011-09-01 | 2011-12-14 | 北京华大信安科技有限公司 | Ecc协处理器 |
JP2014081787A (ja) * | 2012-10-16 | 2014-05-08 | Sony Corp | 情報処理装置、情報処理端末、アクセス認証方法及びプログラム |
CN105095739B (zh) * | 2014-05-14 | 2021-06-01 | 国民技术股份有限公司 | 电子加密装置的测试方法、系统 |
-
2016
- 2016-04-14 CN CN201610230897.6A patent/CN107302431A/zh active Pending
- 2016-11-28 WO PCT/CN2016/107549 patent/WO2017177686A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201811B (zh) * | 2006-12-11 | 2010-05-12 | 边立剑 | 用于soc的加解密协处理器 |
CN100583757C (zh) * | 2006-12-31 | 2010-01-20 | 航天信息股份有限公司 | 一种ecc\rsa加解密协处理器 |
CN101764684B (zh) * | 2009-10-26 | 2012-07-04 | 广州杰赛科技股份有限公司 | 实现sms4算法的加解密系统 |
Non-Patent Citations (3)
Title |
---|
何德彪,陈建华,孙金龙: ""RSA/ECC密码协处理器的硬件实现"", 《计算机工程》 * |
刘兵: ""统一架构的ECC与RSA密码处理器的设计"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈超等: ""一种新型硬件可配置公钥制密码协处理器的VLSI实现"", 《通信学报》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2017177686A1 (zh) | 2017-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102207847B (zh) | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 | |
CN105099672B (zh) | 混合加密方法及实现该方法的装置 | |
CN101997834B (zh) | 支持高性能安全协议的装置 | |
CN109361507A (zh) | 一种数据加密方法及加密设备 | |
CN104917608B (zh) | 一种密钥抗功耗攻击的方法 | |
CN109145568A (zh) | 一种基于pci-e接口的全算法密码卡及其加密方法 | |
CN106714139A (zh) | 电子订户身份模块的预个性化 | |
CN108075882A (zh) | 密码卡及其加解密方法 | |
CN107707347A (zh) | 用户密钥的备份方法及装置、用户密钥的导入方法及装置 | |
CN101834723A (zh) | 一种rsa算法及其ip核 | |
US10721056B2 (en) | Key processing method and device | |
CN113032848B (zh) | 一种数据处理方法和用于数据处理的芯片 | |
CN207184503U (zh) | 可重构s盒电路结构 | |
CN103631660A (zh) | 在gpu中进行大整数计算时的存储资源分配方法及装置 | |
CN109617671A (zh) | 加解密、扩展方法及装置、加解密系统、终端 | |
CN109344664A (zh) | 一种基于fpga对数据进行算法处理的密码卡及其加密方法 | |
CN107302431A (zh) | 同时实现rsa/ecc加解密算法的装置 | |
CN103780381B (zh) | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 | |
CN110336661A (zh) | Aes-gcm数据处理方法、装置、电子设备及存储介质 | |
CN105119929B (zh) | 单一恶意云服务器下的安全模指数外包方法及系统 | |
CN106411519B (zh) | 用于rsa解密的处理器及用于rsa解密处理器的控制方法 | |
CN200990078Y (zh) | 快速rsa密码和大数模指数运算的电路 | |
CN104579651B (zh) | 椭圆曲线密码点乘运算的方法和装置 | |
CN108599951B (zh) | 加密方法、加密装置、计算设备及计算机存储介质 | |
CN110266481A (zh) | 基于矩阵的后量子加、解密方法与解密装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171027 |