CN108199834A - 一种智能密钥设备工作的方法及装置 - Google Patents
一种智能密钥设备工作的方法及装置 Download PDFInfo
- Publication number
- CN108199834A CN108199834A CN201810037950.XA CN201810037950A CN108199834A CN 108199834 A CN108199834 A CN 108199834A CN 201810037950 A CN201810037950 A CN 201810037950A CN 108199834 A CN108199834 A CN 108199834A
- Authority
- CN
- China
- Prior art keywords
- key
- file
- upper layer
- module
- layer application
- 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.)
- Granted
Links
Classifications
-
- 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
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种智能密钥设备的工作方法及装置,涉及计算机领域。方法包括:当接收到上层应用发送的创建密钥文件指令时,创建密钥文件,将所述创建密钥文件指令中携带的密钥标识设置为所述密钥文件的文件名,并将所述密钥标识对应的位置标识保存至所述密钥检索表中;当接收到上层应用发送的生成密钥对指令时,根据所述位置标识找到对应的密钥文件,判断密钥文件无密钥对时生成密钥对并保存私钥;当接收到上层应用发送的签名指令时,调用所述私钥文件中的私钥对所述签名指令中携带的签名数据进行签名,得到签名结果,向上层应用返回所述签名结果;本发明中的技术方案,逻辑结构简单,操作简便,存储开销较小,提升用户体验。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种智能密钥设备工作的方法及装置。
背景技术
PKI(英文全称Public Key Infrastructure,公钥基础设施)是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范,是为支持公开密钥管理并能支持认证、加密、完整性和可追究性服务的基础设施。
PKCS(The Public-Key Cryptography Standards)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。其中,PKCS#15是密码令牌信息语法标准。PKCS#15通过定义令牌上存储的密码对象的通用格式来增进密码令牌的互操作性。如果PKCS#15要支持加密服务提供程序或者软件密钥存储提供程序时,需要自己管理容器名以及容器名和密钥之间的对应关系,对象存储的属性信息太多,操作繁琐。
现有技术中,在一些容量较小的智能密钥设备上无法实现PKI功能,并且在使用智能卡登录时必须安装应用程序才能使用,逻辑结构复杂,存储开销过大,用户体验差。
发明内容
本发明的目的是为了解决现有技术中存在的问题,提供了一种智能密钥设备工作的方法及装置。
本发明采用的技术方案是:
本发明提供了一种智能密钥设备工作的方法,包括:
当接收到上层应用发送的创建密钥文件指令时,执行步骤S1;当接收到上层应用发送的生成密钥对指令时,执行步骤S2;当接收到上层应用发送的签名管理安全环境指令时,执行步骤S3;当接收到上层应用发送的签名指令时,执行步骤S4;
步骤S1、智能密钥设备判断是否能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识,是则报错结束;否则,创建密钥文件,将创建密钥文件指令中携带的密钥标识设置为密钥文件的文件名,并将密钥标识对应的位置标识保存至密钥检索表中,向上层应用返回创建结果;
步骤S2、智能密钥设备判断是否能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识,否则报错结束;是则根据位置标识找到对应的密钥文件,判断密钥文件中是否已存有密钥对,是则报错结束;否则生成密钥对并保存私钥至密钥文件,并向上层应用返回公钥;
步骤S3、智能密钥设备判断是否能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识,是则根据位置标识找到对应的密钥文件,获取密钥文件中的私钥,将私钥保存至私钥文件中;否则报错结束;
步骤S4、智能密钥设备调用私钥文件中的私钥对签名指令中携带的待签名数据进行签名,得到签名结果,向上层应用返回签名结果;否则报错结束。
本发明还提供了一种智能密钥设备,包括:
接收模块,用于接收上层应用发送的指令;
第一判断模块,用于当接收模块接收到上层应用发送的创建密钥文件指令时,判断是否能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识;
报错模块,用于当第一判断模块判断能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
创建模块,用于当第一判断模块判断不能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,创建密钥文件;
第一设置模块,用于将接收模块接收到的上层应用发送的创建密钥文件指令中携带的密钥标识设置为创建模块创建的密钥文件的文件名,并将密钥标识对应的位置标识保存至密钥检索表中;
返回模块,用于向上层应用返回创建结果;
第二判断模块,用于当接收模块接收到上层应用发送的生成密钥对指令时,判断是否能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识;
报错模块,还用于当第二判断模块判断不能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
第一寻找模块,用于当第二判断模块判断能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,根据位置标识找到对应的密钥文件;
第三判断模块,用于判断第一寻找模块找到的密钥文件中是否已存有密钥对;
报错模块,还用于当第三判断模块判断第一寻找模块找到的密钥文件中已存有密钥对,报错结束;
生成模块,用于当第三判断模块判断第一寻找模块找到的密钥文件中没有存有密钥对时,生成密钥对并保存私钥至密钥文件;
返回模块,还用于向上层应用返回公钥;
第四判断模块,用于当接收模块接收到上层应用发送的签名管理安全环境指令时,判断是否能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识;
第二寻找模块,用于当第四判断模块判断能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,根据位置标识找到对应的密钥文件;
第一获取模块,用于获取第二寻找模块寻找的密钥文件中的私钥;
第二设置模块,用于将第一获取模块获取的私钥保存至私钥文件中;
报错模块,还用于当第四判断模块判断不能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
签名模块,用于当接收模块接收到上层应用发送的签名指令时,调用私钥文件中的私钥对签名指令中携带的待签名数据进行签名,得到签名结果;
返回模块,还用于向上层应用的返回签名结果。
本发明取得的有益效果是:采用本发明的技术方法,能够在一些容量较小的智能密钥设备上实现PKI功能且逻辑结构简单,操作简便,存储开销较小,提升用户体验。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一中提供的一种智能密钥设备工作的方法的流程图;
图2为本发明实施例二中提供的一种智能密钥设备工作的方法的流程图;
图3为本发明实施例三中提供的一种智能密钥设备工作的方法中生成密钥对的流程图;
图4为本发明实施例四提供的一种智能密钥设备工作的方法中签名的流程图;
图5为本发明实施例五提供的一种智能密钥设备的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供一种智能密钥设备的工作方法,如图1所示,包括:
智能密钥设备等待接收指令,当接收到上层应用发送的创建密钥文件指令时,执行步骤S1;当接收到上层应用发送的生成密钥对指令时,执行步骤S2;当接收到上层应用发送的签名管理安全环境指令时,执行步骤S3;当接收到上层应用发送的签名指令时,执行步骤S4;
步骤S1、智能密钥设备判断是否能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识,是则报错结束;否则,创建密钥文件,将创建密钥文件指令中携带的密钥标识设置为密钥文件的文件名,并将密钥标识对应的位置标识保存至密钥检索表中,向上层应用返回创建结果;
步骤S2、智能密钥设备判断是否能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识,否则报错结束;是则根据位置标识找到对应的密钥文件,判断密钥文件中是否已存有密钥对,是则报错结束;否则生成密钥对并保存私钥至密钥文件,并向上层应用返回公钥;
步骤S3、智能密钥设备判断是否能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识,是则根据位置标识找到对应的密钥文件,获取密钥文件中的私钥,将私钥保存至私钥文件中;否则报错结束;
步骤S4、智能密钥设备调用私钥文件中的私钥对签名指令中携带的待签名数据进行签名,得到签名结果,向上层应用返回签名结果。
在本实施例中,步骤S1中创建密钥文件指令中还包括:创建密钥文件的控制参数;
相应地,步骤S1中,创建密钥文件,具体为:根据创建密钥文件的控制参数创建密钥文件。
优选地,根据创建密钥文件的控制参数创建密钥文件,具体包括:
步骤A1:从创建密钥文件的控制参数中提取密钥文件的安全属性设置;
步骤A2:从创建密钥文件的控制参数中提取密钥文件的控制引用模板参数。
在本实施例中,步骤S2中生成密钥对之前还包括:智能密钥设备从密钥文件的控制参数中获取算法类型,判断算法类型是否与生成密钥对指令中携带的算法类型相同,是则生成密钥对;否则报错结束。
在本实施例中,步骤S3中还包括:智能密钥设备设置安全环境,制定安全算法。
进一步地,步骤S3中,将私钥保存至私钥文件后,还包括:将签名状态值置为预设的可签名状态值;
更进一步地步骤S4之前还包括:智能密钥设备判断签名状态值是否为预设的可签名状态值,是则执行步骤S4;否则报错结束;
再进一步地,步骤S4中向上层应用返回签名结果之后,还包括:将签名状态值置为预设的不可签名状态值。
在本实施例中,当接收到上层应用发送的获取密钥列表文件指令时,智能密钥设备根据获取密钥列表文件指令中携带的密钥列表文件ID获取密钥列表文件,并向上层应用返回密钥列表文件。
上层应用接收到智能密钥设备返回的密钥列表文件后,解析密钥列表文件得到密钥列表文件中已存在的密钥标识,并分配新的密钥标识给智能密钥设备,构造创建密钥文件的参数发送至智能密钥设备。
进一步地,步骤S1具体包括:智能密钥设备判断是否能根据创建密钥文件指令中携带的新分配的密钥标识在密钥检索表中找到对应的位置标识,是则报错结束;否则,根据创建密钥文件的参数创建密钥文件,并将密钥标识设置为密钥文件的文件名,并将密钥标识对应的位置标识保存至密钥检索表中。
在本实施例中,当接收到上层应用发送的获取容器列表文件指令时,智能密钥设备根据获取容器列表文件指令中携带的容器列表文件ID获取容器列表文件,并向上层应用返回容器列表文件;
当接收到上层应用发送的创建密钥记录指令时,智能密钥设备向密钥列表文件中增加包含密钥标识的密钥记录,并向上层应用返回创建密钥记录结果;
当接收到上层应用发送的获取证书文件指令时,智能密钥设备获取证书文件,并向上层应用返回证书文件。
当上层应用接收到智能密钥设备返回的容器列表文件时,在容器列表文件中创建新的容器并确定新创建的容器的编号,向智能密钥设备发送新创建的容器的编号。
具体地,当接收到上层应用发送的创建密钥记录指令时,智能密钥设备向密钥列表文件中增加包含密钥标识的密钥记录,具体包括:当接收到上层应用发送的增创建密钥记录指令时,智能密钥设备向密钥列表文件增加与新创建的容器有相同编号的密钥记录,密钥记录包含密钥标识。
具体地,上层应用接收到智能密钥设备发来的证书文件,待用户从证书文件中选择证书,上层应用确定所选证书对应的容器在容器列表文件中的编号后,在密钥列表文件中找到相同编号的密钥记录,从密钥记录中获取密钥标识。
优选地,当接收到上层应用发送的写数据指令时,智能密钥设备根据指令获取指令中携带的数据写入新创建的容器中,并向上层应用返回写数据结果。
在本实施例中,还包括:当接收到上层应用发送的获取主表文件指令时,智能密钥设备根据指令中携带的主表文件ID获取并解析主表文件,并向上层应用返回主表文件。
在本实施例中,还包括:上层应用接收到智能密钥设备发来的主表文件,从主表文件中获取证书文件的位置标识并根据证书文件的位置标识判断是否存在证书文件,是则向智能密钥设备发送获取证书数据指令,否则结束。
具体地,当接收到上层应用发送的获取证书数据指令时,智能密钥设备找到证书数据,向上层应用返回证书数据。
优选地,方法还包括:当接收到上层应用发送的选择应用指令时,智能密钥设备根据选择应用指令中携带的应用目录文件的ID选择应用目录文件,获取文件控制信息,并向上层应用返回文件控制信息。
优选地,方法还包括:当接收到上层应用发送的获取缓存文件指令时,智能密钥设备读取缓存文件并将缓存文件的内容返回至上层应用。
优选地,方法还包括:当接收到上层应用发送的更新缓存文件指令时,智能密钥设备更新缓存文件的内容并将更新结果返回至上层应用。
实施例二
本实施例以公开了一种智能密钥设备工作的方法,如图2所示,所述方法具体包括:
步骤101、智能密钥设备接收到上层应用发送的选择应用指令,获取选择应用指令中携带的应用目录文件的标识符;
具体地,选择应用指令可以具体为:00a4040009a00000039742544659。其中包括选择头:00a40400和应用编号:a00000039742544659;
步骤102、智能密钥设备根据应用目录文件的标识符选择应用目录文件,获取文件控制信息,并返回至上层应用;
具体地,当智能密钥设备接收到上层应用发送的选择应用指令后,设备里的java虚拟机根据指令中的AID(Application Identifie,应用标识符)去匹配设备中的各个应用程序,然后把指令发给匹配成功的应用程序,被选择的应用将本应用中的文件控制信息返回给上层应用。
优选地,设备可具体将获取到的各数据按照标签-数据长度-数据的格式(以下简称TLV格式)封装,将封装得到的数据顺序拼接,将拼接得到的数据按照TLV格式封装后返回给上层应用,同时返回给上层应用的还有成功状态码9000;
步骤103、智能密钥设备接收到上层应用发送的获取密钥列表文件指令,获取密钥列表文件指令中携带密钥列表文件的标识符;
具体地,在本实施例中,上层应用向设备下发获取密钥列表指令可以具体为:00cba000045c02df20。
步骤104、智能密钥设备根据密钥列表文件的标识符获取密钥列表文件,并向上层应用返回密钥列表文件内容;
具体地,在文件标识为A000的文件中,通过对象标识DF20,找到密钥列表。
优选地,在本实施例中,智能密钥设备向上层应用返回密钥列表文件内容后,智能密钥设备接收到上层应用下发的更新缓存文件指令后,更新缓存文件内容,并向上层应用返回更新缓存文件结果;
具体地,上层应用通过获取智能密钥设备中的变量数据,上层应用与自身存放的变量数据进行比对,如果变量数据不一致,上层应用向设备下发更新缓存文件指令时,设备会更新缓存文件的变量与上层应用的变量一致。
步骤105、待上层应用解析密钥列表文件后,智能密钥设备接收到上层应用发送的创建密钥文件指令和新分配的密钥标识,根据新分配的密钥标识创建密钥文件;
具体地,上层应用解析密钥列表文件得到密钥列表文件中已存在的密钥标识,目的在于上层应用在分配新的密钥标识的时候不会重复使用已存在的密钥标识。
在本实施例中,上层应用除了向设备发送密钥标识外,还包括:创建密钥文件用到的控制参数,具体包括:文件描述符、文件标识符、文件生命周期控制符、安全属性、控件引用参数(即文件对应的算法和文件标识符)等。
具体地,根据新分配的密钥标识创建密钥文件,具体包括:
步骤A-1、设备提取新的密钥标识;
优选地,新的密钥标识为:b081。
步骤A-2、设备根据密钥标识判断文件是否已经被创建,如果已被创建,则结束;如果没被创建,执行步骤A-3;
具体地,在本实施例中,通过查找设备中文件系统里已创建的文件中是否有相匹配的密钥标识判断文件是否被创建。
步骤A-3、提取密钥文件的安全属性设置;
具体地,密钥文件的安全属性设置为:8f10101000。
步骤A-4、提取密钥文件的控制引用模板参数;
具体地,密钥文件的控制引用模板参数为:b809800106830181950140b809800186830181950140b809800146830181950140b609800116830181950140b609800156830181950140
步骤A-5、创建密钥文件并设置相关属性。
在本实施例中,设置的属性包括:8f10101000(访问控件)。
步骤106、智能密钥设备接收到上层应用发送的获取证书文件指令,获取指令中携带的证书文件的标识符;
具体地,在本实施例中,上层应用向设备下发获取证书文件指令可以具体为:00cba010045c02df24。
在文件标识为A010的文件中,通过对象标识DF24,找到对应的证书的数据。
步骤107、智能密钥设备根据证书文件的标识符获取证书文件,并向上层应用返回证书文件内容;
步骤108、智能密钥设备接收到上层应用发送的获取容器列表文件指令,获取指令中携带的容器列表文件的标识符;
具体地,在本实施例中,上层应用向设备下发获取容器列表指令可以具体为:00cba010045c02df23。
具体地,在文件标识为A010的文件中,通过对象标识DF23,找到容器列表。
步骤109、智能密钥设备根据容器列表文件的标识符获取容器列表文件,并向上层应用返回容器列表文件内容;
步骤110、待上层应用接收到用户选择的证书并确定所选证书对应的容器在容器列表文件中的编号,根据编号在密钥列表文件中找到密钥标识后,智能密钥设备接收到上层应用发送的密钥标识;
具体地,在本实施例中,待上层应用接收到用户选择的证书后确定所选证书的编号,根据所选证书的编号确定所选证书对应的容器在容器列表文件中的编号,根据容器在容器列表文件中的编号在密钥列表文件中找到相同编号的密钥记录,从密钥记录中找到对应的密钥标识。
具体地,证书的名称里面包含了证书的编号。
在本实施例中,执行步骤110之前还包括:上层应用向设备下发验证PIN码指令;设备接收验证PIN码指令,对验证PIN码指令中的PIN码进行验证;设备向上层应用返回PIN码验证结果;上层应用接收并解析PIN码验证结果,若为验证通过则执行步骤111,若为验证不通过则结束;
步骤111、智能密钥设备根据密钥标识从密钥列表文件中获取与密钥标识对应的密钥。
在本实施例中,智能密钥设备接收到上层应用下发的包含待签名数据的签名指令后,使用与密钥标识对应的密钥对签名指令中的待签名数据进行签名,得到签名值。
步骤112、智能密钥设备接收到上层应用发送的签名指令,获取指令中携带的待签名数据,进行签名运算得到签名结果,并向上层应用返回签名结果。
实施例三
本实施例中公开了一种智能密钥设备的工作方法,应用于包含上层应用和智能密钥设备的系统,上层应用与智能密钥设备(以下简称设备)之间直接进行通信或通过其他设备或媒介等进行通信,本发明不做具体限定。方法具体包括:
生成密钥对流程,如图3所示,包括:
步骤201、上层应用向设备下发选择应用指令;
本实施例中,上层应用将选择应用指令发送至设备,设备接收到指令后,设备里的java虚拟机根据指令中的AID(Application Identifie,应用标识符)去匹配设备中的各个应用程序,然后把指令发给匹配成功的应用程序。
具体地,选择应用指令可以具体为:00a4040009a00000039742544659。其中包括选择头:00a40400和应用编号:a00000039742544659;
需要说明的是,在本实施例中,设备上的应用只能同时被选中一个,不存在多种应用同时被选中的情况。
步骤202、设备接收到选择应用指令,获取应用的文件控制信息;
本实施例中,设备里的java虚拟机根据指令中的AID(Application Identifie,应用标识符)匹配设备中的应用程序成功后,被选择的应用将本应用中的文件控制信息返回给上层应用。
文件控制信息包括:应用标识符、应用标签、统一资源定位符以及可自由支配的数据对象。
步骤203、设备向上层应用返回文件控制信息;
本实施例中,设备可具体将步骤202中获取到的各数据按照标签-数据长度-数据的格式(以下简称TLV格式)封装,将封装得到的数据顺序拼接,将拼接得到的数据按照TLV格式封装后返回给上层应用,同时返回给上层应用的还有成功状态码9000;优选地,整体TLV对应的tag为61,应用标识符对应的tag为4f,应用标签对应的tag为50,统一资源定位符对应的tag为5f50,可自由支配的数据对象对应的tag为73,例如,设备向上层应用返回文件控制信息如下数据:61124f0ba00000039742544659020173034001c0。
步骤204、上层应用向设备下发获取缓存文件指令;
具体地,在本实施例中,上层应用向设备下发获取缓存文件指令可以具体为:00cba010045c02df22。
步骤205、设备接收获取缓存文件指令,读取缓存文件的内容;
在本实施例中,缓存文件的结构如下所示:
BYTE bVersion;//版本
BYTE bPinsFreshness;//Pin的改变
WORD wContainersFreshness;//容器的改变
WORD wFilesFreshness;//文件的改变
在本实施例中,在执行步骤205之前设备创建了一个缓存文件。
步骤206、设备向上层应用返回缓存文件的内容;
步骤207、上层应用判断设备上的缓存文件内容是否与上层应用保存的缓存内容一致,如果一致执行步骤214,否则执行步骤208;
具体地,当设备首次被上层应用识别的时候,第一次获取缓存文件。当上层应用判断设备上的缓存文件内容与上层应用保存的缓存内容不一致时,上层应用需要获取设备上的容器列表文件和密钥列表文件进行更新缓存文件。
在本实施例中,当上层应用判断设备上的缓存文件内容与上层应用保存的缓存内容一致时,还包括:
步骤A1、上层应用向设备下发验证PIN码指令;
本实施例中,上层应用向设备下发验证PIN码指令可以具体为:00200080+PIN码的长度+PIN码,其中,PIN码为用户输入的,即步骤204之前还包括接收用户输入的PIN码。
步骤A2、设备接收验证PIN码指令,对验证PIN码指令中的PIN码进行验证;
本实施例中,对验证PIN码指令中的PIN码进行验证可以具体包括:
步骤1-1、将验证PIN码指令保存到缓存区中;
步骤1-2、判断缓存区中缓存的验证PIN码指令中的PIN码与设备的存储区域中预先存储的PIN码是否一致,若一致则PIN码验证通过,若不一致则PIN码验证不通过。
本实施例中,设备可通过调用底层API接口函数OwnerPIN.check(byte[]pin,short offset,byte length)进行PIN码的验证,其中pin为验证PIN码指令的缓存区地址,offset为PIN码在验证PIN码指令的缓存区中的偏移,length为PIN码的长度。
步骤A3、设备向上层应用返回PIN码验证结果;
本实施例中,步骤206可以具体为:若PIN码验证通过,则设备向上层应用返回9000;若PIN码验证不通过,则设备向上层应用返回6984。
更进一步地,本实施例提供的方法中还可以设置PIN码重试机制,即设备设定和维护重试次数,并且当PIN码验证不通过时,将重试次数信息一并返回给上层应用,优选地,可以在PIN码验证不通过时向上层应用返回63cx,x表示剩余重试次数,上层应用接收到的PIN码验证结果为验证不通过,则根据剩余重试次数决定结束还是返回重新进行PIN码的验证。
步骤A4、上层应用接收并解析PIN码验证结果,若验证成功则执行步骤208,若验证失败则结束;
本实施例中,步骤A4可以具体为:上层应用接收PIN码验证结果,若PIN码验证结果为9000则PIN码验证通过,若PIN码验证结果为6984则PIN码验证不通过。
步骤208、上层应用向设备下发获取容器列表文件指令;
步骤209、设备接收到获取容器列表文件指令,读取容器列表文件的内容;
步骤210、设备向上层应用返回容器列表文件内容;
步骤211、上层应用向设备下发获取密钥列表文件指令;
步骤212、设备接收到获取密钥列表文件指令,读取密钥列表文件列表文件的内容;
步骤213、设备向上层应用返回密钥列表文件内容;
步骤214、上层应用下发更新缓存文件指令;
步骤215、设备接收到更新缓存文件指令后,更新缓存文件内容;
每当创建容器、创建文件或者删除容器、删除文件时,设备接收到更新缓存文件指令后,直接在缓存文件中添加相关变量;当修改密码或者缓存文件的结构参数发生变化的时候,上层应用通过获取设备中的变量数据,上层应用与自身存放的变量数据进行比对,如果变量数据不一致,上层应用向设备下发更新缓存文件指令时,设备会更新缓存文件的变量与上层应用的变量一致。
步骤216、设备向上层应用返回更新缓存文件结果;
步骤217、上层应用接收更新缓存文件结果并判断更新文件是否成功,是则执行步骤218,否则结束;
步骤218、上层应用追加容器名到容器列表文件中并构建容器名对应的数据;
本实施例中,构建容器名对应的数据包括:
WCHARwszGuid[MAX_CONTAINER_NAME_LEN+1];//容器名
BYTE bFlags;//标记位,bit0表示容器名有效,bit1表示容器名是默认的容器,bit2-7保留
BYTE bReserved;//保留未用
WORD wSigKeySizeBits;//签名密钥的大小,以比特为单位
WORD wKeyExchangeKeySizeBits;//交换密钥的大小,以比特为单位
需要说明的是,一个容器中包含一个密钥对和一个证书。
步骤219、上层应用向设备下发写容器名对应的数据指令;
在本实施例中,上层应用向设备下发写容器名对应的数据指令可以具体为:00dba01059df2356740065002d00650033003600620061006300630033002d0031006200330038002d0034003500650036002d0061003800610037002d003000380039006300630037006600300030006200330063000000030000000004
步骤220、设备接收到写容器名对应的数据指令,并将数据保存至容器列表文件;
在本实施例中,容器表文件具体为mscp\cmapfile文件。
步骤221、设备向上层应用返回写数据结果;
本实施例中,步骤221可以具体为:若设备写数据成功,则设备向上层应用返回9000;若设备写数据失败,则设备向上层应用返回6984或者6a84。
其中,设备向上层应用返回6984表示参数传送错误,设备向上层应用返回6a84表示设备存储空间不足。
步骤222、上层应用接收写数据结果并根据写数据结果判断写数据是否成功,是则执行步骤223,否则结束;
具体地,设备向上层应用返回9000时,表明写数据成功,执行步骤223;设备向上层应用返回6984时,表明写数据失败,结束。
步骤223、上层应用向设备下发更新缓存文件指令;
具体地,缓存文件的作用是同步设备和上层应用的数据,当上层应用判断出上层应用和设备的数据不相同时,会向设备下发更新缓存文件指令。具体地指令具体为:00dba0 10 09 df 22 06 00 00 01 00 03 00。
需要说明的是,上层应用在执行步骤223之前,获取过缓存文件的初始状态并记载。
步骤224、设备接收到更新缓存文件指令,更新缓存文件内容;
具体地,设备接收到更新缓存文件指令后,设备通过文件标识找到缓存文件,更新缓存文件的内容。
步骤225、设备向上层应用返回更新缓存文件结果;
本实施例中,步骤225可以具体为:若更新缓存文件成功,则设备向上层应用返回9000;若更新缓存文件失败,则设备向上层应用返回6984。
步骤226、上层应用接收更新结果并根据设备返回的更新结果判断更新文件是否成功,是则执行步骤227,否则结束;
具体地,设备向上层应用返回9000时,表明更新文件成功,执行步骤227;设备向上层应用返回6984时,表明更新文件失败,结束。
步骤227、上层应用解析密钥列表文件,得到密钥列表文件中已存在的密钥标识;
在本实施例中,上层应用得到密钥列表文件中已存在的密钥标识,目的在于上层应用在分配新的密钥标识的时候不会重复使用已存在的密钥标识。
步骤228、上层应用分配一个新的密钥标识,构造密钥文件的控制参数;
在本实施例中,控制参数包括:文件描述符、文件标识符、文件生命周期控制符、安全属性、控件引用参数(即文件对应的算法和文件索引号)等。
优选地,整体TLV对应的tag为62,文件描述符对应的tag为82,EFID对应的tag为83,文件生命周期控制符对应的tag为8A,安全属性对应的tag为8C,认证对应的tag为A4,数字签名对应的tag为B6,保密协议对应的tag为B8。
步骤229、上层应用向设备下发创建密钥文件指令;
具体地,上层应用向设备下发创建密钥文件指令可以具体为:
00e000004962478201188302b0818c058f10101000a537b809800106830181950140b809800186830181950140b809800146830181950140b609800116830181950140b609800156830181950140。
步骤230、设备根据得到的新的密钥标识和控件参数创建密钥文件;
具体地,在本实施例中,根据得到的控件参数创建密钥文件,具体包括:
步骤2-1、设备提取新的密钥标识;
优选地,新的密钥标识为:b081
步骤2-2、设备根据密钥标识判断是否能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识,是则结束;否则执行步骤2-3;
具体地,在本实施例中,通过查找设备中文件系统里已创建的文件中是否有相匹配的文件标识判断文件是否被创建。
步骤2-3、提取密钥文件的安全属性设置;
具体地,密钥文件的安全属性设置为:8f10101000。
步骤2-4、提取密钥文件的控制引用模板参数;
具体地,密钥文件的控制引用模板参数为:b809800106830181950140b809800186830181950140b809800146830181950140b609800116830181950140b609800156830181950140
步骤2-5、创建密钥文件,设置相关属性,并将密钥标识对应的位置标识保存至密钥检索表中。
在本实施例中,设置的属性包括:8f10101000(访问控件)。
步骤231、设备向上层应用返回创建密钥文件结果;
本实施例中,步骤231可以具体为:若创建密钥文件成功,则设备向上层应用返回9000;若创建密钥文件失败,则设备向上层应用返回6984或者6a84。
步骤232、上层应用接收返回创建密钥文件结果并根据设备返回的结果判断创建密钥文件是否成功,如果成功,执行步骤232,否则结束;
具体地,设备向上层应用返回9000时,表明创建密钥文件成功,执行步骤232;设备向上层应用返回6984时,表明创建密钥文件失败,结束。
在本实施例中,当上层应用判断创建密钥文件成功时,上层应用向设备下发更新缓存文件指令;设备接收到更新缓存文件指令,更新缓存文件内容;设备向上层应用返回更新缓存文件结果;上层应用接收更新缓存文件结果并根据设备返回的更新结果判断更新缓存文件是否成功,如果成功,执行步骤232,否则结束。
步骤233、上层应用向设备下发生成签名密钥对指令;
本实施例中,生成密钥对指令可以具体为:0047000008ac06800106830181。
步骤234、设备接收生成签名密钥对指令,生成密钥对并保存签名私钥到密钥文件;
本实施例中,设备通过调用底层API接口函数KeyPair.genKeyPair()生成签名密钥对。
具体地,步骤234具体包括:
步骤234-1、设备接收生成签名密钥对指令,判断是否能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识,否则报错,是则执行步骤234-2;
步骤234-2、根据位置标识找到对应的密钥文件,判断密钥文件中是否已存有密钥对,是则报错;否则执行步骤234-3;
步骤234-3、生成密钥对并保存私钥至密钥文件。
在本实施例中,步骤234-3之前还包括:智能密钥设备从密钥文件的控制参数中获取算法类型,判断算法类型是否与生成密钥对指令中携带的算法类型相同,是则生成密钥对;否则报错结束。
步骤235、设备向上层应用返回签名公钥;
具体地,公钥包括两个参数:N和E,设备将参数N和参数E按照TLV格式拼接后以TLV格式返回给上层应用,同时返回给上层应用的还有成功状态码9000;优选地,整体TLV对应的tag为7f49,参数N对应的tag为81,参数E对应的tag为82;例如设备向上层应用返回签名公钥包括向上层应用返回如下数据:
7f498188818180e30db1a2b082b0c7a80737542bb0a4c9e7399e5b92e5f3aad77da489df004e0bd57b02aefbcd557c67939a93f4379ba7dbf74c9e3abf68a27d83303b0921de56fa6578b20834d5ae60a3a8970c4dd1b7006170d856a6b7448bba214a2313d36ca59099d8d1bc2bd1425b396543688eee30bb7df7f4046044911316d3e1d36ad18203010001
步骤236、上层应用接收公钥值,判断密钥对是否生成成功,是则向设备下发写证书指令;否则结束;
本实施例中,步骤236可以具体为:若生成密钥对成功,则设备向上层应用返回9000;若生成密钥对失败,则设备向上层应用返回6984。
实施例四
本实施例中公开了一种智能密钥设备的工作方法,应用于包含上层应用和智能密钥设备的系统,上层应用与智能密钥设备(以下简称设备)之间签名的流程。如图4所示,包括:
步骤301、上层应用向设备下发选择应用指令;
步骤302、设备接收到选择应用指令,获取应用的文件控制信息;
步骤303、设备向上层应用返回文件控制信息;
步骤304、上层应用向设备下发获取缓存文件指令;
具体地,上层应用向设备下发获取缓存文件指令为:
步骤305、设备接收获取缓存文件指令,读取缓存文件的内容;
步骤306、设备向上层应用返回缓存文件的内容;
步骤307、上层应用判断设备上的缓存文件内容是否与上层应用保存的缓存内容一致,是则执行步骤311,否则执行步骤308;
步骤308、上层应用向设备下发获取主表指令;
具体地,在本实施例中,上层应用向设备下发获取主表指令可以具体为:00cb a000 04 5c 02 df 1f。
步骤309、设备读取并解析主表的内容;
具体地,在本实施例中,主表是以一个文件对象的形式存储在设备中,主表的内容是多个数据项的集合,每个数据项的数据结构如下:
char directory[];//目录名
char filename[];//文件名
intdataObjectIdentifier;//对象标识
int fileIdentifier;//文件标识
步骤310、设备向上层应用返回主表内容;
具体地,在本实施例中,设备获取主表内容后将所有的数据项全部返回至上层应用。
步骤311、上层应用读取主表目录,判断证书文件是否存在,如果存在执行步骤312,否则结束;
在本实施例中,根据文件标识读取主表目录,解析文件中有无证书对象,如果无证书对象,结束。
进一步地,解析文件中有无证书对象,上层应用根据证书的关键字判断证书对象是否存在。
具体地,证书的数据项:
6d 73 63 70 00 00 00 00 00//mscp
6b 78 63 30 30 00 00 00 00//文件名
00 00 24 df//对象标识
00 00 10 a0//文件标识
具体地,在本实施例中,主表数据项的数据结构中的文件名中存在kxc00,表示证书的关键字,如果有此关键字的记录,说明有证书存在;其中,kxc表示交换证书,ksc表示签名证书,00是证书的编号,如果有多个证书,依次为01,02……。
需要说明的是,上层应用读取主表目录时,通过读取证书关键字和证书编号已经解析出设备中存在几个证书。
步骤312、上层应用向设备下发获取证书文件指令;
具体地,在本实施例中,上层应用向设备下发获取证书文件指令可以具体为:00cba010045c02df24。
步骤313、接收到获取证书文件指令,从设备中找到证书文件;
具体地,在文件标识为A010的文件中,通过对象标识DF24,找到对应的证书的数据。
步骤314、设备向上层应用返回证书文件;
具体地,设备向上层应用返回证书文件具体为:
df248204600100e60578da3368627d64d0c4726a01331323131357ecd6f7de0c0c0c8ce7a61af0b2716ab579b47de7656464656530b03014361064e3e29ca4d639f9934e0aa3a41873727eaea19081008a20535a8921af01371b73280bb3308b6bb0b3a3819c38afa1b98191918981b98985a16914906b81c435c820de643e031e88c9aca1c5a945c548fc92d4e2124343590369b8ab3919c5f840a20eb98999397a0589e9a9068df3917dc5c8cac0dcd8cb60d0d8c9d4d8c8704397bbe0cebd6f3faca6876db952ba21e09e9be1b5b44d26fcd3a76f53fd166710f5bfe8fe2df55dbe07cbfe26497d2d99bcf753e2849f2fb4bd3acb97fe55e7b66365b898b28f2f7bfae76feb7f3ee77ffd3ce7c1eb0dbbeeb7b97f6a3f5ac5a656b674f2a3870f0ff1fdddf172e91ab31dcfbec56f12a9da63b9247562ff9b541bd6e78637434c99981919181737313b183431db18f001bd25cbcfc8f89f858599897581810d1ba7361b230b6393b9283b8bbe812e9b2a8ccbd172638260e3dadbe1ed47db799b4f5e756af9725239b6fdd374b76577d999185380d16ad03805112afc2c8d6d068dcd401b382042cc4c4c4c0c0d487c16309f9d8d559b8f9989dd800b2ec10e8c57ce84360fc6546616462d648e2e32470c992389cc6142e6b01ac8823cc9c722c622f2ec837ef5f58ac5ca2985fc65afdfcc7da6c036f9b6813c489945c240ac41a45f6876d5decd5ce7275b1dac9ef733dcfe7dc4964483c6a32015f22c8d7b0d1a7719346e5fd0b86541e3c6b6c6753929890556fafaface7eb6a014a803a4c33dfd74dd3c5d5ddc028d2d9dbd5d4142ce2e01202aa03429273359d5c8c03bb5124806a716956526a71683a490d9cef9796999e9a545892599f9793a2eceb6692520129852ed93538b4a32d33293134b528352cbf293c14a7c328b4bec93128b53edf393b252934b9c73128b8b6d93837c5c8012459949a5204501f9997925068d1bd93880d1c9cacacec8c8d2b8c4a071a141e33c989001535be3442c1e72f474a492eb1d9d11eec7e262b82450a7636949467e516649a5812628e85559940c14600e656682b358d8b8a0c9938b99c5c0149176b958340cd440290aa60589cd02cccbc8dacc413608b21818e82d90814b8830312fe0e3e101e77687b4123da0071ad173396ac1c5dcc4c8c82097c9b7f7d7c10bfee76fec9bb7f9e5be8dd1015e67bbf6ecbca7bce3e5eb7da6c12182b7ff9ec838f7a1bdb2e34fcc8c24cdc3eaf1ed1271f7e62f7aba33e989c00d3d29c91dd2b552f9b798b5352f6c9cf020355ee55143ec5af3f93bd9262574b1684a38a63946365fbda136bbdda2e20817fb810b17c5c4b6b395eebc5b765a45c95ecd4453e9b2fc9ebb93c40f9b7df917beedefe90dddfca193ee4fb97d80e7c5bebf3e3f66beb69de3bb49d8fbaa49fad7c63f2136f21f2afb53330b252e4b4ddb70eac2e4d70d416ba2a59b679c5a345f4032fad2f477a54baafbac535f95bfbcb734edcdf5d97f277af4ac5b9e2bf9cdc2fea5729289bad67bbb64bdcb1e56ab39b3f9da。
步骤315、上层应用向设备下发获取容器列表指令;
具体地,在本实施例中,上层应用向设备下发获取容器列表指令可以具体为:00cba010045c02df23。
步骤316、设备接收到获取容器列表指令,从设备中找到容器列表;
具体地,在文件标识为A010的文件中,通过对象标识DF23,找到容器列表。
步骤317、设备向上层应用返回容器列表;
具体地,设备向上层应用返回容器列表具体为:
df2356740065002d00650033003600620061006300630033002d0031006200330038002d0034003500650036002d0061003800610037002d003000380039006300630037006600300030006200330063000000030000000004
步骤318、上层应用向设备下发获取密钥列表指令;
具体地,在本实施例中,上层应用向设备下发获取密钥列表指令可以具体为:00cba000045c02df20。
步骤319、设备接收到获取密钥列表指令,从设备中找到密钥列表;
具体地,在文件标识为A000的文件中,通过对象标识DF20,找到密钥列表。
步骤320、设备向上层应用返回密钥列表;
具体地,设备向上层应用返回密钥列表具体为:df200d0101000000069a81b0ffff0000。
步骤321、上层应用接收证书文件并解析,向用户显示证书的信息,等待用户选择证书,待用户选择证书后,执行步骤322,如果用户选择退出,则结束;
在本实施例中,上层应用接收证书文件后解析证书,从证书中得到证书有效期,证书的颁发者和使用者。通过有效期判断证书是否过期,颁发者和使用者是用于向用户显示。
步骤322、上层应用根据用户选择的证书得到证书对应的密钥标识,并向设备下发包含密钥标识的签名管理安全环境指令;
在本实施例中,用户选择证书后,证书对应的容器被选择,与此同时,与容器对应的密钥标识被选择,即用户可以通过选择证书得到与证书对应的密钥标识。
具体地,上层应用下发签名管理安全环境指令可以具体为:
00 22 41 b6 06 80 01 56 84 01 81。
在本实施例中,管理安全环境(Manage Security Environment,简称MSE)是准备进行通用认证和执行安全操作的一系列的操作命令。
在本实施例中,执行步骤322之前还包括:上层应用向设备下发验证PIN码指令;设备接收验证PIN码指令,对验证PIN码指令中的PIN码进行验证;设备向上层应用返回PIN码验证结果;上层应用接收并解析PIN码验证结果,若为验证通过则执行步骤322,若为验证不通过则结束;
本实施例中,验证PIN码指令可以具体为:00 20 00 81+PIN码的长度+PIN码,其中,PIN码为用户输入的,即步骤207之前还包括接收用户输入的PIN码。
本实施例中,对验证PIN码指令中的PIN码进行验证可以具体包括:002000800431323334。
设备接收验证PIN码指令,对验证PIN码指令中的PIN码进行验证,具体包括:
步骤4-1、将验证PIN码指令保存到缓存区中;
步骤4-2、判断缓存区中缓存的验证PIN码指令中的PIN码与设备的存储区域中预先存储的PIN码是否一致,若一致则PIN码验证通过,若不一致则PIN码验证不通过。
本实施例中,设备可通过调用底层API接口函数OwnerPIN.check(byte[]pin,short offset,byte length)进行PIN码的验证,其中pin为验证PIN码指令的缓存区地址,offset为PIN码在验证PIN码指令的缓存区中的偏移,length为PIN码的长度。
本实施例中,设备向上层应用返回PIN码验证结果可以具体为:若PIN码验证通过,则设备向上层应用返回90 00;若PIN码验证未通过,则设备向上层应用返回6984;
更进一步地,本实施例提供的方法中还可以设置PIN码重试机制,即设备设定和维护重试次数,并且当PIN码验证不通过时,将重试次数信息一并返回给上层应用,优选地,可以在PIN码验证不通过时向上层应用返回63cx,x表示剩余重试次数,上层应用接收到的PIN码验证结果为验证不通过,则根据剩余重试次数决定结束还是返回重新进行PIN码的验证。
步骤323、设备接收到管理安全环境指令,设置安全环境,指定签名算法;
在本实施例中,步骤323包括:
步骤323-1、设备接收到管理安全环境指令,判断是否能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识,是则执行步骤323-2;否则报错结束;
步骤323-2、根据位置标识找到对应的密钥文件,获取密钥文件中的私钥,将私钥保存至私钥文件中并将签名状态值置为预设的可签名状态值,设置安全环境,指定签名算法;
在本实施例中,还包括:根据私钥文件中的私钥构建私钥对象。
具体地,设置安全环境包括:指定签名的非对称算法为RSA(56代表RSA,在标准规范中定义),指定密钥标识的索引编号为81。
步骤324、设备向上层应用返回设置结果;
本实施例中,步骤324可以具体为:若设置成功,则设备向上层应用返回9000;若设置不成功,则设备向上层应用返回6984。
在本实施例中,设置不成功的原因包括:指定的签名算法设备不支持、密钥没找到等。
步骤325、上层应用接收设置结果并根据设置结果判断设置是否成功,是则执行步骤326,如果未成功结束;
步骤326、封装待签名数据;
具体地,在本实施例中,以word签名为例说明封装待签名数据:
步骤5-1:用sha1算法对整个word内容进行hash计算,得到hash值:
d7 99 8d a8 97 a0 9b 59 47 b0 bf 61 c5 6b c2 a6 f8 92 33 fa。
步骤5-2:按照PKCS#1标准在hash之前加上sha1的对象标识,如下:
30 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14 d7
99 8d a8 97 a0 9b 59 47 b0 bf 61 c5 6b c2 a6 f8
92 33 fa
步骤327、上层应用向设备下发包含待签名数据的签名指令;
具体地,上层应用向设备下发包含待签名数据的签名指令具体可以为:002a9e9a233021300906052b0e03021a05000414d7998da897a09b5947b0bf61c56bc2a6f89233fa。
步骤328、设备接收签名指令,根据管理安全环境时设置的签名算法和密钥标识对待签名数据签名,得到签名值;
本实施例中,根据管理安全环境时设置的签名算法对待签名数据签名,得到签名值可以具体包括:
步骤6-1、将签名指令写入缓存区,设备判断签名状态值是否为预设的可签名状态值,是则执行步骤6-2;否则报错结束;
步骤6-2、获取私钥文件中的私钥;
在本实施例中,通过调用私钥对象获取私钥文件中的私钥。
具体地,步骤6-2可通过调用底层API接口函数Cipher.init(Key the Key,bytethe Mode)实现,其中,the Key为用于签名的密钥,the Mode为密钥使用方式,具体为Cipher.MODE_ENCRYPT;
步骤6-3、使用私钥对签名指令中的待签名数据进行签名,得到签名结果;
具体地,步骤6-3可通过调用底层API接口函数Cipher.doFinal(byte[]inBuff,short inOffset,shortinLength,byte[]outBuff,short outOffset)实现,其中,inBuff为签名指令的缓存区地址,inOffset为待签名数据在签名指令的缓存区中的偏移,inLength为待签名数据长度,outBuff为签名值的缓存区地址,outOffset为签名值在签名值的缓存区中的偏移。
步骤329、设备向上层应用返回签名结果,结束;
在本实施例中,还包括将签名状态值置为预设的不可签名状态值。
需要说明的是,在将签名状态值置为预设的不可签名状态值之前,还包括:删除私钥对象。
进一步地,同时返回给上层应用的还有成功状态码9000,例如,设备向上层应用返回签名值为:
6a 68 90 59 a1 57 c4 85 6d d0 fb 4c 7e cf 2e 80
bf a9 d4 3b 71 ae dc 73 46 dd 28 3d 76 3e 77 f0
25 9f ee ad 25 c9 c5 7d c6 ca 49 b4 24 58 74 ae
85 e5 d4 5f da 8d 89 c0 c9 ce 77 6c 7c 4d de bd
79 40 2f 59 fd 53 f3 5c cc 1a 6f c5 c6 65 fb bd
b1 c1 07 fb 9b 12 e0 2d d0 58 46 10 fc f9 fa 6e
da 45 83 ec 1c b2 67 cd d1 dd b0 32 b1 68 b3 7a
b8 9e f8 64 e8 61 fa 8b f0 ad bf d3 ab 76 f2 6e
90 00
实施例五
本实施例提供一种智能密钥设备,如图5所示,包括:
接收模块401,用于接收上层应用发送指令;
第一判断模块402,用于当接收模块401接收到上层应用发送的创建密钥文件指令时,判断是否能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识;
报错模块403,用于当第一判断模块402判断能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
创建模块404,用于当第一判断模块402判断不能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,创建密钥文件;
第一设置模块405,用于将接收模块401接收到的上层应用发送的创建密钥文件指令中携带的密钥标识设置为创建模块404创建的密钥文件的文件名,并将密钥标识对应的位置标识保存至密钥检索表中;
返回模块406,用于向上层应用返回创建结果;
第二判断模块407,用于当接收模块401接收到上层应用发送的生成密钥对指令时,判断是否能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识;
报错模块403,还用于当第二判断模块407判断不能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
第一寻找模块408,用于当第二判断模块407判断能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,根据位置标识找到对应的密钥文件;
第三判断模块409,用于判断第一寻找模块408找到的密钥文件中是否已存有密钥对;
报错模块403,还用于当第三判断模块409判断第一寻找模块408找到的密钥文件中已存有密钥对,报错结束;
生成模块410,用于当第三判断模块409判断第一寻找模块408找到的密钥文件中没有存有密钥对时,生成密钥对并保存私钥至密钥文件;
返回模块406,还用于向上层应用返回公钥;
第四判断模块411,用于当接收模块401接收到上层应用发送的签名管理安全环境指令时,判断是否能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识;
第二寻找模块412,用于当第四判断模块411判断能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,根据位置标识找到对应的密钥文件;
第一获取模块413,用于获取第二寻找模块412寻找的密钥文件中的私钥;
第二设置模块414,用于将第一获取模块413获取的私钥保存至私钥文件中;
报错模块403,还用于当第四判断模块411判断不能根据签名管理安全环境指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
签名模块416,用于调用私钥文件中的私钥对签名指令中携带的签名数据进行签名,得到签名结果;
返回模块406,还用于向上层应用的返回签名结果;
在本实施例中,创建模块404,具体用于当第一判断模块判断不能根据创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,根据创建密钥文件的控制参数创建密钥文件。
具体地,创建模块404具体包括:第一提取单元和第二提取单元;
第一提取单元,用于从创建密钥文件的控制参数中提取密钥文件的安全属性设置;
第二提取单元,用于从创建密钥文件的控制参数中提取密钥文件的控制引用模板参数。
优选地,装置还包括:第五判断模块;
第一获取模块,还用于从第一寻找模块找到的密钥文件的控制参数中获取算法类型;
第五判断模块,用于判断第一获取模块获取到的算法类型是否与生成密钥对指令中携带的算法类型相同;
生成模块,还用于当第五判断模块判断第一获取模块获取到的算法类型与生成密钥对指令中携带的算法类型相同时,生成密钥对并保存私钥至密钥文件;
报错模块403,还用于当第五判断模块判断第一获取模块获取到的算法类型与生成密钥对指令中携带的算法类型不相同时,报错结束。
第二设置模块,还用于设置安全环境,制定安全算法。
装置还包括:第六判断模块;
第二设置模块,还用于将签名状态值置为预设的可签名状态值;
第六判断模块,用于当接收模块接收到上层应用发送的签名指令时,判断签名状态值是否为预设的可签名状态值;
签名模块416,还用于当第六判断模块判断签名状态值为预设的可签名状态值时,调用私钥文件中的私钥对签名指令中携带的待签名数据进行签名,得到签名结果;
第二设置模块,还用于将签名状态值置为预设的不可签名状态值;
报错模块403,还用于当第六判断模块判断签名状态值不是预设的可签名状态值时,报错结束。
在本实施例中,装置还包括:第二获取模块;
第二获取模块,用于当接收模块401接收到上层应用发送的获取密钥列表文件指令时,根据获取密钥列表文件指令中携带的密钥列表文件ID获取密钥列表文件;
返回模块406,还用于向上层应用返回密钥列表文件。
具体地,接收模块401,还用于接收上层应用分配的新的密钥标识和构造创建密钥文件的参数。
具体地,第一判断模块402,具体用于当接收模块401接收到上层应用发送的创建密钥文件指令时,判断是否能根据创建密钥文件指令中携带的新分配的密钥标识在密钥检索表中找到对应的位置标识;
报错模块403,用于当第一判断模块402判断能根据创建密钥文件指令中携带的新分配的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
创建模块404,具体用于当第一判断模块402判断不能根据创建密钥文件指令中携带的新分配的密钥标识在密钥检索表中找到对应的位置标识时,根据创建密钥文件的参数创建密钥文件。
在本实施例中,装置还包括:第三获取模块、增加模块和第四获取模块;
第三获取模块,用于当接收模块401接收到上层应用发送的获取容器列表文件指令时,根据获取容器列表文件指令中携带的容器列表文件ID获取容器列表文件;
返回模块406,还用于向上层应用返回容器列表文件;
增加模块,用于当接收模块401接收到上层应用发送的获取容器列表文件指令时,向密钥列表文件中增加包含密钥标识的密钥记录;
返回模块406,还用于向上层应用返回创建密钥记录结果;
第四获取模块,用于当接收模块401接收到上层应用发送的获取容器列表文件指令时,获取证书文件;
返回模块406,还用于向上层应用返回证书文件。
优选地,接收模块401,还用于接收上层应用发送的新创建的容器的编号。
根据权利要求21的装置,增加模块,具体用于当接收模块401接收到上层应用发送的获取容器列表文件指令时,向密钥列表文件增加与新创建的容器有相同编号的密钥记录,密钥记录包含密钥标识。
优选地,装置还包括:写数据模块;
写数据模块,用于当接收模块401接收到上层应用发送的写数据指令时,智能密钥设备根据指令获取指令中携带的数据写入新创建的容器中;
返回模块406,还用于向上层应用返回写数据结果。
在本实施例中,装置还包括:解析模块;
解析模块,用于当接收模块401接收到上层应用发送的获取主表文件指令时,根据指令中携带的主表文件ID获取并解析主表文件;
返回模块406,还用于向上层应用返回主表文件。
优选地,接收模块401,还用于接收上层应用发送的获取证书数据指令。
优选地,装置还包括:查找模块;
查找模块,用于找到证书数据;
返回模块406,还用于向上层应用返回证书数据。
在本实施例中,第二设置模块414,还用于设置安全环境,制定安全算法。
优选地,装置还包括:选择模块;
选择模块,用于当接收模块401接收上层应用发送的选择应用指令时,根据选择应用指令中携带的应用目录文件的ID选择应用目录文件,获取文件控制信息;
返回模块406,还用于向上层应用返回文件控制信息。
优选地,装置还包括:读取模块;
读取模块,用于当接收模块401接收到上层应用发送的获取缓存文件指令时,智能密钥设备读取缓存文件;
返回模块406,还用于向上层应用返回缓存文件的内容。
在本实施例中,装置还包括:更新模块;
更新模块,用于当接收模块401接收到上层应用发送的更新缓存文件指令时,更新缓存文件的内容;
返回模块406,还用于向上层应用返回更新缓存文件的结果。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (20)
1.一种智能密钥设备的工作方法,其特征在于,包括:
当接收到上层应用发送的创建密钥文件指令时,执行步骤S1;当接收到上层应用发送的生成密钥对指令时,执行步骤S2;当接收到上层应用发送的签名管理安全环境指令时,执行步骤S3;当接收到上层应用发送的签名指令时,执行步骤S4;
步骤S1、智能密钥设备判断是否能根据所述创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识,是则报错结束;否则,创建密钥文件,将所述创建密钥文件指令中携带的密钥标识设置为所述密钥文件的文件名,并将所述密钥标识对应的位置标识保存至所述密钥检索表中,向上层应用返回创建结果;
步骤S2、所述智能密钥设备判断是否能根据生成密钥对指令中携带的密钥标识在密钥检索表中找到对应的位置标识,否则报错结束;是则根据所述位置标识找到对应的密钥文件,判断所述密钥文件中是否已存有密钥对,是则报错结束;否则生成密钥对并保存私钥至所述密钥文件,并向上层应用返回公钥;
步骤S3、所述智能密钥设备判断是否能根据所述签名管理安全环境指令中携带的密钥标识在所述密钥检索表中找到对应的位置标识,是则根据所述位置标识找到对应的密钥文件,获取所述密钥文件中的私钥,将所述私钥保存至私钥文件中;否则报错结束;
步骤S4、所述智能密钥设备调用所述私钥文件中的私钥对所述签名指令中携带的待签名数据进行签名,得到签名结果,向上层应用返回所述签名结果。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1中所述创建密钥文件指令中还包括:创建密钥文件的控制参数;
所述步骤S1中,所述创建密钥文件,具体为:根据所述创建密钥文件的控制参数创建密钥文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述创建密钥文件的控制参数创建密钥文件,具体包括:
步骤A1:从所述创建密钥文件的控制参数中提取所述密钥文件的安全属性设置;
步骤A2:从所述创建密钥文件的控制参数中提取密钥文件的控制引用模板参数。
4.根据权利要求2所述的方法,其特征在于,所述步骤S2中所述生成密钥对之前还包括:所述智能密钥设备从所述密钥文件的控制参数中获取算法类型,判断所述算法类型是否与所述生成密钥对指令中携带的算法类型相同,是则生成密钥对;否则报错结束。
5.根据权利要求1所述的方法,其特征在于,所述步骤S3中还包括:所述智能密钥设备设置安全环境,制定安全算法。
6.根据权利要求1所述的方法,其特征在于,所述步骤S3中,所述将所述私钥保存至私钥文件后,还包括:将签名状态值置为预设的可签名状态值;
所述步骤S4之前还包括:所述智能密钥设备判断所述签名状态值是否为预设的可签名状态值,是则执行步骤S4;否则报错结束;
所述步骤S4中所述向上层应用返回所述签名结果之后,还包括:将所述签名状态值置为预设的不可签名状态值。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到上层应用发送的获取密钥列表文件指令时,所述智能密钥设备根据所述获取密钥列表文件指令中携带的密钥列表文件ID获取密钥列表文件,并向上层应用返回密钥列表文件。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到上层应用发送的获取容器列表文件指令时,智能密钥设备根据所述获取容器列表文件指令中携带的容器列表文件ID获取容器列表文件,并向上层应用返回容器列表文件;接收所述上层应用返回的新创建的容器的编号;
当接收到上层应用发送的创建密钥记录指令时,所述智能密钥设备向所述密钥列表文件中增加包含密钥标识的密钥记录,并向上层应用返回创建密钥记录结果;
当接收到上层应用发送的获取证书文件指令时,智能密钥设备获取证书文件,并向上层应用返回证书文件。
9.根据权利要求8所述的方法,其特征在于,所述当接收到上层应用发送的创建密钥记录指令时,所述智能密钥设备向所述密钥列表文件中增加包含密钥标识的密钥记录,具体包括:所述当接收到上层应用发送的增加创建密钥记录指令时,智能密钥设备向密钥列表文件增加与所述新创建的容器有相同编号的密钥记录,所述密钥记录包含所述密钥标识。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:当接收到上层应用发送的写数据指令时,智能密钥设备将所述写数据指令中携带的数据写入所述新创建的容器中,并向上层应用返回写数据结果。
11.一种智能密钥设备,其特征在于,包括:
接收模块,用于接收上层应用发送的指令;
第一判断模块,用于当所述接收模块接收到上层应用发送的创建密钥文件指令时,判断是否能根据所述创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识;
报错模块,用于当所述第一判断模块判断能根据所述创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,报错结束;
创建模块,用于当所述第一判断模块判断不能根据所述创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,创建密钥文件;
第一设置模块,用于将所述接收模块接收到的上层应用发送的创建密钥文件指令中携带的密钥标识设置为所述创建模块所述创建的所述密钥文件的文件名,并将所述密钥标识对应的位置标识保存至所述密钥检索表中;
返回模块,用于向上层应用返回创建结果;
第二判断模块,用于当所述接收模块接收到上层应用发送的生成密钥对指令时,判断是否能根据生成密钥对指令中携带的密钥标识在所述密钥检索表中找到对应的位置标识;
所述报错模块,还用于当所述第二判断模块判断不能根据生成密钥对指令中携带的密钥标识在所述密钥检索表中找到对应的位置标识时,报错结束;
第一寻找模块,用于当所述第二判断模块判断能根据生成密钥对指令中携带的密钥标识在所述密钥检索表中找到对应的位置标识时,根据所述位置标识找到对应的密钥文件;
第三判断模块,用于判断所述第一寻找模块找到的密钥文件中是否已存有密钥对;
所述报错模块,还用于当所述第三判断模块判断所述第一寻找模块找到的密钥文件中已存有密钥对,报错结束;
生成模块,用于当所述第三判断模块判断所述第一寻找模块找到的密钥文件中没有存有密钥对时,生成密钥对并保存私钥至所述密钥文件;
所述返回模块,还用于向上层应用返回公钥;
第四判断模块,用于当所述接收模块接收到上层应用发送的签名管理安全环境指令时,判断是否能根据所述签名管理安全环境指令中携带的密钥标识在所述密钥检索表中找到对应的位置标识;
第二寻找模块,用于当所述第四判断模块判断能根据所述签名管理安全环境指令中携带的密钥标识在所述密钥检索表中找到对应的位置标识时,根据所述位置标识找到对应的密钥文件;
第一获取模块,用于获取所述第二寻找模块寻找的所述密钥文件中的私钥;
所述报错模块,还用于当所述第四判断模块判断不能根据所述签名管理安全环境指令中携带的密钥标识在所述密钥检索表中找到对应的位置标识时,报错结束;
签名模块,用于当所述接收模块接收到上层应用发送的签名指令时,调用所述私钥文件中的私钥对所述签名指令中携带的待签名数据进行签名,得到签名结果;
所述返回模块,还用于向上层应用的返回所述签名结果。
12.根据权利要求11所述的装置,其特征在于,
所述创建模块,具体用于当所述第一判断模块判断不能根据所述创建密钥文件指令中携带的密钥标识在密钥检索表中找到对应的位置标识时,根据所述创建密钥文件的控制参数创建密钥文件。
13.根据权利要求12所述的装置,其特征在于,所述创建模块具体包括:第一提取单元和第二提取单元;
所述第一提取单元,用于从所述创建密钥文件的控制参数中提取所述密钥文件的安全属性设置;
所述第二提取单元,用于从所述创建密钥文件的控制参数中提取密钥文件的控制引用模板参数。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:第五判断模块;
所述第一获取模块,还用于从所述第一寻找模块找到的密钥文件的控制参数中获取算法类型;
所述第五判断模块,用于判断所述第一获取模块获取到的算法类型是否与所述生成密钥对指令中携带的算法类型相同;
所述生成模块,还用于当所述第五判断模块判断所述第一获取模块获取到的算法类型与所述生成密钥对指令中携带的算法类型相同时,生成密钥对并保存私钥至所述密钥文件;
所述报错模块,还用于当所述第五判断模块判断所述第一获取模块获取到的算法类型与所述生成密钥对指令中携带的算法类型不相同时,报错结束。
15.根据权利要求11所述的装置,其特征在于,所述第二设置模块,还用于设置安全环境,制定安全算法。
16.根据权利要求11所述的装置,其特征在于,所述装置还包括第六判断模块;
所述第二设置模块,还用于将签名状态值置为预设的可签名状态值;
所述第六判断模块,用于当所述接收模块接收到上层应用发送的签名指令时,判断所述签名状态值是否为预设的可签名状态值;
所述签名模块,还用于当所述第六判断模块判断所述签名状态值为预设的可签名状态值时,调用所述私钥文件中的私钥对所述签名指令中携带的待签名数据进行签名,得到签名结果;
所述第二设置模块,还用于将所述签名状态值置为预设的不可签名状态值;
所述报错模块,还用于当所述第六判断模块判断所述签名状态值不是预设的可签名状态值时,报错结束。
17.根据权利要求11所述的装置,其特征在于,所述装置还包括:第二获取模块;
所述第二获取模块,用于当所述接收模块接收到上层应用发送的获取密钥列表文件指令时,根据所述获取密钥列表文件指令中携带的密钥列表文件ID获取密钥列表文件;
所述返回模块,还用于向上层应用返回密钥列表文件。
18.根据权利要求11所述的装置,其特征在于,所述装置还包括:第三获取模块、增加模块和第四获取模块;
所述第三获取模块,用于当所述接收模块接收到上层应用发送的获取容器列表文件指令时,根据所述获取容器列表文件指令中携带的容器列表文件ID获取容器列表文件;
所述接收模块,还用于接收上层应用发送的新创建的容器的编号;
所述返回模块,还用于向上层应用返回容器列表文件;
所述增加模块,用于当所述接收模块接收到上层应用发送的创建密钥记录指令时,向所述密钥列表文件中增加包含密钥标识的密钥记录;
所述返回模块,还用于向上层应用返回创建密钥记录结果;
所述第四获取模块,用于当所述接收模块接收到上层应用发送的获取证书文件指令时,获取证书文件;
所述返回模块,还用于向上层应用返回证书文件。
19.根据权利要求18所述的装置,其特征在于,所述增加模块,具体用于当所述接收模块接收到上层应用发送的获取容器列表文件指令时,向密钥列表文件增加与所述新创建的容器有相同编号的密钥记录,所述密钥记录包含所述密钥标识。
20.根据权利要求18所述的装置,其特征在于,所述装置还包括:写数据模块;
所述写数据模块,用于当所述接收模块接收到上层应用发送的写数据指令时,智能密钥设备将所述写数据指令中携带的数据写入所述新创建的容器中;
所述返回模块,还用于向上层应用返回写数据结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810037950.XA CN108199834B (zh) | 2018-01-16 | 2018-01-16 | 一种智能密钥设备工作的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810037950.XA CN108199834B (zh) | 2018-01-16 | 2018-01-16 | 一种智能密钥设备工作的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108199834A true CN108199834A (zh) | 2018-06-22 |
CN108199834B CN108199834B (zh) | 2021-07-02 |
Family
ID=62589699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810037950.XA Active CN108199834B (zh) | 2018-01-16 | 2018-01-16 | 一种智能密钥设备工作的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108199834B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313678A (zh) * | 2018-09-05 | 2019-02-05 | 福建联迪商用设备有限公司 | 一种调用api的方法及终端 |
CN109446786A (zh) * | 2018-12-25 | 2019-03-08 | 飞天诚信科技股份有限公司 | 一种智能密钥装置的工作方法及智能密钥装置 |
CN111159767A (zh) * | 2019-12-31 | 2020-05-15 | 郑州信大捷安信息技术股份有限公司 | 一种智能卡模式下v2x应用的密钥容器管理方法 |
CN111563247A (zh) * | 2020-07-14 | 2020-08-21 | 飞天诚信科技股份有限公司 | 一种智能密钥设备登录系统的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1751471A (zh) * | 2003-02-14 | 2006-03-22 | 索尼株式会社 | 认证处理设备和安全处理方法 |
CN101122938A (zh) * | 2007-09-25 | 2008-02-13 | 北大方正集团有限公司 | 一种数据文件的安全处理方法及系统 |
CN101807237A (zh) * | 2010-03-01 | 2010-08-18 | 北京飞天诚信科技有限公司 | 签名方法及装置 |
CN103001774A (zh) * | 2012-11-30 | 2013-03-27 | 飞天诚信科技股份有限公司 | 一种管理集装文件的方法和装置 |
CN104753661A (zh) * | 2013-12-30 | 2015-07-01 | 上海格尔软件股份有限公司 | 一种用于商用密码设备的密钥描述文件 |
CN104993932A (zh) * | 2015-06-19 | 2015-10-21 | 飞天诚信科技股份有限公司 | 一种提高签名安全性的方法 |
US20160323100A1 (en) * | 2015-04-30 | 2016-11-03 | Hon Hai Precision Industry Co., Ltd. | Key generation device, terminal device, and data signature and encryption method |
US20170063550A1 (en) * | 2015-04-23 | 2017-03-02 | Keith J Brodie | Secure Digital Signature Apparatus and Methods |
-
2018
- 2018-01-16 CN CN201810037950.XA patent/CN108199834B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1751471A (zh) * | 2003-02-14 | 2006-03-22 | 索尼株式会社 | 认证处理设备和安全处理方法 |
CN101122938A (zh) * | 2007-09-25 | 2008-02-13 | 北大方正集团有限公司 | 一种数据文件的安全处理方法及系统 |
CN101807237A (zh) * | 2010-03-01 | 2010-08-18 | 北京飞天诚信科技有限公司 | 签名方法及装置 |
CN103001774A (zh) * | 2012-11-30 | 2013-03-27 | 飞天诚信科技股份有限公司 | 一种管理集装文件的方法和装置 |
CN104753661A (zh) * | 2013-12-30 | 2015-07-01 | 上海格尔软件股份有限公司 | 一种用于商用密码设备的密钥描述文件 |
US20170063550A1 (en) * | 2015-04-23 | 2017-03-02 | Keith J Brodie | Secure Digital Signature Apparatus and Methods |
US20160323100A1 (en) * | 2015-04-30 | 2016-11-03 | Hon Hai Precision Industry Co., Ltd. | Key generation device, terminal device, and data signature and encryption method |
CN104993932A (zh) * | 2015-06-19 | 2015-10-21 | 飞天诚信科技股份有限公司 | 一种提高签名安全性的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313678A (zh) * | 2018-09-05 | 2019-02-05 | 福建联迪商用设备有限公司 | 一种调用api的方法及终端 |
WO2020047764A1 (zh) * | 2018-09-05 | 2020-03-12 | 福建联迪商用设备有限公司 | 一种调用api的方法及终端 |
CN109313678B (zh) * | 2018-09-05 | 2021-11-09 | 福建联迪商用设备有限公司 | 一种调用api的方法及终端 |
CN109446786A (zh) * | 2018-12-25 | 2019-03-08 | 飞天诚信科技股份有限公司 | 一种智能密钥装置的工作方法及智能密钥装置 |
CN109446786B (zh) * | 2018-12-25 | 2021-01-01 | 飞天诚信科技股份有限公司 | 一种智能密钥装置的工作方法及智能密钥装置 |
CN111159767A (zh) * | 2019-12-31 | 2020-05-15 | 郑州信大捷安信息技术股份有限公司 | 一种智能卡模式下v2x应用的密钥容器管理方法 |
CN111563247A (zh) * | 2020-07-14 | 2020-08-21 | 飞天诚信科技股份有限公司 | 一种智能密钥设备登录系统的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108199834B (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493261B (zh) | 基于区块链的验证码获取方法、客户端、服务器及存储介质 | |
CN108199834A (zh) | 一种智能密钥设备工作的方法及装置 | |
CN101730987B (zh) | 使用usb密钥来管理网络组件 | |
CN101340663B (zh) | 智能存储卡系统以及该系统实现交互的方法 | |
CN100380356C (zh) | 机器认证系统 | |
CN102710412B (zh) | 加密算法兼容管理的方法及装置 | |
CN104025544B (zh) | 机密信息泄露防止系统和机密信息泄露防止方法 | |
CN101964791A (zh) | 客户端与web应用的通讯认证系统及认证方法 | |
CN101453394A (zh) | 一种接入控制方法、系统和设备 | |
CN104737566A (zh) | 用于将用户身份数据引入到用户身份模块中的方法 | |
CN111131416A (zh) | 业务服务的提供方法和装置、存储介质、电子装置 | |
CN109635581A (zh) | 一种数据处理方法、设备、系统及存储介质 | |
CN107948170A (zh) | 接口请求参数加密方法、装置、设备及可读存储介质 | |
CN103516524A (zh) | 安全验证方法和系统 | |
CN110334531A (zh) | 虚拟机密钥的管理方法、主节点、系统、存储介质及装置 | |
CN107729760B (zh) | 基于Android系统的CSP实现方法及智能终端 | |
EP1632943B1 (en) | Method of preventing multimedia copy | |
CN106535156A (zh) | 虚拟用户识别模块卡的迁移方法、终端、服务器、系统 | |
CN104994498B (zh) | 一种终端应用与手机卡应用交互的方法及系统 | |
CN105871557B (zh) | 电子邮件签名方法、装置及系统 | |
CN101650700B (zh) | 一种支持多逻辑通道通信的方法和设备 | |
CN103873245B (zh) | 虚拟机系统数据加密方法及设备 | |
CN102841861A (zh) | 一种以sd为通讯接口的数据安全存储设备及其工作方法 | |
EP1854260B1 (en) | Access rights control in a device management system | |
CN103914642A (zh) | 一种基于usb key的安全套件结构系统 |
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 |