CN102110066B - 一种税控加密卡的控制方法 - Google Patents
一种税控加密卡的控制方法 Download PDFInfo
- Publication number
- CN102110066B CN102110066B CN201110034888.7A CN201110034888A CN102110066B CN 102110066 B CN102110066 B CN 102110066B CN 201110034888 A CN201110034888 A CN 201110034888A CN 102110066 B CN102110066 B CN 102110066B
- Authority
- CN
- China
- Prior art keywords
- dma
- data
- state machine
- algorithm
- state
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 5
- 238000007689 inspection Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种税控加密卡的控制方法,该方法是通过FPGA的状态机和DMA控制器实现的。本发明采用Moore型状态机作为整个加密卡的核心控制单元,对专用密码算法芯片进行控制和操作。另外通过DMA控制器在内存和加密卡上的RAM区开辟了一条直接传送数据的通路,实现数据的DMA传输,使得加密卡在速度和效率方面大大提高。
Description
技术领域
本发明涉及一种计算机应用技术,具体地说是一种税控加密卡的控制方法。
本发明涉及电子信息领域,主要应用于税控行业加密卡对专用密码算法芯片SSX12的控制。核心是利用了FPGA的硬件技术——状态机和DMA控制器,通过硬件描述语言VHDL设计出加密卡的控制方法和状态机,从而使得信息的加解密过程变的快速而高效。
背景技术
状态机电路是一种重要的数字逻辑电路,同时又属于时序逻辑电路的范畴,通常用来描述数字系统的控制单元,是大型控制电路设计的基础。根据其输出与当前输入是否有关可以把状态机分为Mealy型和Moore型两大类。Moore型输出仅是当前状态的函数,Mealy型不仅输出当前状态的函数,而且还与输入信号有关。本发明采用的是Moore型状态机。
DMA传输对于高效能嵌入式系统算法和网络是很重要的,它允许不同速度的硬件装置来沟通,而不需要依赖CPU的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU无法参与别的工作。DMA传输的重要作用是将一个内存区从一个装置复制到另外一个。当CPU初始化DMA传输之后,传输动作本身是由DMA控制器来实行和完成的。
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过4个步骤:DMA请求、DMA相应、DMA传输、DMA结束。本发明是利用了FPGA的DMA控制器实现数据的DMA传输的。
发明内容
本发明的目的是提供一种税控加密卡的控制方法。
本发明的目的是按以下方式实现的,包括如下内容,
利用FPGA的算法状态机和DMA控制器实现对密码算法芯片SSX12的控制;或采用FPGA的硬件描述语言VHDL组成算法状态机对密码算法芯片进行高效控制;
采用FPGA的嵌入式DMA控制器,实现数据的高速传输;
在税控加密卡对算法芯片的操作过程中及数据传输的过程中,不需要CPU的干预;
在税控加密卡数据传输的开始和结束阶段,分别由PC机和加密卡的FPGA发起数据的DMA传输;
税控加密卡的工作过程采用“中断”的方式,整个过程产生2次中断,分别为DMA读结束后和算法芯片完成运算后产生2次中断给FPGA相应的模块;
业务流程实施步骤如下:
1)税控加密卡上电、复位及初始化结束后,CPU对DMA控制器初始化,包括:设置待传送的加密或解密数据包,设置FPGA相关的寄存器,提供要传送的数据的起始位置和数据长度;
2)DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求,当CPU执行完当前总线周期释放总线控制权,此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知加密卡开始DMA传输;
3)DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制内存区与加密卡上的RAM区进行DMA传输,此时数据包通过PCI总线依次传入到加密卡上的RAM存储区,以上是DMA读的过程;
4)DMA读完成后,向FPGA的算法控制模块产生中断,算法控制模块收到中断后将其清除,并设置相关程序进程,启动算法状态机,算法控制模块读取相应RAM区中的数据,把数据传到外部的算法芯片SSX12;
5)算法芯片SSX12芯片开始工作,此时FPGA等待运算的完成;
6)算法芯片SSX12运算完成后将加密或解密后的数据传回到相应的RAM区,之后算法控制模块产生结束信号,FPGA收到此信号后设置相应的程序进程,启动DMA写操作,将运算完成的数据再通过PCI总线传回到PC机;
7)当完成DMA写的过程后,DMA控制器释放总线控制权,CPU重新取得总线的控制权并执行一段检查本次DMA传输操作正确性的代码,至此完成了一笔业务运算,包括加密芯片自检;
8)根据PC机的命令处理完所有的业务流程,包括:生成非对称密钥对、产生SK、AK、生成支付密码;
算法状态机的状态转移方式如下:
1)税控加密卡复位时状态机处于“空闲”状态;
2)当算法开始,信号sf_start变为高电平时,进入“算法开始”状态,否则算法状态机一直处于“空闲”状态等待;
3)当算法状态机检测到加密芯片处于不忙的状态时,算法芯片SSX12的B_nRd引脚为低电平,算法状态机进入“写命令”状态,在此状态加密卡要把相应的命令字写入算法芯片SSX12;
4)之后状态机进入“写数据”状态,把待操作的数据依次写入算法芯片SSX12;
5)算法状态机进入“等待”状态,等待加密芯片的运算完成;
6)当检测到B_nRd引脚为低电平时,算法状态机进入“读数据”状态,FPGA将操作完成的数据依次传回到相应的RAM区中;
7)待本次业务的数据读取完毕,算法状态机进入“结束”状态,至此一次状态机流程就完成了;
8)之后算法状态机返回“空闲”状态,等待下一次的业务开始。
本发明的优异效果是:采用Moore型状态机作为整个加密卡的核心控制单元,对专用密码算法芯片进行控制和操作。另外通过DMA控制器在内存和加密卡上的RAM区开辟了一条直接传送数据的通路,实现数据的DMA传输,使得加密卡在速度和效率方面大大提高。
附图说明
图1是税控加密卡的控制流程图;
图2是算法状态机的工作流图。
具体实施方式
参照说明书附图对本发明的税控加密卡的控制方法作以下详细地说明。
税控加密卡的一次业务通常包括多笔运算过程。例如生成一次支付密码的业务包括自检、生成非对称密钥对、读入签名密钥密文、读入账户密钥密文等运算过程。附图1是该发明的业务流程,具体实施方式如下:
1)税控加密卡上电、复位及初始化结束后,CPU对DMA控制器初始化,包括:设置待传送的加密或解密数据包,设置FPGA相关的寄存器,提供要传送的数据的起始位置和数据长度。
2)DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知加密卡开始DMA传输。
3)DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制内存区与加密卡上的RAM区进行DMA传输。此时数据包通过PCI总线依次传入到加密卡上的RAM存储区。以上是DMA读的过程。
4)DMA读完成后,向FPGA的算法控制模块产生中断。算法控制模块收到中断后将其清除,并设置相关程序进程,启动算法状态机。算法控制模块读取相应RAM区中的数据,把数据传到外部的算法芯片SSX12。
5)SSX12芯片开始工作,此时FPGA等待运算的完成。
6)SSX12运算完成后将加密或解密后的数据传回到相应的RAM区,之后算法控制模块产生结束信号,FPGA收到此信号后设置相应的程序进程,启动DMA写操作,将运算完成的数据再通过PCI总线传回到PC机。
7)当完成DMA写的过程后,DMA控制器释放总线控制权,CPU重新取得总线的控制权并执行一段检查本次DMA传输操作正确性的代码,至此完成了一笔业务运算(例如加密芯片自检)。
8)根据PC机的命令处理完所有的业务流程(如生成非对称密钥对、产生SK、AK、生成支付密码等)。
附图2是算法状态机的状态转移图,其实施方式如下:
1)税控加密卡复位时状态机处于“空闲”状态。
2)当算法开始信号sf_start变为高电平时,进入“算法开始”状态,否则状态机一直处于“空闲”状态等待。
3)当状态机检测到加密芯片处于不忙的状态时(SSX12芯片的B_nRd引脚为低电平),状态机进入“写命令”状态,在此状态加密卡要把相应的命令字写入SSX12。
4)之后状态机进入“写数据”状态,把待操作的数据依次写入SSX12。
5)状态机进入“等待”状态,等待加密芯片的运算完成。
6)当检测到B_nRd引脚为低电平时,状态机进入“读数据”状态,FPGA将操作完成的数据依次传回到相应的RAM区中。
7)待本次业务的数据读取完毕,状态机进入“结束”状态,至此一次状态机流程就完成了。
8)之后状态机返回“空闲”状态,等待下一次的业务开始。
该状态机的具体硬件实现是通过FPGA的硬件描述语言VHDL完成的。
实施例
1)PC机设置待传输的数据包,并设置FPGA的寄存器,对DMA控制器初始化。
2)PC机启动DMA读(Master read)的过程,将数据包一次性传入税控加密卡上的RAM存储单元。
3)加密卡启动FPGA的状态机(状态机的算法、工作流图等说明在后面详述),控制密码专用算法芯片SSX12开始工作。
4)密码专用算法芯片SSX12结束工作后,把运算完成的数据传回相应的RAM存储单元。
5)税控加密卡启动DMA写(Master write)的过程,将运算完成的数据包传回到PC机。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种税控加密卡的控制方法,其特征在于,采用FPGA的嵌入式DMA控制器,实现数据的高速传输,在税控加密卡对算法芯片的操作过程中及数据传输的过程中,不需要CPU的干预,在税控加密卡数据传输的开始和结束阶段,分别由PC机和加密卡的FPGA发起数据的DMA传输;税控加密卡的工作过程采用“中断”的方式,整个过程产生2次中断,分别为DMA读结束后和算法芯片完成运算后产生2次中断给FPGA相应的模块,业务流程实施步骤如下:
1)税控加密卡上电、复位及初始化结束后,CPU对DMA控制器初始化,包括:设置待传送的加密或解密数据包,设置FPGA相关的寄存器,提供要传送的数据的起始位置和数据长度;
2)DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求,当CPU执行完当前总线周期释放总线控制权,此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知加密卡开始DMA传输;
3)DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制内存区与加密卡上的RAM区进行DMA传输,此时数据包通过PCI总线依次传入到加密卡上的RAM存储区,以上是DMA读的过程;
4)DMA读完成后,向FPGA的算法控制模块发出中断信号,算法控制模块收到中断信号后将数据包清除,并设置相关程序进程,启动算法状态机,算法控制模块读取相应RAM区中的数据,把数据传到外部的算法芯片SSX12;
5)算法芯片SSX12芯片开始工作,此时FPGA等待运算的完成;
6)算法芯片SSX12运算完成后将加密或解密后的数据传回到相应的RAM区,之后算法控制模块产生结束信号,FPGA收到此信号后设置相应的程序进程,启动DMA写操作,将运算完成的数据再通过PCI总线传回到PC机;
7)当完成DMA写的过程后,DMA控制器释放总线控制权,CPU重新取得总线的控制权并执行一段检查本次DMA传输操作正确性的代码,至此完成了一笔业务运算,包括加密芯片自检;
8)根据PC机的命令处理完所有的业务流程,包括:生成非对称密钥对、产生签名密钥SK和账户密钥AK,生成支付密码;
算法状态机的工作流程如下:
1)税控加密卡复位时状态机处于“空闲”状态;
2)当算法开始信号sf_start变为高电平时,进入“算法开始”状态,否则算法状态机一直处于“空闲”状态等待;
3)当算法状态机检测到加密芯片处于不忙的状态时,算法芯片SSX12的B_nRd引脚为低电平,算法状态机进入“写命令”状态,在此状态加密卡要把相应的命令字写入算法芯片SSX12;
4)之后状态机进入“写数据”状态,把待操作的数据依次写入算法芯片SSX12;
5)算法状态机进入“等待”状态,等待加密芯片的运算完成;
6)当检测到B_nRd引脚为低电平时,算法状态机进入“读数据”状态,FPGA将操作完成的数据依次传回到相应的RAM区中;
7)待本次业务的数据读取完毕,算法状态机进入“结束”状态,至此一次状态机流程就完成了;
8)之后算法状态机返回“空闲”状态,等待下一次的业务开始。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110034888.7A CN102110066B (zh) | 2011-02-09 | 2011-02-09 | 一种税控加密卡的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110034888.7A CN102110066B (zh) | 2011-02-09 | 2011-02-09 | 一种税控加密卡的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102110066A CN102110066A (zh) | 2011-06-29 |
CN102110066B true CN102110066B (zh) | 2015-01-28 |
Family
ID=44174231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110034888.7A Active CN102110066B (zh) | 2011-02-09 | 2011-02-09 | 一种税控加密卡的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102110066B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455766A (zh) * | 2013-09-18 | 2013-12-18 | 浪潮电子信息产业股份有限公司 | 一种基于状态机的国密sm1算法控制方法 |
CN103780608A (zh) * | 2014-01-14 | 2014-05-07 | 浪潮电子信息产业股份有限公司 | 一种基于可编程门阵列芯片的sm4算法控制方法 |
CN103746797A (zh) * | 2014-01-22 | 2014-04-23 | 浪潮电子信息产业股份有限公司 | 一种基于现场可编程门阵列芯片的rsa算法控制方法 |
CN114760057A (zh) * | 2022-04-13 | 2022-07-15 | 中金金融认证中心有限公司 | 用于密码芯片的方法、密码芯片、密码卡以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281502A (zh) * | 2008-05-29 | 2008-10-08 | 上海交通大学 | 基于mems密码锁和双fpga的sata硬盘物理加密系统 |
CN101937599A (zh) * | 2010-09-02 | 2011-01-05 | 浪潮齐鲁软件产业有限公司 | 一种基于arm11平台的网络税控加密服务器 |
-
2011
- 2011-02-09 CN CN201110034888.7A patent/CN102110066B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281502A (zh) * | 2008-05-29 | 2008-10-08 | 上海交通大学 | 基于mems密码锁和双fpga的sata硬盘物理加密系统 |
CN101937599A (zh) * | 2010-09-02 | 2011-01-05 | 浪潮齐鲁软件产业有限公司 | 一种基于arm11平台的网络税控加密服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN102110066A (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107103472B (zh) | 一种用于区块链的算法处理模块 | |
CN102724035B (zh) | 一种加密卡的加解密方法 | |
CN102663326B (zh) | 用于SoC的数据安全加密模块 | |
US8990451B2 (en) | Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller | |
CN102110066B (zh) | 一种税控加密卡的控制方法 | |
CN104182696A (zh) | 一种基于Avalon接口的AES算法IP核的设计方法 | |
CN103413094A (zh) | 一种适用于航天器ctu的遥测加密系统 | |
CN109683877A (zh) | 一种基于SystemC的GPU软硬件交互TLM系统 | |
CN115022076A (zh) | 一种数据加/解密方法、装置、系统及介质 | |
CN106548099A (zh) | 一种电路系统安全保护的芯片 | |
CN102739393A (zh) | 基于apb总线的硬件加密uart装置 | |
CN106650411A (zh) | 密码算法验证系统 | |
CN103077144A (zh) | 一种确保数据完整的spi通讯接口及其通讯方法 | |
CN104063345A (zh) | 一种sata桥设备 | |
CN103020535B (zh) | 一种带比较功能的数据加解密系统 | |
CN102708079B (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
CN103400087A (zh) | 多接口加密板卡 | |
CN104836710A (zh) | 一种基于分布式系统一主多从通信的方法与装置 | |
CN102739396B (zh) | 一种应用于信息安全的协处理器 | |
CN210402342U (zh) | 一种基于zynq的数据加解密结构 | |
CN107870885A (zh) | 通信系统、装置及方法 | |
CN208861323U (zh) | 一种高速安全加密Micro SD卡 | |
CN107423249A (zh) | 一种基于AHB‑lite总线协议的从端总线控制器设计方法 | |
CN105786528B (zh) | 一种基于Avalon接口的SM3算法IP核的设计方法 | |
CN109447225B (zh) | 一种高速安全加密Micro SD卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |