CN103746797A - 一种基于现场可编程门阵列芯片的rsa算法控制方法 - Google Patents

一种基于现场可编程门阵列芯片的rsa算法控制方法 Download PDF

Info

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
Application number
CN201410028854.0A
Other languages
English (en)
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201410028854.0A priority Critical patent/CN103746797A/zh
Publication of CN103746797A publication Critical patent/CN103746797A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及信息安全技术领域,尤其是涉及一种RSA算法控制方法,特别涉及一种基于现场可编程门阵列芯片的RSA算法控制方法。本发明采用现场可编程门阵列芯片作为硬件控制单元,利用现场可编程门阵列芯片的状态机和RSA公钥算法芯片实现对RSA算法的控制。本发明通过利用了现场可编程门阵列芯片和RSA公钥密码算法芯片,通过硬件描述语言VHDL设计出高效的状态机,从而使得信息的处理过程变的快速。

Description

一种基于现场可编程门阵列芯片的RSA算法控制方法
技术领域
本发明涉及信息安全技术领域,尤其是涉及一种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。
CN201410028854.0A 2014-01-22 2014-01-22 一种基于现场可编程门阵列芯片的rsa算法控制方法 Pending CN103746797A (zh)

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)

* Cited by examiner, † Cited by third party
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算法控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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