[发明专利]一种高性能密码卡及其工作方法有效

专利信息
申请号: 201911017354.6 申请日: 2019-10-24
公开(公告)号: CN110765438B 公开(公告)日: 2021-01-01
发明(设计)人: 肖相生;高渊;李占才;刘杨;赵丰 申请(专利权)人: 江苏云涌电子科技股份有限公司
主分类号: G06F21/34 分类号: G06F21/34;G06F21/60;G06F21/64;G06F21/87
代理公司: 南京中高专利代理有限公司 32333 代理人: 徐莉娜
地址: 225300 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 性能 密码 及其 工作 方法
【权利要求书】:

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接口根据所述应用层的业务请求对数据进行格式封装,并通过所述驱动程序将封装后的数据传送给所述密码卡,所述密码卡通过调用主控程序的对应模块进行处理,再通过所述驱动程序获取所述密码卡传送回来的结果并返回给所述应用层。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏云涌电子科技股份有限公司,未经江苏云涌电子科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911017354.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top