CN108345806B - 一种硬件加密卡和加密方法 - Google Patents

一种硬件加密卡和加密方法 Download PDF

Info

Publication number
CN108345806B
CN108345806B CN201711342487.1A CN201711342487A CN108345806B CN 108345806 B CN108345806 B CN 108345806B CN 201711342487 A CN201711342487 A CN 201711342487A CN 108345806 B CN108345806 B CN 108345806B
Authority
CN
China
Prior art keywords
encryption
operation instruction
chip
card
fpga module
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
Application number
CN201711342487.1A
Other languages
English (en)
Other versions
CN108345806A (zh
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.)
722th Research Institute of CSIC
Original Assignee
722th Research Institute of CSIC
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 722th Research Institute of CSIC filed Critical 722th Research Institute of CSIC
Priority to CN201711342487.1A priority Critical patent/CN108345806B/zh
Publication of CN108345806A publication Critical patent/CN108345806A/zh
Application granted granted Critical
Publication of CN108345806B publication Critical patent/CN108345806B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Abstract

本发明公开了一种硬件加密卡和加密方法,属于数据安全技术领域。所述硬件加密卡包括:ZYNQ芯片、第一加密芯片、第二加密芯片、第一USB接口、第二USB接口、DDR3存储单元、EMMC存储单元和随机数生成器,ZYNQ芯片包括ARM处理器和FPGA模块,ARM处理器和FPGA模块通过高速片内总线连接;FPGA模块通过第一USB接口与服务器连接,FPGA模块还同时与第一加密芯片和随机数生成器连接,ARM处理器同时与第二加密芯片、EMMC存储单元和第二USB接口连接;第一加密芯片和第二加密芯片均提供多种加密算法,且第一加密芯片和第二加密芯片提供的加密算法不同;EMMC存储单元用于存储密钥,DDR3存储单元用于在硬件加密卡工作过程中缓存密钥;第二USB接口用于外接扩展设备。

Description

一种硬件加密卡和加密方法
技术领域
本发明涉及数据安全技术领域,特别涉及一种硬件加密卡和加密方法。
背景技术
随着信息技术的发展及互联网时代的普及,信息安全技术逐渐被人们重视以应对各种信息安全威胁。对于一些关键的行业,如:银行,公安系统等,须使用硬件加密设备来提高系统的安全保障,密钥必须保存在硬件加密系统本地上,不能出现在系统内存中,因此硬件加密卡应运而生。
目前主流的硬件加密卡主要由主控模块、加密模块、闪存(flash)模块、随机数生成器和通信接口模块组成。其中,主控模块是硬件加密卡的核心模块,其根据服务器发送的命令控制硬件加密卡的整体操作;加密模块,可以提供加/解密算法;flash模块,可以为硬件加密卡提供配置数据,对硬件加密卡只要进行简单配置就可以满足不同的用户使用;随机数生成器,采用专用数字物理噪声源实现,负责产生随机数;通信接口模块负责完成硬件加密卡与服务器之间的数据通信。
目前的硬件加密卡的flash模块容量都比较小,大多仅仅达到了1MB,不能实现海量密钥存储;同时,通信接口模块采用外设组件互连标准(Peripheral ComponentInterconnect,PCI)接口实现,造成硬件加密卡不方便携带,并且不同即插即用。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种硬件加密卡和加密方法。所述技术方案如下:
第一方面,本发明实施例提供了一种硬件加密卡,所述硬件加密卡包括:ZYNQ芯片、第一加密芯片、第二加密芯片、第一USB接口、第二USB接口、DDR3存储单元、EMMC存储单元和随机数生成器,所述ZYNQ芯片包括ARM处理器和FPGA模块,所述ARM处理器和FPGA模块通过高速片内总线连接;所述FPGA模块通过所述第一USB接口与服务器连接,所述FPGA模块还同时与所述第一加密芯片和随机数生成器连接,所述ARM处理器同时与所述第二加密芯片、所述EMMC存储单元和所述第二USB接口连接;
所述第一加密芯片和所述第二加密芯片均提供多种加密算法,且所述第一加密芯片和所述第二加密芯片提供的加密算法不同;所述EMMC存储单元用于存储密钥,所述DDR3存储单元用于在所述硬件加密卡工作过程中缓存密钥;所述第二USB接口用于外接扩展设备;
所述FPGA模块用于接收所述服务器通过所述第一USB接口发送的业务请求包,并从所述业务请求包中解析出运算指令;确定所述运算指令属于所述FPGA模块或者所述ARM处理器处理的运算指令;当所述运算指令属于所述FPGA模块处理的运算指令时,执行所述业务请求包中的运算指令,并生成业务应答包,所述业务应答包包括所述运算指令的执行结果;当所述运算指令属于所述ARM处理器处理的运算指令时,将所述业务请求包发送至所述ARM处理器;
所述ARM处理器用于执行所述业务请求包中的运算指令,并生成业务应答包;将所述业务应答包发送至所述FPGA模块;
所述FPGA模块还用于通过所述第一USB接口向所述服务器发送所述业务应答包。
在本发明实施例的一种实现方式中,所述FPGA模块用于确定所述运算指令的类型,当所述运算指令的类型为加解密运算指令时,调用所述第一加密芯片进行加解密运算;所述ARM处理器用于确定所述运算指令的类型,当所述运算指令的类型为加解密运算指令时,调用所述第二加密芯片进行加解密运算。
在本发明实施例的另一种实现方式中,所述第一加密芯片为SM234加密芯片,所述第二加密芯片为AC4384加密芯片。
在本发明实施例的另一种实现方式中,所述第一USB接口为USB3.0通信接口,所述第二USB接口为USB2.0通信接口。
在本发明实施例的另一种实现方式中,所述硬件加密卡还包括管理员IC卡和连接在所述第二USB接口上的USB读卡器,所述管理员IC卡通过所述USB读卡器与所述ARM处理器连接,所述管理员IC卡用于存储管理员认证信息。
在本发明实施例的另一种实现方式中,所述随机数生成器为WNG6物理噪声源芯片。
在本发明实施例的另一种实现方式中,所述DDR3存储单元由两片MT41K256M16HA-125E芯片搭载级联而成。
在本发明实施例的另一种实现方式中,所述EMMC存储单元包括EMMC接口芯片MTFC16GAAAADV。
第二方面,本发明实施例还提供了一种加密方法,所述方法由第一方面任一项所述的硬件加密卡执行,所述方法包括:
FPGA模块接收所述服务器通过所述第一USB接口发送的业务请求包,并从所述业务请求包中解析出运算指令;
FPGA模块确定所述运算指令属于所述FPGA模块或者所述ARM处理器处理的运算指令;
当所述运算指令属于所述FPGA模块处理的运算指令时,FPGA模块执行所述业务请求包中的运算指令,并生成业务应答包,所述业务应答包包括所述运算指令的执行结果;当所述运算指令属于所述ARM处理器处理的运算指令时,FPGA模块将所述业务请求包发送至所述ARM处理器;
所述ARM处理器执行所述业务请求包中的运算指令,并生成业务应答包;将所述业务应答包发送至所述FPGA模块;
所述FPGA模块通过所述第一USB接口向所述服务器发送所述业务应答包。
在本发明实施例的一种实现方式中,所述方法还包括:
当所述硬件加密卡上电后,所述ARM处理器执行自检算法:采用预置的标准的明文、密文和密钥数据调用第一加密芯片和第二加密芯片进行加密或解密运算,将运算结果与预期标准结果进行比较;若所述运算结果与所述预期标准结果相同,则所述硬件加密卡通过自检;若所述运算结果与所述预期标准结果不相同,则进行报错。
本发明实施例提供的技术方案带来的有益效果是:
在本发明实施例中,整个加密卡系统由服务器和硬件加密卡组成,服务器通过第一USB接口与硬件加密卡相连接,在服务器上运行密码管理软件,密码管理软件调用相应的API接口函数将数据通过第一USB接口发送数据硬件加密卡的FPGA模块,FPGA模块从所述业务请求包中解析出运算指令,确定所述运算指令属于所述FPGA模块或者所述ARM处理器处理的运算指令,当所述运算指令属于所述FPGA模块处理的运算指令时,由FPGA模块执行所述业务请求包中的运算指令,当所述运算指令属于所述ARM处理器处理的运算指令时,将所述业务请求包发送至所述ARM处理器,由ARM处理器执行所述业务请求包中的运算指令,最后将业务应答包发送至所述服务器。该硬件加密卡通过第一USB接口与服务器连接,使得硬件加密卡携带方便,并且可以即插即用;同时,采用EMMC存储单元存储加密密钥,EMMC存储单元的存储空间大,实现海量密钥存储。另外,通过在FPGA模块和ARM处理器上分别设计两个提供不同加密算法的加密芯片,使得能够同时采用两个加密芯片对数据进行处理,提高了数据处理的速度。通过设计DDR3存储单元能够对加密密钥进行缓存,提高了第一加密芯片对数据的处理速度;通过设计第二USB接口进行硬件加密卡的扩展,从而可以实现对硬件加密卡的管理等功能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种硬件加密卡的结构示意图;
图2是本发明实施例提供的加密方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种硬件加密卡的结构示意图,参见图1,所述硬件加密卡100包括:ZYNQ(赛灵思公司(Xilinx)推出的可扩展处理平台)芯片110、第一加密芯片120、第二加密芯片130、第一通用串行总线(Universal Serial Bus,USB)接口140、第二USB接口150、第三代双倍数据速率(Double Data Rate 3,DDR3)存储单元160、嵌入式多媒体卡(Embedded Multi Media Card,EMMC)存储单元170和随机数生成器180,所述ZYNQ芯片110包括高级精简指令集机器(Advanced RISC Machines,ARM)处理器111和现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)模块112,所述ARM处理器111和FPGA模块112通过高速片内总线连接;所述FPGA模块112通过所述第一USB接口140与服务器200连接,所述FPGA模块112还同时与所述第一加密芯片120和随机数生成器180连接,所述ARM处理器111同时与所述第二加密芯片120、所述EMMC存储单元170和所述第二USB接口150连接。
其中,所述第一加密芯片120和所述第二加密芯片130均提供多种加密算法,且所述第一加密芯片120和所述第二加密芯片130提供的加密算法不同;所述EMMC存储单元170用于存储密钥,所述DDR3存储单元160用于在所述硬件加密卡工作过程中缓存密钥;所述第二USB接口150用于外接扩展设备。
所述FPGA模块112用于接收所述服务器200通过所述第一USB接口140发送的业务请求包,并从所述业务请求包中解析出运算指令;确定所述运算指令属于所述FPGA模块112或者所述ARM处理器111处理的运算指令;当所述运算指令属于所述FPGA模块112处理的运算指令时,执行所述业务请求包中的运算指令,并生成业务应答包,所述业务应答包包括所述运算指令的执行结果;当所述运算指令属于所述ARM处理器111处理的运算指令时,将所述业务请求包发送至所述ARM处理器111;所述ARM处理器111用于执行所述业务请求包中的运算指令,并生成业务应答包;将所述业务应答包发送至所述FPGA模块112;所述FPGA模块112还用于通过所述第一USB接口140向所述服务器200发送所述业务应答包。
在本发明实施例中,整个加密卡系统由服务器和硬件加密卡组成,服务器通过第一USB接口与硬件加密卡相连接,在服务器上运行密码管理软件,密码管理软件调用相应的API接口函数将数据通过第一USB接口发送数据硬件加密卡的FPGA模块,FPGA模块从所述业务请求包中解析出运算指令,确定所述运算指令属于所述FPGA模块或者所述ARM处理器处理的运算指令,当所述运算指令属于所述FPGA模块处理的运算指令时,由FPGA模块执行所述业务请求包中的运算指令,当所述运算指令属于所述ARM处理器处理的运算指令时,将所述业务请求包发送至所述ARM处理器,由ARM处理器执行所述业务请求包中的运算指令,最后将业务应答包发送至所述服务器。该硬件加密卡通过第一USB接口与服务器连接,使得硬件加密卡携带方便,并且可以即插即用;同时,采用EMMC存储单元存储加密密钥,EMMC存储单元的存储空间大,实现海量密钥存储。另外,通过在FPGA模块和ARM处理器上分别设计两个提供不同加密算法的加密芯片,使得能够同时采用两个加密芯片对数据进行处理,提高了数据处理的速度。通过设计DDR3存储单元能够对加密密钥进行缓存,提高了第一加密芯片对数据的处理速度;通过设计第二USB接口进行硬件加密卡的扩展,从而可以实现对硬件加密卡的管理等功能。
在本发明实施例中,所述运算指令包括多种类型,例如加解密运算指令、管理员认证运算指令、密钥管理运算指令等。当运算指令类型为管理员认证运算指令、密钥管理运算指令时,该运算指令属于所述ARM处理器111处理的运算指令;当运算指令类型为加解密运算指令时,所述FPGA模块112用于根据加解密运算指令中指定的加解密算法确定对应的加密芯片,当该加解密运算指令中指定的加解密算法由第一加密芯片120提供时,则该运算指令属于所述FPGA模块112处理的运算指令,当该加解密运算指令中指定的加解密算法由第二加密芯片130提供时,则该运算指令属于所述ARM处理器111处理的运算指令。
在确定出运算指令类型为加解密运算指令,且运算指令属于所述FPGA模块112处理的运算指令时,所述FPGA模块112用于确定所述运算指令的类型,当所述运算指令的类型为加解密运算指令时,调用所述第一加密芯片120进行加解密运算。在确定出运算指令类型为加解密运算指令,且运算指令属于所述ARM处理器111处理的运算指令时,所述ARM处理器111用于确定所述运算指令的类型,当所述运算指令的类型为加解密运算指令时,调用所述第二加密芯片130进行加解密运算。
下面以FPGA模块112说明调用第一加密芯片120进行加解密运算的过程:FPGA模块112从运算指令中获取待加(解)密数据并确定加密算法,然后将待加(解)密数据、密钥以及需要使用的加密算法发送给第一加密芯片120,由第一加密芯片120进行加密或解密并返回结果。
其中,服务器200可以在运算指令中通过一个标识来指定加密算法,例如一个序号,相应地,第一加密芯片120(或第二加密芯片130)中也相应存储有序号和加密算法的对应关系。
其中,密钥既可以直接携带在运算指令中,也可以采用默认或者运算指令指示的密钥(例如采用一个序号指示对应密钥),此时,FPGA模块112先从DDR3存储单元查找该密钥,如果存在则直接使用,否则需要向ARM处理器111连接的EMMC存储单元170获取密钥。
其中,密钥包括设备保护密钥、设备密钥对和用户密钥等,其中设备保护密钥用于加解密设备密钥对和用户密钥,设备密钥对用于导入/导出用户密钥,用户密钥用于加解密传输的数据。
进一步地,当EMMC存储单元170中不存在运算指令所指示的密钥时,则通知服务器没有密钥。此时,服务器可以选择从其他位置获取密钥或者重新发送密钥,以继续该业务请求包的处理流程。
可选地,服务器获取用户通过管理软件生成的用户密钥,并发送到FPGA模块112。FPGA模块112将用户密钥发送给ARM处理器111。ARM处理器111将用户密钥存储到EMMC存储单元170中(具体存储的是密文的用户密钥)。其中,设备保护密钥是在初始化时(具体参见方法实施例)通过管理员输入的管理密钥(Master Key,MK)分量组成;设备密钥对是在初始化时是通过第一加密芯片生成的。
另外,在FPGA模块112在处理运算指令过程中,如果需要使用随机数,则需要通过调用随机数生成器180来完成。
在本发明实施例中,ZYNQ芯片110作为硬件加密卡运算处理和控制芯片,由一个ARM处理器111和一个FPGA模块112构成,ARM处理器111与FPGA模块112通过先进可扩展接口(Advanced eXtensible Interface,AXI)总线相连,也即前述高速片内总线为AXI总线,数据交互采用AXI总线的中央直接存储器访问(Central Direct Memory Access,CDMA)机制实现直接存储器访问(Direct Memory Access,DMA)通信,数据在ARM处理器111与FPGA模块112之间传输时,传输不经过处理器(FPGA模块、ARM处理器或额外的处理器)干预而直接在源地址和目的地址间进行传输,提高了处理器的运算能力。
在本发明实施例的中,所述第一加密芯片120可以为SM234加密芯片,所述第二加密芯片130可以为AC4384加密芯片。SM234加密芯片的地址总线与数据总线直接与FPGA模块112连接,采用SM234加密芯片运算效率高;AC4384加密芯片通过USB2.0总线与ARM处理器111连接,数据直接通过USB2.0总线进行传输。
其中,SM234加密芯片是清华大学微电子学研究所自行研制的一款高性能密码算法芯片,该芯片获得了国家密码管理局批准型号SSX1510,也即SSX1510型算法芯片,该芯片能够同时支持国家标准SM2算法、SM3算法以及SM4算法,此外还支持国际标准椭圆曲线ECDSA算法。SM234算法芯片能够实现数据的SM2加解密、签名验签、密钥协商等算法,SM4的ECB、CBC加解密算法及SM3的哈希运算。AC4384加密芯片获得了国家密码管理局批准型号SSX45,也即SSX45型安全芯片,该芯片能够同时支持SM1算法、RSA算法、DES算法以及AES算法,能够实现数据SM1加解密、RSA加解密、DES加解密运算以及AES加解密运算。使用国家密码管理局批准的加密算法芯片,实现硬件加密,以提高系统的安全性。当FPGA模块112确定出加解密运算指令中指定的加解密算法为SM2算法、SM3算法或SM4算法时,调用该SM234加密芯片进行加解密运算;当FPGA模块112确定出加解密运算指令中指定的加解密算法为SM1算法、RSA算法、DES算法或AES算法时,调用该AC4384加密芯片进行加解密运算。
在本发明实施例中,所述第一USB接口可以为USB3.0通信接口。所述USB3.0通信接口包括Cypress3014芯片,该芯片内置了一个ARM9系列处理器,该芯片的FIFO单元直接与FPGA模块连接。当服务器发送业务请求包时,第一USB接口将业务请求包直接存放到先入先出队列(First Input First Output,FIFO)单元内,FPGA模块根据检测USB3.0通信接口的一个信号来确定FIFO单元内是否存在业务请求包,当确定FIFO单元内存在业务请求包时,从FIFO单元内读取业务请求包进行处理。例如,当信号为低电平时,FIFO单元内不存在业务请求包,当信号为高电平时,FIFO单元内存在业务请求包。
在本发明实施例中,ARM处理器111为双核的ARM CotrexA9处理器,相应地,所述第二USB接口可以为USB2.0通信接口。在其他实施例中,ARM处理器111还可以是其他型号的ARM处理器,此时,根据ARM处理器型号不同,第二USB接口还可以为USB3.0通信接口。
其中,所述硬件加密卡还包括管理员集成电路(Integrated Circuit,IC)卡和连接在所述第二USB接口上的USB读卡器,所述管理员IC卡通过所述USB读卡器与所述ARM处理器连接,所述管理员IC卡用于存储管理员认证信息。USB读卡器用于插设管理员IC卡,管理员IC卡主要用于管理员身份认证,只有认证通过才能执行对应操作。例如,设置3张管理员IC卡,分别是操作设备管理员IC卡、系统管理员IC卡和安全管理员IC卡,三张管理员IC卡依次插入USB读卡器进行身份认证,仅当三张管理员IC卡均认证通过时,才能采用该硬件加密卡进行数据处理。如果采用其中一张管理员IC卡进行认证,认证后仅能执行该管理员(不同管理员IC卡的权限不同)能够执行的操作,例如生成/查看/删除/恢复/导入/导出/备份/装载指定位置的设备密钥或设备密钥对等操作。
其中,管理员IC卡初始状态时并未存储数据,在管理员注册过程中需要生成用户标识(Identifier,ID)、验证口令、公钥、MK分量等。
在认证过程中,用户需要输入验证口令、ID、公钥以及MK分量等数据,与管理员IC卡中的数据进行比对,以确定是否通过认证。不同管理员IC卡内存储的数据不同,例如系统管理员IC卡不需要MK分量,而操作设备管理员IC卡需要输入MK分量。
除了采用USB读卡器连接第二USB接口外,在其他实施例中,还可以通过USB KEY来替代USB读卡器进行密钥管理。
在本发明实施例中,所述随机数生成器可以为WNG6物理噪声源芯片。WNG6物理噪声源芯片的总线直接与FPGA模块连接,以加快运算处理速率,硬件加密卡需要的随机数通过WNG6物理噪声源芯片中的两个WNG6随机数芯片异或产生,从而提高随机数的质量。
在本发明实施例中,所述DDR3存储单元可以由两片MT41K256M16HA-125E芯片搭载级联而成的动态存储器,其容量可以为1024M,用于缓存EMMC存储单元中的加密密钥,方便第一加密芯片使用。
在本发明实施例中,所述EMMC存储单元包括EMMC接口芯片MTFC16GAAAADV。硬件加密卡配置了一个16GB的EMMC接口芯片,可以存储多达16GB的密钥,解决了传统硬件加密卡密钥存储空间小的问题。采用EMMC接口芯片可以实现引脚(Pin)对Pin更换,不但可以在EMMC接口芯片故障时更换,还可以通过更换更高存储容量的芯片,来进行更新换代。
在本发明实施例中,硬件加密卡通过USB接口与服务器进行连接,在其他实施例中,硬件加密卡还可以通过网络接口与服务器进行连接,例如在ARM处理器上连接网络接口与服务器相连,以双核处理器为例,可以采用其中一个核或两个核与服务器相连。相比于通过网络接口与服务器,采用USB接口与服务器更加方便、速度快且可实现热拔插等。
本发明实施例还提供了一种加密方法,由图1提供的硬件加密卡执行,参见图2,该方法流程包括:
步骤201:FPGA模块接收所述服务器通过所述第一USB接口发送的业务请求包,并从所述业务请求包中解析出运算指令。
当服务器发送业务请求包时,第一USB接口将业务请求包直接存放到FIFO单元内,FPGA模块根据检测USB3.0通信接口的一个信号来确定FIFO单元内是否存在业务请求包,当确定FIFO单元内存在业务请求包时,从FIFO单元内读取业务请求包进行处理。例如,当信号为低电平时,FIFO单元内不存在业务请求包,当信号为高电平时,FIFO单元内存在业务请求包。
进一步地,在步骤201之前,该方法还包括:
当所述硬件加密卡上电后,所述ARM处理器执行自检算法:采用预置的标准的明文、密文和密钥数据调用第一加密芯片和第二加密芯片进行加密或解密运算,将运算结果与预期标准结果进行比较;若所述运算结果与所述预期标准结果相同,则所述硬件加密卡通过自检;若所述运算结果与所述预期标准结果不相同,则进行报错,也即向服务器发送报错消息。
在算法检测通过后,进行管理员IC卡的检测,即各种管理员IC卡的检测,在进行管理员身份识别时,需插入管理员IC卡(包括设备管理员IC卡、系统管理员IC卡和安全管理员IC卡),在插入管理员IC卡后ARM处理器通过检测管理员IC卡电平来确定管理员IC卡内是否存在数据,存在则说明书管理员IC卡正确,否则只能对管理员IC卡进行重新初始化,直到检测到管理员IC卡内存在数据。
在检测出管理员IC卡内存在数据后,进行管理员IC卡的验证。在服务器运行的密码管理软件中输入口令,包括用户ID、验证口令、公钥、MK分量等,ARM处理器将输入口令与管理员IC卡中的数据进行比对,以确定是否通过认证。在进行不同的操作时,须对管理员授予不同的权限,须插入不同的管理员IC卡,需要验证的内容不尽相同。对于设备管理员(对应设备管理员IC卡)来说,需要验证口令、用户ID、公钥、MK分量等,均验证通过才能进行后续的操作。安全管理员(对应安全管理员IC卡)和系统管理员(对应系统管理员IC卡)不用对MK分量进行验证。每次开机都需要进行系统管理员IC卡的验证,硬件加密卡才能正常使用。
管理员IC卡检测完成后,服务器即可向硬件加密卡发送业务请求包。
另外,服务器还可以通过运行密码管理软件来调度管理员IC卡,实现管理员IC卡生成、授权、备份、口令修改等操作。
步骤202:FPGA模块确定所述运算指令属于所述FPGA模块或者所述ARM处理器处理的运算指令。当所述运算指令属于所述FPGA模块处理的运算指令时,执行步骤203;当所述运算指令属于所述ARM处理器处理的运算指令时,执行步骤204。
步骤203:FPGA模块执行所述业务请求包中的运算指令,并生成业务应答包,所述业务应答包包括所述运算指令的执行结果。
步骤204:FPGA模块将所述业务请求包发送至所述ARM处理器;ARM处理器接收FPGA模块发送的业务请求包。
ARM处理器111与FPGA模块112通过片内高速AXI总线相连,数据交互采用AXI总线的CDMA机制实现DMA通信,数据传输不经过处理器干预而直接在源地址和目的地址间进行传输,节约了处理器的运算能力。
步骤205:ARM处理器执行所述业务请求包中的运算指令,并生成业务应答包。
步骤206:ARM处理器将所述业务应答包发送至所述FPGA模块;FPGA模块接收ARM处理器发送的所述业务应答。
步骤207:FPGA模块通过所述第一USB接口向所述服务器发送所述业务应答包。
上述步骤的具体过程与前述硬件加密卡中的描述相同,这里不再赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种硬件加密卡,其特征在于,所述硬件加密卡包括:ZYNQ芯片、第一加密芯片、第二加密芯片、第一USB接口、第二USB接口、DDR3存储单元、EMMC存储单元和随机数生成器,所述ZYNQ芯片包括ARM处理器和FPGA模块,所述ARM处理器和FPGA模块通过高速片内总线连接;所述FPGA模块通过所述第一USB接口与服务器连接,所述FPGA模块还同时与所述第一加密芯片和随机数生成器连接,所述ARM处理器同时与所述第二加密芯片、所述EMMC存储单元和所述第二USB接口连接;
所述第一加密芯片和所述第二加密芯片均提供多种加密算法,且所述第一加密芯片和所述第二加密芯片提供的加密算法不同;所述EMMC存储单元用于存储密钥,所述DDR3存储单元用于在所述硬件加密卡工作过程中缓存密钥;所述第二USB接口用于外接扩展设备;
所述FPGA模块用于接收所述服务器通过所述第一USB接口发送的业务请求包,并从所述业务请求包中解析出运算指令;确定所述运算指令属于所述FPGA模块或者所述ARM处理器处理的运算指令;当所述运算指令属于所述FPGA模块处理的运算指令时,执行所述业务请求包中的运算指令,并生成业务应答包,所述业务应答包包括所述运算指令的执行结果;当所述运算指令属于所述ARM处理器处理的运算指令时,将所述业务请求包发送至所述ARM处理器;
所述ARM处理器用于执行所述业务请求包中的运算指令,并生成业务应答包;将所述业务应答包发送至所述FPGA模块;
所述FPGA模块还用于通过所述第一USB接口向所述服务器发送所述业务应答包;
所述FPGA模块用于确定所述运算指令的类型,当所述运算指令的类型为加解密运算指令时,调用所述第一加密芯片进行加解密运算;所述ARM处理器用于确定所述运算指令的类型,当所述运算指令的类型为加解密运算指令时,调用所述第二加密芯片进行加解密运算。
2.根据权利要求1所述的硬件加密卡,其特征在于,所述第一加密芯片为SM234加密芯片,所述第二加密芯片为AC4384加密芯片。
3.根据权利要求1所述的硬件加密卡,其特征在于,所述第一USB接口为USB3.0通信接口,所述第二USB接口为USB2.0通信接口。
4.根据权利要求1所述的硬件加密卡,其特征在于,所述硬件加密卡还包括管理员IC卡和连接在所述第二USB接口上的USB读卡器,所述管理员IC卡通过所述USB读卡器与所述ARM处理器连接,所述管理员IC卡用于存储管理员认证信息。
5.根据权利要求1所述的硬件加密卡,其特征在于,所述随机数生成器为WNG6物理噪声源芯片。
6.根据权利要求1所述的硬件加密卡,其特征在于,所述DDR3存储单元由两片MT41K256M16HA-125E芯片搭载级联而成。
7.根据权利要求1所述的硬件加密卡,其特征在于,所述EMMC存储单元包括EMMC接口芯片MTFC16GAAAADV。
8.一种加密方法,其特征在于,所述方法由权利要求1-7任一项所述的硬件加密卡执行,所述方法包括:
FPGA模块接收服务器通过第一USB接口发送的业务请求包,并从所述业务请求包中解析出运算指令;
FPGA模块确定所述运算指令属于所述FPGA模块或者ARM处理器处理的运算指令;
当所述运算指令属于所述FPGA模块处理的运算指令时,FPGA模块执行所述业务请求包中的运算指令,并生成业务应答包,所述业务应答包包括所述运算指令的执行结果;当所述运算指令属于所述ARM处理器处理的运算指令时,FPGA模块将所述业务请求包发送至所述ARM处理器;
所述ARM处理器执行所述业务请求包中的运算指令,并生成业务应答包;将所述业务应答包发送至所述FPGA模块;
所述FPGA模块通过所述第一USB接口向所述服务器发送所述业务应答包。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述硬件加密卡上电后,所述ARM处理器执行自检算法:采用预置的标准的明文、密文和密钥数据调用第一加密芯片和第二加密芯片进行加密或解密运算,将运算结果与预期标准结果进行比较;若所述运算结果与所述预期标准结果相同,则所述硬件加密卡通过自检;若所述运算结果与所述预期标准结果不相同,则进行报错。
CN201711342487.1A 2017-12-14 2017-12-14 一种硬件加密卡和加密方法 Active CN108345806B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711342487.1A CN108345806B (zh) 2017-12-14 2017-12-14 一种硬件加密卡和加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711342487.1A CN108345806B (zh) 2017-12-14 2017-12-14 一种硬件加密卡和加密方法

Publications (2)

Publication Number Publication Date
CN108345806A CN108345806A (zh) 2018-07-31
CN108345806B true CN108345806B (zh) 2020-07-07

Family

ID=62963147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711342487.1A Active CN108345806B (zh) 2017-12-14 2017-12-14 一种硬件加密卡和加密方法

Country Status (1)

Country Link
CN (1) CN108345806B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150867B (zh) * 2018-08-09 2021-06-18 丹东瑞银科技有限公司 网络信息传输加/解密器及加/解密方法
CN109800558B (zh) * 2018-12-27 2021-01-12 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 密码服务板卡以及密码服务装置
CN109995508B (zh) * 2019-04-30 2021-02-02 上海安路信息科技有限公司 一种fpga码流的加解密装置及方法
CN110209477A (zh) * 2019-05-09 2019-09-06 国家计算机网络与信息安全管理中心 一种基于自学习的计算任务调度方法
CN110569677B (zh) * 2019-09-02 2020-10-09 江苏云涌电子科技股份有限公司 一种多块加密卡的识别方法
CN112069552B (zh) * 2020-07-29 2022-07-12 苏州浪潮智能科技有限公司 一种利用光电二极管的加密卡保护方法
CN112035902B (zh) * 2020-08-12 2024-03-19 北京数盾信息科技有限公司 一种面向高速高并发应用的加密模组
CN112199712A (zh) * 2020-11-03 2021-01-08 湖南国科微电子股份有限公司 一种数据加解密方法、系统、设备及存储介质
CN112910646B (zh) * 2021-04-30 2021-07-20 北京数盾信息科技有限公司 一种服务器密码机的数据处理方法、装置及服务器密码机
CN114297111A (zh) * 2021-12-29 2022-04-08 合肥市芯海电子科技有限公司 一种嵌入式控制电路、芯片、外设访问方法和电子设备
CN114448627A (zh) * 2022-02-21 2022-05-06 广州鼎甲计算机科技有限公司 一种加密卡及其加密方法
CN114520727B (zh) * 2022-04-15 2022-06-21 广州万协通信息技术有限公司 安全芯片数据防护方法及系统
CN115994106B (zh) * 2023-02-17 2023-09-05 广州万协通信息技术有限公司 一种海量数据加解密方法、数据安全装置以及电子设备
CN117077220B (zh) * 2023-10-18 2024-01-23 北京金科联信数据科技有限公司 一种多物理接口和多芯片嵌入式密码模块装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973432A (zh) * 2014-05-23 2014-08-06 浪潮电子信息产业股份有限公司 一种基于fpga和usb接口芯片的sm4算法加密设备
US9531689B1 (en) * 2014-11-10 2016-12-27 The United States Of America As Represented By The Secretary Of The Navy System and method for encryption of network data
CN106534136A (zh) * 2016-11-22 2017-03-22 北京中金国信科技有限公司 一种pci‑e密码卡

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854243B (zh) * 2010-04-30 2012-12-12 株洲南车时代电气股份有限公司 一种电路系统设计加密电路及其加密方法
CN102223228A (zh) * 2011-05-11 2011-10-19 北京航空航天大学 基于fpga的aes加密芯片设计方法及嵌入式加密系统
CN203242000U (zh) * 2013-04-01 2013-10-16 上海师范大学 一种基于fpga技术的usb硬件加密系统
CN203930840U (zh) * 2013-10-31 2014-11-05 中国大唐集团财务有限公司 一种硬件加密卡
CN204066121U (zh) * 2013-10-31 2014-12-31 中国大唐集团财务有限公司 一种pci-e加密卡
CN203966126U (zh) * 2014-06-06 2014-11-26 北京民芯科技有限公司 加密装置
CN105099711B (zh) * 2015-08-28 2018-10-12 北京三未信安科技发展有限公司 一种基于zynq的小型密码机及数据加密方法
CN106022080B (zh) * 2016-06-30 2018-03-30 北京三未信安科技发展有限公司 一种基于PCIe接口的密码卡及该密码卡的数据加密方法
CN106529221B (zh) * 2016-11-22 2019-03-19 北京中金国信科技有限公司 一种fpga程序防拷贝方法和pci-e密码卡

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973432A (zh) * 2014-05-23 2014-08-06 浪潮电子信息产业股份有限公司 一种基于fpga和usb接口芯片的sm4算法加密设备
US9531689B1 (en) * 2014-11-10 2016-12-27 The United States Of America As Represented By The Secretary Of The Navy System and method for encryption of network data
CN106534136A (zh) * 2016-11-22 2017-03-22 北京中金国信科技有限公司 一种pci‑e密码卡

Also Published As

Publication number Publication date
CN108345806A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
CN108345806B (zh) 一种硬件加密卡和加密方法
US10769628B2 (en) Transaction messaging
US20210192090A1 (en) Secure data storage device with security function implemented in a data security bridge
US20210141902A1 (en) Provision of domains in secure enclave to support multiple users
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US10122713B2 (en) Method and device for the secure authentication and execution of programs
US9798677B2 (en) Hybrid cryptographic key derivation
US8281132B2 (en) Method and apparatus for security over multiple interfaces
CN101551784B (zh) 一种usb接口的ata类存储设备中数据的加密方法及装置
JP2020535693A (ja) 記憶データ暗号化/復号化装置及び方法
EP3625720B1 (en) Reducing compromise of sensitive data in virtual machine
US10943020B2 (en) Data communication system with hierarchical bus encryption system
US11308241B2 (en) Security data generation based upon software unreadable registers
CN209803788U (zh) 一种pcie可信密码卡
US10691837B1 (en) Multi-user storage volume encryption via secure enclave
CN111783078A (zh) Android平台安全芯片控制系统
WO2023240866A1 (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
CN114221762A (zh) 一种私钥存储方法、读取方法、管理装置、设备及介质
US20210126776A1 (en) Technologies for establishing device locality
CN114866228A (zh) 一种实现软密码模块的方法、系统、存储介质及终端
KR20150020017A (ko) 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
CN103902921A (zh) 文件加密方法及系统
WO2020144758A1 (ja) 秘密計算装置及びクライアント装置
CN115544583B (zh) 一种服务器密码机的数据处理方法及装置
CN116886356B (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
GR01 Patent grant
GR01 Patent grant