CN108075882A - 密码卡及其加解密方法 - Google Patents
密码卡及其加解密方法 Download PDFInfo
- Publication number
- CN108075882A CN108075882A CN201611001654.1A CN201611001654A CN108075882A CN 108075882 A CN108075882 A CN 108075882A CN 201611001654 A CN201611001654 A CN 201611001654A CN 108075882 A CN108075882 A CN 108075882A
- Authority
- CN
- China
- Prior art keywords
- cryptographic
- gate array
- data
- programmable gate
- decryption
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种密码卡及其加解密方法,其中密码卡包括:密码算法模块,包括多个密码算法芯片,每种密码算法芯片用于执行一种或多种密码算法的加密解密运算;现场可编程门阵列,其内部集成有PCI‑E IP核和密码计算调度机,其中PCI‑E IP核用于连接主机的PCI‑E接口,与主机进行数据交互,以接收来自于主机的待进行加解密的数据和计算指令,并在加解密完成后向主机提供加解密后的数据,密码计算调度机与密码算法模块连接,用于调用多个密码算法芯片进行密码计算;数字信号处理器,与现场可编程门阵列连接,并用于控制现场可编程门阵列进行数据和命令的读写操作。本发明方案支持多种国密算法和国际算法,简化了硬件架构,可以有效发挥高速算法芯片的速度性能。
Description
技术领域
本发明涉及数据安全,具体地,涉及一种密码卡及其加解密方法。
背景技术
随着通信与计算机网络技术的飞速发展,物联网、大数据、云计算等战略性产业的兴起,人们对网络环境和网络信息资源的依赖程度日益加深。计算机网络已经成为当今信息化社会发展的重要保障,网络信息安全关系到国家主权的安全、社会的稳定,关系到公私财物和个人隐私的安全,正是由于网络信息安全问题的存在,所以大量网络中存储和传输的重要数据需要得到有效的保护。网络信息安全问题的根源一方面是来自网络自身的安全缺陷,如网络协议的不安全和业务的不安全,另一方面是人为因素,如管理不善导致黑客攻击。
为了保证特殊数据或行业的数据安全,网络数据需要采取加密方式进行传输。一般承担数据加密任务的主要是设备中集成的密码卡。目前,密码卡作为一种硬件加密方法能够提高加解密的处理速度的加密方式,已经被广泛应用。国家密码局根据我国信息安全需要先后颁布了多套国产密码算法,包括SM1、SM2、SM3、SM4及祖冲之序列密码算法等。为支持不同的密码算法,需要设计各种密码卡来满足支持这些密码算法。目前的密码卡不能支持多种密码算法,运算效率不高,不能满足目前的加密需要。
发明内容
本发明的目的是提供一种密码卡,其包括:密码算法模块,包括多个密码算法芯片,每种密码算法芯片用于执行一种或多种密码算法的加密解密运算;现场可编程门阵列,其内部集成有PCI-E IP核和密码计算调度机,其中PCI-E IP核用于连接主机的PCI-E接口,与主机进行数据交互,以接收来自于主机的待进行加解密的数据和计算指令,并在加解密完成后向主机提供加解密后的数据,密码计算调度机与密码算法模块连接,用于调用多个密码算法芯片进行密码计算;数字信号处理器,与现场可编程门阵列连接,并用于控制现场可编程门阵列进行数据和命令的读写操作。
可选地,现场可编程门阵列内部设置有双端口RAM,其中双端口RAM的一个端口作为输入数据缓冲区,用于存放待进行加解密的数据和计算指令;双端口RAM的另一个端口作为输出数据缓冲区,用于存放用于待向主机提供的加解密后的数据。
可选地,现场可编程门阵列还配置成对输入数据缓冲区中的计算指令进行解析,并根据计算指令使密码计算调度机调用对应的密码算法芯片进行密码计算,并在计算结束后将计算结果提供给输出数据缓冲区。
可选地,上述密码卡还包括:存储器,与数字信号处理器连接,用于存储数字信号处理器的DSP固件程序以及内置密钥;并且现场可编程门阵列还配置成若解析结果为使用内置密钥,触发数字信号处理器的中断,以供数字信号处理器读取存储器保存的内置密钥,并写入输入数据缓冲区,以供密码计算调度机计算使用。
可选地,密码计算调度机使用有限状态机进行逻辑控制,并且密码算法芯片执行的密码算法包括以下任意一种或多种:SM1、SM2/3、SM4、RSA。
可选地,上述密码卡还包括:用户验证接口,用于读取外部身份验证设备中的身份信息;数字信号处理器,还与用户验证接口相连,还用于获取身份信息,以验证用户的合法性。
可选地,上述密码卡还包括:两片随机数发生器,分别连接至现场可编程门阵列以及数字信号处理器,以向现场可编程门阵列以及数字信号处理器分别提供随机数序列。
可选地,现场可编程门阵列和数字信号处理器通过外部存储器接口进行连接。
根据本发明的另一个方面,还提供了一种密码卡的加解密方法,其中密码卡包括:具有多个密码算法芯片的密码算法模块,内部集成有PCI-E IP核以及密码计算调度机的现场可编程门阵列,数字信号处理器,其特征在于加解密方法包括:现场可编程门阵列利用PCI-E IP核连接主机的PCI-E接口,以接收主机提供的待进行加解密数据和计算指令;利用密码计算调度机调用多个密码算法芯片,以根据计算指令进行密码计算;在密码计算完成后,由数字信号处理器控制现场可编程门阵列用PCI-E IP核将加解密后的数据提供给主机。
可选地,现场可编程门阵列内部设置有双端口RAM,其中双端口RAM的一个端口作为输入数据缓冲区,用于存放待进行加解密的数据和计算指令;双端口RAM的另一个端口作为输出数据缓冲区,用于存放用于待向主机提供的加解密后的数据,并且密码卡还包括:存储器,与数字信号处理器连接,用于存储数字信号处理器的DSP固件程序以及内置密钥,方法中根据计算指令进行密码计算的步骤包括:对输入数据缓冲区中的计算指令进行解析;若解析结果为使用内置密钥,触发数字信号处理器的中断,以供数字信号处理器读取存储器保存的内置密钥,并写入输入数据缓冲区,以供密码计算调度机计算使用。
本发明的密码卡及其加解密方法,支持多种国密算法和国际算法;在现场可编程门阵列(FPGA)中集成PCI-E IP核,简化了硬件构造的复杂程度,降低了硬件成本;采用PCI-E 2.0总线接口,提高了数据传输带宽,可以有效发挥出高速算法芯片的速度性能。
进一步地,本发明的密码卡及其加解密方法,通过FPGA对外部多种密码算法的密码芯片进行逻辑调度,从而支持多种国密算法和国际算法模块,保证了密码算法的多样性。
进一步地,本发明的密码卡及其解密算法,采用两种不同的随机数发生器,分别连接到FPGA和DSP上,提供多种随机数序列,增强系统的稳定性,有效避免密码卡被外部攻击。另外可以支持IC卡和UKEY等用户验证方式,对用户身份验证和密钥管理,保证密码卡的安全性。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是根据本发明一个实施例的密码卡的示意框图;
图2是根据本发明另一实施例的密码卡的示意框图;
图3是根据本发明一个实施例的密码卡的电路示意图;
图4是根据本发明一个实施例的密码卡的加解密方法的示意图;以及
图5是根据本发明一个实施例的密码卡的加解密方法的执行流程图。
附图标记说明
10 密码卡 100 现场可编程门阵列
110 PCI-E IP核 120 有限状态机
130 外部存储器接口 200 数字信号处理器
300 密码算法模块 310 SM1算法芯片
320 SM2/3算法芯片 330 SM4算法芯片
340 第一RSA 1024/2048算法芯片
350 第二RSA 1024/2048算法芯片
400 存储器 410 NOR FLASH
420 EEPROM 500 用户验证接口
510 USB接口 520 智能卡读取器接口
610 第一随机数发生器 620 第二随机数发生器
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
在本发明中,在未作相反说明的情况下,使用的方位词如“上、下、左、右”、“内、外”、“远、近”是指参考附图的方向,因此,使用方向用语是用来说明并非来限制本发明。
下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图1是根据本发明一个实施例的密码卡10的示意框图,该密码卡10一般性地可以包括:密码算法模块300、现场可编程门阵列100(Field-Programmable Gate Array,简称FPGA)、数字信号处理器200(Digital Signal Processor,简称DSP)。
密码算法模块300,包括多个密码算法芯片,每种密码算法芯片用于执行一种或多种密码算法的加密解密运算。其中密码算法芯片的种类可以根据加解密的需求进行配置,在一些可选实施例中,密码算法模块300可以设置有支持国密算法SM1、SM2、SM3、SM4和国际算法RSA的密码芯片。
FPGA100内部集成有PCI-E IP核和密码计算调度机,其中PCI-E IP核可以在FPGA100中设计出符合PCI-E2.0规范的总线接口,利用高速的PCI-E2.0总线连接主机,实现与主机的高速数据交互,一方面可以通过PCI-E2.0总线接收来自于主机的待进行加解密的数据和计算指令,并在加解密完成后通过PCI-E2.0总线向主机提供加解密后的数据。
密码计算调度机与密码算法模块300连接,用于调用多个密码算法芯片进行密码计算,对多个密码算法芯片进行逻辑控制,从而可以提高密码卡10的效率。例如密码计算调度机可以使用有限状态机进行逻辑控制,从而保证不同密码算法的有效调度。密码算法芯片执行的密码算法包括以下任意一种或多种:SM1、SM2/3、SM4、RSA。
在本实施例的密码卡10中,FPGA100作为密码卡10的核心,一方面利用PCI-E IP核实现与主机通过PCI-E 2.0总线物理连接,另一方面还可以对密码算法模块300进行逻辑调度,保证算法的多样性。
DSP200与FPGA100连接,并用于控制FPGA100进行数据和命令的读写操作。DSP200作为密码卡10的控制核心,可以对FPGA100内的数据、状态、命令进行读写操作。
FPGA100内部设置有双端口RAM(随机存取存储器,Random Access Memory),其中双端口RAM的一个端口作为输入数据缓冲区,用于存放待进行加解密的数据和计算指令;双端口RAM的另一个端口作为输出数据缓冲区,用于存放用于待向主机提供的加解密后的数据。
FPGA100还可以配置成对输入数据缓冲区中的计算指令进行解析,并根据计算指令使密码计算调度机调用对应的密码算法芯片进行密码计算,并在计算结束后将计算结果提供给输出数据缓冲区。
本实施例的密码卡10可以支持多种国密算法和国际算法;在FPGA100中集成PCI-EIP核,简化了设计复杂度,降低了硬件成本;采用PCI-E 2.0总线接口,提高了数据传输带宽,可以有效发挥出高速算法模块的速度性能。
在本实施例的密码卡10中,DSP200可以利用自身的IO接口,连接多个外设部件,以实现更多功能。图2是根据本发明另一实施例的密码卡10的示意框图,该密码卡10还可以进一步灵活设置:存储器400、用户验证接口500、随机数发生器(包括第一随机数发生器610和第二随机数发生器620)等。
存储器400,与DSP200连接,用于DSP200固件程序以及内置密钥。在FPGA100解析控制指令为使用内置密钥的情况下,FPGA100可以触发DSP200的中断,由DSP200读取存储器400保存的内置密钥,并写入输入数据缓冲区,以供密码计算调度机计算使用。在一些可选实施例中,上述存储器400可以使用NOR FLASH(非易失闪存)以及EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)。
用户验证接口500,用于读取外部身份验证设备中的身份信息,例如读取智能卡或者UKEY中的身份信息。从而用户验证接口500可以为USB接口或者智能卡读取器接口。DSP200与该用户验证接口500相连,还用于获取身份信息,以验证用户的合法性。
在本实施例中可以设置有两片随机数发生器(第一随机数发生器610和第二随机数发生器620),分别连接至现场可编程门阵列以及数字信号处理器,以向现场可编程门阵列以及数字信号处理器分别提供随机数序列。
图3是根据本发明一个实施例的密码卡10的电路示意图。该密码卡10以DSP200和FPGA100组合作为控制核心,支持多种国密算法和国际算法。
FPGA100芯片内部集成了PCI-E IP核110,利用该PCI-E IP核110与高速率PCI-E2.0总线连接,实现与主机的高速通信,并且FPGA100芯片内部采用有限状态机120作为密码计算调度机。有限状态机120,(Finite-state machine,简称FSM)的输出取决于过去输入部分和当前输入部分,用于实现对密码算法模块300中多个密码算法芯片的有效调度。
DSP200和FPGA100通过外部存储器接口130(External Memory Interface,简称EMIF)进行连接,该外部存储器接口130可以使FPGA100实现高速数据处理器以及高速数据传输接口的作用,DSP200通过该EMIF130控制密码正常工作。
密码算法模块300可以包括支持国密算法SM1、SM2、SM3、SM4和国际算法RSA的密码算法芯片。第一随机数发生器610连接至FPGA100,第二随机数发生器620连接至DSP200,从而分别为FPGA100和DSP200提供密码计算所需的真随机数。
存储器400可以包括NOR FLASH410以及EEPROM420,其中NOR FLASH410用于存储DSP200固件程序、密钥及密码卡10所需的其他重要数据,EEPROM420也可以用于存储程序。
用户验证接口500可以包括USB接口510以及智能卡读取器接口(IC卡接口)520,其中USB接口510通过外接UKEY实现用户身份验证及密钥管理或者通过外接USB存储设备扩展存储空间。IC卡(Integrated Circuit Card,集成电路卡,也称智能卡)接口520实现读取IC卡进行用户身份验证及密钥管理。
FPGA100是密码卡10系统的核心,在实际实施时可以选用Xilinx公司的XC7A200T-2-FBG676或者其他性能类似的芯片。在FPGA100内部集成了PCI-E IP核110,用于与PCI-E2.0总线物理连接,实现密码卡10与主机的快速数据交互。
FPGA100内部设计了双端口RAM作为数据的缓冲区,PCI-E总线和本地总线可以通过各自的接口对该双端口RAM进行独立访问,以增强了系统的灵活性。
FPGA100分别与SM1、SM2/3、SM4、RSA等密码算法芯片连接,为了保证不同密码算法的有效调度,可以利用有限状态机120进行逻辑控制,以提高密码卡10的效率。
另外FPGA100中还可以设计DMA控制器(Direct Memory Access,直接存储),从而极大提高数据传输速率。为了进一步保证算法的多样性,可以利用FPGA100内部硬件逻辑资源,实现DES(Data Encryption Standard,数据加密标准)、3DES(Triple DES,三重数据加密算法)和AES(Advanced Encryption Standard,高级加密标准))等密码算法。
DSP200作为密码卡10系统的控制中心,在实际实施时可以选用TI公司的TMS320C6654CZHA或者其他性能类似的芯片。DSP200与FPGA100通过EMIF接口130通信,实现对FPGA100内数据、状态、命令的读写,及用户身份验证和密钥管理。
SM1算法芯片310用于实现SM1国密对称算法模块,在实际实施时可以选用SSX30-D或者其他性能类似的芯片。FPGA100利用SM1算法芯片310可以实现SM1加密、解密功能,为了发挥SM1算法芯片310的高速处理性能,可以使用双总线工作模式。
SM2/3算法芯片320可以集成有SM2椭圆曲线算法和SM3密码杂凑算法,在实际实施时可以选用SSX1303或者其他性能类似的芯片。FPGA100利用SM2/3算法芯片320可以实现SM2加密、解密、签名、验证功能,及SM3的杂凑密码算法功能。
SM4算法芯片330可以实现专用对称分组密码算法,在实际实施时可以选用SSX1304或者其他性能类似的芯片。FPGA100利用SM4算法芯片330可以实现SM4的加密、解密功能。
RSA算法芯片(包括第一RSA 1024/2048算法芯片340以及第二RSA1024/2048算法芯片350)可以用于实现国际非对称密码算法,在实际实施时第一RSA 1024/2048算法芯片340以及第二RSA 1024/2048算法芯片350均可以选用SSX17或者其他性能类似的芯片,SSX17芯片具备1024位和2048位高速模幂运算。在一种可选实施例中可以通过2片SSX17并行连接于FPGA100,有效提高RSA加密、解密、签名、验签速度,解决了,解决了RSA 2048位的速率问题。
随机数发生器选用两种不同的随机数发生器(在实际实施时可以选用WNG8芯片和WNG9芯片),第一随机数发生器610连接至FPGA100,第二随机数发生器620连接至DSP200,分别为DSP200和FPGA100提供多种真随机数序列。
NOR FLASH410在实际实施时可以选用Microchip公司的SST39WF1601或者其他性能类似的芯片。NOR FLASH410与DSP200连接,用于存储DSP200固件程序、密钥及重要数据。
USB接口510,选用CH374T或者其他性能类似的芯片,USB接口510可以通过SPI(Serial Peripheral Interface,串行外设接口)与DSP200连接,实现USB到SPI的转换,完成USB Host(USB主机)功能。USB接口510在外接UKEY时可以实现用户身份验证及密钥管理,USB接口510在外接USB存储设备时可以用于密码卡10扩展存储空间。
IC卡接口520在实际实施时可以选用AC3192或者其他性能类似的芯片。IC卡接口520与DSP200连接,可用读卡器功能,从而通过读取IC卡方式进行用户身份验证及密钥管理。
上述实施例的密码卡10采用在FPGA100中集成PCI-E IP核110与PCI-E 2.0总线物理连接,实现密码卡10与主机的快速数据交互,通过外连多种国密算法和国际算法模块,保证了密码算法的多样性;在一些可选实施例中可以采用两块RSA算法芯片(第一RSA 1024/2048算法芯片340以及第二RSA 1024/2048算法芯片350)并行连接到FPGA100,有效提高RSA加密、解密、签名、验签速度,解决了RSA 2048位速率问题。另外可以采用IC卡和UKEY两种不同方式,对用户身份验证和密钥管理,保证密码卡10系统的安全性。
本实施例还提供了一种密码卡10的加解密方法,可以由上述任一实施例的密码卡10执行,完成加解密计算。图4是根据本发明一个实施例的密码卡的加解密方法的示意图,该密码卡的加解密的方法一般性地包括以下步骤:
步骤S402,FPGA100利用PCI-E IP核110连接主机的PCI-E接口,以接收主机提供的待进行加解密数据和计算指令;
步骤S404,利用密码计算调度机调用多个密码算法芯片,以根据计算指令进行密码计算;
步骤S406,在密码计算完成后,由DSP200控制FPGA100用PCI-E IP核110将加解密后的数据提供给主机。
在使用双端口RAM的情况下,步骤S404的一种实现方式为:对输入数据缓冲区中的计算指令进行解析;若解析结果为使用内置密钥,触发数字信号处理器的中断,以供数字信号处理器读取存储器400保存的内置密钥,并写入输入数据缓冲区,以供密码计算调度机计算使用。
图5是根据本发明一个实施例的密码卡的加解密方法的执行流程图,该流程图示出了使用图3中所示的密码卡10进行加解密的过程,其包括:
步骤S502,主机把待加解密的数据、密钥、计算指令等内容按照约定格式进行组包,利用PCI-E总线传输到FPGA100的输入数据缓冲区;
步骤S504,FPGA100解析计算指令,并判断是否使用卡内密钥;
步骤S506,若使用卡内密钥,FPGA100触发DSP200中断,由DSP200从NOR FLASH410中读取相应的密钥,并写入FPGA100输入数据缓冲区,DSP200清除中断;
步骤S508,FPGA100根据计算指令,通过FPGA100有限状态机120调用相应的算法芯片进行加解密运算;
步骤S510,判断算法芯片运算是否完成,若未完成,等待运算完成;
步骤S512,若运算完成,把运算完后的数据传回到FPGA100输出数据缓冲区;
步骤S514,FPGA100产生算法结束信号中断给DSP200;
步骤S516,DSP200收到中断后,启动将FPGA100内部输出缓冲区的数据,通过PCI-E接口回传到主机,至此完成一次加解密运算。
本实施例的密码卡的加解密方法,支持多种国密算法和国际算法,通过FPGA对外部多种密码算法的密码芯片进行逻辑调度,从而支持多种国密算法和国际算法模块,保证了密码算法的多样性。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (10)
1.一种密码卡,其特征在于包括:
密码算法模块,包括多个密码算法芯片,每种所述密码算法芯片用于执行一种或多种密码算法的加密解密运算;
现场可编程门阵列,其内部集成有PCI-E IP核和密码计算调度机,其中
所述PCI-E IP核用于连接主机的PCI-E接口,与所述主机进行数据交互,以接收来自于所述主机的待进行加解密的数据和计算指令,并在加解密完成后向所述主机提供加解密后的数据,
所述密码计算调度机与所述密码算法模块连接,用于调用所述多个密码算法芯片进行密码计算;
数字信号处理器,与所述现场可编程门阵列连接,并用于控制所述现场可编程门阵列进行数据和命令的读写操作。
2.根据权利要求1所述的密码卡,其特征在于,
所述现场可编程门阵列内部设置有双端口RAM,其中,
所述双端口RAM的一个端口作为输入数据缓冲区,用于存放所述待进行加解密的数据和所述计算指令;
所述双端口RAM的另一个端口作为输出数据缓冲区,用于存放用于待向所述主机提供的加解密后的数据。
3.根据权利要求2所述的密码卡,其特征在于,
所述现场可编程门阵列还配置成对所述输入数据缓冲区中的计算指令进行解析,并根据所述计算指令使所述密码计算调度机调用对应的密码算法芯片进行密码计算,并在计算结束后将所述计算结果提供给所述输出数据缓冲区。
4.根据权利要求3所述的密码卡,其特征在于还包括:
存储器,与所述数字信号处理器连接,用于存储所述数字信号处理器的DSP固件程序以及内置密钥;并且,
所述现场可编程门阵列还配置成若所述解析的结果为使用所述内置密钥,触发所述数字信号处理器的中断,以供所述数字信号处理器读取所述存储器保存的内置密钥,并写入所述输入数据缓冲区,以供所述密码计算调度机计算使用。
5.根据权利要求1所述的密码卡,其特征在于,
所述密码计算调度机使用有限状态机进行逻辑控制,并且,
所述密码算法芯片执行的密码算法包括以下任意一种或多种:SM1、SM2/3、SM4、RSA。
6.根据权利要求1所述的密码卡,其特征在于还包括:
用户验证接口,用于读取外部身份验证设备中的身份信息;
所述数字信号处理器,还与所述用户验证接口相连,还用于获取所述身份信息,以验证用户的合法性。
7.根据权利要求1所述的密码卡,其特征在于还包括:
两片随机数发生器,分别连接至所述现场可编程门阵列以及所述数字信号处理器,以向所述现场可编程门阵列以及所述数字信号处理器分别提供随机数序列。
8.根据权利要求1所述的密码卡,其特征在于,
所述现场可编程门阵列和所述数字信号处理器通过外部存储器接口进行连接。
9.一种密码卡的加解密方法,其中所述密码卡包括:具有多个密码算法芯片的密码算法模块,内部集成有PCI-E IP核以及密码计算调度机的现场可编程门阵列,数字信号处理器,其特征在于所述加解密方法包括:
所述现场可编程门阵列利用PCI-E IP核连接主机的PCI-E接口,以接收所述主机提供的待进行加解密数据和计算指令;
利用所述密码计算调度机调用所述多个密码算法芯片,以根据所述计算指令进行密码计算;
在密码计算完成后,由所述数字信号处理器控制所述现场可编程门阵列用PCI-E IP核将加解密后的数据提供给所述主机。
10.根据权利要求9所述的方法,其中所述现场可编程门阵列内部设置有双端口RAM,其中所述双端口RAM的一个端口作为输入数据缓冲区,用于存放所述待进行加解密的数据和所述计算指令;所述双端口RAM的另一个端口作为输出数据缓冲区,用于存放用于待向所述主机提供的加解密后的数据,并且所述密码卡还包括:存储器,与所述数字信号处理器连接,用于存储所述数字信号处理器的DSP固件程序以及内置密钥,其特征在于,所述方法中根据所述计算指令进行密码计算的步骤包括:
对所述输入数据缓冲区中的计算指令进行解析;
若所述解析的结果为使用所述内置密钥,触发所述数字信号处理器的中断,以使所述数字信号处理器读取所述存储器保存的内置密钥,并写入所述输入数据缓冲区,以供所述密码计算调度机计算使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611001654.1A CN108075882A (zh) | 2016-11-14 | 2016-11-14 | 密码卡及其加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611001654.1A CN108075882A (zh) | 2016-11-14 | 2016-11-14 | 密码卡及其加解密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108075882A true CN108075882A (zh) | 2018-05-25 |
Family
ID=62162280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611001654.1A Pending CN108075882A (zh) | 2016-11-14 | 2016-11-14 | 密码卡及其加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108075882A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145568A (zh) * | 2018-08-21 | 2019-01-04 | 西安得安信息技术有限公司 | 一种基于pci-e接口的全算法密码卡及其加密方法 |
CN109344664A (zh) * | 2018-08-21 | 2019-02-15 | 西安得安信息技术有限公司 | 一种基于fpga对数据进行算法处理的密码卡及其加密方法 |
CN110427764A (zh) * | 2019-07-31 | 2019-11-08 | 四川效率源信息安全技术股份有限公司 | 一种针对主控芯片的数据解密方法 |
CN110879880A (zh) * | 2019-10-24 | 2020-03-13 | 南京东科优信网络安全技术研究院有限公司 | 一种用户自主控制数据安全等级保护的密码装置 |
CN111241603A (zh) * | 2020-01-07 | 2020-06-05 | 北京智芯微电子科技有限公司 | 基于PCIe接口的加密卡架构、加密卡及电子设备 |
CN111262700A (zh) * | 2020-01-13 | 2020-06-09 | 中孚信息股份有限公司 | 一种高速sata接口密码模块的通信方法及装置 |
CN111580956A (zh) * | 2020-04-13 | 2020-08-25 | 北京三未信安科技发展有限公司 | 一种密码卡及其密钥空间配置方法和密钥使用方法 |
CN111625851A (zh) * | 2020-05-21 | 2020-09-04 | 郑州信大捷安信息技术股份有限公司 | 一种mini PCIE密码卡、数据通信系统及方法 |
CN112035900A (zh) * | 2020-08-21 | 2020-12-04 | 郑州信大捷安信息技术股份有限公司 | 一种高性能密码卡以及其通信方法 |
CN112052483A (zh) * | 2020-08-21 | 2020-12-08 | 郑州信大捷安信息技术股份有限公司 | 一种密码卡的数据通信系统及方法 |
CN113329030A (zh) * | 2020-07-08 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 区块链一体机及其密码加速卡、密钥管理方法和装置 |
CN113612769A (zh) * | 2021-08-02 | 2021-11-05 | 北京力天世技系统集成有限公司 | 数据安全型连接器 |
CN114172644A (zh) * | 2021-12-03 | 2022-03-11 | 三未信安科技股份有限公司 | 一种pci密码卡的优化椭圆曲线公钥密码的方法及系统 |
CN114697744A (zh) * | 2020-12-28 | 2022-07-01 | 海能达通信股份有限公司 | 一种视频数据处理方法及相关装置 |
CN116302490A (zh) * | 2023-02-02 | 2023-06-23 | 广州万协通信息技术有限公司 | 多通道安全芯片的调度方法及安全芯片装置 |
CN117633914A (zh) * | 2024-01-25 | 2024-03-01 | 深圳市纽创信安科技开发有限公司 | 基于芯片的密码资源调度方法、设备和存储介质 |
CN116302490B (zh) * | 2023-02-02 | 2024-05-31 | 广州万协通信息技术有限公司 | 多通道安全芯片的调度方法及安全芯片装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102621974A (zh) * | 2012-04-24 | 2012-08-01 | 上海维宏电子科技股份有限公司 | 基于通信总线的工业自动化实时控制装置及控制方法 |
CN103237021A (zh) * | 2013-04-08 | 2013-08-07 | 浪潮集团有限公司 | 一种基于fpga芯片的pci-e的高速密码卡 |
CN204390237U (zh) * | 2014-12-09 | 2015-06-10 | 航天信息股份有限公司 | 一种基于pci-e总线技术的加解密卡 |
-
2016
- 2016-11-14 CN CN201611001654.1A patent/CN108075882A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102621974A (zh) * | 2012-04-24 | 2012-08-01 | 上海维宏电子科技股份有限公司 | 基于通信总线的工业自动化实时控制装置及控制方法 |
CN103237021A (zh) * | 2013-04-08 | 2013-08-07 | 浪潮集团有限公司 | 一种基于fpga芯片的pci-e的高速密码卡 |
CN204390237U (zh) * | 2014-12-09 | 2015-06-10 | 航天信息股份有限公司 | 一种基于pci-e总线技术的加解密卡 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145568A (zh) * | 2018-08-21 | 2019-01-04 | 西安得安信息技术有限公司 | 一种基于pci-e接口的全算法密码卡及其加密方法 |
CN109344664A (zh) * | 2018-08-21 | 2019-02-15 | 西安得安信息技术有限公司 | 一种基于fpga对数据进行算法处理的密码卡及其加密方法 |
CN110427764A (zh) * | 2019-07-31 | 2019-11-08 | 四川效率源信息安全技术股份有限公司 | 一种针对主控芯片的数据解密方法 |
CN110427764B (zh) * | 2019-07-31 | 2022-11-04 | 四川效率源信息安全技术股份有限公司 | 一种针对主控芯片的数据解密方法 |
CN110879880A (zh) * | 2019-10-24 | 2020-03-13 | 南京东科优信网络安全技术研究院有限公司 | 一种用户自主控制数据安全等级保护的密码装置 |
CN111241603A (zh) * | 2020-01-07 | 2020-06-05 | 北京智芯微电子科技有限公司 | 基于PCIe接口的加密卡架构、加密卡及电子设备 |
CN111262700A (zh) * | 2020-01-13 | 2020-06-09 | 中孚信息股份有限公司 | 一种高速sata接口密码模块的通信方法及装置 |
CN111580956A (zh) * | 2020-04-13 | 2020-08-25 | 北京三未信安科技发展有限公司 | 一种密码卡及其密钥空间配置方法和密钥使用方法 |
CN111625851A (zh) * | 2020-05-21 | 2020-09-04 | 郑州信大捷安信息技术股份有限公司 | 一种mini PCIE密码卡、数据通信系统及方法 |
CN113329030A (zh) * | 2020-07-08 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 区块链一体机及其密码加速卡、密钥管理方法和装置 |
US11626984B2 (en) | 2020-07-08 | 2023-04-11 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain integrated station and cryptographic acceleration card, key management methods and apparatuses |
CN112035900A (zh) * | 2020-08-21 | 2020-12-04 | 郑州信大捷安信息技术股份有限公司 | 一种高性能密码卡以及其通信方法 |
CN112052483A (zh) * | 2020-08-21 | 2020-12-08 | 郑州信大捷安信息技术股份有限公司 | 一种密码卡的数据通信系统及方法 |
CN112035900B (zh) * | 2020-08-21 | 2022-03-15 | 郑州信大捷安信息技术股份有限公司 | 一种高性能密码卡以及其通信方法 |
CN112052483B (zh) * | 2020-08-21 | 2022-03-25 | 郑州信大捷安信息技术股份有限公司 | 一种密码卡的数据通信系统及方法 |
CN114697744A (zh) * | 2020-12-28 | 2022-07-01 | 海能达通信股份有限公司 | 一种视频数据处理方法及相关装置 |
CN114697744B (zh) * | 2020-12-28 | 2023-12-19 | 海能达通信股份有限公司 | 一种视频数据处理方法及相关装置 |
CN113612769A (zh) * | 2021-08-02 | 2021-11-05 | 北京力天世技系统集成有限公司 | 数据安全型连接器 |
CN114172644A (zh) * | 2021-12-03 | 2022-03-11 | 三未信安科技股份有限公司 | 一种pci密码卡的优化椭圆曲线公钥密码的方法及系统 |
CN114172644B (zh) * | 2021-12-03 | 2023-04-25 | 三未信安科技股份有限公司 | 一种pci密码卡的优化椭圆曲线公钥密码的方法及系统 |
CN116302490A (zh) * | 2023-02-02 | 2023-06-23 | 广州万协通信息技术有限公司 | 多通道安全芯片的调度方法及安全芯片装置 |
CN116302490B (zh) * | 2023-02-02 | 2024-05-31 | 广州万协通信息技术有限公司 | 多通道安全芯片的调度方法及安全芯片装置 |
CN117633914A (zh) * | 2024-01-25 | 2024-03-01 | 深圳市纽创信安科技开发有限公司 | 基于芯片的密码资源调度方法、设备和存储介质 |
CN117633914B (zh) * | 2024-01-25 | 2024-05-10 | 深圳市纽创信安科技开发有限公司 | 基于芯片的密码资源调度方法、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108075882A (zh) | 密码卡及其加解密方法 | |
US10769628B2 (en) | Transaction messaging | |
US10313128B2 (en) | Address-dependent key generator by XOR tree | |
US10122713B2 (en) | Method and device for the secure authentication and execution of programs | |
WO2017041603A1 (zh) | 数据加密方法、装置及移动终端、计算机存储介质 | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
US20190312718A1 (en) | Using secure key storage to bind a white-box implementation to one platform | |
CN101551784B (zh) | 一种usb接口的ata类存储设备中数据的加密方法及装置 | |
CN108345806A (zh) | 一种硬件加密卡和加密方法 | |
US7636441B2 (en) | Method for secure key exchange | |
WO2012055166A1 (zh) | 移动存储设备、基于该设备的数据处理系统和方法 | |
CN107431694A (zh) | 加密密钥取回 | |
CN105095097B (zh) | 随机化的存储器访问 | |
CN108011716A (zh) | 一种密码装置及实现方法 | |
CN107491317A (zh) | 一种基于异构加速平台的aes对称加解密方法及系统 | |
CN110602140A (zh) | 芯片授权的加密、解密方法及系统 | |
US9602281B2 (en) | Parallelizable cipher construction | |
CN111435396A (zh) | 智能安全主控 | |
CN109344664A (zh) | 一种基于fpga对数据进行算法处理的密码卡及其加密方法 | |
CN107566113A (zh) | 3des对称加解密方法、系统及计算机可读存储介质 | |
CN105162578B (zh) | 应用于通用数字信号处理器的加密电路 | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
CN110417553A (zh) | 多方保密通信方法、装置及用户终端 | |
CN106295372B (zh) | 一种基于EMMC接口实现的加密Hub装置 | |
US20180150836A1 (en) | Generating tokens dynamically using payment keys |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180525 |
|
RJ01 | Rejection of invention patent application after publication |