一种对智能密钥设备进行测试的方法及装置与流程

文档序号:11138383阅读:593来源:国知局
一种对智能密钥设备进行测试的方法及装置与制造工艺

本发明涉及电子产品领域,尤其涉及一种对智能密钥设备进行测试的方法及装置。



背景技术:

近10年来,随着我国计算机技术及信息化建设的飞速发展,智能密钥设备在各个行业的应用范围和数量急剧增长。在金融、交通、市政、电信及政府部门等应用领域,智能密钥设备都扮演了重要的角色,为这些行业应用的安全发展起到了不可估量的作用。

目前,智能密钥设备产品多样,实现方式不同,产品功能等各方面考虑也不尽相同。协商会话密钥是智能密钥设备在应用领域中所需的主要功能之一。会话密钥协商由至少两支智能密钥设备完成,而且为了保证密钥安全,会话密钥在智能密钥设备内部生成、存储和使用,不暴露在智能密钥设备之外。这给该功能的有效性测试带来了困难。

为了准确有效地判断智能密钥设备产品是否具备应用所需的协商会话密钥的功能,需要进行有针对性的测试。



技术实现要素:

本发明的目的是为了克服现有技术的不足,提供一种对智能密钥设备进行测试的方法及装置。

本发明提供了一种对智能密钥设备进行测试的方法,包括:

1、一种对智能密钥设备进行测试的方法,其特征在于,包括:

步骤A1:根据预设参数从被测试智能密钥设备导出第一公钥,如未导出则测试中止,结束;

步骤A2:使用所述第一公钥对预设的第一会话密钥进行加密得到第一会话密钥密文;

步骤A3:根据所述预设参数将所述第一会话密钥密文导入所述被测试智能密钥设备中,如接收到所述被测试智能密钥设备返回的第一会话密钥ID,则执行步骤A4,如未接收到所述被测试智能密钥设备返回的第一会话密钥ID,则测试中止,结束;

步骤A4:使用第二公钥和所述第一会话密钥ID,从所述被测试智能密钥设备中导出第二会话密钥密文,如所述被测试智能密钥设备未导出数据,则测试中止,结束;

步骤A5:使用第二私钥对所述第二会话密钥密文进行解密,将解密结果与所述第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,结束。

其中,所述步骤A1包括:根据预设的应用ID、预设的容器ID、第一公钥长度生成第一指令,并将其发送给所述被测试智能密钥设备,接收所述被测试智能密钥设备返回的所述第一公钥。

其中,所述步骤A3包括:根据预设的应用ID、预设的容器ID、预设的第一算法标识、第一会话密钥密文长度、第一会话密钥密文生成第二指令,并将其发送给所述被测试智能密钥设备,如接收到所述被测试智能密钥设备返回的第一会话密钥ID,则执行步骤A4,如未接收到所述被测试智能密钥设备返回的第一会话密钥ID,则导入密钥失败,结束。

其中,所述步骤A4包括:所述装置根据预设的应用ID、预设的容器ID、所述第一会话密钥ID、第二密钥对的密钥位长度、所述第二公钥生成第三指令,并将其发送给所述被测试智能密钥设备,接收所述被测试智能密钥设备返回的所述第二会话密钥密文。

其中,在所述步骤A4之前还包括:所述装置将所述第二公钥从已通过测试的辅助智能密钥设备中导出。

其中,所述步骤A5具体为:将所述第二会话密钥密文发给所述辅助智能密钥设备解密,如接收到所述辅助智能密钥设备返回的解密结果则将解密结果与所述第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,结束,如未接收到所述辅助智能密钥设备返回的解密结果,则测试不通过,结束。

其中,在所述测试中止或测试不通过之后还包括:利用所述第一会话密钥ID销毁所述被测试智能密钥设备中的第一会话密钥。

其中,所述利用所述第一会话密钥ID销毁所述被测试智能密钥设备中的第一会话密钥,具体为:根据预设的应用ID、预设的容器ID、所述第一会话密钥ID生成第四指令并将其发送给所述被测试智能密钥设备。

本发明又提供了一种对智能密钥设备进行测试的方法,包括:

步骤B1:将第三公钥发给被测试智能密钥设备,控制所述被测试智能密钥设备中生成并导出第三会话密钥密文并获取第三会话密钥ID,如所述被测试智能密钥设备未输出第三会话密钥密文或第三会话密钥ID,则测试中止,结束;

步骤B2:根据所述第三会话密钥ID,控制所述被测试智能密钥设备对预设数据进行加密,获取所述被测试智能密钥设备输出的预设数据密文,如所述被测试智能密钥设备未输出数据,则测试中止,结束;

步骤B3:使用第三私钥对所述第三会话密钥密文进行解密,使用解密结果对所述预设数据密文进行解密,得到数据明文;

步骤B4:判断所述预设数据和所述数据明文是否一致,是则测试通过,否则测试不通过,结束。

其中,所述步骤B1之前包括:将所述第三公钥从已测试通过的辅助智能密钥设备中导出。

其中,所述步骤B1具体为:根据预设的应用ID、预设的容器ID、预设的第二算法标识、第三密钥对的密钥位长度、所述第三公钥生成第五指令并将其发送给所述被测试智能密钥设备,获取所述被测试智能密钥设备输出的第三会话密钥密文和第三会话密钥ID,如所述被测试智能密钥设备未输出第三会话密钥密文或第三会话密钥ID,则测试中止,结束。

其中,所述步骤B2包括:根据预设的应用ID、预设的容器ID、所述第三会话密钥ID、预设数据生成第六指令并将其发送给所述被测试智能密钥设备,获取所述被测试智能密钥设备输出的所述预设数据密文,如未接收到所述被测试智能密钥设备输出的数据,则测试中止,结束。

其中,所述步骤B3中的使用第三私钥对所述第三会话密钥密文进行解密包括:将所述第三会话密钥密文发送给所述辅助智能密钥设备进行解密,并获取所述辅助设备输出的解密结果,如所述辅助智能密钥设备未返回解密结果则测试中止,结束。

其中,在所述测试中止或测试不通过之后还包括:利用所述第三会话密钥ID销毁所述被测试智能密钥设备中的第三会话密钥。

其中,所述利用所述第三会话密钥ID销毁所述被测试智能密钥设备中的第三会话密钥,具体为:根据预设的应用ID、预设的容器ID、所述第三会话密钥ID生成第四指令并将其发送给所述被测试智能密钥设备。

本发明还提供了一种对智能密钥设备进行测试的装置,所述装置设置于终端上,所述被测试智能密钥设备与所述终端连接,所述装置包括:

第一导出模块,用于根据预设参数从被测试智能密钥设备导出第一公钥;

第一加密模块,用于使用所述第一公钥对预设的第一会话密钥进行加密得到第一会话密钥密文;

导入模块,用于根据所述预设参数将所述第一会话密钥密文导入所述被测试智能密钥设备中,并接收所述被测试智能密钥设备返回的第一会话密钥ID;

第二导出模块,用于使用第二公钥和所述第一会话密钥ID,从所述被测试智能密钥设备中导出第二会话密钥密文;

解密比对模块,用于使用第二私钥对所述第二会话密钥密文进行解密,将解密结果与所述第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,结束。

其中,所述第一导出模块具体用于根据预设的应用ID、预设的容器ID、第一公钥长度生成第一指令,并将其发送给所述被测试智能密钥设备,接收所述被测试智能密钥设备返回的所述第一公钥。

其中,所述导入模块具体用于根据预设的应用ID、预设的容器ID、预设的第一算法标识、第一会话密钥密文长度、第一会话密钥密文生成第二指令,并将其发送给所述被测试智能密钥设备,如接收到所述被测试智能密钥设备返回的第一会话密钥ID则触发所述第二导出模块,否则导入密钥失败。

其中,所述第二导出模块具体用于根据预设的应用ID、预设的容器ID、所述第一会话密钥ID、第二密钥对的密钥位长度、所述第二公钥生成第三指令,并将其发送给所述被测试智能密钥设备,接收所述被测试智能密钥设备返回的所述第二会话密钥密文。

其中,所述装置还包括第三导出模块,用于将所述第二公钥从已通过测试的辅助智能密钥设备中导出。

其中,所述解密比对模块具体用于将所述第二会话密钥密文发给所述辅助智能密钥设备解密,如接收到所述辅助智能密钥设备返回的解密结果则将解密结果与所述第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,如未接收到所述辅助智能密钥设备返回的解密结果,则测试不通过。

其中,所述装置还包括销毁模块,用于在测试中止或测试不通过之后利用所述第一会话密钥ID销毁所述被测试智能密钥设备中的第一会话密钥。

其中,所述销毁模块具体用于根据预设的应用ID、预设的容器ID、所述第一会话密钥ID生成第四指令并将其发送给所述被测试智能密钥设备。

本发明再一种对智能密钥设备进行测试的装置,所述装置设置于终端上,所述被测试智能密钥设备与所述终端连接,所述装置包括:

第一导出模块,用于将第三公钥发给被测试智能密钥设备,控制所述被测试智能密钥设备中生成并导出第三会话密钥密文并获取第三会话密钥ID;

所述第一加密模块,用于根据所述第三会话密钥ID,控制所述被测试智能密钥设备对预设数据进行加密,获取所述被测试智能密钥设备输出的预设数据密文;

第一解密模块,用于使用第三私钥对所述第三会话密钥密文进行解密;

第二解密模块,用于使用所述第一解密模块得到的解密结果对所述预设数据密文进行解密,得到数据明文;

所述第一判断模块,用于判断所述预设数据和所述数据明文是否一致,是则测试通过,否则测试不通过,结束。

其中,所述装置还包括第二导出模块,用于将所述第三公钥从已测试通过的辅助智能密钥设备中导出。

其中,所述第一导出模块具体用于根据预设的应用ID、预设的容器ID、预设的第二算法标识、第三密钥对的密钥位长度、所述第三公钥生成第五指令并将其发送给所述被测试智能密钥设备,获取所述被测试智能密钥设备输出的第三会话密钥密文和第三会话密钥ID。

其中,所述第一加密模块具体用于根据预设的应用ID、预设的容器ID、所述第三会话密钥ID、预设数据生成第六指令并将其发送给所述被测试智能密钥设备,获取所述被测试智能密钥设备输出的所述预设数据密文。

其中,所述第一解密模块具体用于将所述第三会话密钥密文发送给所述辅助智能密钥设备进行解密,并获取所述辅助智能密钥设备输出的解密结果。

其中,所述装置还包括销毁模块,用于在测试中止或测试不通过之后利用所述第三会话密钥ID销毁所述被测试智能密钥设备中的第三会话密钥。

其中,所述销毁模块具体用于根据预设的应用ID、预设的容器ID、所述第三会话密钥ID生成第四指令并将其发送给所述被测试智能密钥设备。

本发明与现有技术相比,具有以下优点:

本发明技术方案能够准确、高效地判定智能密钥设备是否具备会话密钥协商功能并且可以互操作,解决了该功能测试的问题。

附图说明

图1为本发明实施例一提供的一种对智能密钥设备进行测试的方法流程图;

图2为本发明实施例二提供的一种对智能密钥设备进行测试的方法流程图;

图3为本发明实施例三提供的一种对智能密钥设备进行测试的方法流程图;

图4为本发明实施例四提供的一种对智能密钥设备进行测试的装置方框图;

图5为本发明实施例五提供的一种对智能密钥设备进行测试的装置方框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供一种对智能密钥设备进行测试的方法,具体以导入密钥过程为例进行说明,如图1所示,包括:

步骤100:装置根据预设参数从被测试智能密钥设备导出第一公钥,如未导出则测试中止,结束;

具体的,在本实施例中,装置通过向被测试智能密钥设备发送第一指令(即ExportPublicKey指令)导出第一公钥,第一指令(ExportPublicKey)指令的数据域包括:应用ID、容器ID、第一公钥的密钥位长度;步骤100具体为:根据预设的应用ID、预设的容器ID、第一公钥长度生成第一指令,并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第一指令后对其进行解析,根据解析结果中的应用ID、容器ID打开指定应用中的指定容器,根据第一公钥的密钥位长度从该容器中获取第一公钥并发送给装置,装置接收被测试智能密钥设备返回的第一公钥;

步骤101:装置使用第一公钥对预设的第一会话密钥进行加密得到第一会话密钥密文;

在本实施例中,步骤101中使用的第一公钥与智能密钥设备中的第一私钥对应,优选的,第一公钥为RSA公钥或者SM2公钥;

在本实施例中,将第一公钥和预设的第一会话密钥作为参数值,调用第一函数(即PubKeyEncrypt函数),如加密成功则第一函数返回第一会话密钥密文,如加密失败则第一函数返回错误值;

步骤102:根据预设参数将第一会话密钥密文导入被测试智能密钥设备中,如接收到被测试智能密钥设备返回的第一会话密钥ID,则执行步骤103,如未接收到被测试智能密钥设备返回的第一会话密钥ID,则测试中止,结束;

具体的,在本实施例中,装置根据预设的应用ID、预设的容器ID、预设的第一算法标识、第一会话密钥密文长度、第一会话密钥密文生成第二指令(即ImportSessionKey指令),并将该第二指令发送给智能密钥设备,实现了将第一会话密钥密文导入被测试智能密钥设备中;

被测试智能密钥设备接收到第二指令后,根据第一会话密钥密文长度从第二指令(ImportSessionKey指令)的数据域中解析出第一会话密钥密文,再根据解析出的预设的应用ID、预设的容器ID打开指定应用和容器,使用指定应用和容器中的第一私钥对解析得到的第一会话密钥密文进行解密,如解密成功则根据预设的应用ID、预设的容器ID将解密得到的第一会话密钥保存到相应位置,分配对应的第一会话密钥ID并将其发送给装置,如装置接收到被测试智能密钥设备返回的第一会话密钥ID,则执行步骤103,如未接收到被测试智能密钥设备返回的第一会话密钥ID,则导入密钥失败,结束;第一加密私钥与步骤101中的第一公钥对应;

例如,在本实施例中,ImportSessionKey指令为:80A0 00 00 00008C 0001 0001 00000401 00000080 5EC055642CDE8EE941C273E61AB81A60A71A9F884F72EEAE4B0B2C0EA526A0044F4717DD153919314A4C267CABD263897A4131597D0006BD07603CA10C03F0812AE72F497CD23F6C31C98BDFB69B9D8CB22DBDBC800452628243BEB292D148682EB32ED74ED27CFF4FC05B95CE5330A2C8689CEA857B215BB888FB9751CCEC740002;返回的第一会话密钥ID为:0001;

步骤103:使用第二公钥和第一会话密钥ID,从被测试智能密钥设备中导出第二会话密钥密文,如被测试智能密钥设备未导出数据,则测试中止,结束;

在本实施例中,步骤103之前还包括:装置将第二公钥从已测试通过的辅助智能密钥设备中导出。

优选的,本实施例中步骤103使用的第二公钥与第二私钥对应,优选的,第二公钥为RSA公钥或SM2公钥;

在本实施例中,装置通过向被测试智能密钥设备发送第三指令(即ExportSessionKeyEx指令)实现从被测试智能密钥设备中导出第二会话密钥密文,其中该第三指令的数据域包括:预设的应用ID、预设的容器ID、第一会话密钥ID、加密密钥对的密钥位长度、第二公钥;步骤103具体为:装置根据预设的应用ID、预设的容器ID、第一会话密钥ID、第二密钥对的密钥位长度、第二公钥生成第三指令,并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第三指令(ExportSessionKeyEx指令)后对其进行解析,根据解析结果中的加密密钥对的密钥位长度获取第三指令的数据域中的第二公钥,根据解析结果中的应用ID、容器ID、第一会话密钥ID获取对应的内部保存的第一会话密钥,使用第二公钥对第一会话密钥进行加密得到第二会话密钥密文,并将第二会话密钥密文返回给装置,装置接收被测试智能密钥设备返回的第二会话密钥密文;

例如,本实施例中的ExportSessionKeyEx指令为:80 5C 00 00 00008E 0001 0001 0001 00000400D59AA16C2E98094E412F56ADD17F45C5F514C51C13

1C11422B8DC9CC507AD37F25F0A4692CC0B40A7BCC77EABFC7A65E0923711DC0F2BAC384757350D5CFFFF7B74C8B6F02507A031566A6DEBB47CB04BAA2D302584EE42F5C4AA64BBD54E2AE185DEE318C20D38DCD563D0411B377CD367EC1A66C3EAFAB8D966C70E5627C01 00010001;得到的第一会话密钥密文为:B7E22DB7B0A9BD54B2667A53B1D4D38C0F84F3CA8812F316DD4D122

99F4CCBD93F231B26A566BA5289F53BF11989660777C503B791C945701B22A6A9E72B552C254B55CBF04BB310968DB8FF51B522C112E1C0FA6D0A8679895E0A8337C7319BEA8B461C3894A8E29A7146EF42124B28B5CD91D459384B1B2507E5416FC26EA5;

步骤104:使用第二私钥对第二会话密钥密文进行解密,将解密结果与第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,结束;

具体的,在本实施例中,步骤104具体为:将第二会话密钥密文发给辅助智能密钥设备解密,如接收到辅助智能密钥设备返回的解密结果则将解密结果与第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,结束,如未接收到辅助智能密钥设备返回的解密结果,则测试不通过,结束;该步骤104使用的第二私钥与步骤103中的第二公钥对应;

在本实施例中,测试中止或测试不通过之后还可以包括:

步骤D:装置利用第一会话密钥ID销毁被测试智能密钥设备中的第一会话密钥;

具体的,在本实施例中,装置通过向智能密钥设备发送第四指令(即DestroySessionKey指令)来实现销毁第一会话密钥,第四指令(即DestroySessionKey指令)的数据域包括应用ID、容器ID、第一会话密钥ID,步骤D具体为:根据预设的应用ID、预设的容器ID、第一会话密钥ID生成第四指令并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到DestroySessionKey指令时对其进行解析,根据解析结果中的应用ID、容器ID、第一会话密钥ID获取对应的第一会话密钥并将其销毁;

例如,在本实施例中的DestroySessionKey指令为:80C4 00 00 000006 000100010001。

实施例二

本发明实施例二提供一种对智能密钥设备进行测试的方法,具体以导出密钥过程为例进行说明,如图2所示,包括:

步骤201:将第三公钥发给被测试智能密钥设备,控制被测试智能密钥设备中生成并导出第三会话密钥密文并获取第三会话密钥ID,如被测试智能密钥设备未输出的第三会话密钥密文或第三会话密钥ID,则测试中止,结束;

在本实施例中,步骤201之前还包括:装置将第三公钥从已测试通过的辅助智能密钥设备中导出;

优选的,在本实施例中,步骤201中使用的第三公钥与第三私钥对应,优选的,第三公钥为RSA公钥或者SM2公钥;

具体的,在本实施例中,装置通过向被测试智能密钥设备发送第五指令(即ExportSessionKey指令)控制被测试智能密钥设备中生成并导出第三会话密钥密文并获取第三会话密钥ID,第五指令(ExportSessionKey指令)的数据域包括:预设的应用ID、预设的容器ID、预设的第二会话密钥算法标识、第三密钥对的密钥位长度、第三公钥;步骤201具体为:根据预设的应用ID、预设的容器ID、预设的第二算法标识、第三密钥对的密钥位长度、第三公钥生成第五指令并将其发送给被测试智能密钥设备,被测试智能密钥设备对第五指令进行解析,根据解析结果中的第三密钥对的密钥位长度从数据域中获取对应的第三公钥,根据解析结果中的应用ID、容器ID打开指定的应用和容器,在指定的应用和容器中生成16字节的第三会话密钥,根据与第二算法标识对应的算法使用第三公钥对第三会话密钥进行加密得到第三会话密钥密文,并将第三会话密钥密文和为其分配的第二会话密钥ID输出,装置获取被测试智能密钥设备输出的第三会话密钥密文和第三会话密钥ID,如被测试智能密钥设备未输出的第三会话密钥密文或第三会话密钥ID,则测试中止,结束;

例如,在本实施例中,第二会话密钥算法标识为SM4算法标识,ExportSessionKey指令为:80 5A 00 00 000090 0001 0001 00000401 00000400C2ACEFAD38B5A489C3EA2B79324E31C9696EAD796451232FC6C5CA7DB8F0B5DE82818DD3C1B483D6E2D1909DB0787B4B3DAA15C0C9CEBC8D2BE4F12CA99EF5B8081F848A8DB79007CC663287A161C80E65223BE9367DD4B2524049A1334DB657A158304E04BB44DA4700F49919D939D67403A7F3FBCEB99DE535EDA21476CA01 00010001;得到第三会话密钥密文和第三会话密钥ID分别为:5EC055642CDE8EE941C273E61AB81A60A71A9F884F72EEAE4B0B2C0EA

526A0044F4717DD153919314A4C267CABD263897A4131597D0006BD07603CA10C03F0812AE72F497CD23F6C31C98BDFB69B9D8CB22DBDBC800452628243BEB292D148682EB32ED74ED27CFF4FC05B95CE5330A2C8689CEA857B215BB888FB9751CCEC74和0001;

步骤202:根据第三会话密钥ID,控制被测试智能密钥设备对预设数据进行加密,获取被测试智能密钥设备输出的预设数据密文,如被测试智能密钥设备未输出数据,则测试中止,结束;

具体的,在本实施例中,装置通过向智能密钥设备发送第六指令(即Encrypt指令)实现对预设数据进行加密,其中该第六指令的数据域包括:应用ID、容器ID、第三会话密钥ID、预设数据;步骤202具体为:根据预设的应用ID、预设的容器ID、第三会话密钥ID、预设数据生成第六指令并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第六指令(Encrypt指令)后对其进行解析,根据解析结果中的应用ID、容器ID、第三会话密钥ID获取对应的第三会话密钥和第二会话密钥算法标识,根据与第二会话密钥算法标识对应的算法使用获取的第三会话密钥对预设数据进行加密得到预设数据密文并返回给装置;装置获取被测试智能密钥设备输出的预设数据密文,如未接收到被测试智能密钥设备输出的数据,则测试中止,结束。

例如,在本实施例中,Encrypt指令为:80A6 00 00 000016 0001 0001 0001 11223344112233441122334411223344;预设数据密文为:C4B7CFD3EB6BF8C44325F76EE2D216A7;

步骤203:使用第三私钥对第三会话密钥密文进行解密,使用解密结果对预设数据密文进行解密,得到数据明文;

在本实施例中,步骤203包括:将第三会话密钥密文发送给辅助智能密钥设备进行解密,并获取辅助设备输出的解密结果,如辅助智能密钥设备未返回解密结果则测试中止,结束;装置将解密结果和预设数据密文作为参数调用第四函数(即Decrypt函数),如解密成功则第四函数返回数据明文,如解密失败则第四函数返回错误值;该步骤使用的第三私钥与步骤201中的第三公钥对应;

步骤204:判断预设数据和数据明文是否一致,是则测试通过,否则测试不通过,结束;

在本实施例中,测试中止或测试不通过之后还包括:

步骤C:利用第三会话密钥ID销毁被测试智能密钥设备中的第三会话密钥。

具体的,在本实施例中,装置通过向智能密钥设备发送第四指令(即DestroySessionKey指令)来实现销毁被测试智能密钥设备中的第三会话密钥,第四指令(DestroySessionKey)指令的数据域包括应用ID、容器ID、会话密钥ID,步骤C具体为:根据预设的应用ID、预设的容器ID、第三会话密钥ID生成第四指令并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第四指令时对其进行解析,根据解析结果中的应用ID、容器ID、会话密钥ID获取对应的第三会话密钥并将其销毁;

例如,本实施例中的DestroySessionKey指令为80C4 00 00 000006 000100010001。

实施例三

本发明实施例三提供一种对智能密钥设备进行测试的方法,其中第一智能密钥设备和第二智能密钥设备进相互测试,具体过程如图3所示,包括:

步骤300:装置根据第二预设参数从第二智能密钥设备导出第二公钥,如未导出则测试中止,结束;

具体的,在本实施例中,装置通过向第二智能密钥设备发送第一指令(即ExportPublicKey指令)导出第二公钥,第一指令(ExportPublicKey)指令的数据域包括:应用ID、容器ID、第二公钥的密钥位长度;步骤300具体为:根据预设的应用ID、预设的容器ID、第二公钥长度生成第一指令,并将其发送给第二智能密钥设备,第二智能密钥设备接收到第一指令后对其进行解析,根据解析结果中的应用ID、容器ID打开指定应用中的指定容器,根据第二公钥的密钥位长度从该容器中获取第二公钥并发送给装置,装置接收第二智能密钥设备返回的第二公钥;

步骤301:装置将第二公钥发送给第一智能密钥设备,控制第一智能密钥设备生成并导出第一会话密钥密文并获取第一会话密钥ID,如第一智能密钥设备未输出第一会话密钥密文或第一会话密钥ID,则测试中止,执行步骤306;

优选的,在本实施例中,步骤301中使用的第二公钥为RSA公钥或者SM2公钥;与第二智能密钥设备中的第二私钥对应;

具体的,在本实施例中,装置通过向第一智能密钥设备发送第五指令(即ExportSessionKey指令),第五指令(ExportSessionKey)指令的数据域包括:预设的应用ID、预设的容器ID、预设的第一算法标识、第二公钥的密钥位长度、第二公钥;步骤301具体为:根据预设的应用ID、预设的容器ID、预设的第一算法标识、第二密钥对的密钥位长度、第二公钥生成第五指令并将其发送给第一智能密钥设备,第一智能密钥设备对第五指令进行解析,根据解析结果中的第二密钥对的密钥位长度从数据域中获取对应的第二公钥,根据解析结果中的应用ID、容器ID打开指定的应用和容器,在指定的应用和容器中生成16字节的第一会话密钥,根据与第一算法标识对应的算法使用第二公钥对第一会话密钥进行加密得到第一会话密钥密文,并将第一会话密钥密文和为其分配的第一会话密钥ID输出,装置获取第一智能密钥设备输出的第一会话密钥密文和第一会话密钥ID,如第一智能密钥设备未输出的第一会话密钥密文或第一会话密钥ID,则测试中止,结束;

例如,在本实施例中,第一算法标识为SM4算法标识,ExportSessionKey指令为:80 5A00 00 000090 0001 0001 00000401 00000400C2ACEFAD38B5A489C3EA2B79324E31C9696EAD796451232FC6C5CA7DB8F0B5DE82818DD3C1B483D6E2D1909DB0787B4B3DAA15C0C9CEBC8D2BE4F12CA99EF5B8081F848A8DB79007CC663287A161C80E65223BE9367DD4B2524049A1334DB657A158304E04BB44DA4700F49919D939D67403A7F3FBCEB99DE535EDA21476CA01 00010001;得到第一会话密钥密文和第一会话密钥ID分别为:5EC055642CDE8EE941C273E61AB81A60A71A9F884F72EEAE4B0B2C0EA

526A0044F4717DD153919314A4C267CABD263897A4131597D0006BD07603CA10C03F0812AE72F497CD23F6C31C98BDFB69B9D8CB22DBDBC800452628243BEB292D148682EB32ED74ED27CFF4FC05B95CE5330A2C8689CEA857B215BB888FB9751CCEC74和0001;

步骤302:装置根据第二预设参数将第一会话密钥密文导入第二智能密钥设备中,如接收第二智能密钥设备返回的第二会话密钥ID,则执行步骤303,如未接收到第二智能密钥设备返回的第二会话密钥ID,则测试中止,执行步骤306;

具体的,在本实施例中,装置根据预设的应用ID、预设的容器ID、预设的第一算法标识、第一会话密钥密文长度、第一会话密钥密文生成第二指令(即ImportSessionKey指令),并将该第二指令(ImportSessionKey指令)发送给第二智能密钥设备,实现了将第一会话密钥密文导入第二智能密钥设备中;

第二智能密钥设备接收到第二指令后对其进行解析,根据解析得到的第一会话密钥密文长度从第二指令(ImportSessionKey指令)的数据域中获取第一会话密钥密文,再根据解析得到的应用ID、容器ID打开指定应用和容器,使用指定应用和容器中的第二私钥对获取到的第一会话密钥密文进行解密,如解密成功则根据应用ID、容器ID将解密得到的第一会话密钥保存到相应位置,分配对应的第二会话密钥ID并将其返回给装置;本实施例中的第二私钥与步骤301中的第二公钥对应;

例如,在本实施例中,ImportSessionKey指令为:80A0 00 00 00008C 0001 0001 00000401 00000080 5EC055642CDE8EE941C273E61AB81A60A71A9F884

F72EEAE4B0B2C0EA526A0044F4717DD153919314A4C267CABD263897A4131597D0006BD07603CA10C03F0812AE72F497CD23F6C31C98BDFB69B9D8CB22DBDBC800452628243BEB292D148682EB32ED74ED27CFF4FC05B95CE5330A2C8689CEA857B215BB888FB9751CCEC740002;返回的第二会话密钥ID为:0001;

步骤303:装置根据第一会话密钥ID,控制第一智能密钥设备对预设数据进行加密,获取第一智能密钥设备输出的预设数据密文,如第一智能密钥设备未输出数据,则测试中止,执行步骤306;

具体的,在本实施例中,装置通过向第一智能密钥设备发送第六指令(即Encrypt指令),其中该第六指令的数据域包括:应用ID、容器ID、第一会话密钥ID、预设数据;步骤303具体为:根据预设的应用ID、预设的容器ID、第一会话密钥ID、预设数据生成第六指令并将其发送给第一智能密钥设备,第一智能密钥设备接收到第六指令(Encrypt指令)后对其进行解析,根据解析结果中的应用ID、容器ID、第一会话密钥ID获取对应的第一会话密钥和第一算法标识,根据与第一算法标识对应的算法使用获取的第一会话密钥对预设数据进行加密得到预设数据密文并返回给装置;装置获取第一智能密钥设备输出的预设数据密文,如第一智能密钥设备未输出数据,则测试中止,执行步骤306;

例如,在本实施例中,Encrypt指令为:80A6 00 00 000016 0001 0001 0001 11223344112233441122334411223344;预设数据密文为:C4B7CFD3EB6BF8C44325F76EE2D216A7;

在本实施例中,步骤303可以在步骤302之前进行,然后装置将第一会话密钥密文和预设数据密文一起导入第二智能密钥设备中;

步骤304:装置使用第二智能密钥设备对预设数据密文进行解密,如解密成功则得到数据明文,执行步骤305,如解密失败则测试中止,执行步骤306;

具体的,在本实施例中,装置通过向第二智能密钥设备发送第七指令(Decrypt指令),其中该第七指令的数据域包括:应用ID、容器ID、第二会话密钥ID、预设数据密文;第二智能密钥设备接收到第七指令后对其进行解析,根据解析结果中的应用ID、容器ID、第二会话密钥ID获取对应的第一会话密钥,使用获取的第一会话密钥对解析结果中的额预设数据密文进行解密,如解密成功则得到数据明文并返回给装置,如解密失败则测试中止,执行步骤306;

例如,在本实施例中,Decrypt指令为:80AE 00 00 000016 0001 0001 0001C4B7CFD3EB6BF8C44325F76EE2D216A7;预设数据明文为:11223344112233441122334411223344;

步骤305:装置判断预设数据和数据明文是否一致,是则测试通过,否则测试未通过,执行步骤306;

步骤306:装置销毁第一智能密钥设备和第二智能密钥设备中的第一会话密钥,结束。

具体的,在本实施例中,装置通过分别向第一智能密钥设备和第二智能密钥设备发送第四指令(即DestroySessionKey指令),第四指令(即DestroySessionKey指令)的数据域包括应用ID、容器ID、第一会话密钥ID(或第二会话密钥标识),第一智能密钥设备接收到第四指令对其进行解析,根据解析得到的应用ID、容器ID、第一会话密钥ID获取对应的第一会话密钥并将其销毁;第二智能密钥设备接收到第四指令(即DestroySessionKey指令)对其进行解析,根据解析得到的应用ID、容器ID、第二会话密钥ID获取对应的第一会话密钥并将其销毁。

实施例四

本发明实施例四提供一种对智能密钥设备进行测试的装置,本实施例的装置设置于终端上,被测试智能密钥设备与终端连接,连接方式包括但不限于USB、蓝牙等。如图4所示,该装置包括:

第一导出模块400,用于根据预设参数从被测试智能密钥设备导出第一公钥;

具体的,在本实施例中,第一导出模块400具体用于根据预设的应用ID、预设的容器ID、第一公钥长度生成第一指令,并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第一指令后对其进行解析,根据解析结果中的应用ID、容器ID打开指定应用中的指定容器,根据第一公钥的密钥位长度从该容器中获取第一公钥并发送第一导出模块400,第一导出模块400接收被测试智能密钥设备返回的第一公钥。

第一加密模块401,用于使用第一导出模块400得到的第一公钥对预设的第一会话密钥进行加密得到第一会话密钥密文;

具体的,在本实施例中,第一加密模块401具体用于将第一公钥和预设的第一会话密钥作为参数值调用第一函数,如加密成功则第一函数返回第一会话密钥密文,如加密失败则第一函数返回错误值。

导入模块402,用于根据预设参数将第一加密模块401得到的第一会话密钥密文导入被测试智能密钥设备中,并接收被测试智能密钥设备返回的第一会话密钥ID;

在本实施例中,导入模块402具体用于根据预设的应用ID、预设的容器ID、预设的第一算法标识、第一会话密钥密文长度、第一会话密钥密文生成第二指令,并将其发送给被测试智能密钥设备;被测试智能密钥设备在接收到第二指令后对其进行解析,根据解析结果中的第一会话密钥密文长度从第二指令的数据域中解析出第一会话密钥密文,再根据应用ID、容器ID打开对应的应用和容器,使用对应的应用和容器中的第一私钥对解析得到的第一会话密钥密文进行解密,如解密成功则根据应用ID、容器ID将解密得到的第一会话密钥保存到相应位置并为其分配对应的第一会话密钥ID,被测试智能密钥设备给导入模块402返回对应的第一会话密钥ID,如导入模块402接收到被测试智能密钥设备返回的第一会话密钥ID则触发第二导出模块403,否则导入密钥失败。

第二导出模块403,用于使用第二公钥和导入模块402接收到的第一会话密钥ID,从被测试智能密钥设备中导出第二会话密钥密文;

具体的,本实施例中的第二导出模块403具体用于根据预设的应用ID、预设的容器ID、第一会话密钥ID、第二密钥对的密钥位长度、第二公钥生成第三指令,并将其发送给被测试智能密钥设备;被测试智能密钥设备在接收到第三指令后对其进行解析,根据解析结果中的第二密钥对的密钥位长度从解析结果中获取第二公钥,根据应用ID、容器ID、第一会话密钥ID获取对应的内部保存的第一会话密钥,使用第二公钥对第一会话密钥进行加密得到第二会话密钥密文,并将第二会话密钥密文返回给第二导出模块403,第二导出模块403接收被测试智能密钥设备返回的第二会话密钥密文。

解密比对模块404,用于使用第二私钥对第二导出模块403导出的第二会话密钥密文进行解密,将解密结果与第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,结束。

具体的,在本实施例中,解密比对模块404具体用于将第二会话密钥密文发给辅助智能密钥设备解密,如接收到辅助智能密钥设备返回的解密结果则将解密结果与第一会话密钥进行比对,如二者一致则测试通过,否则测试不通过,如未接收到辅助智能密钥设备返回的解密结果,则测试不通过。

本实施例的装置还包括导出模块,用于将第二公钥从已测试通过的辅助智能密钥设备中导出。

在本实施例中,该装置还包括销毁模块,用于在测试中止或测试不通过之后利用第一会话密钥ID销毁被测试智能密钥设备中的第一会话密钥。销毁模块具体用于根据预设的应用ID、预设的容器ID、第一会话密钥ID生成第四指令并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第四指令后对其进行解析,根据解析结果中的应用ID、容器ID、第一会话密钥ID获取对应的第一会话密钥并将其销毁。

实施例五

本发明实施例五提供一种对智能密钥设备进行测试的装置,本实施例的装置设置于终端上,被测试智能密钥设备与终端连接,连接方式包括但不限于USB、蓝牙等。如图5所示,该装置包括:

第一导出模块501,用于将第三公钥发给被测试智能密钥设备,控制被测试智能密钥设备中生成并导出第三会话密钥密文并获取第三会话密钥ID;

具体的,在本实施例中,第一导出模块501具体用于根据预设的应用ID、预设的容器ID、预设的第二算法标识、第三密钥对的密钥位长度、第三公钥生成第五指令并将其发送给被测试智能密钥设备;被测试智能密钥设备对第五指令进行解析,根据解析结果中的第三密钥对的密钥位长度从数据域中获取对应的第三公钥,根据解析结果中的应用ID、容器ID打开指定的应用和容器,在指定的应用和容器中生成16字节的第三会话密钥,使用第三公钥对第三会话密钥进行加密得到第三会话密钥密文,并将第三会话密钥密文和为其分配的第二会话密钥ID输出,第一导出模块501获取被测试智能密钥设备输出的第三会话密钥密文和第三会话密钥ID。

第一加密模块502,用于根据第三会话密钥ID,控制被测试智能密钥设备对预设数据进行加密,获取被测试智能密钥设备输出的预设数据密文;

具体的,在本实施例中,第一加密模块502具体用于根据预设的应用ID、预设的容器ID、第三会话密钥ID、预设数据生成第六指令并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第六指令(Encrypt指令)后对其进行解析,根据解析结果中的应用ID、容器ID、第三会话密钥ID获取对应的第三会话密钥和第二会话密钥算法标识,根据与第二会话密钥算法标识对应的算法使用获取的第三会话密钥对预设数据进行加密得到预设数据密文并返回;第一加密模块502获取被测试智能密钥设备输出的预设数据密文。

第一解密模块503,用于使用第三私钥对第一导出模块501得到的第三会话密钥密文进行解密;

在本实施例中,第一解密模块503具体用于将第三会话密钥密文发送给辅助智能密钥设备进行解密,并获取辅助智能密钥设备输出的解密结果。

第二解密模块504,用于使用第一解密模块503得到的解密结果对第一加密模块502获取的预设数据密文进行解密,得到数据明文;

在本实施例中,第二解密模块504具体通过将解密结果和预设数据密文作为参数调用第四函数(即Decrypt函数)实现对预设数据密文进行解密,如解密成功则第四函数返回数据明文,如解密失败则第四函数返回错误值;使用的第三私钥与第三公钥对应。

第一判断模块505,用于判断预设数据和数据明文是否一致,是则测试通过,否则测试不通过。

本实施例的装置还包括第二导出模块,用于将第三公钥从已测试通过的辅助智能密钥设备中导出。

在本实施例中,该装置还包括销毁模块,用于在测试中止或测试不通过之后利用第三会话密钥ID销毁被测试智能密钥设备中的第三会话密钥。销毁模块具体用于根据预设的应用ID、预设的容器ID、第三会话密钥ID生成第四指令并将其发送给被测试智能密钥设备,被测试智能密钥设备接收到第三指令后对其进行解析,根据解析结果中的应用ID、容器ID、第二会话密钥ID获取对应的第二会话密钥并将其销毁。

本发明技术方案能够准确、高效地判定智能密钥设备是否具备会话密钥协商功能并且可以互操作,解决了该功能测试的问题。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1