CN103746797A - 一种基于现场可编程门阵列芯片的rsa算法控制方法 - Google Patents
一种基于现场可编程门阵列芯片的rsa算法控制方法 Download PDFInfo
- Publication number
- CN103746797A CN103746797A CN201410028854.0A CN201410028854A CN103746797A CN 103746797 A CN103746797 A CN 103746797A CN 201410028854 A CN201410028854 A CN 201410028854A CN 103746797 A CN103746797 A CN 103746797A
- Authority
- CN
- China
- Prior art keywords
- rsa
- programmable gate
- gate array
- field programmable
- chip
- 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
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及信息安全技术领域,尤其是涉及一种RSA算法控制方法,特别涉及一种基于现场可编程门阵列芯片的RSA算法控制方法。本发明采用现场可编程门阵列芯片作为硬件控制单元,利用现场可编程门阵列芯片的状态机和RSA公钥算法芯片实现对RSA算法的控制。本发明通过利用了现场可编程门阵列芯片和RSA公钥密码算法芯片,通过硬件描述语言VHDL设计出高效的状态机,从而使得信息的处理过程变的快速。
Description
技术领域
本发明涉及信息安全技术领域,尤其是涉及一种RSA算法控制方法,特别涉及一种基于现场可编程门阵列芯片的RSA算法控制方法。
背景技术
RSA公钥体制是1978年由Rivest、Shamir和Adleman三个人提出的一个公开密钥密码体制,被认为是迄今为止理论上最为成熟完善的一种公钥密码体制。该体制的构造基于Euler定理,它利用了如下的基本事实:寻找大素数是相对容易的,而分解两个素数的积在计算上是不可行的。RSA体制多用在数字签名、密钥管理和认证等方面。
传统的RSA算法的实现是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,运算速度较慢,安全性也较差。而硬件加密是通过专用加密芯片、FPGA芯片或独立的处理芯片等实现密码运算。相对于软件加密,硬件加密具有加密速度快、占用计算机资源少、安全性高等优点。
发明内容
为了解决现有技术的问题,本发明提供了一种基于现场可编程门阵列芯片的RSA算法控制方法,其采用FPGA(现场可编程门阵列)芯片与专用密码算法芯片的硬件方式实现了RSA公钥密码算法,因此数据处理的速度更快,效率更高。
本发明所采用的技术方案如下:
一种基于现场可编程门阵列芯片的RSA算法控制方法,是采用现场可编程门阵列芯片作为硬件控制单元,利用现场可编程门阵列芯片的状态机和RSA公钥算法芯片实现对RSA算法的控制。
方法具体包括以下步骤:
A、密码卡复位后进入RSA_IDLE状态,由上位机设置现场可编程门阵列芯片的寄存器启动,当信号start_rsa=‘1’时,现场可编程门阵列芯片的状态机进入RSA_RNOP状态,经过延时进入RSA_REQI状态;
B、在RSA_REQI状态,现场可编程门阵列芯片向RSA芯片发出输入数据请求,RSA芯片响应后使输入允许信号nRDYI变为低电平,之后FPGA进入RSA_RDYI状态;
C、在RSA_RDYI状态,现场可编程门阵列芯片把内部RAM中存储的待运算的数据发送给RSA芯片,RSA芯片读入所有数据后使nRDYI信号变为高电平,之后现场可编程门阵列芯片进入RSA_WNOP状态;
D、在RSA_WNOP状态,现场可编程门阵列芯片等待RSA芯片运算完毕,之后进入RSA_REQO状态;
E、在RSA_REQO状态,现场可编程门阵列芯片向RSA芯片发出读取数据的请求,RSA芯片响应后使输出允许信号nRDYO变为低电平,之后现场可编程门阵列芯片进入RSA_RDYO状态;
F、在RSA_RDYO状态,现场可编程门阵列芯片把RSA芯片运算完成的数据依次读取到内部RAM中,读完后RSA芯片设置nRDYO信号为高电平。
现场可编程门阵列芯片的状态机采用了硬件描述语言VHDL。
本发明中:
1. FPGA芯片:选用美国Altera公司CycloneIII系列的EP3C25F256C8器件,该芯片总引脚数256,其中I/O引脚为156,RAM总量为78KB,逻辑单元(LE)24624个,其硬件资源可以满足设计的要求。FPGA是硬件控制单元,通过VHDL程序设计出高效的状态机对SSX30-D芯片进行控制。
2. RSA芯片:采用清华大学微电子研究所的RSA芯片,该芯片采用SMIC 0.18μm的工艺制作,工作频率200MHz,支持剩余定理签名和普通算法签名两种签名模式,1024bit RSA签名可达到每秒6900次(剩余定理签名),特殊公钥签名认证速度可以达到每秒10~21万次。
3. 状态机电路是一种重要的数字逻辑电路,同时又属于时序逻辑电路的范畴,通常用来描述数字系统的控制单元,是大型控制电路设计的基础。根据其输出与当前输入是否有关可以把状态机分为Mealy型和Moore型两大类。Moore型输出仅是当前状态的函数,Mealy型不仅输出当前状态的函数,而且还与输入信号有关。本发明采用的是Mealy型状态机。
本发明提供的技术方案带来的有益效果是:
通过利用了现场可编程门阵列芯片和RSA公钥密码算法芯片,通过硬件描述语言VHDL设计出高效的状态机,从而使得信息的处理过程变的快速。
附图说明
图1是本发明的现场可编程门阵列芯片与RSA芯片的硬件连接;
图2是本发明的现场可编程门阵列芯片的状态机的控制流程图;
图3是本发明的现场可编程门阵列芯片向RSA芯片发送数据的时序波形图;
图4是本发明的现场可编程门阵列芯片从RSA芯片读取数据的时序波形图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
附图1是FPGA芯片与RSA芯片的硬件连接,RSA芯片的复位引脚、数据引脚、控制引脚都连接到FPGA的IO引脚,时钟引脚连接到FPGA的全局时钟引脚。RSA芯片采用QFP封装,总共160引脚。主要引脚说明如下:
双向引脚Data[31..0]:32位数据引脚。
输出引脚nRDYI:输入数据允许,0:允许,1:不允许
输入引脚nREQI:输入数据请求,0:请求,1:不请求
输出引脚nRDYO:输出数据允许,0:就绪,1:非就绪
输入引脚nREQO:输出数据请求,0:请求,1:无请求
输入引脚LMODE:模式选择引脚
输入引脚SVMODE:模式选择引脚
输入引脚NMODE:模式选择引脚
输入引脚IO_clk:外设读写脉冲
输出引脚nCore_Busy:RSA忙标志。1:空闲;0:计算中
输入引脚nReset:芯片复位引脚,0:复位;1:正常工作
附图2是FPGA状态机的控制流程图,通过硬件描述语言VHDL实现状态机的状态转移和控制功能,工作流程详解如下:
1. 密码卡复位后进入RSA_IDLE状态,由上位机设置FPGA的寄存器启动该模块,当信号start_rsa=‘1’时,状态机进入RSA_RNOP状态,经过延时进入RSA_REQI状态;
2. 在RSA_REQI状态,FPGA向RSA芯片发出输入数据请求,RSA芯片响应后使输入允许信号nRDYI变为低电平,之后FPGA进入RSA_RDYI状态;
3. 在RSA_RDYI状态,FPGA把内部RAM中存储的待运算的数据发送给RSA芯片,RSA芯片读入所有数据后使nRDYI信号变为高电平,之后FPGA进入RSA_WNOP状态;
4. 在RSA_WNOP状态,FPGA等待RSA芯片运算完毕,之后进入RSA_REQO状态;
5. 在RSA_REQO状态,FPGA向RSA芯片发出读取数据的请求,RSA芯片响应后使输出允许信号nRDYO变为低电平,之后FPGA进入RSA_RDYO状态;
6. 在RSA_RDYO状态,FPGA把RSA运算完成的数据依次读取到内部RAM中,读完后RSA芯片设置nRDYO信号为高电平。至此状态机完成一笔RSA的业务操作。
附图3是FPGA控制向RSA发送数据的时序波形图,图中显示了FPGA向RSA发送5个数据的工作过程,具体如下:
1. Request_input_data信号(nREQI)由FPGA给出,为IO_clk上升沿触发信号;
2. 当RSA处于空闲状态时,检测到nREQI信号有效时,将Ready_input_data信号(nRDYI)置为有效。图中nRDYI的浅色虚线部分,长度为1~n个IO_clk的周期,视当前RSA的状态而定;
3. RSA在nRDYI和nREQI都为低的第一个IO_clk的上升沿开始读入数据。此后,RSA在每个IO_clk的上升沿连续的读入数据;
4. 相应的,外部数据在nRDYI有效之后,IO_clk的第一个下降沿准备好数据。外部输入数据在此后每个IO_clk的下降沿进行更新;
5. 为了确保RSA能读入数据,在IO_clk的上升沿前,DATA_in需要一定的建立时间,且在IO_clk的上升沿之后,DATA_in需要一定的保持时间。RSA芯片的IO_clk时钟频率设置为66MHz,建立时间和保持时间都为15ns;
6. RSA读入最后一个数据Data5后把nRDYI置为高;
7. nREQI在输出数据结束后置为无效。
附图4是FPGA控制从RSA读取数据的时序波形图,图中显示了FPGA从RSA读取5个数据的工作过程,具体如下:
1. Request_output_data信号(nREQO)由FPGA给出,为IO_clk上升沿触发信号;
2. 当RSA处于空闲状态,检测到nREQO信号有效时,将Ready_output_data信号(nRDYO)置为有效。图中nRDYO的浅色虚线部分,长度为1~n个IO_clk的周期,视当前RSA的状态而定;
3. RSA在响应FPGA的输出请求nREQO后,设置nRDYO信号时,同时将第一个输出数据Data1准备就绪。此后,RSA在每个IO_clk的上升沿更新输出数据;
4. 相应的,nRDYO信号有效之后,FPGA开始连续的在IO_clk的每一个下降沿读取数据;
5. 为了确保FPGA能正确的读入数据,在IO_clk的下降沿前,DATA_in需要一定的建立时间,且在IO_clk的上升沿之后,DATA_in需要一定的保持时间。建立时间和保持时间都为15ns;
6. RSA输出最后一个数据Data5后,把nRDYO置为高,同时将总线释放;
7. nREQO信号在nRDYO为低有效之后的几个周期置为无效。(假设需要传送N个数据,当nREQO在nRDYO为低之后的1~N-1个周期内跳高都可以);
8. 当需要重复读取RSA的数据时,可以在nRDYO置高,一个传输过程结束之后,重新设置nREQO为低,向RSA提出传送数据的请求。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于现场可编程门阵列芯片的RSA算法控制方法,是采用现场可编程门阵列芯片作为硬件控制单元,利用现场可编程门阵列芯片的状态机和RSA公钥算法芯片实现对RSA算法的控制。
2.根据权利要求1所述的一种基于现场可编程门阵列芯片的RSA算法控制方法,其特征在于,所述方法具体包括以下步骤:
A、密码卡复位后进入RSA_IDLE状态,由上位机设置现场可编程门阵列芯片的寄存器启动,当信号start_rsa=‘1’时,现场可编程门阵列芯片的状态机进入RSA_RNOP状态,经过延时进入RSA_REQI状态;
B、在RSA_REQI状态,现场可编程门阵列芯片向RSA芯片发出输入数据请求,RSA芯片响应后使输入允许信号nRDYI变为低电平,之后FPGA进入RSA_RDYI状态;
C、在RSA_RDYI状态,现场可编程门阵列芯片把内部RAM中存储的待运算的数据发送给RSA芯片,RSA芯片读入所有数据后使nRDYI信号变为高电平,之后现场可编程门阵列芯片进入RSA_WNOP状态;
D、在RSA_WNOP状态,现场可编程门阵列芯片等待RSA芯片运算完毕,之后进入RSA_REQO状态;
E、在RSA_REQO状态,现场可编程门阵列芯片向RSA芯片发出读取数据的请求,RSA芯片响应后使输出允许信号nRDYO变为低电平,之后现场可编程门阵列芯片进入RSA_RDYO状态;
F、在RSA_RDYO状态,现场可编程门阵列芯片把RSA芯片运算完成的数据依次读取到内部RAM中,读完后RSA芯片设置nRDYO信号为高电平。
3.根据权利要求1所述的一种基于现场可编程门阵列芯片的RSA算法控制方法,其特征在于,所述的现场可编程门阵列芯片的状态机采用了硬件描述语言VHDL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410028854.0A CN103746797A (zh) | 2014-01-22 | 2014-01-22 | 一种基于现场可编程门阵列芯片的rsa算法控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410028854.0A CN103746797A (zh) | 2014-01-22 | 2014-01-22 | 一种基于现场可编程门阵列芯片的rsa算法控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103746797A true CN103746797A (zh) | 2014-04-23 |
Family
ID=50503789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410028854.0A Pending CN103746797A (zh) | 2014-01-22 | 2014-01-22 | 一种基于现场可编程门阵列芯片的rsa算法控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103746797A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110066A (zh) * | 2011-02-09 | 2011-06-29 | 浪潮电子信息产业股份有限公司 | 一种税控加密卡的控制方法 |
CN103237021A (zh) * | 2013-04-08 | 2013-08-07 | 浪潮集团有限公司 | 一种基于fpga芯片的pci-e的高速密码卡 |
CN103455766A (zh) * | 2013-09-18 | 2013-12-18 | 浪潮电子信息产业股份有限公司 | 一种基于状态机的国密sm1算法控制方法 |
-
2014
- 2014-01-22 CN CN201410028854.0A patent/CN103746797A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110066A (zh) * | 2011-02-09 | 2011-06-29 | 浪潮电子信息产业股份有限公司 | 一种税控加密卡的控制方法 |
CN103237021A (zh) * | 2013-04-08 | 2013-08-07 | 浪潮集团有限公司 | 一种基于fpga芯片的pci-e的高速密码卡 |
CN103455766A (zh) * | 2013-09-18 | 2013-12-18 | 浪潮电子信息产业股份有限公司 | 一种基于状态机的国密sm1算法控制方法 |
Non-Patent Citations (1)
Title |
---|
苏振宁: "基于FPGA和DSP的PCI-E高速密码卡设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101854353B (zh) | 一种基于fpga的多芯片并行加密方法 | |
CN101416137B (zh) | 具有不一致帧速的多个usb控制器的功率优化帧同步 | |
CN103324546B (zh) | 一种延时喂狗的方法及装置 | |
CN203909710U (zh) | 一种适用于SoC芯片的多功能低电平复位电路 | |
EP3535638B1 (en) | Programmable clock monitor | |
TWI307012B (en) | Idle state adjusting method and logical chip and computer system using the same | |
CN103593622A (zh) | 一种基于fpga的安全可信计算机的设计方法 | |
CN105511806A (zh) | 处理写请求的方法和移动终端 | |
CN103092806A (zh) | 基于spi数据传输时序的数据传输方法和系统 | |
CN104182696A (zh) | 一种基于Avalon接口的AES算法IP核的设计方法 | |
CN104182203B (zh) | 真随机数的产生方法和装置 | |
CN104200846A (zh) | 一种嵌入式prom测试系统及实现方法 | |
CN104850417B (zh) | 一种信息处理的方法及电子设备 | |
CN102110066B (zh) | 一种税控加密卡的控制方法 | |
US9201630B2 (en) | Random number generation using startup variances | |
CN103888246A (zh) | 低功耗小面积的数据处理方法及其数据处理装置 | |
CN102156899A (zh) | Rfid标签芯片时钟管理单元 | |
CN102291240B (zh) | Sm2签名的认证方法及系统 | |
CN103746797A (zh) | 一种基于现场可编程门阵列芯片的rsa算法控制方法 | |
CN102739396B (zh) | 一种应用于信息安全的协处理器 | |
CN201917913U (zh) | 一种加密ic模块 | |
CN104331266A (zh) | 一种实现任意数据位宽转换的方法和装置 | |
CN104123205A (zh) | 一种检测cpu超频工作状态的方法及装置 | |
CN108536423A (zh) | 随机数据产生电路、存储器存储装置及随机数据产生方法 | |
JP2018538621A (ja) | シリアル・データの多重化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140423 |
|
WD01 | Invention patent application deemed withdrawn after publication |