发明名称 一种税控加密卡的控制方法
摘要 本发明提供了一种税控加密卡的控制方法,该方法是通过FPGA的状态机和DMA控制器实现的。本发明采用Moore型状态机作为整个加密卡的核心控制单元,对专用密码算法芯片进行控制和操作。另外通过DMA控制器在内存和加密卡上的RAM区开辟了一条直接传送数据的通路,实现数据的DMA传输,使得加密卡在速度和效率方面大大提高。
申请公布号 CN102110066A 申请公布日期 2011.06.29
申请号 CN201110034888.7 申请日期 2011.02.09
申请人 浪潮电子信息产业股份有限公司 发明人 苏振宇
分类号 G06F13/30(2006.01)I 主分类号 G06F13/30(2006.01)I
代理机构 代理人
主权项 一种税控加密卡的控制方法,其特征在于,包括如下内容,利用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)之后算法状态机返回“空闲”状态,等待下一次的业务开始。
地址 250014 山东省济南市高新区舜雅路1036号