CN110765438B - 一种高性能密码卡及其工作方法 - Google Patents

一种高性能密码卡及其工作方法 Download PDF

Info

Publication number
CN110765438B
CN110765438B CN201911017354.6A CN201911017354A CN110765438B CN 110765438 B CN110765438 B CN 110765438B CN 201911017354 A CN201911017354 A CN 201911017354A CN 110765438 B CN110765438 B CN 110765438B
Authority
CN
China
Prior art keywords
key
password
card
user
main control
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
CN201911017354.6A
Other languages
English (en)
Other versions
CN110765438A (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.)
Jiangsu Yunyong Electronic Technology Co ltd
Original Assignee
Jiangsu Yunyong Electronic Technology 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 Jiangsu Yunyong Electronic Technology Co ltd filed Critical Jiangsu Yunyong Electronic Technology Co ltd
Priority to CN201911017354.6A priority Critical patent/CN110765438B/zh
Publication of CN110765438A publication Critical patent/CN110765438A/zh
Application granted granted Critical
Publication of CN110765438B publication Critical patent/CN110765438B/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/86Secure or tamper-resistant housings
    • G06F21/87Secure or tamper-resistant housings by means of encapsulation, e.g. for integrated circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种高性能密码卡,包括硬件平台和软件系统;所述硬件平台包括ZYNQ主处理器、存储单元、密码钥匙单元、PCIE接口、两片数字物理噪声源、第一密码算法芯片、第二密码算法芯片和第三密码算法芯片,所述软件系统包括Linux系统和主控程序,所述Linux系统运行于所述ARM处理器的一个核内,所述主控程序运行于所述ARM处理器的另外一个核内。本发明采用带自毁输入的密码算法芯片存储保护密钥分量,有效提高抗攻击能力,同时,集密钥生成、密钥管理、数据加解密、数字签名、身份认证、密钥协商,文件管理等功能于一体,产品功能丰富,极大地满足了用户需求。

Description

一种高性能密码卡及其工作方法
技术领域
本发明涉及密码卡技术领域,具体涉及一种高性能密码卡及其工作方法。
背景技术
信息安全是一个综合性的交叉科学领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。随着信息技术的发展,人们在享受信息资源所带来的巨大的利益时,也要面临着信息安全的严峻考验。信息的安全问题日益突出,基于密码学原理的各种安全应用越来越广泛,数据加密已经深入到信息应用的各个角落。至今,密码技术是取得信息安全性最有效的一种方法,是信息安全的核心技术。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。
目前现有普通的密码卡功能不完善,缺乏毁钥机制,密钥存储也不安全。比如中国专利公开了一种基于PCIe接口的密码卡及该密码卡的数据加密方法,申请号为201610509715.9,其采用ZYNQ主处理器作为板上核心,FPGA模块和ARM处理器采用高速片内总线连接方式进行互连,提高了数据交互性能,降低了系统间延迟,提高了系统性能,降低了系统成本;同时由于采用内部高速总线互连和PCIe接口,提升了数据传输性能,采用FPGA模块实现算法运算,提高了算法性能,系统整体性能也获得了极大的提升,存储模块可以提供海量的密钥存储,存储空间可以提升数万。但是向用户提供的功能有限,而且也缺乏毁钥机制,密钥存储的安全性有待提高。
发明内容
本发明的目的在于克服以上存在的技术问题,提供一种高性能密码卡。
为实现上述目的,本发明采用如下的技术方案:
一种高性能密码卡,包括硬件平台和软件系统;所述硬件平台包括ZYNQ主处理器、存储单元、密码钥匙单元、PCIE接口、两片数字物理噪声源、第一密码算法芯片、第二密码算法芯片和第三密码算法芯片;所述ZYNQ主处理器包括一个双核ARM处理器和一个FPGA,所述ARM处理器和FPGA通过高速片内总线进行互连,所述ARM处理器主要用于用户身份鉴别、密钥管理、密码运算和文件管理;所述FPGA用来辅助所述ARM处理器操作各个密码算法芯片以有效降低所述ARM处理器负载并提高所述密码算法芯片的并行运算能力;所述密码钥匙单元通过USB接口与所述ARM处理器电性连接,用于识别身份认证和密钥管理;所述PCIE接口与所述FPGA电性连接,所述高性能密码卡通过所述PCIE接口连接外部服务器设备;所述两片数字物理噪声源与所述FPGA电性连接,用于产生密钥、初始向量和随机数,所述随机数由所述两片数字物理噪声源产生的结果异或后得到;所述存储单元包括DDR、SPI Flash和eMMC;所述DDR与所述ARM处理器电性连接,用于做OS的运行环境;所述SPI Flash与所述ARM处理器电性连接,用于存储程序;所述eMMC与所述ARM处理器电性连接,用于存储密钥;所述第一密码算法芯片与所述FPGA电性连接,用于实现SM2、SM3、SM4密码算法;所述第二密码算法芯片与所述FPGA电性连接,用于实现SM1密码算法;所述第三密码算法芯片通过UART与所述ARM处理器电性连接,用于安全存储密钥;
所述软件系统包括Linux系统和主控程序,所述Linux系统运行于所述ARM处理器的一个核内,所述主控程序运行于所述ARM处理器的另外一个核内,所述主控程序,所述主控程序包括初始化模块,用于初始化ARM处理器、初始化PL侧FPGA,鉴别固件和密码卡数据的完整性,验证各个密码算法芯片是否正常工作,实现密码卡初始化功能;密钥管理模块,用于实现三级密钥体系管理、备份恢复管理;权限控制模块,用于实现身份鉴别,实现管理权限,操作权限和审计权限分离,确保密码卡使用安全;密码算法芯片控制模块,用于实现各个密码算法芯片的访问控制;文件管理模块,用于实现密码卡上的文件管理;备份恢复模块,用于实现密码卡的备份恢复机制。
进一步地,所述第三密码算法芯片的一个管脚外接毁钥按键,其余管脚被所述密码卡的保护罩压住,当有外力强行破坏所述保护罩时,会及时销毁第三密码算法芯片内部的密钥。
进一步地,还包括主机,所述密码卡通过所述PCIE接口与主机通信连接,所述主机内包括API接口和驱动程序,在实际应用时,应用层通过调用所述API接口以获取各种密码服务,所述API接口根据所述应用层的业务请求对数据进行格式封装,并通过所述驱动程序将封装后的数据传送给所述密码卡,所述密码卡通过调用主控程序的对应模块进行处理,再通过所述驱动程序获取所述密码卡传送回来的结果并返回给所述应用层。
一种高性能密码卡的工作方法,包括随机数生成方法、SM2密钥对生成方法、基于SM2数字签名的产生和验证方法、基于SM2的密钥协商方法、SM3数据摘要方法和基于SM1/SM4的对称算法加解密方法。
进一步地,所述随机数生成方法的具体实现步骤为:API接口被调用后,API接口首先将数据进行格式封装,然后通过驱动程序发送给密码卡,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话则调用FPGA操作数字物理噪声源各产生用户要求的同样长度的随机数,然后将获取到的随机数异或后返给ARM处理器,之后由ARM处理器封装应答报文,将要求长度的随机数通过驱动程序和API接口返回给调用者。
进一步地,所述SM2密钥对生成方法的具体实现步骤为:API接口被调用后,API接口首先将数据进行格式封装,然后通过驱动程序发送给密码卡;然后,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话在检测是否满足用户员权限,如果满足则通过数字物理噪声源产生256位的随机数作为私钥;再然后,调用FPGA操作第一密码算法芯片做kP运算以得到公钥值;最后,封装应答报文,将密钥通过驱动程序和API接口返回给调用者,并清除密码卡内的密钥对,如果以上有一项不满足则直接将错误码通过驱动程序和API接口返回给调用者。
进一步地,所述基于SM2数字签名的产生和验证方法的具体实现步骤为:API接口被调用后,API接口首先将数据进行格式封装,然后打包通过驱动程序发送给密码卡;其次,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话进行下一步处理:如果是产生SM2数字签名,则需要验证用户会话是否已经获取了私钥的访问权限,如果已经获取权限则解密私钥,再调用FPGA操作第一密码算法芯片对数据进行数字签名,签名完成后立即将私钥置0;如果是对SM2数字签名进行验证,则调用FPGA操作第一密码算法芯片对数字签名进行验证,最后将结果通过驱动程序和API接口返回给调用者;如果以上有一项不满足则直接将错误码通过驱动程序和API接口返回给调用者。
进一步地,所述基于SM2的密钥协商方法的具体实现步骤为:API接口被调用后,API接口首先将数据进行格式封装,然后打包通过驱动程序发送给密码卡;然后,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话进行下一步处理:如果需要使用私钥,则验证用户会话是否已经获取了私钥的访问权限,如果已经获取权限则解密私钥,再调用FPGA操作第一密码算法芯片对数据进行密钥协商,操作完成后立即将私钥置0;最后,将结果通过驱动程序和API接口返回给调用者,如果以上有一项不满足则直接将错误码通过驱动程序和API接口返回给调用者。
进一步地,所述SM3数据摘要方法的具体实现步骤为:API接口被调用后,API接口首先将数据进行格式封装,然后打包通过驱动程序发送给密码卡;其次,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话调用FPGA操作第一密码算法芯片对数据进行杂凑生成;最后,将结果通过驱动程序和API接口返回给调用者,如果以上有一项不满足,则直接将错误码通过驱动程序和API接口返回给调用者。
进一步地,所述基于SM1/SM4的对称算法加解密方法的具体实现步骤为:API接口被调用后,API接口首先将数据进行格式封装,然后打包通过驱动程序发送给密码卡,密码卡上的ARM处理器首先检测是否具备操作员权限,如果具备则解密对应的对称密钥,然后封装数据给FPGA并启动状态机,FPGA通过状态机和第一密码算法芯片或第二密码算法芯片交互后,将结果返回给ARM处理器。
本发明的有益效果:
1、本发明具备密钥生成、密钥管理、数据加解密、数字签名、身份认证、密钥协商等功能,功能齐全,极大地满足了用户地需求,解决了目前市面上密码卡功能欠缺的技术问题。
2、采用带自毁输入的密码算法芯片存储保护密钥分量,有效提高抗攻击能力。
3、采用密码钥匙单元作为用户双因子认证之一,安全可靠。
4、本发明在初始化时将保护密钥一分为2,将两个分量分别保存,分量1存于密码钥匙单元中,受用户PIN码保护;分量2存于密码卡上安全芯片SSX1616中,降低了泄露的风险,提高保护了密钥的安全性。
附图说明
图1:本发明一种高性能密码卡的硬件平台的逻辑框图。
图2:本发明主控程序与主机程序的逻辑框图。
图3:本发明随机数生成方法的流程示意图。
图4:本发明SM2密钥对生成方法的流程示意图。
图5:本发明基于SM2数字签名方法的流程示意图。
图6:本发明基于SM2数字验签方法的流程示意图。
图7:本发明基于SM2的密钥协商方法的流程示意图。
图8:本发明SM3数据摘要方法的流程示意图。
图9:本发明基于SM1/SM4的对称算法加解密方法的流程示意图。
图10:本发明一种高性能密码卡的启动流程示意图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
实施例一:
一种高性能密码卡,包括硬件平台和软件系统;如图1所示,所述硬件平台包括ZYNQ主处理器、存储单元、密码钥匙单元、PCIE接口、两片数字物理噪声源、第一密码算法芯片、第二密码算法芯片和第三密码算法芯片;
所述ZYNQ主处理器为Xilinx公司的7Z015芯片,芯片内部集成了一个双核ARM处理器(PS)和一个FPGA(PL),所述ARM处理器和FPGA通过高速片内总线进行互连,所述ARM处理器主要用于用户身份鉴别、密钥管理、密码运算和文件管理;所述FPGA用来辅助所述ARM处理器操作各个密码算法芯片以有效降低所述ARM处理器负载并提高所述密码算法芯片的并行运算能力。
所述存储单元包括DDR、SPI Flash和eMMC;
所述DDR为MT41K128M16芯片,与所述ARM处理器电性连接,用来支撑SOC系统和主控程序的运行;
所述SPI Flash为S25FL128芯片,与所述ARM处理器电性连接,用于存储启动所需的固件;
所述eMMC为SDIN7DP2-4G芯片,与所述ARM处理器电性连接,用于存储密码卡的数据、用户密钥、用户文件。用户密钥等信息以密文型式存储以确保安全性;
两片数字物理噪声源采用北京宏思电子技术有限责任公司的WNG-9芯片,WNG-9芯片具有一个时钟线和一个地址线,接在ZYNQ主处理器的PL侧(即FPGA),两个WNG-9芯片的数据和时钟线均独立,由FPGA状态机控制,用于产生密钥、初始向量和随机数,所述随机数由所述两片数字物理噪声源产生的结果异或后得到;
所述密码钥匙单元为SJK1915器件,用于识别身份认证和密钥管理,采用USB接口连接接在ZYNQ主处理器的PS侧(即ARM处理器),由ARM处理器直接访问控制;
所述第一密码算法芯片为SSX1510芯片,SSX1510芯片接在ZYNQ主处理器的PL侧,由FPGA状态机控制,用于实现SM2运算、SM3摘要生产和SM4加解密算法;
所述第二密码算法芯片为SSX30-D芯片,SSX30-D芯片接在ZYNQ主处理器的PL侧,由FPGA状态机控制,用于实现SM1加解密算法;
SSX1510芯片和SSX30-D芯片的所有信号线均独立。
所述第二密码算法芯片为SSX1616芯片,用于实现密钥的安全存储,SSX1616芯片通过UART接在ZYNQ主处理器的PS侧,由ARM处理器直接访问控制。
SSX1616芯片具备多个检测管脚,当发现检测管脚有电平变化后则销毁存于芯片内部的密钥。硬件设计中,一个管脚外接毁钥按键,提供用户快速销毁密钥的机制;通过密码卡保护罩压住其余管脚,当有外力强行破坏密码卡保护罩时,会及时销毁SSX1616芯片内部的密钥。这样采用带自毁输入的密码算法芯片存储保护密钥分量,有效提高了抗攻击能力。
所述PCIE接口与所述FPGA电性连接,所述高性能密码卡通过所述PCIE接口连接外设进行数据交互。
所述软件系统包括Linux系统和主控程序,所述Linux系统运行于所述ARM处理器的一个核内,所述主控程序运行于所述ARM处理器的另外一个核内。如图2所示,所述主控程序包括初始化模块,用于初始化ARM处理器、初始化PL侧FPGA,鉴别固件和密码卡数据的完整性,验证各个密码算法芯片是否正常工作,实现密码卡初始化功能;密钥管理模块,用于实现三级密钥体系管理、备份恢复管理;权限控制模块,用于实现身份鉴别,实现管理权限,操作权限和审计权限分离,确保密码卡使用安全;密码算法芯片控制模块,用于实现各个密码算法芯片的访问控制;文件管理模块,用于实现密码卡上的文件管理;备份恢复模块,用于实现密码卡的备份恢复机制。
实施例二:
与上述实施例一的区别仅在于还包括主机,所述密码卡通过所述PCIE接口与主机通信连接,所述主机内包括API接口和驱动程序,在实际应用时,应用层通过调用所述API接口以获取各种密码服务,所述API接口根据所述应用层的业务请求对数据进行格式封装,并通过所述驱动程序将封装后的数据传送给所述密码卡,所述密码卡通过调用主控程序的对应模块进行处理,再通过所述驱动程序获取所述密码卡传送回来的结果并返回给所述应用层。
下面简要介绍下本实施例的工作原理:
密码卡上电启动后,ARM处理器首先将存于S25FL128芯片的FSBL(First StageBoot Loader)读入7Z015芯片片内RAM内并执行,FSBL进行ARM处理器和FPGA的初始化,初始化完成后,FSBL读取S25FL128芯片的系统和主控程序到MT41K128M16芯片并执行,主控程序会对各个密码算法芯片和噪声源发生器进行自检,自检成功后对存于S25FL128芯片的FSBL进行摘要计算,并和保存的摘要值进行比对,比对成功后会对存于SDIN7DP2-4G芯片的密码卡数据信息进行摘要计算,并和保存的摘要值进行比对,比对成功后则初始化完成,等待应用请求服务。
用户通过API接口调用请求后,API接口将用户请求进行格式封装交给驱动程序,驱动程序启动DMA请求,7Z015芯片收到DMA请求后,通过FPGA的DMA状态机将数据搬运到密码卡的FPGA的RAM中并通知7Z015芯片的ARM处理器,主控程序收到后首先解析报文,并转到相应的处理模块,具体如下:
1)随机数处理模块
主控程序调用7Z015芯片的FPGA状态机操作,FPGA状态机同时读取密码卡上的两片WNG-9噪声源发生器并进行异或处理,处理完成后通知ARM的主控程序。
2)SM1处理模块
主控程序首先使用保护密钥解密用户密钥对私钥或密钥加密密钥,在使用用户密钥对私钥或密钥加密密钥解密会话密钥,然后将芯片所需数据交由主控芯片的FPGA状态机,FPGA状态机操作SSX30-D芯片的控制信号,完成加解密操作,处理完成后通知ARM处理器的主控程序,主控程序收到通知后对用到的明文密钥做清0操作。
3)SM2处理模块
主控程序首先判断是否需要使用私钥,如果需要使用私钥,则判断用户是否获取私钥的使用权,如果已获取私钥的使用权则使用保护密钥解密用户密钥对私钥,然后将SSX1510所需数据交由主控芯片的FPGA状态机,FPGA状态机操作SSX1510芯片的控制信号,完成处理请求,处理完成后通知ARM处理器的主控程序,主控程序收到通知后对用到的明文私钥密钥做清0操作后,使用DMA将加解密后的数据搬移到主机,在通过驱动程序和API接口返回给用户;如果不需要使用私钥则处理模块将SSX1510芯片所需数据交由主控芯片的FPGA状态机,FPGA状态机操作SSX1510芯片的控制信号,完成加处理请求,处理完成后通知ARM处理器的主控程序。
4)SM3处理模块
主控程序调用7Z015的FPGA状态机操作,FPGA状态机操作SSX1510芯片,处理完成后通知ARM处理器的主控程序。
5)SM4处理模块
SM4处理模块类似SM1处理模块,首先使用保护密钥解密用户密钥对私钥或密钥加密密钥,在使用用户密钥对私钥或密钥加密密钥解密会话密钥,然后将芯片所需数据交由7Z015的FPGA状态机,FPGA状态机操作SSX1510芯片的控制信号,完成加解密操作,处理完成后通知ARM处理器的主控程序,主控程序收到通知后对用到的明文密钥做清0操作。
各处理模块处理完成后,使用DMA将结果和处理完成的数据通过DMA搬运到主机内存,并发送中断。驱动程序相应中断将数据从内核层搬运到用户层,最终通过API接口将结果和数据返回给用户。
实施例三:
如图3所示,一种高性能密码卡的随机数生成方法,具体步骤为:用户调用对应接口后,API接口将数据进行格式封装然后通过驱动程序发送给密码卡,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话则调用FPGA操作WNG-9芯片各产生用户要求的同样长度的随机数,然后将获取到的随机数异或后返给ARM处理器,之后由ARM处理器封装应答报文,将用户要求长度的随机数通过驱动和API返回给用户。
实施例四:
如图4所示,一种高性能密码卡的SM2密钥对生成方法,具体步骤为:用户调用对应接口后,API接口将数据进行格式封装然后通过驱动程序发送给密码卡,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话在检测是否满足用户员权限,如果满足则通过WNG-9产生256位的随机数作为私钥,在调用FPGA操作SSX1510芯片做kP运算以得到公钥值。最后封装应答报文,将密钥通过驱动程序和API接口返回给用户,并清除密码卡内的密钥对。如果以上有一项不满足则直接将错误码通过驱动程序和API接口返回给用户。
实施例五:
如图5-6所示,一种高性能密码卡的基于SM2数字签名的产生和验证方法,具体步骤为:用户调用对应接口后,API接口将数据进行格式封装然后打包通过驱动程序发送给密码卡,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话进行下一步处理:如果是产生SM2数字签名,则需要验证用户会话是否已经获取了私钥的访问权限,如果已经获取权限则解密私钥,在调用FPGA操作SSX1510芯片对数据进行数字签名,签名完成后立即将私钥置0;如果是对SM2数字签名进行验证,则调用FPGA操作SSX1510芯片对数字签名进行验证,最后将结果通过驱动程序和API接口返回给用户。如果以上有一项不满足则直接将错误码通过驱动程序和API接口返回给用户。
实施例六:
如图7所示,一种高性能密码卡的基于SM2的密钥协商方法,具体步骤为:用户调用对应接口后,API接口将数据进行格式封装然后打包通过驱动程序发送给密码卡,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话进行下一步处理:如果需要使用私钥,则需要验证用户会话是否已经获取了私钥的访问权限,如果已经获取权限则解密私钥,在调用FPGA操作SSX1510芯片对数据进行密钥协商,操作完成后立即将私钥置0,最后将结果通过驱动程序和API接口返回给用户。如果以上有一项不满足则直接将错误码通过驱动程序和API接口返回给用户。
实施例七:
如图8所示,一种高性能密码卡的SM3数据摘要方法,具体步骤为:用户调用对应接口后,API接口将数据进行格式封装然后打包通过驱动程序发送给密码卡,密码卡上的ARM处理器首先解析数据格式、参数是否正确,正确的话调用FPGA操作SSX1510芯片对数据进行杂凑生成,最后将结果通过驱动程序和API接口返回给用户。如果以上有一项不满足则直接将错误码通过驱动程序和API接口返回给用户。
实施例八:
如图9所示,一种高性能密码卡的基于SM1/SM4的对称算法加解密方法,具体步骤为:用户调用对应接口后,API接口将数据进行格式封装然后打包通过驱动程序发送给密码卡,密码卡上的ARM处理器首先检测是否具备操作员权限,如果具备则解密对应的对称密钥,然后封装数据给FPGA并启动状态机,FPGA通过状态机和SSX30-D或SSX1510芯片交互后,将结果返回给ARM处理器。
下面再介绍下本发明的工作流程:
(1)启动
7Z015分为PL侧和PS侧,PL侧主要为FPGA,PS侧为双核ARM处理器。如图10所示,密码卡第一次上电或复位后,存于S25FL128 Flash中的FSBL(First Stage Boot Loader)会被7Z015的PS侧加载到内部RAM执行,FSBL会初始化ARM处理器的各个外设,初始化完成后FSBL会读取存于S25FL128 Flash中的PL到PL侧运行,最后会读取存于S25FL128 Flash中的系统到MT41K128M16中并跳转启动,系统启动后主控程序会自动运行。
(2)自检
启动流程结束后,主控程序会对所有密码算法芯片、启动固件完整性和密码卡数据的完整性进行自检,所有自检均成功后,密码卡标记检测成功并可响应用户的请求。任一自检失败则密码卡标记检测失败并对用户请求不予执行。
1)SSX30-D芯片自检
使用预置的数据对SSX30-D芯片进行自检以测试SM1密码算法的正确性。使用的数据为:
密钥:0x40,0xbb,0x12,0xdd,0x6a,0x82,0x73,0x86,0x7f,0x35,0x29,0xd3,0x54,0xb4,0xa0,0x26
初始向量:0xe8,0x3d,0x17,0x15,0xac,0xf3,0x48,0x63,0xac,0xeb,0x93,0xe0,0xe5,0xab,0x8b,0x90
明文数据:0xff,0xee,0xdd,0xcc,0xbb,0xaa,0x99,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00
CBC模式下密文数据:0x3a,0x70,0xb5,0xd4,0x9a,0x78,0x2c,0x07,0x2d,0xe1,0x13,0x43,0x81,0x9e,0xc6,0x59
2)SSX1510芯片自检
使用预置的数据对SSX1510芯片进行自检以测试密码算法的正确性。
测试SM4算法使用如下数据:
密钥:0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10
初始向量:0xeb,0xee,0xc5,0x68,0x58,0xe6,0x04,0xd8,0x32,0x7b,0x9b,0x3c,0x10,0xc9,0x0c,0xa7
明文数据:0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10
CBC模式下密文数据:0x3f,0x1e,0x73,0xc3,0xdf,0xd5,0xa1,0x32,0x88,0x2f,0xe6,0x9d,0x99,0x6c,0xde,0x93
测试SM3算法使用如下数据:
数据:0x61,0x62,0x63
运算结果:0x66,0xc7,0xf0,0xf4,0x62,0xee,0xed,0xd9,0xd1,0xf2,0xd4,0x6b,0xdc,0x10,0xe4,0xe2,0x41,0x67,0xc4,0x87,0x5c,0xf2,0xf7,0xa2,0x29,0x7d,0xa0,0x2b,0x8f,0x4b,0xa8,0xe0
测试SM2签名使用如下数据:
Px=0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7;
Py=0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0;
n=0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123;
运算结果:
result1=0xf9913b5accec12d4de8ccd92a3a0a25cc14e35b8d8933c8db7c470ec230035ae;
result2=0x8427d860f80e1b87d0364d38ad1a64aa78c2f619d89ec158d6cf2db0e4b5d15b;
测试SM2验签使用如下数据:
Px=0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7;
Py=0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0;
n=0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123;
par3=0xf9913b5accec12d4de8ccd92a3a0a25cc14e35b8d8933c8db7c470ec230035ae;
par4=0x8427d860f80e1b87d0364d38ad1a64aa78c2f619d89ec158d6cf2db0e4b5d15b;
运算结果,成功。
3)WNG-9自检
密码卡集成两片WNG-9数字物理噪声源芯片,FPGA将两片WNG-9芯片生成的结果异或后送给ARM处理器作为随机数,测试随机数的随机性,以确保随机源芯片功能正常。测试内容包括《GM/T 0005-2012随机性检测规范》中规定的15项检测(单比特频数检测、块内频数检测、扑克检测、重叠子序列检测、游程总数检测、游程分布检测、块内最大“1”游程检测、二元推导检测、自相关检测、矩阵秩检测、累加和检测、近似熵检测、线性复杂度检测、Marurer通用统计检测、离散傅立叶检测),满足所有测试项后方认可数字物理噪声源芯片有效。
4)固件完整性校验
读取存于S25FL128的固件并进行SM3杂凑计算,将结果和存储的杂凑值做对比,比对一致则校验成功。
5)密码卡数据完整性校验
读取存于SDIN7DP2-4G的密码卡数据并进行SM3杂凑计算,将结果和存储的杂凑值做对比,比对一致则校验成功。
(3)密码卡初始化
密码卡初始化是一个新密码卡使用前的必须流程,通过密码卡初始化流程,可以产生设备密钥,建立三级密钥管理机制。
密码卡初始化只能通过管理工具完成,同时需要7个智能密码钥匙。
初始化流程如下:
a)擦除密码卡数据区域,标记密码卡状态为初始状态。
b)主控程序调用密码算法芯片控制模块产生两组128位密钥分量,并将其中一组分量存入SSX1616芯片内。
c)主控程序调用密码算法芯片控制模块生成设备加密和签名密钥对。
d)提示用户插入智能密码钥匙并提示用户输入新用户口令。
e)对智能密码钥匙进行设备认证并使用新用户口令修改默认用户口令。
f)主控程序操作智能密码钥匙产生签名密钥对并将公钥导出,同时将b)产生的两组密钥分量中的另外一组存入智能密码钥匙中。
g)重复d)-f)6次,对应5位管理员用户,1位审计管理员用户和1位操作员用户。
h)主控程序对b)产生的2组128位密钥进行异或运算,并将结果作为保护密钥,然后调用密码算法芯片控制模块使用保护密钥加密设备密钥,并将密文保存到Flash,设置密码卡模式为就绪状,保存智能密码钥匙公钥和序列号、密码卡模式到Flash,重新计算密码卡数据区摘要值并保存到Flash。
i)对产生的设备密钥和保护密钥清0。
至此密码初始化工作完成,密码卡进入就绪状态。
(4)身份认证
密码卡支持管理员、审计管理员和用户,所有角色登录均需满足口令和智能密码钥匙的双因子认证。口令通过管理工具,经由API接口和驱动程序发送给密码卡的主控程序后,主控程序调用权限控制模块对用户输入的PIN码和智能密码钥匙进行验证,检查用户的合法身份,认证通过后标记用户登录,同时可以从智能密码钥匙中读取保护密钥分量,恢复保护密钥。
(5)密码卡内部用户密钥对产生流程
产生密码卡内部用户密钥对需要通过管理工具,并满足管理权限才能产生。
流程如下:
a)插入第一个管理员智能密码钥匙,输入口令。
b)成功则重复执行a),确保满足半数管理员登录。
c)从智能密码钥匙中读取保护密钥分量1,从SSX1616芯片中读取保护密钥2,进行异或运算获得保护密钥。
d)调用随机数发生器操作模块产生256位随机数作为私钥,调用SSX1510操作模块进行kP操作获得公钥。
e)使用保护密钥对私钥加密后保存到Flash。
f)将保护密钥和用户私钥明文清0。
(6)修改私钥访问码流程
修改私钥访问码需要通过管理工具,并满足管理权限才能产生。
流程如下:
a)插入第一个管理员智能密码钥匙,输入口令。
b)成功则重复执行a),确保满足半数管理员登录。
c)提供用户输入私钥位置和私钥访问码。
d)从智能密码钥匙中读取保护密钥分量1,从SSX1616芯片中读取保护密钥2,进行异或运算获得保护密钥。
e)使用保护密钥对私钥访问码加密后保存到Flash。
f)将保护密钥和私钥访问码明文清0。
(7)密钥加密密钥更新流程
产生密钥加密密钥需要通过管理工具,并满足管理权限才能产生。
流程如下:
a)插入第一个管理员智能密码钥匙,输入口令。
b)成功则重复执行a),确保满足半数管理员登录。
c)提供用户输入密钥加密密钥位置。
d)从智能密码钥匙中读取保护密钥分量1,从SSX1616芯片中读取保护密钥2,进行异或运算获得保护密钥。
e)调用随机数发生器操作模块产生128位密钥加密密钥。
f)使用保护密钥对密钥加密密钥加密后保存到Flash。
g)将保护密钥和密钥加密密钥明文清0。
(8)密码卡密钥运算流程
a)检查设备是否满足操作权限,若不满足需要插入用户智能密码钥匙,输入口令。
b)成功后即可根据用户请求,调用密码算法芯片控制模块操作密码算法芯片。
c)将运算后的数据和执行结果返回给用户。
(9)SM2签名流程
a)主控程序检查设备是否满足操作权限,若不满足需要插入用户智能密码钥匙,输入口令。
b)检查会话是否具备对应私钥的访问权限。
c)具备访问权限则使用保护密钥解密私钥。
d)将私钥和用户数据打包后通知FPGA状态机。
e)FPGA状态机操作SSX1510芯片进行签名运算,获取结果后通知主控程序。
f)主控程序清除私钥明文并将结果返回给用户。
(10)密码卡备份流程
密码卡备份需要通过管理工具,并满足管理权限才能产生。
a)检查是否满足管理员权限。
b)使用噪声源发生器产生128位备份恢复密钥。
c)使用秘密共享机制把备份恢复密钥分成5个密钥分量。
d)插入第一个管理员智能密码钥匙,将一个密钥分量写入智能密码钥匙。
e)重复d),直到5个密钥分量均写入智能密码钥匙。
f)使用备份恢复密钥将密码卡内数据信息再次加密后输出。
g)清除备份恢复密钥、各密钥分量,清除密码卡所有数据,设置密码卡为初始状态。
(11)密码卡恢复流程
密码卡备份需要通过管理工具,并需要在初始状态的密码卡上恢复。
a)依次插入存有备份恢复密钥分量的智能密码钥匙,验证用户口令,验证成功后读取密钥分量,读取成功后即删除智能密码钥匙的密钥分量。
b)重复a)直到3个密钥分量读取到密码卡。
c)在密码卡内恢复备份恢复密钥。
d)使用备份恢复密钥解密备份的密码卡数据。
e)将数据写入密码卡的存储区域。
f)清除备份恢复密钥信息。
需要说明的是,所述智能密码钥匙就是SJK1915器件。
最后应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;
因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。

Claims (2)

1.一种高性能密码卡,其特征在于:包括硬件平台和软件系统;所述硬件平台包括ZYNQ主处理器、存储单元、密码钥匙单元、PCIE接口、两片数字物理噪声源、第一密码算法芯片、第二密码算法芯片和第三密码算法芯片;所述ZYNQ主处理器包括一个双核ARM处理器和一个FPGA,所述ARM处理器和FPGA通过高速片内总线进行互连,所述ARM处理器主要用于用户身份鉴别、密钥管理、密码运算和文件管理;所述FPGA用来辅助所述ARM 处理器操作各个密码算法芯片以有效降低所述ARM 处理器负载并提高所述密码算法芯片的并行运算能力;所述密码钥匙单元通过USB接口与所述ARM处理器电性连接,用于识别身份认证和密钥管理;所述PCIE接口与所述FPGA电性连接,所述密码卡通过所述PCIE接口连接外部服务器设备;所述两片数字物理噪声源与所述FPGA电性连接,用于产生密钥、初始向量和随机数,所述随机数由所述两片数字物理噪声源产生的结果异或后得到;所述存储单元包括DDR、SPIFlash和eMMC;所述DDR与所述ARM处理器电性连接,用于做OS 的运行环境;所述SPI Flash与所述ARM处理器电性连接,用于存储程序;所述eMMC与所述ARM处理器电性连接,用于存储密钥;所述第一密码算法芯片与所述FPGA电性连接,用于实现SM2、SM3、SM4密码算法;所述第二密码算法芯片与所述FPGA电性连接,用于实现SM1密码算法;所述第三密码算法芯片通过UART与所述ARM处理器电性连接,用于安全存储密钥;
所述软件系统包括Linux系统和主控程序,所述Linux系统运行于所述ARM处理器的一个核内,所述主控程序运行于所述ARM处理器的另外一个核内,所述主控程序包括初始化模块,用于初始化ARM处理器、初始化PL侧FPGA,鉴别固件和密码卡数据的完整性,验证各个密码算法芯片是否正常工作,实现密码卡初始化功能;密钥管理模块,用于实现三级密钥体系管理、备份恢复管理;权限控制模块,用于实现身份鉴别,实现管理权限,操作权限和审计权限分离,确保密码卡使用安全;密码算法芯片控制模块,用于实现各个密码算法芯片的访问控制;文件管理模块,用于实现密码卡上的文件管理;备份恢复模块,用于实现密码卡的备份恢复机制,所述第三密码算法芯片的一个管脚外接毁钥按键,其余管脚被所述密码卡的保护罩压住,当有外力强行破坏所述保护罩时,会及时销毁第三密码算法芯片内部的密钥,
密码码卡上电启动后,ARM处理器首先将存于SPI Flash的FSBL读入所述ZYNQ主处理器RAM内并执行,FSBL进行ARM处理器和FPGA的初始化,初始化完成后,FSBL读取SPI Flash的系统和主控程序到DDR并执行,主控程序会对各个密码算法芯片和噪声源发生器进行自检,自检成功后对存于SPI Flash的FSBL进行摘要计算,并和保存的摘要值进行比对,比对成功后会对存于eMMC的密码卡数据信息进行摘要计算,并和保存的摘要值进行比对,比对成功后则初始化完成,等待应用请求服务;用户通过API接口调用请求后,API接口将用户请求进行格式封装交给驱动程序,驱动程序启动DMA请求,ZYNQ主处理器收到DMA请求后,通过FPGA的DMA状态机将数据搬运到密码卡的FPGA的RAM中并通知ZYNQ主处理器的ARM处理器,主控程序收到后首先解析报文,并转到相应的处理模块,具体如下:
1)随机数处理模块
主控程序调用ZYNQ主处理器的FPGA状态机操作,FPGA状态机同时读取密码卡上的两片WNG-9噪声源发生器并进行异或处理,处理完成后通知ARM的主控程序;
2)SM1处理模块
主控程序首先使用保护密钥解密用户密钥对私钥或密钥加密密钥,在使用用户密钥对私钥或密钥加密密钥解密会话密钥,然后将芯片所需数据交由主控芯片的FPGA状态机,FPGA状态机操作第二密码算法芯片的控制信号,完成加解密操作,处理完成后通知ARM处理器的主控程序,主控程序收到通知后对用到的明文密钥做清0操作;
3)SM2处理模块
主控程序首先判断是否需要使用私钥,如果需要使用私钥,则判断用户是否获取私钥的使用权,如果已获取私钥的使用权则使用保护密钥解密用户密钥对私钥,然后将第一密码算法芯片所需数据交由主控芯片的FPGA状态机,FPGA状态机操作第一密码算法芯片的控制信号,完成处理请求,处理完成后通知ARM处理器的主控程序,主控程序收到通知后对用到的明文私钥密钥做清0操作后,使用DMA将加解密后的数据搬移到主机,在通过驱动程序和API接口返回给用户;如果不需要使用私钥则处理模块将第一密码算法芯片所需数据交由主控芯片的FPGA状态机,FPGA状态机操第一密码算法芯片的控制信号,完成加处理请求,处理完成后通知ARM处理器的主控程序;
4)SM3处理模块
主控程序调用ZYNQ主处理器的FPGA状态机操作,FPGA状态机操作第一密码算法芯片,处理完成后通知ARM处理器的主控程序;
5)SM4处理模块
SM4处理模块类似SM1处理模块,首先使用保护密钥解密用户密钥对私钥或密钥加密密钥,在使用用户密钥对私钥或密钥加密密钥解密会话密钥,然后将芯片所需数据交由ZYNQ主处理器的FPGA状态机,FPGA状态机操作第一密码算法芯片的控制信号,完成加解密操作,处理完成后通知ARM处理器的主控程序,主控程序收到通知后对用到的明文密钥做清0操作;
各处理模块处理完成后,使用DMA将结果和处理完成的数据通过DMA搬运到主机内存,并发送中断;驱动程序相应中断将数据从内核层搬运到用户层,最终通过API接口将结果和数据返回给用户;
所述高性能密码卡的工作流程如下:
(1)启动
ZYNQ主处理器分为PL侧和PS侧,PL侧主要为FPGA,PS侧为双核ARM处理器,密码卡第一次上电或复位后,存于SPI Flash中的FSBL会被ZYNQ主处理器的PS侧加载到内部RAM执行,FSBL会初始化ARM处理器的各个外设,初始化完成后FSBL会读取存于SPI Flash中的PL到PL侧运行,最后会读取存于SPI Flash中的系统到DDR中并跳转启动,系统启动后主控程序会自动运行;
(2)自检
启动流程结束后,主控程序会对所有密码算法芯片、启动固件完整性和密码卡数据的完整性进行自检,所有自检均成功后,密码卡标记检测成功并可响应用户的请求,任一自检失败则密码卡标记检测失败并对用户请求不予执行;
1)第一密码算法芯片自检
使用预置的数据对第一密码算法芯片行自检以测试密码算法的正确性;
2)第二密码算法芯片自检
使用预置的数据对第二密码算法芯片进行自检以测试SM1密码算法的正确性;
3)两片数字物理噪声源自检
FPGA将两片数字物理噪声源生成的结果异或后送给ARM处理器作为随机数,测试随机数的随机性,以确保随机源芯片功能正常,测试内容包括单比特频数检测、块内频数检测、扑克检测、重叠子序列检测、游程总数检测、游程分布检测、块内最大“1”游程检测、二元推导检测、自相关检测、矩阵秩检测、累加和检测、近似熵检测、线性复杂度检测、Marurer通用统计检测、离散傅立叶检测,满足所有测试项后方认可数字物理噪声源有效;
4)固件完整性校验
读取存于eMMC的固件并进行SM3杂凑计算,将结果和存储的杂凑值做对比,比对一致则校验成功;
5)密码卡数据完整性校验
读取存于eMMC的密码卡数据并进行SM3杂凑计算,将结果和存储的杂凑值做对比,比对一致则校验成功;
(3)密码卡初始化
密码卡初始化只能通过管理工具完成,同时需要7个智能密码钥匙,初始化流程如下:
擦除密码卡数据区域,标记密码卡状态为初始状态;
主控程序调用密码算法芯片控制模块产生两组128位密钥分量,并将其中一组分量存入第三密码算法芯片内;
主控程序调用密码算法芯片控制模块生成设备加密和签名密钥对;
提示用户插入智能密码钥匙并提示用户输入新用户口令;
对智能密码钥匙进行设备认证并使用新用户口令修改默认用户口令;
主控程序操作智能密码钥匙产生签名密钥对并将公钥导出,同时将b)产生的两组密钥分量中的另外一组存入智能密码钥匙中;
重复d) - f)6次,对应5位管理员用户,1位审计管理员用户和1位操作员用户;
主控程序对b)产生的2组128位密钥进行异或运算,并将结果作为保护密钥,然后调用密码算法芯片控制模块使用保护密钥加密设备密钥,并将密文保存到Flash,设置密码卡模式为就绪状,保存智能密码钥匙公钥和序列号、密码卡模式到Flash,重新计算密码卡数据区摘要值并保存到Flash;
对产生的设备密钥和保护密钥清0;
至此密码初始化工作完成,密码卡进入就绪状态;
(4)身份认证
密码卡支持管理员、审计管理员和用户,所有角色登录均需满足口令和智能密码钥匙的双因子认证;口令通过管理工具,经由API接口和驱动程序发送给密码卡的主控程序后,主控程序调用权限控制模块对用户输入的PIN码和智能密码钥匙进行验证,检查用户的合法身份,认证通过后标记用户登录,同时可以从智能密码钥匙中读取保护密钥分量,恢复保护密钥;
(5)密码卡内部用户密钥对产生
产生密码卡内部用户密钥对需要通过管理工具,并满足管理权限才能产生,流程如下:
插入第一个管理员智能密码钥匙,输入口令;
成功则重复执行a),确保满足半数管理员登录;
从智能密码钥匙中读取保护密钥分量1,从第三密码算法芯片中读取保护密钥2,进行异或运算获得保护密钥;
调用随机数发生器操作模块产生256位随机数作为私钥,调用第一密码算法芯片操作模块进行kP操作获得公钥;
使用保护密钥对私钥加密后保存到Flash;
将保护密钥和用户私钥明文清0;
(6)修改私钥访问码
修改私钥访问码需要通过管理工具,并满足管理权限才能产生,流程如下:
插入第一个管理员智能密码钥匙,输入口令;
成功则重复执行a),确保满足半数管理员登录;
提供用户输入私钥位置和私钥访问码;
从智能密码钥匙中读取保护密钥分量1,从第三密码算法芯片中读取保护密钥2,进行异或运算获得保护密钥;
使用保护密钥对私钥访问码加密后保存到Flash;
将保护密钥和私钥访问码明文清0;
(7)密钥加密密钥更新
产生密钥加密密钥需要通过管理工具,并满足管理权限才能产生,流程如下:
插入第一个管理员智能密码钥匙,输入口令;
成功则重复执行a),确保满足半数管理员登录;
提供用户输入密钥加密密钥位置;
从智能密码钥匙中读取保护密钥分量1,从第三密码算法芯片中读取保护密钥2,进行异或运算获得保护密钥;
调用随机数发生器操作模块产生128位密钥加密密钥;
使用保护密钥对密钥加密密钥加密后保存到Flash;
将保护密钥和密钥加密密钥明文清0;
(8)密码卡密钥运算
检查设备是否满足操作权限,若不满足需要插入用户智能密码钥匙,输入口令;
成功后即可根据用户请求,调用密码算法芯片控制模块操作密码算法芯片;
将运算后的数据和执行结果返回给用户;
(9)SM2签名
主控程序检查设备是否满足操作权限,若不满足需要插入用户智能密码钥匙,输入口令;
检查会话是否具备对应私钥的访问权限;
具备访问权限则使用保护密钥解密私钥;
将私钥和用户数据打包后通知FPGA状态机;
FPGA状态机操作第一密码算法芯片进行签名运算,获取结果后通知主控程序;
主控程序清除私钥明文并将结果返回给用户;
(10)密码卡备份
密码卡备份需要通过管理工具,并满足管理权限才能产生;
检查是否满足管理员权限;
使用噪声源发生器产生128位备份恢复密钥;
使用秘密共享机制把备份恢复密钥分成5个密钥分量;
插入第一个管理员智能密码钥匙,将一个密钥分量写入智能密码钥匙;
重复d),直到5个密钥分量均写入智能密码钥匙;
使用备份恢复密钥将密码卡内数据信息再次加密后输出;
清除备份恢复密钥、各密钥分量,清除密码卡所有数据,设置密码卡为初始状态;
(11)密码卡恢复
密码卡备份需要通过管理工具,并需要在初始状态的密码卡上恢复;
依次插入存有备份恢复密钥分量的智能密码钥匙,验证用户口令,验证成功后读取密钥分量,读取成功后即删除智能密码钥匙的密钥分量;
重复a)直到3个密钥分量读取到密码卡;
在密码卡内恢复备份恢复密钥;
使用备份恢复密钥解密备份的密码卡数据;
将数据写入密码卡的存储区域;
清除备份恢复密钥信息。
2.根据权利要求1所述的一种高性能密码卡,其特征在于:还包括主机,所述密码卡通过所述PCIE接口与主机通信连接,所述主机内包括API接口和驱动程序,在实际应用时,应用层通过调用所述API接口以获取各种密码服务,所述API接口根据所述应用层的业务请求对数据进行格式封装,并通过所述驱动程序将封装后的数据传送给所述密码卡,所述密码卡通过调用主控程序的对应模块进行处理,再通过所述驱动程序获取所述密码卡传送回来的结果并返回给所述应用层。
CN201911017354.6A 2019-10-24 2019-10-24 一种高性能密码卡及其工作方法 Active CN110765438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911017354.6A CN110765438B (zh) 2019-10-24 2019-10-24 一种高性能密码卡及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911017354.6A CN110765438B (zh) 2019-10-24 2019-10-24 一种高性能密码卡及其工作方法

Publications (2)

Publication Number Publication Date
CN110765438A CN110765438A (zh) 2020-02-07
CN110765438B true CN110765438B (zh) 2021-01-01

Family

ID=69333381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911017354.6A Active CN110765438B (zh) 2019-10-24 2019-10-24 一种高性能密码卡及其工作方法

Country Status (1)

Country Link
CN (1) CN110765438B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352862A (zh) * 2020-03-05 2020-06-30 中安云科科技发展(山东)有限公司 一种密钥销毁方法、系统、密码卡及密码机
CN111371550A (zh) * 2020-03-11 2020-07-03 北京红亚华宇科技有限公司 一种数据安全密码箱、实验方法及系统
CN111478895A (zh) * 2020-04-03 2020-07-31 乾讯信息技术(无锡)有限公司 一种网络多媒体安全传输方法及系统
CN111580956B (zh) * 2020-04-13 2024-05-14 三未信安科技股份有限公司 一种密码卡及其密钥空间配置方法和密钥使用方法
CN111835510A (zh) * 2020-05-28 2020-10-27 无锡航天江南数据系统科技有限公司 一种etc安全管理方法
CN111917710B (zh) * 2020-06-12 2022-06-24 北京智芯微电子科技有限公司 Pci-e密码卡及其密钥保护方法、计算机可读存储介质
CN111782037A (zh) * 2020-06-23 2020-10-16 江苏微桔智能科技有限公司 一种基于毫米波的空间手势密码输入采集方法
CN113329030A (zh) * 2020-07-08 2021-08-31 支付宝(杭州)信息技术有限公司 区块链一体机及其密码加速卡、密钥管理方法和装置
CN112035900B (zh) * 2020-08-21 2022-03-15 郑州信大捷安信息技术股份有限公司 一种高性能密码卡以及其通信方法
CN112035152B (zh) * 2020-08-24 2023-10-10 成都三零嘉微电子有限公司 一种SoC芯片固件升级的安全处理系统及方法
CN112260839B (zh) * 2020-10-20 2022-11-22 河北素数信息安全有限公司 一种基于嵌入式技术的微型传输加密装置及其启动方法
CN112257119B (zh) * 2020-10-20 2022-10-28 河北素数信息安全有限公司 一种身份认证方法及用于保证加密装置安全的保护方法
CN112532381A (zh) * 2020-11-16 2021-03-19 航天信息股份有限公司 基于密码卡的数据处理方法、电子设备及存储介质
CN112688787B (zh) * 2021-03-22 2021-06-08 广州智慧城市发展研究院 基于Mifare卡片的认证平台及方法
CN113076532B (zh) * 2021-03-25 2024-04-12 三未信安科技股份有限公司 一种自诊断的pci密码卡
CN114448627A (zh) * 2022-02-21 2022-05-06 广州鼎甲计算机科技有限公司 一种加密卡及其加密方法
CN115544583B (zh) * 2022-10-08 2023-05-05 江南信安(北京)科技有限公司 一种服务器密码机的数据处理方法及装置
CN118153025A (zh) * 2023-12-26 2024-06-07 中金金融认证中心有限公司 Pci-e接口密码卡设计方法和pci-e接口密码卡
CN117714031B (zh) * 2024-01-11 2024-06-04 无锡路通视信网络股份有限公司 一种高速数据加密通信方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357005A (zh) * 2015-11-16 2016-02-24 国网智能电网研究院 一种pci/pci-e接口的电力可信计算密码模块
CN106022080A (zh) * 2016-06-30 2016-10-12 北京三未信安科技发展有限公司 一种基于PCIe接口的密码卡及该密码卡的数据加密方法
CN106022169A (zh) * 2016-06-30 2016-10-12 北京三未信安科技发展有限公司 一种基于zynq小型密码机的加密保护方法及实现该方法的装置
CN207690086U (zh) * 2017-08-01 2018-08-03 北京迪曼森科技有限公司 一种多线程PCIe密码卡
CN109145568A (zh) * 2018-08-21 2019-01-04 西安得安信息技术有限公司 一种基于pci-e接口的全算法密码卡及其加密方法
US10461940B2 (en) * 2017-03-10 2019-10-29 Fmr Llc Secure firmware transaction signing platform apparatuses, methods and systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2176032A1 (en) * 1994-01-13 1995-07-20 Bankers Trust Company Cryptographic system and method with key escrow feature
US10708236B2 (en) * 2015-10-26 2020-07-07 Secturion Systems, Inc. Multi-independent level secure (MILS) storage encryption
CN106953732B (zh) * 2017-03-10 2020-02-07 南方城墙信息安全科技有限公司 芯片卡的密钥管理系统及方法
US11057194B2 (en) * 2017-07-03 2021-07-06 Stmicroelectronics S.R.L. Processing system, related integrated circuit, device and method
CN108880810B (zh) * 2018-09-07 2024-02-27 江苏云涌电子科技股份有限公司 一种毁钥电路结构

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357005A (zh) * 2015-11-16 2016-02-24 国网智能电网研究院 一种pci/pci-e接口的电力可信计算密码模块
CN106022080A (zh) * 2016-06-30 2016-10-12 北京三未信安科技发展有限公司 一种基于PCIe接口的密码卡及该密码卡的数据加密方法
CN106022169A (zh) * 2016-06-30 2016-10-12 北京三未信安科技发展有限公司 一种基于zynq小型密码机的加密保护方法及实现该方法的装置
US10461940B2 (en) * 2017-03-10 2019-10-29 Fmr Llc Secure firmware transaction signing platform apparatuses, methods and systems
CN207690086U (zh) * 2017-08-01 2018-08-03 北京迪曼森科技有限公司 一种多线程PCIe密码卡
CN109145568A (zh) * 2018-08-21 2019-01-04 西安得安信息技术有限公司 一种基于pci-e接口的全算法密码卡及其加密方法

Also Published As

Publication number Publication date
CN110765438A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
CN110765438B (zh) 一种高性能密码卡及其工作方法
US10341091B2 (en) Secure memory storage
CN101430747B (zh) 基于可信嵌入式平台的移动设备及其安全存储方法
EP2506488B1 (en) Secure dynamic on-chip key programming
US9792427B2 (en) Trusted execution within a distributed computing system
EP1695169B1 (en) Method and apparatus for incremental code signing
RU2740298C2 (ru) Защита использования содержимого хранилища ключей
CN112491843B (zh) 一种数据库多重认证方法、系统、终端及存储介质
CN101176100A (zh) 提供基于软件的安全协处理器的方法和装置
CN113420309B (zh) 基于国密算法的轻量化数据保护系统
CN111435396A (zh) 智能安全主控
US20220286272A1 (en) Method and apparatus for neural network model encryption and decryption
CN114221762A (zh) 一种私钥存储方法、读取方法、管理装置、设备及介质
CN112241523B (zh) 一种嵌入式计算机开机身份认证方法
CN111490876B (zh) 一种基于usb key的通信方法和usb key
CN117708794A (zh) 设备授权方法和设备授权装置
CN106682470A (zh) 基于加密指纹信息的指纹识别系统、终端设备及方法
CN104376277B (zh) 运算装置、方法与系统
CN116170157A (zh) 一种基于国密算法的用户密码加解密方法与装置
CN113542303B (zh) 秘钥在非可信环境的软件导入系统及方法
CN115758332A (zh) 一种交易分组方法和区块链节点
JP2902087B2 (ja) Icカードによる電子署名方法
CN113141329B (zh) 大数据挖掘方法、装置、设备和存储介质
CN114866228A (zh) 一种实现软密码模块的方法、系统、存储介质及终端
Chang et al. Hardware-assisted security mechanism: The acceleration of cryptographic operations with low hardware cost

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