CN107888381B - 一种密钥导入的实现方法、装置及系统 - Google Patents

一种密钥导入的实现方法、装置及系统 Download PDF

Info

Publication number
CN107888381B
CN107888381B CN201711100159.0A CN201711100159A CN107888381B CN 107888381 B CN107888381 B CN 107888381B CN 201711100159 A CN201711100159 A CN 201711100159A CN 107888381 B CN107888381 B CN 107888381B
Authority
CN
China
Prior art keywords
key
data
module
ciphertext
signature
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
CN201711100159.0A
Other languages
English (en)
Other versions
CN107888381A (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.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies 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 Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201711100159.0A priority Critical patent/CN107888381B/zh
Publication of CN107888381A publication Critical patent/CN107888381A/zh
Application granted granted Critical
Publication of CN107888381B publication Critical patent/CN107888381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Abstract

本发明公开一种密钥导入的实现方法、装置及系统,该方法包括:智能密钥设备将签名公钥和使用预置的保护密钥对签名公钥进行签名得到的签名公钥密文分别发送给服务器;服务器使用预置的保护密钥和接收的签名公钥对接收的签名公钥密文进行验证,验证通过将从数字证书认证中心获取的签名证书数据包发送给智能密钥设备;智能密钥设备使用保存的工作密钥对签名证书数据包进行验证,如验证通过则从加密证书私钥并将其与加密证书对应保存。本发明技术方案是在密钥导入的过程中添加设备与服务器的互信过程,提高导入密钥的安全性;并且可以导入多个非对称密钥对,使用方便快捷。

Description

一种密钥导入的实现方法、装置及系统
技术领域
本发明涉及信息安全领域,尤其涉及一种密钥导入的实现方法、装置及系统。
背景技术
智能密钥设备广泛应用于网上银行等电子商务、电子政务领域,它是一种带有处理器和存储器的小型硬件装置,可通过诸如计算机等终端的数据通信接口与终端相连接,利用内置的密钥算法实现对用户身份的认证,智能密钥设备内通常存储用户的密钥以及数字证书,还可以存储用户数据(如个人文件资料、照片等涉及用户隐私的数据)。在现有技术中,密钥的导入没有服务器的参与,存在安全隐患。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种密钥导入的实现方法、装置及系统。
本发明提供一种密钥导入的实现方法,包括:
步骤P:当智能密钥设备接收到生成密钥请求之后生成签名密钥对,并将所述签名密钥对中的签名公钥返回;
步骤A:当智能密钥设备接收到获取签名公钥密文请求之后,使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文,并将所述签名公钥密文返回;
步骤B:当智能密钥设备接收到获取工作密钥请求之后生成工作密钥并保存,根据预置的保护密钥和所述工作密钥生成第二加密数据,并将所述第二加密数据返回;
步骤C:当智能密钥设备接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据时,使用保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密,并从加密结果中提取第二校验值;判断所述第二校验值与接收到的所述第三校验数据是否相同,如不相同则报错,结束,如相同则使用保存的所述工作密钥对所述第一密钥二次密文进行解密得到第一密钥密文;根据所述签名证书检索对应的签名私钥,使用检索到的签名私钥对所述第一密钥密文进行解密得到第一密钥;使用所述第一密钥对所述加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存。
进一步地,所述根据预置的保护密钥和所述工作密钥生成第二加密数据包括:使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据,从所述第一加密数据中提取第一校验数据,使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据。
进一步地,所述使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据,具体为:所述智能密钥设备对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
进一步地,所述使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据,具体包括:所述智能密钥设备将所述第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
进一步地,所述从所述第一加密数据中提取第一校验数据包括:所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据。
进一步地,所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据具体为:所述智能密钥设备将所述第一加密数据从高位到低位依次分为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到所述第一校验数据。
进一步地,所述步骤C中使用保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密包括:所述智能密钥设备将所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
进一步地,所述步骤C中从加密结果中提取第二校验值包括:所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值。
进一步地,所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值具体为:所述智能密钥设备将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
本发明又提供一种密钥导入的实现方法,包括:
步骤S1:当智能密钥设备接收到中间件发送的生成密钥请求时,生成签名密钥对,将所述签名密钥对中的签名公钥通过所述中间件发送给服务器;
步骤S2:所述服务器保存接收到的签名公钥,生成获取签名公钥密文请求并通过所述中间件发送给所述智能密钥设备;
步骤S3:所述智能密钥设备使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文,将所述签名公钥密文通过所述中间件发送给所述服务器;
步骤S4:所述服务器使用保存的签名公钥对接收到的签名公钥密文进行验证,如验证成功则生成获取工作密钥请求并通过所述中间件发送给所述智能密钥设备,如验证失败则报错,结束;
步骤S5:所述智能密钥设备生成工作密钥并保存,根据预置的保护密钥和所述工作密钥生成第二加密数据并将其通过所述中间件发送给所述服务器;
步骤S6:所述服务器使用内部保存的保护密钥对接收到的所述第二加密数据进行验证,如验证成功则从验证结果中提取工作密钥并保存,执行步骤S7,如验证失败则报错,结束;
步骤S7:所述服务器将所述中间件发送的签名证书请求转发给数字证书认证中心,并获取所述数字证书认证中心返回的签名证书数据包;所述签名证书数据包包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
步骤S8:所述服务器使用保存的工作密钥对所述签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;使用所述工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密得到第五加密数据,并从所述第五加密数据中提取第三校验数据,并将所述签名证书和加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据通过所述中间件发送给所述智能密钥设备;
步骤S9:所述智能密钥设备使用保存的所述工作密钥对接收到的所述加密证书私钥密文和所述第一密钥二次密文进行加密,并从加密结果中提取第二校验值;判断所述第二校验值与接收到的所述第三校验数据是否相同,如不相同则报错,结束,如相同则使用所述工作密钥对所述第一密钥二次密文进行解密得到第一密钥密文;根据所述签名证书检索对应的签名私钥,使用检索到的所述签名私钥对所述第一密钥密文进行解密得到第一密钥;使用所述第一密钥对所述加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存。
进一步地,所述步骤S1中将所述签名密钥对中的签名公钥通过所述中间件发送给服务器包括:所述智能密钥设备将签名密钥对中的签名公钥发送给所述中间件,所述中间件根据所述签名公钥生成所述签名证书请求并将其发送给服务器。
进一步地,所述S1中将所述签名密钥对中的签名公钥通过所述中间件发送给服务器,具体包括:所述智能密钥设备将签名密钥对中的签名公钥和智能密钥设备标识通过所述中间件发送给服务器;
所述步骤S2中所述服务器保存接收到的签名公钥,具体包括:所述服务器对应保存接收到的签名公钥和智能密钥设备标识;
所述S3中将所述签名公钥密文通过所述中间件发送给所述服务器,具体包括:所述智能密钥设备将所述签名公钥密文和智能密钥设备标识通过所述中间件发送给所述服务器;
所述步骤S4之前还包括:所述服务器根据接收到的智能密钥标识检索对应的保存的签名公钥,如检索到则执行步骤S4,如未检索到则报错,结束。
进一步地,所述步骤S4包括:所述服务器使用保存的保护密钥对接收到的所述签名公钥进行加密,并判断加密结果是否与接收到的签名公钥密文一致,是则生成获取工作密钥请求并通过中间件发送给所述智能密钥设备,否则报错,结束。
进一步地,所述步骤S5中根据预置的保护密钥和所述工作密钥生成第二加密数据包括:使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据,从所述第一加密数据中提取第一校验数据,使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据。
进一步地,所述使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据包括:所述智能密钥设备对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
进一步地,所述使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据,具体为:所述智能密钥设备将所述第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
进一步地,所述从所述第一加密数据中提取第一校验数据包括:所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据。
进一步地,所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据具体为:所述智能密钥设备将所述第一加密数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第一校验数据。
进一步地,所述步骤S6包括:
步骤S61:所述服务器使用保存的保护密钥对接收到的所述第二加密数据进行解密,如解密成功则执行步骤S62,否则报错,结束;
步骤S62:所述服务器从解密结果中提取第一拼接值,判断所述第一拼接值的预设位置上的数据是否为第一预设数据,是则执行步骤S63,否则报错,结束;
步骤S63:所述服务器使用所述保护密钥对所述第一拼接值进行加密得到第三加密数据,并从所述第三加密数据中提取第二校验数据;
步骤S64:所述服务器判断所述第二校验数据是否与所述第一拼接值中的校验数据相同,是则执行步骤S65,否则报错,结束;
步骤S65:所述服务器从所述第一拼接值中提取工作密钥并保存。
进一步地,所述步骤S8包括:
步骤S81:所述服务器使用保存的工作密钥对所述签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;
步骤S82:所述服务器将所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第二拼接数据,并对所述第二拼接数据进行填充得到第四填充数据;
步骤S83:所述服务器使用所述工作密钥对所述第四填充数据进行加密得到第五加密数据,并从所述第五加密数据中提取第三校验数据;
步骤S84:所述服务器并将所述签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据通过所述中间件发送给所述智能密钥设备。
进一步地,所述步骤S9中使用保存的所述工作密钥对接收到的所述加密证书私钥密文和所述第一密钥二次密文进行加密包括:所述智能密钥设备将接收到的所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
进一步地,所述步骤S9中从加密结果中提取第二校验值包括:所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值。
进一步地,所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值具体为:所述智能密钥设备将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
本发明再提供一种密钥导入的实现装置,所述装置设置在智能密钥设备中,所述装置包括:
第一接收模块,用于接收生成密钥请求、获取签名公钥密文请求、获取工作密钥请求,还用于接收签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据;
第一生成模块,用于在所述第一接收模块接收到生成密钥请求之后生成签名密钥对;
第一加密模块,用于在所述第一接收模块接收到获取签名公钥密文请求之后,使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文;
第二生成模块,用于在所述第一接收模块接收到获取工作密钥请求之后生成工作密钥并保存;
第三生成模块,用于根据预置的保护密钥和所述第二生成模块生成的工作密钥生成第二加密数据;
第一发送模块,用于将所述第一生成模块生成的签名密钥对中的签名公钥返回,用于将所述第一加密模块得到的签名公钥密文返回,用于将所述第三生成模块生成的所述第二加密数据返回;
第二加密模块,用于在所述第一接收模块接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,使用所述第二生成模块保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密;
第一提取模块,用于从所述第二加密模块的加密结果中提取第二校验值;
第一判断模块,用于判断所述第一提取模块提取到的第二校验值与所述第一接收模块接收到的所述第三校验数据是否相同;
报错模块,用于当所述第一判断模块判断为否时报错;
第一解密模块,用于当所述第一判断模块判断为是时使用所述第二生成模块保存的所述工作密钥对所述第一接收模块接收到的第一密钥二次密文进行解密得到第一密钥密文;
第一检索模块,用于根据所述第一接收模块接收到的签名证书检索对应的签名私钥;
第二解密模块,用于使用所述第一检索模块检索到的签名私钥对所述第一解密模块解密得到的第一密钥密文进行解密得到第一密钥;
第三解密模块,用于使用所述第二解密模块解密得到的第一密钥对所述第一接收模块接收到的加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存。
进一步地,所述第三生成模块包括:
第一加密单元,用于使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据;
第一提取单元,用于从所述第一加密单元得到的第一加密数据中提取第一校验数据;
第二加密单元,用于使用所述保护密钥对所述工作密钥和所述第一提取单元提取的第一校验数据进行加密得到第二加密数据。
进一步地,所述第一加密单元具体用于对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
进一步地,所述第二加密单元具体用于将所述第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
进一步地,所述第一提取单元具体用于从所述第一加密单元得到的第一加密数据中提取预设长度的数据得到第一校验数据。
进一步地,所述第一提取单元具体用于将所述第一加密单元得到的第一加密数据从高位到低位依次分为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到所述第一校验数据。
进一步地,所述第二加密模块具体用于在所述第一接收模块接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,将所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
进一步地,所述第一提取模块具体用于从加密结果中提取预设长度的数据得到第二校验值。
进一步地,所述第一提取模块具体用于将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
本发明还提供一种密钥导入的实现系统,包括智能密钥设备、中间件和服务器;所述智能密钥设备包括:
第一接收模块,用于接收所述中间件发送的生成密钥请求,还用于接收所述服务器通过所述中间件发送的获取签名公钥密文请求、获取工作密钥请求,还用于接收所述服务器通过所述中间件发送的签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据;
第一生成模块,用于在所述第一接收模块接收到生成密钥请求之后,生成签名密钥对;
第一加密模块,用于在所述第一接收模块接收到获取签名公钥密文请求之后,使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文;
第二生成模块,用于在所述第一接收模块接收到获取工作密钥请求之后生成工作密钥并保存;
第三生成模块,用于根据预置的保护密钥和所述第二生成模块生成的工作密钥生成第二加密数据;
第一发送模块,用于将所述第一生成模块生成的签名密钥对中的签名公钥发送给所述中间件,还用于将所述第一加密模块得到的签名公钥密文、所述第三生成模块生成的所述第二加密数据通过所述中间件发送给所述服务器;
第二加密模块,用于在所述第一接收模块接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,使用所述第二生成模块保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密;
第一提取模块,用于从所述第二加密模块的加密结果中提取第二校验值;
第一判断模块,用于判断所述第一提取模块提取到的第二校验值与所述第一接收模块接收到的所述第三校验数据是否相同;
第一报错模块,用于当所述第一判断模块判断为否时报错;
第一解密模块,用于当所述第一判断模块判断为是时使用所述第二生成模块保存的所述工作密钥对所述第一接收模块接收到的第一密钥二次密文进行解密得到第一密钥密文;
第一检索模块,用于根据所述第一接收模块接收到的签名证书检索对应的签名私钥;
第二解密模块,用于使用所述第一检索模块检索到的签名私钥对所述第一解密模块解密得到的第一密钥密文进行解密得到第一密钥;
第三解密模块,用于使用所述第二解密模块解密得到的第一密钥对所述第一接收模块接收到的加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存;
所述中间件用于接收所述智能密钥设备发送的所述签名公钥,根据所述签名公钥生成签名证书请求并将其发送给所述服务器;
所述服务器包括:
第二接收模块,用于接收所述智能密钥设备通过所述中间件发送的签名公钥、签名公钥密文、第二加密数据,还用于接收所述中间件发送的签名证书请求;
第一保存模块,用于保存所述第二接收模块接收到的签名公钥;
第四生成模块,用于在第一保存模块保存签名公钥完成之后生成获取签名公钥密文请求;
第一验证模块,用于使用所述第一保存模块保存的签名公钥对所述第二接收模块接收到的签名公钥密文进行验证;
第五生成模块,用于当所述第一验证模块验证成功时生成获取工作密钥请求;
第二验证模块,用于使用内部保存的保护密钥对所述第二接收模块接收到的所述第二加密数据进行验证;
提取保存模块,用于当所述第二验证模块验证成功时从所述第二验证模块的验证结果中提取工作密钥并保存;
第二报错模块,用于当所述第一验证模块验证失败时报错;用于当所述第二验证模块验证失败时报错;
第一获取模块,用于在所述第二发送模块将签名证书请求发送给数字证书认证中心之后,获取所述数字证书认证中心返回的签名证书数据包;所述签名证书数据包包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
第三加密模块,用于使用保存的工作密钥对所述第一获取模块获取的签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;
第四加密模块,用于使用所述保存的工作密钥对所述第一获取模块获取的加密证书私钥密文和所述第三加密模块加密得到的第一密钥二次密文进行加密得到第五加密数据;
第二提取模块,用于从所述第四加密模块加密得到的第五加密数据中提取第三校验数据;
第二发送模块,用于将所述第四生成模块生成的获取签名公钥密文请求、所述第五生成模块生成的获取工作密钥请求、所述第一获取模块获取的签名证书和加密证书和加密证书私钥密文、第三加密模块加密得到的第一密钥二次密文、所述第二提取模块提取的第三校验数据通过所述中间件发送给所述智能密钥设备。
进一步地,所述第一发送模块具体用于将智能密钥设备标识和签名密钥对中的签名公钥、智能密钥设备标识和所述第一加密模块得到的签名公钥密文、所述第三生成模块生成的所述第二加密数据通过所述中间件发送给所述服务器;
所述第二接收模块具体用于接收所述智能密钥设备通过所述中间件发送的和智能密钥设备标识和签名公钥、智能密钥设备标识和签名公钥密文、第二加密数据,还用于接收所述中间件发送的签名证书请求;
所述第一保存模块具体用于对应保存所述第二接收模块接收到的签名公钥和智能密钥设备标识;
所述服务器还包括:第二检索模块,用于根据所述第二接收模块接收到的智能密钥标识检索对应的保存的签名公钥;
所述第一验证模块具体用于当所述第二检索模块检索到对应的保存的签名公钥时,使用所述保护密钥对所述第二接收模块接收到的所述第二加密数据进行验证;
所述第二报错模块还用于当所述第二检索模块未检索到对应的保存的签名公钥时报错。
进一步地,所述第一验证模块包括:
第一加密单元,用于使用所述第一保存模块保存的保护密钥对接收到的所述签名公钥进行加密;
第一判断单元,用于判断所述第一加密单元加密得到的加密结果是否与所述第二接收模块接收到的签名公钥密文一致,是则验证成功,否则验证失败。
进一步地,所述第三生成模块包括:
第二加密单元,用于使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据;
第一提取单元,用于从所述第二加密单元生成的第一加密数据中提取第一校验数据;
第三加密单元,用于使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据。
进一步地,所述第二加密单元具体用于对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
进一步地,所述第三加密单元具体用于将所述第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
进一步地,所述第一提取单元具体用于从所述第一加密数据中提取预设长度的数据得到第一校验数据。
进一步地,所述第一提取单元具体用于将所述第一加密数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第一校验数据。
进一步地,所述第二验证模块包括:
第一解密单元,用于使用保存的保护密钥对得到第二接收模块接收到的所述第二加密数据进行解密;
提取判断单元,用于当所述第一解密单元解密成功时从解密结果中提取第一拼接值,判断所述第一拼接值的预设位置上的数据是否为第一预设数据;
加密提取单元,用于当所述提取判断单元判断为是时使用所述保护密钥对所述第一拼接值进行加密得到第三加密数据,并从所述第三加密数据中提取第二校验数据;
第二判断单元,用于判断所述加密提取单元提取的第二校验数据是否与所述提取判断单元提取的第一拼接值中的校验数据相同;
提取保存单元,用于当所述第二判断单元判断为是时从所述提取判断单元提取的第一拼接值中提取工作密钥并保存;
所述第二报错模块还用于当所述第一解密单元解密失败时、所述提取判断单元判断为否时和所述第二判断单元判断为否时报错。
进一步地,所述第四加密模块具体用于将所述第一获取模块获取的加密证书私钥密文和所述第三加密模块加密得到的第一密钥二次密文进行拼接得到第二拼接数据,并对所述第二拼接数据进行填充得到第四填充数据,使用所述工作密钥对所述第四填充数据进行加密得到第五加密数据。
进一步地,所述第二加密模块具体用于将所述第一接收模块接收到的所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
进一步地,所述第一提取模块具体用于从所述第二加密模块的加密结果中提取预设长度的数据得到第二校验值。
进一步地,所述第一提取模块具体用于将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
本发明与现有技术相比,具有以下优点:
本发明技术方案是在密钥导入的过程中添加设备与服务器的互信过程,提高导入密钥的安全性;并且可以导入多个非对称密钥对,使用方便快捷。
附图说明
图1为本发明实施例一提供的一种密钥导入的实现方法流程图;
图2为本发明实施例二提供的一种密钥导入的实现方法流程图;
图3和图4为本发明实施例三提供的一种密钥导入的实现方法流程图;
图5和图6为本发明实施例四提供的一种密钥导入的实现方法流程图;
图7为本发明实施例五提供的一种密钥导入的实现装置方框图;
图8为本发明实施例六提供的一种密钥导入的实现系统示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供了一种密钥导入的实现方法,如图1所示,包括:
步骤T:智能密钥设备等待接收请求;
步骤P:当智能密钥设备接收到生成密钥请求之后生成签名密钥对,并将签名密钥对中的签名公钥返回;
步骤A:当智能密钥设备接收到获取签名公钥密文请求后,使用预置的保护密钥对签名公钥进行加密,并将加密得到的签名公钥密文返回;
步骤B:当智能密钥设备接收到获取工作密钥请求之后生成工作密钥并保存,根据预置的保护密钥和工作密钥生成第二加密数据,并将第二加密数据返回;
具体的,步骤B包括:
步骤B1:当接收到获取工作密钥请求后生成工作密钥并保存;
步骤B2:智能密钥设备使用预置的保护密钥对工作密钥进行加密生成第一加密数据,从第一加密数据中提取第一校验数据,使用保护密钥对工作密钥和第一校验数据进行加密得到第二加密数据;
具体的,步骤B2包括:
步骤B21:智能密钥设备对工作密钥进行填充得到第一填充数据,使用预置的保护密钥对第一填充数据进行加密得到第一加密数据;
优选的,在本实施例中,工作密钥为16字节的随机数,填充方式可以但不限于为PKCS5或PBOC;如填充方式为PBOC则对工作密钥进行填充具体为:在工作密钥的低位补充0x80 00 00 00 00 00 00 00;例如本步骤中的加密方式为3DES CBC模式;
步骤B22:智能密钥设备从第一加密数据中提取预设长度的数据得到第一校验数据;
优选的,第一加密数据为2预设长度数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第一校验数据;
步骤B23:智能密钥设备将第一填充数据、第一校验数据、第一预设数据进行拼接得到第一拼接数据;
优选的,本实施例中的第一预设数据为0x04 04 04 04;
步骤B24:智能密钥设备对第一拼接数据进行填充得到第二填充数据;
优选的,在本实施例中,该步骤中的填充方式可以但不限于为PKCS5或PBOC,如填充方式为PKCS5则步骤B24具体为:智能密钥设备在第一拼接数据之后填充0x08 08 08 08;
步骤B25:智能密钥设备使用保护密钥对第二填充数据进行加密得到第二加密数据;
优选的,在本实施例中,该步骤中的加密方式为对称加密方式,例如3DES ECB,步骤B25具体为:智能密钥设备使用保护密钥对第二填充数据进行3DES ECB加密得到第二加密数据;
步骤B3:智能密钥设备将第二加密数据返回;
步骤C:当智能密钥设备接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据时,使用保存的工作密钥对加密证书私钥密文和第一密钥二次密文进行加密,并从加密结果中提取第二校验值;判断第二校验值与接收到的第三校验数据是否相同,如不相同则报错,结束,如相同则使用保存的工作密钥对第一密钥二次密文进行解密得到第一密钥密文;根据签名证书检索对应的签名私钥,使用检索到的签名私钥对第一密钥密文进行解密得到第一密钥;使用第一密钥对加密证书私钥密文进行解密得到加密证书私钥并将其与加密证书对应保存;
具体的,在本实施例中,步骤C包括:
步骤C1:当智能密钥设备接收到服务器通过中间件发送的签名证书和加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据时,将加密证书私钥密文和第一密钥二次密文进行拼接得到第三拼接数据,并对第三拼接数据进行填充得到第五填充数据,使用工作密钥对第五填充数据进行加密;
优选的,在本实施例中,对第三拼接数据进行填充得到第五填充数据为:对第三拼接数据进行PBOC填充得到第五填充数据;使用工作密钥对第五填充数据进行加密为:使用工作密钥对第五填充数据进行CBC加密;
步骤C2:智能密钥设备从加密结果中提取预设长度的数据得到第二校验值;
优选的,在本实施例中,智能密钥设备将加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第二校验值;例如,本实施例中的预设长度为4字节;
步骤C3:智能密钥设备判断提取到的第二校验值与第三校验数据是否相同,是则执行步骤C4,否则报错,结束;
步骤C4:智能密钥设备使用工作密钥对第一密钥二次密文进行解密,如解密成功则得到第一密钥密文,执行步骤C5,如解密失败则报错,结束;
步骤C5:智能密钥设备根据签名证书中的签名公钥检索对应的签名私钥,使用检索到的签名私钥对第一密钥密文进行解密,如解密成功则得到第一密钥,执行步骤C6,如解密失败则报错,结束;
步骤C6:智能密钥设备使用第一密钥对加密证书私钥密文进行解密,如解密成功则得到加密证书私钥,保存加密证书和加密证书私钥;如解密失败则报错,结束。
实施例二
本发明实施例二提供一种密钥导入的实现方法,中间件作为智能密钥设备和服务器之间数据传输的中转站,即中间件接收到智能密钥设备发送来的数据时,会调用第一接口函数对其进行编码成服务器可识别的数据,然后将编码结果发送给服务器;中间件接收到服务器发送来的数据时,会调用第二接口函数将其转换成智能密钥设备可识别的APDU请求并将其发送给智能密钥设备。如图2所示,本实施例方法包括:
步骤S1:当智能密钥设备接收到中间件发送的生成密钥请求时,生成签名密钥对,并将签名密钥对中的签名公钥通过中间件发送给服务器;
具体的,在本实施例中,步骤S1中将签名密钥对中的签名公钥通过中间件发送给服务器包括:智能密钥设备将签名密钥对中的签名公钥发送给中间件,中间件根据签名公钥生成签名证书请求并将其发送给服务器;
步骤S2:服务器保存接收到的签名公钥,生成获取签名公钥密文请求并通过中间件发送给智能密钥设备;
步骤S3:智能密钥设备使用预置的保护密钥对签名公钥进行加密得到签名公钥密文并将其通过中间件发送给服务器;
步骤S4:服务器使用保存的签名公钥对接收到的签名公钥密文进行验证,如验证成功则生成获取工作密钥请求并通过中间件发送给智能密钥设备,如验证失败则报错,结束;
在本实施例中,步骤S4包括:服务器使用保存的保护密钥对接收到的签名公钥进行加密,并判断加密结果是否与接收到的签名公钥密文一致,是则生成获取工作密钥请求并通过中间件发送给智能密钥设备,否则报错,结束;
步骤S5:智能密钥设备生成工作密钥并保存,根据预置的保护密钥和工作密钥生成第二加密数据并将其通过中间件发送给服务器;
在本实施例中,根据预置的保护密钥和工作密钥生成第二加密数据包括:使用预置的保护密钥对工作密钥进行加密生成第一加密数据,从第一加密数据中提取第一校验数据,使用保护密钥对工作密钥和第一校验数据进行加密得到第二加密数据;具体包括:
步骤S51:智能密钥设备使用预置的保护密钥对工作密钥进行加密生成第一加密数据包括:智能密钥设备对工作密钥进行填充得到第一填充数据,使用预置的保护密钥对第一填充数据进行加密得到第一加密数据;
步骤S52:智能密钥设备从第一加密数据中提取预设长度的数据得到第一校验数据;
在本实施例中,智能密钥设备从第一加密数据中提取预设长度的数据得到第一校验数据具体为:智能密钥设备将第一加密数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第一校验数据;
步骤S53:智能密钥设备将第一填充数据、第一校验数据、第一预设数据进行拼接得到第一拼接数据,对第一拼接数据进行填充得到第二填充数据,使用保护密钥对第二填充数据进行加密得到第二加密数据;
步骤S6:服务器使用内部保存的保护密钥对接收到的第二加密数进行验证,如验证成功则从解密结果中提取工作密钥并保存,执行步骤S7,如验证失败则报错,结束;
具体的,本实施例中的步骤S6包括:
步骤S61:服务器使用保存的保护密钥对接收到的第二加密数据进行解密,如解密成功则执行步骤S62,否则报错,结束;
步骤S62:服务器从解密结果中提取第一拼接值,判断第一拼接值的预设位置上的数据是否为第一预设数据,是则执行步骤S63,否则报错,结束;
步骤S63:服务器使用保护密钥对第一拼接值进行加密得到第三加密数据,并从第三加密数据中提取第二校验数据;
步骤S64:服务器判断第二校验数据是否与第一拼接值中的校验数据相同,是则执行步骤S65,否则报错,结束;
步骤S65:服务器从第一拼接值中提取工作密钥并保存;
步骤S7:服务器将中间件发送的签名证书请求转发给数字证书认证中心,并获取数字证书认证中心返回的签名证书数据包;
本实施例中的签名证书数据包包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
步骤S8:服务器使用保存的工作密钥对签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;使用工作密钥对加密证书私钥密文和第一密钥二次密文进行加密,并从加密结果中提取第三校验数据,并将签名证书和加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据通过中间件发送给智能密钥设备;
具体的,在本实施例中,步骤S8包括:
步骤S81:服务器使用保存的工作密钥对签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;
步骤S82:服务器将加密证书私钥密文和第一密钥二次密文进行拼接得到第二拼接数据,并对第二拼接数据进行填充得到第四填充数据;
步骤S83:服务器使用工作密钥对第四填充数据进行加密得到第五加密数据,并从第五加密数据中提取第三校验数据;
步骤S84:服务器并将签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据通过中间件发送给智能密钥设备;
步骤S9:智能密钥设备使用保存的工作密钥对接收到的加密证书私钥密文和第一密钥二次密文进行加密,并从加密结果中提取第二校验值;判断第二校验值与接收到的第三校验数据是否相同,如不相同则报错,结束,如相同则使用工作密钥对第一密钥二次密文进行解密得到第一密钥密文;根据签名证书检索对应的签名私钥,使用检索到的签名私钥对第一密钥密文进行解密得到第一密钥;使用第一密钥对加密证书私钥密文进行解密得到加密证书私钥并将其与加密证书对应保存;
在本实施例中,步骤S9包括:步骤S91:智能密钥设备将接收到的加密证书私钥密文和第一密钥二次密文进行拼接得到第三拼接数据,并对第三拼接数据进行填充得到第五填充数据;使用工作密钥对第五填充数据进行加密;
步骤S92:智能密钥设备从加密结果中提取预设长度的数据得到第二校验值;
具体的,步骤S92为智能密钥设备将加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第二校验值;
步骤S93:智能密钥设备判断第二校验值与接收到的第三校验数据是否相同,如相同则执行步骤S94,如不相同则报错,结束;
步骤S94:智能密钥设备使用工作密钥对第一密钥二次密文进行解密,如解密成功则得到第一密钥密文,执行步骤S95,如解密失败则报错,结束;
步骤S95:智能密钥设备根据签名证书检索对应的签名私钥,使用签名私钥对第一密钥密文进行解密,如解密成功则得到第一密钥,执行步骤S96,如解密失败则报错,结束;
步骤S96:智能密钥设备使用第一密钥对加密证书私钥密文进行解密得到加密证书私钥并将其与加密证书对应保存。
实施例三
本发明实施例三提供一种密钥导入的实现方法,如图3和图4所示,包括:
步骤101:当智能密钥设备接收到中间件的生成密钥请求时,生成签名密钥对,并将签名公钥发送给中间件;
在本实施例中,签名密钥对包括签名公钥和签名私钥;
例如,本实施例中的签名公钥:DADFD5C7ACBD0DAC7B8E629F5B1BF1BAAFAFE015E650D30E4EC327F62B4D535B396E09F9812821D215F767FA6AD8D12F5FACF84D1CF097BAE3F5E3909DB25536;
优选的,在步骤101中,智能密钥设备将签名公钥与智能密钥设备标识发送给中间件;
步骤102:中间件根据签名公钥生成签名证书请求,调用第一接口函数将签名证书请求进行编码并将编码后的签名证书请求发送给服务器;
优选的,本实施例中的编码方式可以为Base64编码;
例如,本实施例中的签名证书请求为:3081D9307F020120301D310E300C06035504030C057465737431310B300906035504060C02434E3059301306072A8648CE3D020106082A811CCF5501822D03422004DADFD5C7ACBD0DAC7B8E629F5B1BF1BAAFAFE015E650D30E4EC327F62B4D535B396E09F9812821D215F767FA6AD8D12F5FACF84D1CF097BAE3F5E3909DB25536A020300C06082A811CCF5501837505200348203045022120FE16DE643DC06D177FE3DF68BAA28417414F5638A699A322F438011EBA8CF257022020A3BFB00B0D7D604302504D84125B353BE4E7FB98CF934F4FEEE5DFB5100DEA;
优选的,在步骤102中,中间件根据签名公钥与智能密钥设备标识生成签名证书请求;
步骤103:服务器保存接收到的签名证书请求,生成获取签名公钥密文请求并将其发送给中间件;
优选的,步骤103中服务器保存的签名证书请求包括智能密钥设备标识和与其对应的签名公钥;
步骤104:中间件调用第二接口函数将接收到的获取签名公钥密文请求转化成的APDU格式的请求并将其发送给智能密钥设备;
步骤105:智能密钥设备接收到获取签名公钥密文请求后,使用预置的保护密钥对签名公钥进行加密并将加密得到的签名公钥密文发送给中间件;
例如,本实施例中的保护密钥为:保护密钥为:4DF522B5A993F1444638BBAD702631F3;本实施例中的签名公钥:DADFD5C7ACBD0DAC7B8E629F5B1BF1BAAFAFE015E650D30E4EC327F62B4D535B396E09F9812821D215F767FA6AD8D12F5FACF84D1CF097BAE3F5E3909DB25536;签名公钥密文为:866E079AF953F2BB702803B1A502C21385EEF1105EEE6DFB63911E33AEFDFD37DFDE3EDDBC8CC71F49B67272167B3F4B4C0EE2967B192DDFFC7DCC76AC309431;
步骤106:中间件调用第一接口函数对接收到的签名公钥密文进行编码并将编码后的签名公钥密文发送给服务器;
步骤107:服务器保存接收到的签名公钥密文;
步骤108:服务器使用内部存储的保护密钥对签名证书请求中的签名公钥进行加密,并判断加密结果和保存的签名公钥密文是否一致,是则执行步骤109,否则报错,结束;
优选的,服务器中存储的保护密钥与设备序列号一一对应保存,步骤105中智能密钥设备将智能密钥设备标识与签名公钥密钥发送给中间件,步骤108之前还包括:服务器使用接收到的智能密钥设备标识检索对应的保护密钥,如检索到则执行步骤108,否则报错,结束;
步骤109:服务器生成获取工作密钥请求并将其发送给中间件;
步骤110:中间件调用第二接口函数将接收到的获取工作密钥请求转化成APDU格式的获取工作密钥请求并将其发送给智能密钥设备;
步骤111:智能密钥设备接收到获取工作密钥请求后生成工作密钥并保存,对工作密钥进行填充得到第一填充数据;
优选的,在本实施例中,工作密钥为16字节的随机数,填充方式为PBOC;并对工作密钥进行填充包括为:在工作密钥的低位补充0x80 00 00 00 00 0000 00 00 00 0000 0000 00 00;例如,本实施例中的工作密钥为AA422C4A71892B5A8891720150BE4738,第一填充数据为AA422C4A71892B5A8891720150BE4738 80 00 00 00 00 0000 00 00 00 0000 0000 00 00;
步骤112:智能密钥设备使用预置的保护密钥对第一填充数据进行加密得到第一加密数据,并从第一加密数据中提取第一校验数据;
具体的,在本实施例中,步骤112包括:智能密钥设备使用预置的保护密钥对第一填充数据进行加密得到第一加密数据,从第一加密数据中提取预设长度的数据得到第一校验数据;优选的,第一加密数据为2预设长度数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第一校验数据,加密方式为3DES CBC模式;
例如,本实施例中的保护密钥为:4DF522B5A993F1444638BBAD702631F3;第一填充数据为AA422C4A71892B5A8891720150BE4738 80 00 00 00 00 00 00 00 00 00 00 00 0000 00 00;第一校验数据为38E4AEDC;
步骤113:智能密钥设备将第一填充数据、第一校验数据、第一预设数据进行拼接得到第一拼接数据;
优选的,本实施例中的第一预设数据为0x04 04 04 04;例如,拼接得到的第一拼接数据为AA422C4A71892B5A8891720150BE47388000000000000000000000000000000038E4AEDC04040404;
步骤114:智能密钥设备对第一拼接数据进行填充得到第二填充数据;
优选的,在本实施例中,该步骤中的填充方式为PKCS5,步骤114具体为:智能密钥设备在第一拼接数据之后填充0x08 08 08 08;
例如,在本实施例中,填充得到的第二填充数据为AA422C4A71892B5A8891720150BE47388000000000000000000000000000000038E4AEDC040404040808080808080808;
步骤115:智能密钥设备使用保护密钥对第二填充数据进行加密得到第二加密数据;
优选的,在本实施例中,该步骤中的加密方式为3DES ECB,步骤115具体为:智能密钥设备使用保护密钥对第二填充数据进行3DES ECB加密得到第二加密数据;
例如,在本实施例中,保护密钥为:4DF522B5A993F1444638BBAD702631F3;加密得到的第二加密数据为8997F87A17859157CBB9A56E4C7F5B3CC3154090C4FDA3C85BFF6873CE066D6F;
步骤116:智能密钥设备将第二加密数据发送给中间件;
步骤117:中间件调用第一接口函数对接收到的第二加密数据进行编码并将编码后的第二加密数据发送给服务器;
步骤118:服务器保存接收到的第二加密数据,使用保护密钥对第二加密数据进行解密,如解密成功则执行步骤119,如解密失败则报错,结束;
步骤119:服务器从解密结果中提取第一拼接值,判断第一拼接值的低位预设长度数据是否为第一预设数据,是则执行步骤120,否则报错,结束;
具体的,本实施例中的第一拼接值包括填充数据、校验数据、预设数据;
步骤120:服务器使用保护密钥对第一拼接值中的填充数据进行加密得到第三加密数据,并从第三加密数据中提取第二校验数据;
具体的,本实施例中该步骤的实现过程与步骤112相同,在此不再赘述;
步骤121:服务器判断第二校验数据与第一拼接值中的校验数据是否相同,是则执行步骤122,否则报错,结束;
步骤122:服务器从第一拼接值的填充数据中获取工作密钥并保存;
步骤123:服务器将签名证书请求发送给CA(英文全称:Certificate Authority,中文全称:数字证书认证中心);
步骤124:服务器接收CA返回的数据包;
具体的,在本实施例中,CA返回的数据包中包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
如本实施例中的第一密钥为3AE2527C7D288DDF56DDF4533BA962DA,第一密钥加密的加密证书私钥密文206119BB85EB5E5E071DB2785D4D929DB49AD9B649E64B31D5DFBAEB13098F7A215A999800019A8C553E448903978E11215A999800019A8C553E448903978E11,签名公钥加密的第一密钥密文:860CAE6275D1A363718A966AFB3D0E1243F341E1B67F78973A7A95C8BE66A25ECD7B2845D8AC703A0E2560626AF6E1922B703DB5197D08FB1986031C81C2C1AEC86F4D57C1E7BA2C9E92A78802A9D67D32E226DA3278E90C29E4D47CD58FA01D30C82F2F2786564327A823D526C9DF12;
步骤125:服务器使用工作密钥对数据包中的由签名公钥加密的第一密钥密文进行加密得到第一密钥二次密文;
具体的,本实施例中,使用工作密钥对第一密钥密文进行加密得到第一密钥二次密文包括:服务器对第一密钥密文进行填充,使用工作密钥对填充结果进行加密得到第一密钥二次密文;优选的,填充方式为PKCS#5,加密方式为3DES ECB模式;
例如,在本实施例中,第一密钥密文为866E079AF953F2BB702803B1A502C21385EEF1105EEE6DFB63911E33AEFDFD37DFDE3EDDBC8CC71F49B67272167B3F4B4C0EE2967B192DDFFC7DCC76AC309431206119BB85EB5E5E071DB2785D4D929DB49AD9B649E64B31D5DFBAEB13098F7A215A999800019A8C553E448903978E11215A999800019A8C553E448903978E11860CAE6275D1A363718A966AFB3D0E1243F341E1B67F78973A7A95C8BE66A25ECD7B2845D8AC703A0E2560626AF6E1922B703DB5197D08FB1986031C81C2C1AEC86F4D57C1E7BA2C9E92A78802A9D67D32E226DA3278E90C29E4D47CD58FA01D30C82F2F2786564327A823D526C9DF12;填充结果为860CAE6275D1A363718A966AFB3D0E1243F341E1B67F78973A7A95C8BE66A25ECD7B2845D8AC703A0E2560626AF6E1922B703DB5197D08FB1986031C81C2C1AEC86F4D57C1E7BA2C9E92A78802A9D67D32E226DA3278E90C29E4D47CD58FA01D30C82F2F2786564327A823D526C9DF120808080808080808;加密得到第一密钥二次密文为66AAB02ADB560CD355BEC7E08CED313F42F3CB63D9043295D9DF9D8BAA5E8CCB60411EFFB539455BD4CDEC04142B04B000DE03445D8175A5CABDAE26475379A01C8EFC11BC56BF1FEFA0BA3259213FE1FD6702F4F324AD26E56074B4C17CB84B8EC33A2DE0F0527DB64365102D22391B926DA1B460CCCD43;
步骤126:服务器将数据包中的加密证书私钥密文和第一密钥二次密文进行拼接得到第二拼接数据,并对第二拼接数据进行填充得到第四填充数据;
优选的,在本实施例中,填充方式为PBOC,对第二拼接数据进行填充得到第四填充数据具体为:对第二拼接数据进行PBOC填充得到第四填充数据;
例如,本实施例中的第二拼接数据为:206119BB85EB5E5E071DB2785D4D929DB49AD9B649E64B31D5DFBAEB13098F7A215A999800019A8C553E448903978E11215A999800019A8C553E448903978E1166AAB02ADB560CD355BEC7E08CED313F42F3CB63D9043295D9DF9D8BAA5E8CCB60411EFFB539455BD4CDEC04142B04B000DE03445D8175A5CABDAE26475379A01C8EFC11BC56BF1FEFA0BA3259213FE1FD6702F4F324AD26E56074B4C17CB84B8EC33A2DE0F0527DB64365102D22391B926DA1B460CCCD43;第四填充数据为206119BB85EB5E5E071DB2785D4D929DB49AD9B649E64B31D5DFBAEB13098F7A215A999800019A8C553E448903978E11215A999800019A8C553E448903978E1166AAB02ADB560CD355BEC7E08CED313F42F3CB63D9043295D9DF9D8BAA5E8CCB60411EFFB539455BD4CDEC04142B04B000DE03445D8175A5CABDAE26475379A01C8EFC11BC56BF1FEFA0BA3259213FE1FD6702F4F324AD26E56074B4C17CB84B8EC33A2DE0F0527DB64365102D22391B926DA1B460CCCD438000000000000000;
步骤127:服务器使用工作密钥对第四填充数据进行加密得到第五加密数据,并从第五加密数据中提取第三校验数据;
优选的,该步骤中的加密方式为CBC;具体的,在本实施例中,服务器使用工作密钥对第四填充数据进行CBC加密得到第五加密数据,并从第五加密数据中提取预设长度的数据得到第二校验数据;优选的,第五加密数据为固定长度数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第三校验数据;例如,本实施例中的固定长度为24字节,预设长度为4字节;
例如,本实施例中的第三校验数据为2D BB 44 35;
步骤128:服务器将签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据与算法标识发送给中间件;
具体的,在本实施例中,发送中间件的数据为86 6E 07 9A F9 53 F2 BB 70 2803 B1 A5 02 C2 13 85 EE F1 10 5E EE 6D FB 63 91 1E 33 AE FD FD 37 DF DE 3E DDBC 8C C7 1F 49 B6 72 72 16 7B 3F 4B 4C 0E E2 96 7B 19 2D DF FC 7D CC 76 AC 3094 31 20 61 19 BB 85 EB 5E 5E 07 1D B2 78 5D 4D 92 9D B4 9A D9 B6 49 E6 4B 31D5 DF BA EB 13 09 8F 7A 21 5A 99 98 00 01 9A 8C 55 3E 44 89 03 97 8E 11 21 5A99 98 00 01 9A 8C 55 3E 44 89 03 97 8E 11 66 AA B0 2A DB 56 0C D3 55 BE C7 E08C ED 31 3F 42 F3 CB 63 D9 04 32 95 D9 DF 9D 8B AA 5E 8C CB 60 41 1E FF B5 3945 5B D4 CD EC 04 14 2B 04 B0 00 DE 03 44 5D 81 75 A5 CA BD AE 26 47 53 79 A01C 8E FC 11 BC 56 BF 1F EF A0 BA 32 59 21 3F E1 FD 67 02 F4 F3 24 AD 26 E5 6074 B4 C1 7C B8 4B 8E C3 3A 2D E0 F0 52 7D B6 43 65 10 2D 22 39 1B 92 6D A1 B460 CC CD 43 2D BB 44 35 00 FF 01 01 04 86 6E 07 9A F9 53 F2 BB 70 28 03 B1 A502 C2 13 85 EE F1 10 5E EE 6D FB 63 91 1E 33 AE FD FD 37 DF DE 3E DD BC 8C C71F 49 B6 72 72 16 7B 3F 4B 4C 0E E2 96 7B 19 2D DF FC 7D CC 76 AC 30 94 31 2061 19 BB 85 EB 5E 5E 07 1D B2 78 5D 4D 92 9D B4 9A D9 B6 49 E6 4B 31 D5 DF BAEB 13 09 8F 7A 21 5A 99 98 00 01 9A 8C 55 3E 44 89 03 97 8E 11 21 5A 99 98 0001 9A 8C 55 3E 44 89 03 97 8E 11 66 AA B0 2A DB 56 0C D3 55 BE C7 E0 8C ED 313F 42 F3 CB 63 D9 04 32 95 D9 DF 9D 8B AA 5E 8C CB 60 41 1E FF B5 39 45 5B D4CD EC 04 14 2B 04 B0 00 DE 03 44 5D 81 75 A5 CA BD AE 26 47 53 79 A0 1C 8E FC11 BC 56 BF 1F EF A0 BA 32 59 21 3F E1 FD 67 02 F4 F3 24 AD 26 E5 60 74 B4 C17C B8 4B 8E C3 3A 2D E0 F0 52 7D B6 43 65 10 2D 22 39 1B 92 6D A1 B4 60 CC CD43 2D BB 44 35;
具体的,在本实施例中,服务器将签名证书作为第一参数、将加密证书、算法标识、加密证书私钥密文、第一密钥二次密文和第三校验数据顺序拼接并将拼结果作为第二参数,生成的随机数作为第三参数,通过发送函数将第一参数、第二参数、第三参数发送给中间件;
步骤129:中间件根据接收到的签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据转换成APDU格式的请求并将其发送给智能密钥设备;
步骤130:智能密钥设备将加密证书私钥密文和第一密钥二次密文进行拼接得到第三拼接数据,并对第三拼接数据进行填充得到第五填充数据;
在本实施例中,步骤130的实现过程与步骤126相同,在此不再赘述;
步骤131:智能密钥设备使用工作密钥对第五填充数据进行加密,并从加密结果中提取第二校验值;
具体的,本实施例中步骤131的实现过程与步骤127相同,在此不再赘述;
步骤132:智能密钥设备判断提取到的第二校验值与第三校验数据是否相同,是则执行步骤133,否则报错,结束;
步骤133:智能密钥设备使用工作密钥对第一密钥二次密文进行解密得到第一密钥密文;
步骤134:智能密钥设备根据APDU请求中签名证书中的签名公钥获取对应的签名私钥,使用签名私钥对第一密钥密文进行解密,如解密成功则执行步骤135,如解密失败则报错,结束;
例如:第一密钥为3AE2527C7D288DDF56DDF4533BA962DA;
步骤135:智能密钥设备使用解密得到的第一密钥对APDU请求中的加密证书私钥密文进行解密,如解密成功则得到加密证书私钥,保存加密证书和加密证书私钥,如解密失败则报错,结束。
例如,本实施例中的加密证书私钥为:56733D000E7F0EBDFBF77AFC347DE8584105896B70954E8E800073D0FF68ABE9。
实施例四
本发明实施例四提供一种密钥导入的实现方法,本实施中的终端包括智能密钥设备和中间件,如图5和图6所示,本实施例的方法包括:
步骤201:终端生成签名密钥对,根据签名密钥对中的签名公钥生成签名证书请求;
步骤202:终端调用第一接口函数对签名证书请求进行编码并将编码后的签名证书请求发送给服务器;
优选的,本实施例中的编码方式可以为Base64编码或HEX编码;
步骤203:服务器保存接收到签名证书请求,生成获取签名公钥密文请求并将其发送给终端;
步骤204:终端接收到获取签名公钥密文请求后,使用预置的保护密钥对签名公钥进行加密得到签名公钥密文;
步骤205:终端调用第一接口函数对签名公钥密文进行编码并将编码后的签名公钥密文发送给服务器;
步骤206:服务器保存接收到的签名公钥密文;
步骤207:服务器使用内部存储的保护密钥对签名证书请求中的签名公钥进行加密,并判断加密结果和保存的签名公钥密文是否一致,是则执行步骤208,否则报错,结束;
步骤208:服务器生成获取工作密钥请求并将其发送给终端;
步骤209:终端接收到获取工作密钥请求后,生成工作密钥并保存,对工作密钥进行填充得到第一填充数据;
优选的,在本实施例中,工作密钥为16字节的随机数;并对工作密钥进行填充包括为:对工作密钥进行PBOC填充,具体为:在工作密钥的低位补充0x80 00 00 00 00;
步骤210:终端使用预置的保护密钥对第一填充数据进行加密得到第一加密数据,并从第一加密数据中提取第一校验数据;
具体的,在本实施例中,步骤210包括:终端使用预置的保护密钥对第一填充数据进行3DES CBC模式的加密得到第一加密数据,从第一加密数据中提取预设长度的数据得到第一校验数据;优选的,第一加密数据为固定长度数据,从高位到低位分为三包数据,依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第一校验数据;例如,本实施例中的固定长度为24字节,预设长度为4字节;
步骤211:终端将第一填充数据、第一校验数据、第一预设数据进行拼接得到第一拼接数据;
优选的,本实施例中的第一预设数据为0x04 04 04 04;
步骤212:终端对第一拼接数据进行填充得到第二填充数据;
优选的,在本实施例中,填充方式为PKCS5,步骤212具体为:终端在第一拼接数据之后填充0x08 08 08 08;
步骤213:终端使用保护密钥对第二填充数据进行加密得到第二加密数据;
优选的,在本实施例中,加密方式为3DES ECB,步骤213为:终端使用保护密钥对第二填充数据进行3DES ECB加密得到第二加密数据;
步骤214:终端调用第一接口函数对第二加密数据进行编码并将编码后的第二加密数据发送给服务器;
步骤215:服务器保存接收到的第二加密数据,使用保护密钥对第二加密数据进行解密,如解密成功则执行步骤216,如解密失败则报错,结束;
步骤216:服务器从解密结果中提取第一拼接值,判断第一拼接值的低位预设长度数据是否为第一预设数据,是则执行步骤217,否则报错,结束;
步骤217:服务器使用保护密钥对第一拼接值中的填充数据进行加密得到第三加密数据,并从第三加密数据中提取第二校验数据;
具体的,本实施例中该步骤的实现过程与步骤210相同,在此不再赘述;
步骤218:服务器判断第二校验数据与第一拼接值中的校验数据是否相同,是则执行步骤219,否则报错,结束;
步骤219:服务器从第一拼接值的填充数据中获取工作密钥并保存;
步骤220:服务器将签名证书请求发送给CA(英文全称:Certificate Authority,中文全称:是数字证书认证中心);
步骤221:服务器接收CA返回的数据包;
具体的,在本实施例中,CA返回的数据包中包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
步骤222:服务器使用工作密钥对数据包中的由签名公钥加密的第一密钥密文进行加密得到第一密钥二次密文;
步骤223:服务器将数据包中的加密证书私钥密文和第一密钥二次密文进行拼接得到第二拼接数据,并对第二拼接数据进行填充得到第四填充数据;
步骤224:服务器使用工作密钥对第四填充数据进行加密得到第五加密数据,并从第五加密数据中提取第三校验数据;
具体的,在本实施例中,服务器使用工作密钥对第四填充数据进行CBC加密得到第五加密数据,并从第五加密数据中提取预设长度的数据得到第二校验数据;优选的,第五加密数据为固定长度数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第三校验数据
步骤225:服务器将签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据与算法标识发送给终端;
具体的,在本实施例中,服务器将编码后的签名证书作为第一参数、将编码后的加密证书、算法标识、编码后的加密证书私钥密文、编码后的第一密钥二次密文和编码后的第三校验数据顺序拼接并将拼结果作为第二参数,生成的随机数作为第三参数,通过发送函数将第一参数、第二参数、第三参数发送给终端;
步骤226:终端将接收到的加密证书私钥密文和第一密钥二次密文进行拼接得到第三拼接数据,并对第三拼接数据进行填充得到第五填充数据;
在本实施例中,步骤226的实现过程与实施例一中的步骤126相同,在此不再赘述;
步骤227:终端使用工作密钥对第五填充数据进行加密,并从加密结果中提取第二校验值;
具体的,本实施例中步骤227的实现过程与实施例一中的步骤127相同,在此不再赘述;
步骤228:终端判断提取到的第二校验值与第三校验数据是否相同,是则执行步骤229,否则报错,结束;
步骤229:终端使用工作密钥对第一密钥二次密文进行解密得到第一密钥密文;
步骤230:终端根据接收到的签名证书中的签名公钥获取对应的签名私钥,使用签名私钥对第一密钥密文进行解密,如解密成功则执行步骤231,如解密失败则报错,结束;
步骤231:终端使用解密得到的第一密钥对加密证书私钥密文进行解密,如解密成功则得到加密证书私钥,保存加密证书和加密证书私钥,如解密失败则报错,结束。
实施例五
本发明实施例五提供一种密钥导入的实现装置,该装置设置在智能密钥设备中,如图7所示,本实施例的装置包括:
第一接收模块501,用于接收生成密钥请求、获取签名公钥密文请求、获取工作密钥请求,还用于接收签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据;
第一生成模块502,用于在第一接收模块501接收到生成密钥请求之后生成签名密钥对;
第一加密模块503,用于在第一接收模块501接收到获取签名公钥密文请求之后,使用预置的保护密钥对签名公钥进行加密得到签名公钥密文;
第二生成模块504,用于在第一接收模块501接收到获取工作密钥请求之后生成工作密钥并保存;
第三生成模块505,用于根据预置的保护密钥和第二生成模块504生成的工作密钥生成第二加密数据;
具体的,在本实施例中,第三生成模块505包括:
第一加密单元,用于使用预置的保护密钥对工作密钥进行加密生成第一加密数据;
更进一步地,第一加密单元具体用于对工作密钥进行填充得到第一填充数据,使用预置的保护密钥对第一填充数据进行加密得到第一加密数据;
第一提取单元,用于从第一加密单元得到的第一加密数据中提取第一校验数据;
更进一步地,第一提取单元具体用于从第一加密单元得到的第一加密数据中提取预设长度的数据得到第一校验数据;其中,第一提取单元具体用于将第一加密单元得到的第一加密数据从高位到低位依次分为第三包数据、第二包数据、第一包数据,从第一包数据中的高位起提取预设长度数据得到第一校验数据;
第二加密单元,用于使用保护密钥对工作密钥和第一提取单元提取的第一校验数据进行加密得到第二加密数据;
更进一步地,第二加密单元具体用于将第一填充数据、第一校验数据、第一预设数据进行拼接得到第一拼接数据,对第一拼接数据进行填充得到第二填充数据,使用保护密钥对第二填充数据进行加密得到第二加密数据;
第一发送模块506,用于将第一生成模块502生成的签名密钥对中的签名公钥返回,用于将第一加密模块503得到的签名公钥密文返回,用于将第三生成模块505生成的第二加密数据返回;
第二加密模块507,用于在第一接收模块501接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,使用第二生成模块504保存的工作密钥对加密证书私钥密文和第一密钥二次密文进行加密;
在本实施例中,第二加密模块507具体用于在第一接收模块501接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,将加密证书私钥密文和第一密钥二次密文进行拼接得到第三拼接数据,并对第三拼接数据进行填充得到第五填充数据;使用工作密钥对第五填充数据进行加密;
第一提取模块508,用于从第二加密模块507的加密结果中提取第二校验值;
在本实施例中,第一提取模块508具体用于从加密结果中提取预设长度的数据得到第二校验值;更进一步地,第一提取模块508具体用于将加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第二校验值;
第一判断模块509,用于判断第一提取模块508提取到的第二校验值与第一接收模块501接收到的第三校验数据是否相同;
报错模块510,用于当第一判断模块509判断为否时报错;
第一解密模块511,用于当第一判断模块509判断为是时使用第二生成模块504保存的工作密钥对第一接收模块501接收到的第一密钥二次密文进行解密得到第一密钥密文;
第一检索模块512,用于根据第一接收模块501接收到的签名证书检索对应的签名私钥;
第二解密模块513,用于使用第一检索模块512检索到的签名私钥对第一解密模块511解密得到的第一密钥密文进行解密得到第一密钥;
第三解密模块514,用于使用第二解密模块513解密得到的第一密钥对第一接收模块501接收到的加密证书私钥密文进行解密得到加密证书私钥并将其与加密证书对应保存。
实施例六
本发明实施例六提供一种密钥导入的实现系统,如图8所示:包括智能密钥设备6、中间件7和服务器8;智能密钥设备6包括:
第一接收模块601,用于接收中间件7发送的生成密钥请求,还用于接收服务器8通过中间件7发送的获取签名公钥密文请求、获取工作密钥请求,还用于接收服务器8通过中间件7发送的签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据;
第一生成模块602,用于在第一接收模块601接收到生成密钥请求之后,生成签名密钥对;
第一加密模块603,用于在第一接收模块601接收到获取签名公钥密文请求之后,使用预置的保护密钥对签名公钥进行加密得到签名公钥密文;
第二生成模块604,用于在第一接收模块601接收到获取工作密钥请求之后生成工作密钥并保存;
第三生成模块605,用于根据预置的保护密钥和第二生成模块604生成的工作密钥生成第二加密数据;
具体的,在本实施例中,第三生成模块605包括:
第二加密单元,用于使用预置的保护密钥对工作密钥进行加密生成第一加密数据;
进一步地,第二加密单元具体用于对工作密钥进行填充得到第一填充数据,使用预置的保护密钥对第一填充数据进行加密得到第一加密数据;更进一步地,第一提取单元具体用于将第一加密数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第一校验数据;
第一提取单元,用于从第二加密单元生成的第一加密数据中提取第一校验数据;
进一步地,第一提取单元具体用于从第一加密数据中提取预设长度的数据得到第一校验数据;
第三加密单元,用于使用保护密钥对工作密钥和第一校验数据进行加密得到第二加密数据;
进一步地,第三加密单元具体用于将第一填充数据、第一校验数据、第一预设数据进行拼接得到第一拼接数据,对第一拼接数据进行填充得到第二填充数据,使用保护密钥对第二填充数据进行加密得到第二加密数据;
第一发送模块606,用于将第一生成模块602生成的签名密钥对中的签名公钥发送给中间件7,还用于将第一加密模块603得到的签名公钥密文、第三生成模块605生成的第二加密数据通过中间件7发送给服务器8;
第二加密模块607,用于在第一接收模块601接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,使用第二生成模块604保存的工作密钥对加密证书私钥密文和第一密钥二次密文进行加密;
在本实施例中,第二加密模块607具体用于将第一接收模块601接收到的加密证书私钥密文和第一密钥二次密文进行拼接得到第三拼接数据,并对第三拼接数据进行填充得到第五填充数据;使用工作密钥对第五填充数据进行加密;
第一提取模块608,用于从第二加密模块607的加密结果中提取第二校验值;
进一步地,第一提取模块608具体用于从第二加密模块607的加密结果中提取预设长度的数据得到第二校验值;更进一步地,第一提取模块608具体用于将加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从第一包数据中的高位起提取预设长度数据得到第二校验值;
第一判断模块609,用于判断第一提取模块608提取到的第二校验值与第一接收模块601接收到的第三校验数据是否相同;
第一报错模块610,用于当第一判断模块609判断为否时报错;
第一解密模块611,用于当第一判断模块609判断为是时使用第二生成模块604保存的工作密钥对第一接收模块601接收到的第一密钥二次密文进行解密得到第一密钥密文;
第一检索模块612,用于根据第一接收模块601接收到的签名证书检索对应的签名私钥;
第二解密模块613,用于使用第一检索模块612检索到的签名私钥对第一解密模块611解密得到的第一密钥密文进行解密得到第一密钥;
第三解密模块614,用于使用第二解密模块613解密得到的第一密钥对第一接收模块601接收到的加密证书私钥密文进行解密得到加密证书私钥并将其与加密证书对应保存;
中间件7用于接收智能密钥设备6发送的签名公钥,根据签名公钥生成签名证书请求并将其发送给服务器8;
服务器8包括:
第二接收模块801,用于接收智能密钥设备6通过中间件7发送的签名公钥、签名公钥密文、第二加密数据,还用于接收中间件7发送的签名证书请求;
第一保存模块802,用于保存第二接收模块801接收到的签名公钥;
第四生成模块803,用于在第一保存模块802保存签名公钥完成之后生成获取签名公钥密文请求;
第一验证模块804,用于使用第一保存模块802保存的签名公钥对第二接收模块801接收到的签名公钥密文进行验证;
在本实施例中,第一验证模块804包括:
第一加密单元,用于使用第一保存模块802保存的保护密钥对接收到的签名公钥进行加密;
第一判断单元,用于判断第一加密单元加密得到的加密结果是否与第二接收模块801接收到的签名公钥密文一致,是则验证成功,否则验证失败;
第五生成模块805,用于当第一验证模块804验证成功时生成获取工作密钥请求;
第二验证模块806,用于使用内部保存的保护密钥对第二接收模块801接收到的第二加密数据进行验证;
具体的,在本实施例中,第二验证模块806包括:
第一解密单元,用于使用保存的保护密钥对第二接收模块801接收到的第二加密数据进行解密;
提取判断单元,用于当第一解密单元解密成功时从解密结果中提取第一拼接值,判断第一拼接值的预设位置上的数据是否为第一预设数据;
加密提取单元,用于当提取判断单元判断为是时使用保护密钥对提取判断单元中的第一拼接值进行加密得到第三加密数据,并从第三加密数据中提取第二校验数据;
第二判断单元,用于判断加密提取单元提取的第二校验数据是否与提取判断单元提取的第一拼接值中的校验数据相同;
提取保存单元,用于当第二判断单元判断为是时从提取判断单元提取的第一拼接值中提取工作密钥并保存;
第二报错模块还用于当第一解密单元解密失败时、提取判断单元判断为否时和第二判断单元判断为否时报错;
提取保存模块807,用于当第二验证模块806验证成功时从第二验证模块806的验证结果中提取工作密钥并保存;
第二报错模块808,用于当第一验证模块804验证失败时报错;用于当第二验证模块806验证失败时报错;
第一获取模块809,用于在第二发送模块813将签名证书请求发送给数字证书认证中心之后,获取数字证书认证中心返回的签名证书数据包;签名证书数据包包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
第三加密模块810,用于使用保存的工作密钥对第一获取模块809获取的签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;
第四加密模块811,用于使用保存的工作密钥对第一获取模块809获取的加密证书私钥密文和第三加密模块810加密得到的第一密钥二次密文进行加密得到第五加密数据;
在本实施例中,第四加密模块811具体用于将第一获取模块809获取的加密证书私钥密文和第三加密模块810加密得到的第一密钥二次密文进行拼接得到第二拼接数据,并对第二拼接数据进行填充得到第四填充数据,使用工作密钥对第四填充数据进行加密得到第五加密数据;
第二提取模块812,用于从第四加密模块811加密得到的第五加密数据中提取第三校验数据;
第二发送模块813,用于将第四生成模块803生成的获取签名公钥密文请求、第五生成模块805生成的获取工作密钥请求、第一获取模块809获取的签名证书和加密证书和加密证书私钥密文、第三加密模块810加密得到的第一密钥二次密文、第二提取模块812提取的第三校验数据通过中间件7发送给智能密钥设备6。
在本实施例中,第一发送模块606具体用于将智能密钥设备标识和签名密钥对中的签名公钥、智能密钥设备标识和第一加密模块得到的签名公钥密文、第三生成模块605生成的第二加密数据通过中间件7发送给服务器8;
第二接收模块801具体用于接收智能密钥设备6通过中间件7发送的和智能密钥设备标识和签名公钥、智能密钥设备标识和签名公钥密文、第二加密数据,还用于接收中间件7发送的签名证书请求;
第一保存模块802具体用于对应保存第二接口模块801接收到的签名公钥和智能密钥设备标识;
服务器还8包括:第二检索模块,用于根据第二接收模块801接收到的智能密钥标识检索对应的保存的签名公钥;
第一验证模块804具体用于当第二检索模块检索到对应的保存的签名公钥时,使用保护密钥对第二接收模块801接收到的第二加密数据进行验证;
第二报错模块808还用于当第二检索模块未检索到对应的保存的签名公钥时报错。
在本发明实施例中,智能密钥设备出厂时设置默认的服务器密钥,智能密钥设备提交给银行后,银行对智能密钥设备进行初始化操作,修改默认的服务器密钥,导入密钥时,智能密钥设备生成工作密钥,对待导入的密钥进行加密算MAC的方式,保证导入数据的安全性,防止恶意攻击。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (45)

1.一种密钥导入的实现方法,其特征在于,包括:
步骤P:当智能密钥设备接收到生成密钥请求之后生成签名密钥对,并将所述签名密钥对中的签名公钥返回;
步骤A:当智能密钥设备接收到获取签名公钥密文请求之后,使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文,并将所述签名公钥密文返回;
步骤B:当智能密钥设备接收到获取工作密钥请求之后生成工作密钥并保存,根据预置的保护密钥和所述工作密钥生成第二加密数据,并将所述第二加密数据返回;
步骤C:当智能密钥设备接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据时,使用保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密,并从加密结果中提取第二校验值;判断所述第二校验值与接收到的所述第三校验数据是否相同,如不相同则报错,结束,如相同则使用保存的所述工作密钥对所述第一密钥二次密文进行解密得到第一密钥密文;根据所述签名证书检索对应的签名私钥,使用检索到的签名私钥对所述第一密钥密文进行解密得到第一密钥;使用所述第一密钥对所述加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存。
2.如权利要求1所述的方法,其特征在于,所述根据预置的保护密钥和所述工作密钥生成第二加密数据包括:使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据,从所述第一加密数据中提取第一校验数据,使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据。
3.如权利要求2所述的方法,其特征在于,所述使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据,具体为:所述智能密钥设备对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
4.如权利要求3所述的方法,其特征在于,所述使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据,具体包括:所述智能密钥设备将所述第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
5.如权利要求2所述的方法,其特征在于,所述从所述第一加密数据中提取第一校验数据包括:所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据。
6.如权利要求5所述的方法,其特征在于,所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据具体为:所述智能密钥设备将所述第一加密数据从高位到低位依次分为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到所述第一校验数据。
7.如权利要求1所述的方法,其特征在于,所述步骤C中使用保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密包括:所述智能密钥设备将所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
8.如权利要求1所述的方法,其特征在于,所述步骤C中从加密结果中提取第二校验值包括:所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值。
9.如权利要求8所述的方法,其特征在于,所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值具体为:所述智能密钥设备将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
10.一种密钥导入的实现方法,其特征在于,包括:
步骤S1:当智能密钥设备接收到中间件发送的生成密钥请求时,生成签名密钥对,将所述签名密钥对中的签名公钥通过所述中间件发送给服务器;
步骤S2:所述服务器保存接收到的签名公钥,生成获取签名公钥密文请求并通过所述中间件发送给所述智能密钥设备;
步骤S3:所述智能密钥设备使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文,将所述签名公钥密文通过所述中间件发送给所述服务器;
步骤S4:所述服务器使用保存的保护密钥和保存的签名公钥对接收到的签名公钥密文进行验证,如验证成功则生成获取工作密钥请求并通过所述中间件发送给所述智能密钥设备,如验证失败则报错,结束;
步骤S5:所述智能密钥设备生成工作密钥并保存,根据预置的保护密钥和所述工作密钥生成第二加密数据并将其通过所述中间件发送给所述服务器;
步骤S6:所述服务器使用保存的保护密钥对接收到的所述第二加密数据进行验证,如验证成功则从验证结果中提取工作密钥并保存,执行步骤S7,如验证失败则报错,结束;
步骤S7:所述服务器将所述中间件发送的签名证书请求转发给数字证书认证中心,并获取所述数字证书认证中心返回的签名证书数据包;所述签名证书数据包包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
步骤S8:所述服务器使用保存的工作密钥对所述签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;使用所述工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密得到第五加密数据,并从所述第五加密数据中提取第三校验数据,并将所述签名证书和加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据通过所述中间件发送给所述智能密钥设备;
步骤S9:所述智能密钥设备使用保存的所述工作密钥对接收到的所述加密证书私钥密文和所述第一密钥二次密文进行加密,并从加密结果中提取第二校验值;判断所述第二校验值与接收到的所述第三校验数据是否相同,如不相同则报错,结束,如相同则使用所述工作密钥对所述第一密钥二次密文进行解密得到第一密钥密文;根据所述签名证书检索对应的签名私钥,使用检索到的所述签名私钥对所述第一密钥密文进行解密得到第一密钥;使用所述第一密钥对所述加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存。
11.如权利要求10所述的方法,其特征在于,所述步骤S1中将所述签名密钥对中的签名公钥通过所述中间件发送给服务器包括:所述智能密钥设备将签名密钥对中的签名公钥发送给所述中间件,所述中间件根据所述签名公钥生成所述签名证书请求并将其发送给服务器。
12.如权利要求10所述的方法,其特征在于,所述S1中将所述签名密钥对中的签名公钥通过所述中间件发送给服务器,具体包括:所述智能密钥设备将签名密钥对中的签名公钥和智能密钥设备标识通过所述中间件发送给服务器;
所述步骤S2中所述服务器保存接收到的签名公钥,具体包括:所述服务器对应保存接收到的签名公钥和智能密钥设备标识;
所述S3中将所述签名公钥密文通过所述中间件发送给所述服务器,具体包括:所述智能密钥设备将所述签名公钥密文和智能密钥设备标识通过所述中间件发送给所述服务器;
所述步骤S4之前还包括:所述服务器根据接收到的智能密钥标识检索对应的保存的签名公钥,如检索到则执行步骤S4,如未检索到则报错,结束。
13.如权利要求10所述的方法,其特征在于,所述步骤S4包括:所述服务器使用保存的保护密钥对保存的所述签名公钥进行加密,并判断加密结果是否与接收到的签名公钥密文一致,是则生成获取工作密钥请求并通过中间件发送给所述智能密钥设备,否则报错,结束。
14.如权利要求10所述的方法,其特征在于,所述步骤S5中根据预置的保护密钥和所述工作密钥生成第二加密数据包括:使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据,从所述第一加密数据中提取第一校验数据,使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据。
15.如权利要求14所述的方法,其特征在于,所述使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据包括:所述智能密钥设备对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
16.如权利要求14所述的方法,其特征在于,所述使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据,具体为:所述智能密钥设备将第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
17.如权利要求14所述的方法,其特征在于,所述从所述第一加密数据中提取第一校验数据包括:所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据。
18.如权利要求17所述的方法,其特征在于,所述智能密钥设备从所述第一加密数据中提取预设长度的数据得到第一校验数据具体为:所述智能密钥设备将所述第一加密数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第一校验数据。
19.如权利要求10所述的方法,其特征在于,所述步骤S6包括:
步骤S61:所述服务器使用保存的保护密钥对接收到的所述第二加密数据进行解密,如解密成功则执行步骤S62,否则报错,结束;
步骤S62:所述服务器从解密结果中提取第一拼接值,判断所述第一拼接值的预设位置上的数据是否为第一预设数据,是则执行步骤S63,否则报错,结束;
步骤S63:所述服务器使用所述保护密钥对所述第一拼接值进行加密得到第三加密数据,并从所述第三加密数据中提取第二校验数据;
步骤S64:所述服务器判断所述第二校验数据是否与所述第一拼接值中的校验数据相同,是则执行步骤S65,否则报错,结束;
步骤S65:所述服务器从所述第一拼接值中提取工作密钥并保存。
20.如权利要求10所述的方法,其特征在于,所述步骤S8包括:
步骤S81:所述服务器使用保存的工作密钥对所述签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;
步骤S82:所述服务器将所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第二拼接数据,并对所述第二拼接数据进行填充得到第四填充数据;
步骤S83:所述服务器使用所述工作密钥对所述第四填充数据进行加密得到第五加密数据,并从所述第五加密数据中提取第三校验数据;
步骤S84:所述服务器并将所述签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据通过所述中间件发送给所述智能密钥设备。
21.如权利要求10所述的方法,其特征在于,所述步骤S9中使用保存的所述工作密钥对接收到的所述加密证书私钥密文和所述第一密钥二次密文进行加密包括:所述智能密钥设备将接收到的所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
22.如权利要求10所述的方法,其特征在于,所述步骤S9中从加密结果中提取第二校验值包括:所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值。
23.如权利要求22所述的方法,其特征在于,所述智能密钥设备从加密结果中提取预设长度的数据得到第二校验值具体为:所述智能密钥设备将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
24.一种密钥导入的实现装置,其特征在于,所述装置设置在智能密钥设备中,所述装置包括:
第一接收模块,用于接收生成密钥请求、获取签名公钥密文请求、获取工作密钥请求,还用于接收签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据;
第一生成模块,用于在所述第一接收模块接收到生成密钥请求之后生成签名密钥对;
第一加密模块,用于在所述第一接收模块接收到获取签名公钥密文请求之后,使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文;
第二生成模块,用于在所述第一接收模块接收到获取工作密钥请求之后生成工作密钥并保存;
第三生成模块,用于根据预置的保护密钥和所述第二生成模块生成的工作密钥生成第二加密数据;
第一发送模块,用于将所述第一生成模块生成的签名密钥对中的签名公钥返回,用于将所述第一加密模块得到的签名公钥密文返回,用于将所述第三生成模块生成的所述第二加密数据返回;
第二加密模块,用于在所述第一接收模块接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,使用所述第二生成模块保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密;
第一提取模块,用于从所述第二加密模块的加密结果中提取第二校验值;
第一判断模块,用于判断所述第一提取模块提取到的第二校验值与所述第一接收模块接收到的所述第三校验数据是否相同;
报错模块,用于当所述第一判断模块判断为否时报错;
第一解密模块,用于当所述第一判断模块判断为是时使用所述第二生成模块保存的所述工作密钥对所述第一接收模块接收到的第一密钥二次密文进行解密得到第一密钥密文;
第一检索模块,用于根据所述第一接收模块接收到的签名证书检索对应的签名私钥;
第二解密模块,用于使用所述第一检索模块检索到的签名私钥对所述第一解密模块解密得到的第一密钥密文进行解密得到第一密钥;
第三解密模块,用于使用所述第二解密模块解密得到的第一密钥对所述第一接收模块接收到的加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存。
25.如权利要求24所述的装置,其特征在于,所述第三生成模块包括:
第一加密单元,用于使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据;
第一提取单元,用于从所述第一加密单元得到的第一加密数据中提取第一校验数据;
第二加密单元,用于使用所述保护密钥对所述工作密钥和所述第一提取单元提取的第一校验数据进行加密得到第二加密数据。
26.如权利要求25所述的装置,其特征在于,所述第一加密单元具体用于对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
27.如权利要求26所述的装置,其特征在于,所述第二加密单元具体用于将所述第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
28.如权利要求25所述的装置,其特征在于,所述第一提取单元具体用于从所述第一加密单元得到的第一加密数据中提取预设长度的数据得到第一校验数据。
29.如权利要求28所述的装置,其特征在于,所述第一提取单元具体用于将所述第一加密单元得到的第一加密数据从高位到低位依次分为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到所述第一校验数据。
30.如权利要求24所述的装置,其特征在于,所述第二加密模块具体用于在所述第一接收模块接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,将所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
31.如权利要求24所述的装置,其特征在于,所述第一提取模块具体用于从加密结果中提取预设长度的数据得到第二校验值。
32.如权利要求31所述的装置,其特征在于,所述第一提取模块具体用于将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
33.一种密钥导入的实现系统,其特征在于,包括智能密钥设备、中间件和服务器;所述智能密钥设备包括:
第一接收模块,用于接收所述中间件发送的生成密钥请求,还用于接收所述服务器通过所述中间件发送的获取签名公钥密文请求、获取工作密钥请求,还用于接收所述服务器通过所述中间件发送的签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据;
第一生成模块,用于在所述第一接收模块接收到生成密钥请求之后,生成签名密钥对;
第一加密模块,用于在所述第一接收模块接收到获取签名公钥密文请求之后,使用预置的保护密钥对所述签名公钥进行加密得到签名公钥密文;
第二生成模块,用于在所述第一接收模块接收到获取工作密钥请求之后生成工作密钥并保存;
第三生成模块,用于根据预置的保护密钥和所述第二生成模块生成的工作密钥生成第二加密数据;
第一发送模块,用于将所述第一生成模块生成的签名密钥对中的签名公钥发送给所述中间件,还用于将所述第一加密模块得到的签名公钥密文、所述第三生成模块生成的所述第二加密数据通过所述中间件发送给所述服务器;
第二加密模块,用于在所述第一接收模块接收到签名证书、加密证书、加密证书私钥密文、第一密钥二次密文和第三校验数据之后,使用所述第二生成模块保存的工作密钥对所述加密证书私钥密文和所述第一密钥二次密文进行加密;
第一提取模块,用于从所述第二加密模块的加密结果中提取第二校验值;
第一判断模块,用于判断所述第一提取模块提取到的第二校验值与所述第一接收模块接收到的所述第三校验数据是否相同;
第一报错模块,用于当所述第一判断模块判断为否时报错;
第一解密模块,用于当所述第一判断模块判断为是时使用所述第二生成模块保存的所述工作密钥对所述第一接收模块接收到的第一密钥二次密文进行解密得到第一密钥密文;
第一检索模块,用于根据所述第一接收模块接收到的签名证书检索对应的签名私钥;
第二解密模块,用于使用所述第一检索模块检索到的签名私钥对所述第一解密模块解密得到的第一密钥密文进行解密得到第一密钥;
第三解密模块,用于使用所述第二解密模块解密得到的第一密钥对所述第一接收模块接收到的加密证书私钥密文进行解密得到加密证书私钥并将其与所述加密证书对应保存;
所述中间件用于接收所述智能密钥设备发送的所述签名公钥,根据所述签名公钥生成签名证书请求并将其发送给所述服务器;
所述服务器包括:
第二接收模块,用于接收所述智能密钥设备通过所述中间件发送的签名公钥、签名公钥密文、第二加密数据,还用于接收所述中间件发送的签名证书请求;
第一保存模块,用于保存所述第二接收模块接收到的签名公钥;
第四生成模块,用于在第一保存模块保存签名公钥完成之后生成获取签名公钥密文请求;
第一验证模块,用于使用保存的保护密钥和所述第一保存模块保存的签名公钥对所述第二接收模块接收到的签名公钥密文进行验证;
第五生成模块,用于当所述第一验证模块验证成功时生成获取工作密钥请求;
第二验证模块,用于使用保存的保护密钥对所述第二接收模块接收到的所述第二加密数据进行验证;
提取保存模块,用于当所述第二验证模块验证成功时从所述第二验证模块的验证结果中提取工作密钥并保存;
第二报错模块,用于当所述第一验证模块验证失败时报错;用于当所述第二验证模块验证失败时报错;
第一获取模块,用于在第二发送模块将签名证书请求发送给数字证书认证中心之后,获取所述数字证书认证中心返回的签名证书数据包;所述签名证书数据包包括:签名证书、加密证书、由第一密钥加密的加密证书私钥密文和由签名公钥加密的第一密钥密文;
第三加密模块,用于使用保存的工作密钥对所述第一获取模块获取的签名证书数据包中的第一密钥密文进行加密得到第一密钥二次密文;
第四加密模块,用于使用所述保存的工作密钥对所述第一获取模块获取的加密证书私钥密文和所述第三加密模块加密得到的第一密钥二次密文进行加密得到第五加密数据;
第二提取模块,用于从所述第四加密模块加密得到的第五加密数据中提取第三校验数据;
第二发送模块,用于将所述第四生成模块生成的获取签名公钥密文请求、所述第五生成模块生成的获取工作密钥请求、所述第一获取模块获取的签名证书和加密证书和加密证书私钥密文、第三加密模块加密得到的第一密钥二次密文、所述第二提取模块提取的第三校验数据通过所述中间件发送给所述智能密钥设备。
34.如权利要求33所述的系统,其特征在于,所述第一发送模块具体用于将智能密钥设备标识和签名密钥对中的签名公钥、智能密钥设备标识和所述第一加密模块得到的签名公钥密文、所述第三生成模块生成的所述第二加密数据通过所述中间件发送给所述服务器;
所述第二接收模块具体用于接收所述智能密钥设备通过所述中间件发送的和智能密钥设备标识和签名公钥、智能密钥设备标识和签名公钥密文、第二加密数据,还用于接收所述中间件发送的签名证书请求;
所述第一保存模块具体用于对应保存所述第二接收模块接收到的签名公钥和智能密钥设备标识;
所述服务器还包括:第二检索模块,用于根据所述第二接收模块接收到的智能密钥标识检索对应的保存的签名公钥;
所述第一验证模块具体用于当所述第二检索模块检索到对应的保存的签名公钥时,使用所述签名公钥和保存的保护密钥对所述第二接收模块接收到的所述签名公钥密文进行验证;
所述第二报错模块还用于当所述第二检索模块未检索到对应的保存的签名公钥时报错。
35.如权利要求33所述的系统,其特征在于,所述第一验证模块包括:
第一加密单元,用于使用保存的保护密钥对所述第一保存模块保存的所述签名公钥进行加密;
第一判断单元,用于判断所述第一加密单元加密得到的加密结果是否与所述第二接收模块接收到的签名公钥密文一致,是则验证成功,否则验证失败。
36.如权利要求33所述的系统,其特征在于,所述第三生成模块包括:
第二加密单元,用于使用预置的保护密钥对所述工作密钥进行加密生成第一加密数据;
第一提取单元,用于从所述第二加密单元生成的第一加密数据中提取第一校验数据;
第三加密单元,用于使用所述保护密钥对所述工作密钥和所述第一校验数据进行加密得到第二加密数据。
37.如权利要求36所述的系统,其特征在于,所述第二加密单元具体用于对所述工作密钥进行填充得到第一填充数据,使用预置的保护密钥对所述第一填充数据进行加密得到第一加密数据。
38.如权利要求36所述的系统,其特征在于,所述第三加密单元具体用于将第一填充数据、所述第一校验数据、第一预设数据进行拼接得到第一拼接数据,对所述第一拼接数据进行填充得到第二填充数据,使用所述保护密钥对所述第二填充数据进行加密得到第二加密数据。
39.如权利要求36所述的系统,其特征在于,所述第一提取单元具体用于从所述第一加密数据中提取预设长度的数据得到第一校验数据。
40.如权利要求39所述的系统,其特征在于,所述第一提取单元具体用于将所述第一加密数据分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第一校验数据。
41.如权利要求33所述的系统,其特征在于,所述第二验证模块包括:
第一解密单元,用于使用保存的保护密钥对得到第二接收模块接收到的所述第二加密数据进行解密;
提取判断单元,用于当所述第一解密单元解密成功时从解密结果中提取第一拼接值,判断所述第一拼接值的预设位置上的数据是否为第一预设数据;
加密提取单元,用于当所述提取判断单元判断为是时使用所述保护密钥对所述第一拼接值进行加密得到第三加密数据,并从所述第三加密数据中提取第二校验数据;
第二判断单元,用于判断所述加密提取单元提取的第二校验数据是否与所述提取判断单元提取的第一拼接值中的校验数据相同;
提取保存单元,用于当所述第二判断单元判断为是时从所述提取判断单元提取的第一拼接值中提取工作密钥并保存;
所述第二报错模块还用于当所述第一解密单元解密失败时、所述提取判断单元判断为否时和所述第二判断单元判断为否时报错。
42.如权利要求33所述的系统,其特征在于,所述第四加密模块具体用于将所述第一获取模块获取的加密证书私钥密文和所述第三加密模块加密得到的第一密钥二次密文进行拼接得到第二拼接数据,并对所述第二拼接数据进行填充得到第四填充数据,使用所述工作密钥对所述第四填充数据进行加密得到第五加密数据。
43.如权利要求33所述的系统,其特征在于,所述第二加密模块具体用于将所述第一接收模块接收到的所述加密证书私钥密文和所述第一密钥二次密文进行拼接得到第三拼接数据,并对所述第三拼接数据进行填充得到第五填充数据;使用所述工作密钥对所述第五填充数据进行加密。
44.如权利要求33所述的系统,其特征在于,所述第一提取模块具体用于从所述第二加密模块的加密结果中提取预设长度的数据得到第二校验值。
45.如权利要求44所述的系统,其特征在于,所述第一提取模块具体用于将所述加密结果分为三包数据,从高位到低位依次为第三包数据、第二包数据、第一包数据;从所述第一包数据中的高位起提取预设长度数据得到第二校验值。
CN201711100159.0A 2017-11-09 2017-11-09 一种密钥导入的实现方法、装置及系统 Active CN107888381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711100159.0A CN107888381B (zh) 2017-11-09 2017-11-09 一种密钥导入的实现方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711100159.0A CN107888381B (zh) 2017-11-09 2017-11-09 一种密钥导入的实现方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107888381A CN107888381A (zh) 2018-04-06
CN107888381B true CN107888381B (zh) 2020-08-07

Family

ID=61779913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711100159.0A Active CN107888381B (zh) 2017-11-09 2017-11-09 一种密钥导入的实现方法、装置及系统

Country Status (1)

Country Link
CN (1) CN107888381B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108900305B (zh) * 2018-06-28 2021-06-04 公安部第三研究所 基于智能安全芯片的多证书签发及验证方法
CN108809643B (zh) * 2018-07-11 2021-04-27 飞天诚信科技股份有限公司 一种设备与云端协商密钥的方法、系统及设备
JP7198012B2 (ja) 2018-07-31 2022-12-28 キヤノン株式会社 通信装置、制御方法、及びプログラム
CN111181893A (zh) * 2018-11-09 2020-05-19 航天信息股份有限公司 一种执法证据处理方法、装置及系统
CN109660338B (zh) * 2018-11-19 2021-07-27 如般量子科技有限公司 基于对称密钥池的抗量子计算数字签名方法和系统
CN110796446B (zh) * 2019-10-18 2022-05-03 飞天诚信科技股份有限公司 密钥注入方法、装置、电子设备及计算机可读存储介质
CN111414638B (zh) * 2020-04-23 2023-03-24 飞天诚信科技股份有限公司 一种区分密钥生成方式的实现方法及装置
CN112202559B (zh) * 2020-12-10 2021-03-16 飞天诚信科技股份有限公司 一种自动注册管理服务器的方法及系统
CN113676330B (zh) * 2021-08-10 2023-08-01 上海瓶钵信息科技有限公司 一种基于二级密钥的数字证书申请系统及方法
CN114221759B (zh) * 2021-11-29 2024-04-12 成都卫士通信息产业股份有限公司 一种远程监控部署方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8300831B2 (en) * 2010-04-26 2012-10-30 International Business Machines Corporation Redundant key server encryption environment
CN102571355B (zh) * 2012-02-02 2014-10-29 飞天诚信科技股份有限公司 一种不落地导入密钥的方法及装置
CN103220270A (zh) * 2013-03-15 2013-07-24 福建联迪商用设备有限公司 密钥下载方法、管理方法、下载管理方法及装置和系统
CN104301113B (zh) * 2014-10-17 2017-07-14 飞天诚信科技股份有限公司 一种基于多证书多用途的数字签名方法和系统
CN105959112B (zh) * 2016-07-05 2019-01-22 江苏先安科技有限公司 一种离线密钥注入系统及方法
CN107317677B (zh) * 2017-05-25 2020-02-07 苏州科达科技股份有限公司 密钥存储及设备身份认证方法、装置

Also Published As

Publication number Publication date
CN107888381A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107888381B (zh) 一种密钥导入的实现方法、装置及系统
CN106464499B (zh) 通信网络系统、发送节点、接收节点、消息检查方法、发送方法及接收方法
CN106789841B (zh) 业务处理方法、终端、服务器以及系统
CN111372247A (zh) 一种基于窄带物联网的终端安全接入方法及终端安全接入系统
US9445269B2 (en) Terminal identity verification and service authentication method, system and terminal
CN100512201C (zh) 用于处理分组业务的接入-请求消息的方法
CN111416807A (zh) 数据获取方法、装置及存储介质
CN103036872B (zh) 数据传输的加密和解密方法、设备及系统
CN103297403A (zh) 一种实现动态密码认证的方法和系统
CN112235107B (zh) 一种数据传输方法、装置、设备和存储介质
CN101588579B (zh) 一种对用户设备鉴权的系统、方法及其基站子系统
CN101621794A (zh) 一种无线应用服务系统的安全认证实现方法
CN101820629A (zh) 一种无线局域网中身份认证的方法、装置及系统
CN104836784A (zh) 一种信息处理方法、客户端和服务器
CN105142134A (zh) 参数获取以及参数传输方法和装置
CN105812334A (zh) 一种网络认证方法
CN112165386B (zh) 一种基于ecdsa的数据加密方法及系统
CN105376059A (zh) 基于电子钥匙进行应用签名的方法和系统
CN105007163A (zh) 预共享密钥的发送、获取方法及发送、获取装置
CN107249002B (zh) 一种提高智能电能表安全性的方法、系统及装置
CN110049045B (zh) 一种电力载波的安全认证系统
CN103313244A (zh) 一种基于gba的认证方法及装置
CN102547686B (zh) M2m终端安全接入方法及终端、管理平台
KR101329789B1 (ko) 모바일 디바이스의 데이터베이스 암호화 방법
CN103312671B (zh) 校验服务器的方法和系统

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