CN106059760A - 一种从用户端密码模块调用系统私钥的密码系统 - Google Patents

一种从用户端密码模块调用系统私钥的密码系统 Download PDF

Info

Publication number
CN106059760A
CN106059760A CN201610545135.5A CN201610545135A CN106059760A CN 106059760 A CN106059760 A CN 106059760A CN 201610545135 A CN201610545135 A CN 201610545135A CN 106059760 A CN106059760 A CN 106059760A
Authority
CN
China
Prior art keywords
key
private key
double secret
secret key
pki
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
Application number
CN201610545135.5A
Other languages
English (en)
Other versions
CN106059760B (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.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
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 Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CN201610545135.5A priority Critical patent/CN106059760B/zh
Publication of CN106059760A publication Critical patent/CN106059760A/zh
Application granted granted Critical
Publication of CN106059760B publication Critical patent/CN106059760B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明使得密码应用程序像使用本地私钥一样通过本地密码模块使用存储在密码服务器中的系统私钥。若系统私钥是单个私钥,则密码模块本地的一个与系统私钥对应的密钥对象中保存的是系统私钥的标识信息;当密码应用程序使用此密钥对象的私钥进行密码运算时,密码模块通过系统私钥标识信息调用密码服务器中的对应系统私钥进行密码运算。若系统私钥是用密钥系列标识信息统一标识的一系列系统私钥,则密码模块本地的一个与一系列系统私钥对应的密钥对象中保存有对应的密钥系列标识信息;当密码应用程序使用此密钥对象的私钥进行密码运算时,密码模块调用密码服务器中的对应系列系统私钥中一个相应的私钥进行密码运算。

Description

一种从用户端密码模块调用系统私钥的密码系统
技术领域
本发明属于信息安全领域,特别是一种从用户端密码模块调用存储在密码服务器中的系统私钥的密码系统。
背景技术
公开密钥密码算法是目前用得非常广泛密码算法,它涉及一对密钥,私钥和公钥,其中私钥需要安全保护,只有私钥拥有者才能使用。运行在用户端计算机中的密码应用程序(安全应用程序)使用私钥的密码技术架构是这样的:用户端计算机中有专门的密码模块,包括纯软件的密码模块和软硬件结合的密码模块;纯软件的密码模块如仅通过软件提供密码功能的Windows CSP、PKCS#11密码动态库,或者其他自开发的密码动态库,此时私钥保存在用户计算机的永久存储介质(硬盘)中,用户端计算机中的密码应用程序通过密码动态库使用保存在永久存储介质中的私钥;软硬件结合的密码模块是由硬件密码装置如USBKey、SmartCard实现密码运算以及用户私钥保存,硬件密码装置同时提供具有与WindowsCSP、PKCS#11一样接口的密码动态库,用户端计算机中的密码应用程序通过调用密码动态库使用保存在硬件密码装置中的私钥、并通过硬件密码装置完成密码运算。
在实际应用中会遇到这样的一种需求,一个组织、机构有专门的私钥供授权的用户在用户端计算机中运行的密码应用程序使用,但授权用户在用户端计算机中运行的密码应用程序只能在线使用组织、机构的私钥,不能获得私钥本身,这时通常的用户端密码应用程序使用私钥的密码技术架构不再适用。针对这种需求的通常做法是:将组织、机构的私钥存放在一个专门的服务系统中,我们将这个专门的服务系统称之为密码服务器,而存放在密码服务器中的组织、机构的私钥称为系统私钥;当用户端的密码应用程序(安全应用程序)需要使用存放在密码服务器中的系统私钥解密数据或进行数字签名时,密码应用程序将要解密的数据或进行数字签名的数据提交到密码服务器,密码服务器在鉴别用户端的用户身份并确定用户具有使用系统私钥的权限后,使用系统私钥解密密码应用程序提交的数据,或者对密码应用程序提交的数据进行数字签名。这种方式的最大缺点是密码应用程序本身要知道需要使用的私钥是存放在密码服务器中的系统私钥并主动连接密码服务器请求使用系统私钥进行密码运算,这使得通常的或标准的密码应用程序无法使用存放在密码服务器中的系统私钥,因为通常的或标准的密码应用程序总是调用用户计算机本地的密码模块(密码动态库)、使用存放在用户本地(硬盘或USB Key、SmartCard中)的私钥进行密码运算。
进一步,在实际应用还有可能遇到这种情况,存放在密码服务器中的组织、机构的私钥(即系统私钥)不止一个,而是多个相关的私钥,比如,是一个身份标私通过各种限定策略限定后的各个扩展身份标识所对应的多个私钥,并对应多公钥,这样,在进行加密、解密,数字签名、签名验证密码运算时需要选择合适的公钥和私钥,如果让密码应用程序来做这个事情,一是增加了密码应用程序的复杂性,二是通常的或标准的密码应用程序无法做到这点。
发明内容
本发明的目的就是提出一种用户端的密码应用程序包括通常或标准的密码应用程序能像通常使用本地私钥一样安全、便捷地使用组织、机构存储在密码服务器中的私钥包括一个和/或一系列私钥的密码系统。
为了实现上述目的,本发明的技术方案是:一种从用户端密码模块调用系统私钥的密码系统,具体方案如下。
所述密码系统包括密码服务器、密码模块,其中:
密码服务器:一个存放有系统私钥并使用系统私钥进行密码运算的系统或系统组件;所述系统私钥是供授权用户(运行或使用的)的密码应用程序使用、用于数据解密和/或数字签名密码运算的私钥;所述系统私钥对应的公钥称为系统公钥;系统私钥和公钥构成的密钥对称为系统密钥对;所述密码应用程序是使用系统公钥和系统私钥实现安全目的的程序(如使用系统公钥对普通数据或随机对称密钥进行加密运算,和/或使用系统公钥对消息签名进行签名验证运算,以及使用系统私钥对加密的普通数据或随机对称密钥进行解密运算,和/或使用系统私钥对消息进行数字签名运算);
密码模块:一个运行在用户计算设备中提供密码功能调用的软件组件(如实现Windows CryptoSPI接口、PKCS#11接口的Windows CSP、PKCS#11密码动态库);所述密码模块有与系统私钥或密钥对相对应的密钥对象(永久或临时的);所述密码模块中与系统私钥或密钥对相对应的密钥对象称为系统私钥或密钥对对象;所述系统私钥或密钥对对象中并没有存放系统私钥或密钥对(是一个不实际存放私钥或密钥对的密钥对象);所述系统私钥或密钥对对象中保存有对应的系统私钥或密钥对的标识信息;密码应用程序像使用通常的存放有私钥或密钥对的密钥对象一样的方式(如通过密钥对象标识符)使用所述系统私钥或密钥对对象;所述系统私钥或密钥对的标识信息是标识私钥或密钥对的信息(如标识符、名字);
当一个密码应用程序调用所述密码模块使用系统公钥进行密码运算时,所述密码模块按使用普通的公钥(即非系统公钥)一样的方式使用系统公钥进行密码运算;
当一个密码应用程序(通过密钥对象标识符)调用所述密码模块使用密码模块中的一个系统私钥或密钥对对象进行密码运算时(如进行解密运算或者数字签名运算),所述密码模块连接密码服务器,请求使用与系统私钥或密钥对对象对应的系统私钥进行密码运算,请求中有从系统私钥或密钥对对象中得到的系统私钥或密钥对标识信息(系统私钥和系统密钥对的标识信息是同一个);接收到密码模块提交的请求后,密码服务器对调用密码模块的密码应用程序的用户进行身份鉴别;在完成用户身份鉴别并确定用户具有使用系统私钥的权限后,密码服务器根据密码模块提交的密码运算请求使用(请求中的系统私钥标识信息相对应的)系统私钥进行密码运算,然后将密码运算的结果返回给密码模块;密码模块接收到密码服务器返回的密码运算结果后,向密码应用程序返回密码运算结果。
当一个密码应用程序或密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,所述密码模块创建一个的系统私钥或密钥对对象(临时或永久的,取决于调用参数),并将密码应用程序或密钥管理工具通过接口函数提供的系统私钥或密钥对的标识信息保存在创建的系统私钥或密钥对对象中;所述额外的密钥生成接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥生成函数以外的由密码系统开发者定义的密钥生成函数;
进一步地,所述系统私钥或密钥对对应有一个伪私钥或伪密钥对;所述伪私钥或伪密钥对是一个具有一种密码算法类型的私钥或密钥对(如RSA、ECC私钥或密钥对)的密钥数据结构,但其中存放的不是对应密码算法类型的私钥或密钥对的密钥数据,而是包含有所对应的系统私钥或密钥对的标识信息的密钥数据;所述伪私钥或伪密钥对的密钥数据中有特征位,用于区分真正的私钥或密钥对数据与伪私钥或伪密钥对数据(注:系统私钥或密钥对的密码算法类型与伪私钥或伪密钥对的密码算法类型相同或不同;伪私钥或伪密钥对的密码算法类型由实施者确定;若二者的密码算法类型不同,则在伪私钥或伪密钥对使用过程中由密码模块自动进行密码算法转换);
当接收到密码应用程序或密钥管理工具调用标准的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据要导入的私钥或密钥对的密钥数据的特征位确定要导入的私钥或密钥对是真正的私钥或密钥对还是伪私钥或伪密钥对,若要导入的私钥或密钥对是真正的私钥或密钥对,则所述密码模块按导入真正的私钥或密钥对的方式进行密钥导入处理;若要导入的是伪私钥或伪密钥对,则所述密码模块创建一个系统私钥或密钥对对象(临时或永久的,取决于调用参数),并将伪私钥或伪密钥对的密钥数据中保存的系统私钥或密钥对的标识信息保存在创建的系统私钥或密钥对对象中;所述标准的密钥导入接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据要导入的私钥或密钥对的密钥数据的特征位确定要导入的私钥或密钥对是真正的私钥或密钥对还是伪私钥或伪密钥对,若要导入的私钥或密钥对是真正的私钥或密钥对,则返回错误,或者按导入真正的私钥或密钥对的方式进行密钥导入处理,否则,所述密码模块创建一个系统私钥或密钥对对象(临时或永久的,取决于调用参数),并将伪私钥或伪密钥对的密钥数据中保存的系统私钥或密钥对的标识信息保存在创建的系统私钥或密钥对对象中;所述额外的密钥导入接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥导入函数以外的由密码模块开发者定义的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用标准的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出的私钥或密钥对的密钥对象是否是系统私钥或密钥对对象,若不是,则按导出真正的私钥或密钥对的方式进行密钥导出处理;若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的系统私钥或密钥对的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述标准的密钥导出接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥导出函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出私钥或密钥对的密钥对象是否是系统私钥或密钥对对象,若不是,则返回错误,或按导出真正的私钥或密钥对的方式进行密钥导出处理,若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的系统私钥或密钥对的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述额外的密钥导出接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥导出函数以外的由密码模块开发者定义的密钥导出函数。
当一个密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,密钥管理工具将按如下方式获得系统私钥或密钥对的标识信息并通过额外的密钥生成接口函数将标识信息提交给密码模块:
所述密钥管理工具或密码模块在本地(磁盘或内存中)保存或缓存有一个或多个系统私钥或密钥对的名字及标识信息;所述密钥管理工具通过人机交互界面由用户从本地保存或缓存的一个或多个系统私钥或密钥对的名字中选择要生成的系统私钥或密钥对的名字,在用户选择要生成的系统私钥或密钥对的名字后,通过名字得到对应的系统私钥或密钥对的标识信息;或者,本地(磁盘或内存中)没有保存或缓存系统私钥或密钥对的名字及标识信息,所述密钥管理工具从密码服务器获得一个或多个系统私钥或密钥对的名字及标识信息,并通过人机交互界面让用户选择要生成的系统私钥或密钥对的名字,在用户选择要生成的系统私钥或密钥对的名字后,通过名字得到对应的系统私钥或密钥对的标识信息;
对于密码应用程序调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对的操作,密码应用程序的实施者确定要生成的系统私钥或密钥对的标识信息的获取方式并通过额外的密钥生成接口函数提交给密码模块。
若所述密码服务器中存放有一系列系统私钥,且存放的一系列系统私钥所对应的一系列系统密钥对在同样的密码应用程序中使用,则:
所述在同样的密码应用程序中使用的一系列系统密钥对对应有一个密钥系列标识信息(如密钥系列标识符),用于对对应的一系列系统密钥对进行整体标识,而一系列系统密钥对中的每个系统密钥对都对应有区分标识信息(如区分标识符),用于在一系列系统密钥对、以及对应的一系列系统公钥和私钥中区分和标识不同的系统密钥对、公钥和私钥,即密钥系列标识信息结合区分标识信息唯一确定了在同样的密码应用程序中使用的一系列系统密钥对、以及对应的一系列系统公钥和私钥中的一个具体的密钥对、公钥和私钥;所述密钥系列标识信息同时也是所标识的一系列系统密钥对所对应的一系列系统公钥和私钥的整体标识信息;
所述在同样的密码应用程序中使用的一系列系统密钥对在所述密码模块中对应一个系统私钥或密钥对对象,且系统私钥或密钥对对象中保存有对应的一系列系统密钥对的密钥系列标识信息;
所述在同样的密码应用程序中使用的一系列系统密钥对及其对应的一系列系统公钥和私钥分别对应有一个伪密钥对、伪公钥和伪私钥;所述伪密钥对、伪公钥和伪私钥分别是具有一种密码算法类型(如RSA、ECC、IBC)的密钥对、公钥和私钥的数据结构,但其中分别存放的不是对应密码算法类型的密钥对、公钥和私钥的密钥数据,而是分别存放有所对应的一系列系统密钥对(也是对应的一系列系统公钥和私钥)的密钥系列标识信息的密钥数据;所述伪密钥对、伪公钥和伪私钥的密钥数据中有特征位,用于区分真正的密钥对数据和伪密钥对数据、真正的公钥数据和伪公钥数据、真正的私钥数据和伪私钥数据;
使用所述密码服务器中存放的一系列系统私钥所对应的一系列系统密钥对的密码应用程序像使用真正的密钥对、公钥和/或私钥一样的方式使用伪密钥对、伪公钥和/或伪私钥。
(注:在同样的密码应用程序中使用的一系列系统密钥对的密码算法类型与伪密钥对的密码算法类型相同或不同;伪密钥对的密码算法类型由实施者确定;若二者不同,则在伪密钥对使用过程中由密码模块自动进行密码算法转换;若在同样的密码应用程序中使用的一系列系统密钥对的密码算法类型是IBC,即基于标识的密码算法,且一系列系统密钥对对应一个身份标识,且一系列系统密钥对中的每个密钥对是身份标识加上限定策略(如时间限定策略)限定后得到的密钥对,则伪密钥对、伪公钥和伪私钥中存放的就是不包含限定策略的身份标识以及与密码运算有关的参数,如椭圆曲线参数或椭圆曲线参数的指示信息。)
若所述密码服务器中存放有一系列系统私钥,且存放的一系列系统私钥所对应的一系列系统密钥对在同样的密码应用程序中使用,则:
当接收到密码应用程序使用公钥(对数据包括随机对称密钥)进行加密密码运算的调用请求后,所述密码模块根据公钥数据的特征位确定密码应用程序使用的公钥是真正的公钥还是伪公钥,若使用的公钥是真正的公钥,则按使用真正的公钥的方式进行加密密码运算;若使用的公钥是伪公钥,则所述密码模块按如下方式使用伪公钥进行加密密码运算:
按缺省或密码模块配置的策略(比如时间限定策略)在伪公钥所对应的一系列系统公钥中确定要使用的公钥及公钥的区分标识信息,然后使用确定的公钥进行加密密码运算,或者通过密码模块的人机交互界面让用户在伪公钥所对应的一系列系统公钥中选择要用的公钥,然后使用用户选择的系统公钥进行加密密码运算;在完成加密密码运算后,密码模块将所使用的公钥在伪公钥所对应的一系列系统公钥中的区分标识信息作为填充或附加数据填充到加密密码运算的结果中;
当所述密码模块接收到密码应用程序使用所述系统私钥或对称密钥对象(对加密后的数据包括随机对称密钥)进行解密密码运算的请求后,所述密码模块从要进行解密密码运算的加密数据的填充或附件数据中获得加密时所用的系统公钥在一系列系统公钥中的区分标识信息,然后连接密码服务器,请求使用与区分标识信息相对应的系统私钥进行解密密码运算(请求中包含有对应的一系列系统私钥或密钥对的密钥系列标识信息);密码服务器在完成对调用密码模块的密码应用程序的用户的身份鉴别并确认用户具有使用私钥的权限后,使用与区分标识信息相对应的系统私钥进行解密密码运算,并将解密密码运算结果返回给密码模块,然后由密码模块把解密密码运算的结果返回给密码应用程序。
若密码应用程序使用伪公钥请求进行加密密码运算时,密码模块进行加密密码运算所使用的公钥是用户通过密码模块的人机交互界面在伪公钥所对应的一系列系统公钥中选择的公钥,则:
所述密码模块在本地(磁盘或内存)保存或缓存有供用户选择的(伪公钥所对应的)一系列系统公钥以及每个公钥的名字和区分标识信息(密码模块通过伪公钥中的密钥系列标识信息在本地查找对应的一系列系统公钥的名字和区分标识信息);所述密码模块通过人机交互界面让用户通过公钥名字选择要使用的公钥,并确定用户选择的公钥的区分标识信息;
或者,本地(磁盘或内存)没有保存或缓存供用户选择的一系列系统公钥,则所述密码模块从密码服务器获得供用户选择的(伪公钥所对应的)一系列系统公钥以及公钥的名字和区分标识信息(密码模块通过伪公钥中的密钥系列标识信息从密码服务器获取伪公钥所对应的一系列系统公钥的名字和区分标识信息),并通过人机交互界面让用户通过公钥名字选择要使用的公钥;所述系统公钥名字是一个便于用户识别、区分不同系统公钥的命名信息;一个系统公钥的名字与其区分标识信息不同或者相同。
若所述密码服务器中存放有一系列系统私钥,且存放的一系列系统私钥所对应的一系列系统密钥对在同样的密码应用程序中使用,则:
当接收到密码应用程序的使用所述系统私钥或密钥对对象(对消息的散列值)进行数字签名密码运算的调用请求后,所述密码模块按如下方式进行数字签名密码运算:
按缺省或密码模块配置的策略(比如时间限定策略)在密码应用程序所使用的系统私钥或密钥对对象所对应的一系列系统私钥中确定要使用的系统私钥及区分标识信息,或者通过密码模块的人机交互界面由用户在密码应用程序所使用的系统私钥或密钥对对象所对应的一系列系统私钥中选择要使用的私钥,并确定用户所选择的私钥的区分标识信息;然后连接密码服务器,请求使用与区分标识信息对应的系统私钥进行数字签名密码运算(请求中包含对应的一系列系统私钥或密钥对的密钥系列标识信息);密码服务器在完成对调用密码模块的密码应用程序的用户的身份鉴别并确认用户具有使用私钥的权限后,使用与区分标识信息对应的系统私钥进行数字签名密码运算,并将数字签名密码运算结果(即签名值)返回给密码模块,然后由密码模块把数字签名密码运算结果返回给密码应用程序;
在进行数字签名密码运算的处理过程中,由密码服务器或密码模块将所使用的私钥在一系列系统私钥中的区分标识信息作为填充或附加数据填充到数字签名密码运算的结果中(形成最终的签名值);
当接收到密码应用程序的使用公钥(对签名值即对散列值使用私钥签名运算后的结果)进行签名验证密码运算的调用请求后,密码模块根据公钥数据的特征位确定要使用的公钥是伪公钥还是真正的公钥,若是真正的公钥,则按使用真正公钥的方式进行签名验证密码运算,若是伪公钥,则所述密码模块按如下方式使用伪公钥进行签名验证密码运算:
所述密码模块从要进行签名验证密码运算的数据(即签名值)的填充或附件数据中获得数字签名时所用的系统私钥在一系列系统私钥中的区分标识信息,从而得到区分标识信息所对应的系统公钥,然后使用得到的系统公钥进行签名验证密码运算;所述密码模块根据数字签名时所用的系统私钥在一系列系统私钥中的区分标识信息从本地或密码服务器获得区分标识信息所对应的系统公钥,或者在系统公钥是标识公钥(IBC公钥)时利用区分标识信息直接形成对应的系统公钥。
若密码应用程序使用系统私钥或密钥对对象请求进行数字签名密码运算时,密码模块所使用的私钥是用户通过密码模块的人机交互界面在系统私钥或密钥对对象所对应的一系列系统私钥中选择的一个私钥,则所述密码模块按如下方式确定用户所选择的私钥的区分标识信息:
所述密码模块在本地(磁盘或内存)保存或缓存有供用户选择的(密码应用程序要使用的系统私钥或密钥对对象所对应的)一系列系统私钥的名字和区分标识信息并通过人机交互界面让用户通过系统私钥的名字在一系列系统私钥中选择要使用的私钥的名字,然后通过用户选择的系统私钥的名字确定系统私钥对应的区分标识信息;
或者,本地没有供用户选择的(密码应用程序要使用的系统私钥或密钥对对象所对应的)一系列系统私钥的名字和区分标识信息,则所述密码模块(通过密码应用程序要使用的系统私钥或密钥对对象中保存的密钥系列标识信息)从密码服务器获得供用户选择的一系列系统私钥的名字和区分标识信息并通过人机交互界面让用户通过在一系列系统私钥中选择要使用的系统私钥的名字,然后通过用户选择的系统私钥的名字确定系统私钥对应的区分标识信息;所述系统私钥名字是一个便于用户识别、区分不同系统私钥的命名信息;一个系统私钥的名字与对应的系统公钥的名字相同。
若所述密码服务器中存放有一系列系统私钥,且存放的一系列系统私钥所对应的一系列系统密钥对在同样的密码应用程序中使用,则:
当一个密码应用程序或密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,所述密码模块创建一个的系统私钥或密钥对对象(临时或永久的,根据调用参数),并将密码应用程序或密钥管理工具通过接口函数提供的一系列系统私钥或密钥对的密钥系列标识信息保存在创建的系统私钥或密钥对对象中;所述额外的密钥生成接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥生成函数以外的由密码模块开发者定义的密钥生成函数;
当接收到密码应用程序或密钥管理工具调用标准的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据私钥或密钥对数据的特征位确定要导入的私钥或密钥对是真正的私钥或密钥对还是伪私钥或伪密钥对,若要导入的私钥或密钥对是真正的私钥或密钥对,则按导入真正的私钥或密钥对的方式进行密钥导入处理;若要导入的是伪私钥或伪密钥对,则所述密码模块利用要导入的伪私钥或伪密钥对的数据(主要是其中保存的一系列系统私钥或密钥对的密钥系列标识)创建一个系统私钥或密钥对对象(临时或永久的,取决于调用参数);所述标准的密钥导入接口函数是指密码接口标准(如WindowsCrytoSPI、PKCS#11)所规定的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据要导入的私钥或密钥对数据的特征位确定要导入的是真正的私钥或密钥对还是伪私钥或伪密钥对,若是真正的私钥或密钥对,则报错,或按导入真正的私钥或密钥对的方式进行密钥导入处理;若是伪私钥或伪密钥对,则所述密码模块利用要导入的伪私钥或伪密钥对的数据(主要是其中保存的一系列系统私钥或密钥对的密钥系列标识)创建一个系统私钥或密钥对对象(临时或永久的,取决于调用参数);所述额外的密钥导入接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥导入函数以外的由密码模块开发者定义的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用标准的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出私钥或密钥对的密钥对象是否是系统私钥或密钥对对象,若不是,则按导出真正的私钥或密钥对的方式进行密钥导出处理;若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的一系列系统私钥或密钥对所对应的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述标准的密钥导出接口函数是指密码接口标准(如Windows CrytoSPI、PKCS#11)所规定的密钥导出函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出私钥或密钥对的密钥对象是否是使系统私钥或密钥对对象,若不是,则返回错误,或按导出真正的私钥或密钥对的方式进行密钥导出处理,若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的一系列系统私钥或密钥对所对应的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述额外的密钥导出接口函数是指密码接口标准(如WindowsCrytoSPI、PKCS#11)所规定的密钥导出函数以外的由密码模块开发者定义的密钥导出函数。
当一个密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,密钥管理工具将按如下方式获得一系列系统私钥或密钥对的密钥系列标识信息并通过额外的密钥生成接口函数提交给密码模块:
用户端计算机本地(磁盘或内存中)保存或缓存有一个或多个系列系统私钥或密钥对的密钥系列名字及密钥系列标识信息;所述密钥管理工具通过人机交互界面让用户选择要生成的一系列系统私钥或密钥对的密钥系列名字,在用户选择要生成的一系列系统私钥或密钥对的密钥系列名字后,通过密钥系列名字得到对应的系统私钥或密钥对的密钥系列标识信息;或者,用户端计算机本地(磁盘或内存中)没有保存或缓存一个或多个系列系统私钥或密钥对的密钥系列名字及密钥系列标识信息,所述密钥管理工具从密码服务器获得一个或多个系列系统私钥或密钥对的密钥系列名字及密钥系列标识信息,并通过人机交互界面让用户选择要生成的一系列系统私钥或密钥对的密钥系列名字,在用户选择要生成的一系列系统私钥或密钥对的密钥系列名字后,通过密钥系列名字得到对应的系统私钥或密钥对的密钥系列标识信息;
当一个密码应用程序调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,密码应用程序的实施者确定要生成的一系列系统私钥或密钥对的密钥系列标识信息的获取方式并通过额外的密钥生成接口函数提交给密码模块。
从以上描述可以看到,基于本发明的方案,无论组织、机构有一个还是一系列的私钥,密码应用程序像通常使用本地私钥一样调用本地的密码模块请求使用组织、机构的私钥进行密码运算,然后由密码模块自动连接存储有组织、机构私钥的密码服务器进行相应的处理,由此使得用户端的密码应用程序包括通常或标准的密码应用程序能像通常使用本地私钥一样安全、便捷地使用组织、机构存储在密码服务器中的私钥包括一个和/或一系列私钥的密码系统。
附图说明
图1为本发明的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
关于密码模块的实施,取决于密码应用程序所采用的密码模块。密码应用程序常用的密码模块是基于Windows CryptoSPI接口的Windows CSP,基于PKCS#11接口的PKCS#11密码模块,故本发明密码模块的实施可以是基于Windows CryptoSPI接口的Windows CSP和基于PKCS#11接口的PKCS#11密码模块。若按Windows CSP实施,则本发明的对应一个或一系列系统密钥对的密钥对象对应CSP中的密钥容器(Key Container)中的密钥对对象;若按PKCS#11密码模块实施,则对应本发明对应一个或一系列系统私钥的密钥对象对应PKCS#11中存放私钥的密钥对象。密码模块中对应私钥或密钥对的密钥对象通过相应的标志信息表明密钥对象是对应一个通常的私钥或密钥对,还是对应密码服务器中的一个或一系列系统私钥。
伪密钥包括伪密钥对、伪公钥和伪私钥的实施可以采用伪RSA密钥包括伪RSA密钥对、伪RSA公钥和伪RSA私钥。采用伪RSA密钥一是因为,RSA密码算法是目前应用最广泛的公开密钥密码算法,受到大多数的密码应用程序和密码模块(如Windows CSP、PKCS#11密码模块)的支持,这样可以使发明的方案在大多数的密码应用程序中得到应用,二是因为RSA的密钥数据结构存储的数据量大,可以存放更多的我们希望存放的信息。系统密钥对的密码算法的类型可以是RSA,也可以其他的密码算法类型,如ECC(Elliptic CurveCryptography,椭圆曲线密码)、IBC(Identity Based Cryptography,基于标识的密码)。由于伪RSA密钥的密钥数据中存放的是系统密钥(密钥对、公钥、私钥)的标识信息或一系列系统密钥的密钥系列标识,故此,伪RSA密钥的实施方式与公开文献中的在IBC密码技术中实施伪RSA密钥的方式是相同(如专利文件“一种基于伪RSA密钥的新近公开密钥加密算法的应用实现方法”,“一种基于标识的椭圆曲线密码系统”)。
若存储在密码服务器中的系统私钥是单个私钥,如单个RSA、ECC(椭圆曲线密码)私钥,则本发明只需按发明内容中所描述的方案实施即可,无需赘述。
若存储在密码服务器中的系统私钥是通过密钥系列标识信息统一标识的一系列系统私钥,则根据系统密钥(密钥对、公钥、私钥)的密码算法类型是非基于标识的公开密钥密码算法(如RSA、ECC),还是基于标识的密码(IBC)算法,本发明的具体实施如下。
实施例一、
一系列系统密钥对(私钥、公钥)的密码算法类型是非基于标识的公开密钥密码算法(如RSA、ECC),一系列系统密钥对中的每个密钥对对应有不同的用途。
此时,给一系列系统密钥对一个统一的标识符(密钥系列标识信息)和一个统一的名字(密钥系列名字),然后给一系列系统密钥对中的每个密钥对(及私钥、公钥)根据其用途一个便于用户理解的名字,以及一个对应的便于系统使用的区分标识。伪密钥对、伪私钥和伪公钥的密钥数据中存放有此一系列系统密钥的密钥系列标识信息。密码应用程序通过使用伪公钥使用一系列系统公钥中的一个公钥进行密码运算,通过使用密码模块中的系统私钥或密钥对对象使用一系列系统私钥中的一个私钥进行密码运算。当密码应用程序使用伪公钥进行加密密码运算时,密码模块通过人机交互界面让用户通过选择密钥名字选择要使用的公钥;当密码应用程序使用系统私钥或密钥对对象进行数字签名密码运算时,密码模块通过人机交互界面让用户通过选择密钥名字选择要使用的私钥。在加密密码运算或数字签名密码运算后,密码模块将使用的系统公钥或私钥的区分标识信息填充或附加到密码运算后的数据中。
密码模块在本地磁盘中保存使用的一系列系统密钥对中每个密钥对(公钥、私钥)的名字及区分标识信息,供加密密码运算或数字签名密码运算时供用户选择;或者,密码模块从密码服务器获得使用的一系列系统密钥对中每个密钥对(公钥、私钥)的名字及区分标识信息,并缓存在内存中供加密密码运算或数字签名密码运算时供用户选择。
实施例二、
一系列系统密钥对(私钥、公钥)的密码算法类型是基于标识的密码算法,一系列系统密钥对中的每个密钥对(私钥、公钥)是同一标识经限定策略限定后(的扩展标识或受限定的标识)所对应的密钥对(私钥、公钥)。
此时,限定策略限定可以是限定密钥对使用期限的时间限定策略,限定密钥对用途的密钥用途限定策略,或者与使用授权有关的权限限定策略(如角色)等。此一系列系统密钥对用它所对应的身份标识作为密钥系列标识信息,同时,可以再给此一系列系统密钥对一个密钥系列名字。
若一系列系统密钥对是一个标识经时间限定策略限定后针对不同有效期(时间期限)的标识(扩展标识)所对应的一系列密钥对,则对标识进行限定的时间有效期即是区分标识信息,所述密码模块在进行加密密码运算时根据当前时刻自动选择当前有效的系统公钥,或者所述密码模块在进行数字签名密码运算时根据当前时刻自动选择当前有效的系统私钥。当前有效的系统公钥和私钥是指时间限定策略的时间有效期覆盖当前时刻的扩展标识(受限定后的标识)所对应的系统公钥和私钥。当前时刻对应的时间有效期是当前使用的公钥或私钥的区分标识信息。
若一系列系统密钥对是一个标识经时间限定策略加上其他限定策略限定后所对应的一系列标识密钥对,则:一个密钥对(公钥、私钥)的时间限定策略以外的其他限定策略构成了一个密钥对(公钥、私钥)的名字;所述密码模块在进行加密密码运算时根据当前时刻选择当前有效的所有系统公钥,然后通过人机界面向用户展示当前有效的所有系统公钥的名字供用户选择,并使用用户选择的系统公钥进行加密密码运算,或者所述密码模块在进行数字签名密码运算时根据当前时刻选择当前有效的所有系统私钥,通过人机界面向用户展示当前有效的所有系统私钥的名字供用户选择,并使用用户选择的系统私钥进行签名密码运算。
密码模块在本地磁盘中保存或从密码服务器获得针对标识的时间限定策略以外的其他限定策略,并以时间限定策略以外的其他限定策略作为某个时间有效期的标识公钥、私钥的名字,以一个标识公钥、私钥对应的包括时间限定策略的限定策略作为标识公钥、私钥在一系列系统公钥、私钥(密钥对)中的区分标识信息。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

Claims (10)

1.一种从用户端密码模块调用系统私钥的密码系统,其特征是:所述密码系统包括密码服务器、密码模块,其中:
密码服务器:一个存放有系统私钥并使用系统私钥进行密码运算的系统或系统组件;所述系统私钥是供授权用户的密码应用程序使用、用于数据解密和/或数字签名密码运算的私钥;所述系统私钥对应的公钥称为系统公钥;系统私钥和公钥构成的密钥对称为系统密钥对;所述密码应用程序是使用系统公钥和系统私钥实现安全目的的程序;
密码模块:一个运行在用户计算设备中提供密码功能调用的软件组件;所述密码模块有与系统私钥或密钥对相对应的密钥对象;所述密码模块中与系统私钥或密钥对相对应的密钥对象称为系统私钥或密钥对对象;所述系统私钥或密钥对对象中并没有存放系统私钥或密钥对;所述系统私钥或密钥对对象中保存有对应的系统私钥或密钥对的标识信息;密码应用程序像使用通常的存放有私钥或密钥对的密钥对象一样的方式使用所述系统私钥或密钥对对象;所述系统私钥或密钥对的标识信息是标识私钥或密钥对的信息;
当一个密码应用程序调用所述密码模块使用系统公钥进行密码运算时,所述密码模块按使用普通的公钥一样的方式使用系统公钥进行密码运算;
当一个密码应用程序调用所述密码模块使用密码模块中的一个系统私钥或密钥对对象进行密码运算时,所述密码模块连接密码服务器,请求使用与系统私钥或密钥对对象对应的系统私钥进行密码运算,请求中有从系统私钥或密钥对对象中得到的系统私钥或密钥对标识信息;接收到密码模块提交的请求后,密码服务器对调用密码模块的密码应用程序的用户进行身份鉴别;在完成用户身份鉴别并确定用户具有使用系统私钥的权限后,密码服务器根据密码模块提交的密码运算请求使用系统私钥进行密码运算,然后将密码运算的结果返回给密码模块;密码模块接收到密码服务器返回的密码运算结果后,向密码应用程序返回密码运算结果。
2.根据权利要求1所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
当一个密码应用程序或密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,所述密码模块创建一个系统私钥或密钥对对象,并将密码应用程序或密钥管理工具通过接口函数提供的系统私钥或密钥对的标识信息保存在创建的系统私钥或密钥对对象中;所述额外的密钥生成接口函数是指密码接口标准所规定的密钥生成函数以外的由密码系统开发者定义的密钥生成函数;
所述系统私钥或密钥对对应有一个伪私钥或伪密钥对;所述伪私钥或伪密钥对是一个具有一种密码算法类型的私钥或密钥对的密钥数据结构,但其中存放的不是对应密码算法类型的私钥或密钥对的密钥数据,而是包含有所对应的系统私钥或密钥对的标识信息的密钥数据;所述伪私钥或伪密钥对的密钥数据中有特征位,用于区分真正的私钥或密钥对数据与伪私钥或伪密钥对数据;
当接收到密码应用程序或密钥管理工具调用标准的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据要导入的私钥或密钥对的密钥数据的特征位确定要导入的私钥或密钥对是真正的私钥或密钥对还是伪私钥或伪密钥对,若要导入的私钥或密钥对是真正的私钥或密钥对,则所述密码模块按导入真正的私钥或密钥对的方式进行密钥导入处理;若要导入的是伪私钥或伪密钥对,则所述密码模块创建一个系统私钥或密钥对对象,并将伪私钥或伪密钥对的密钥数据中保存的系统私钥或密钥对的标识信息保存在创建的系统私钥或密钥对对象中;所述标准的密钥导入接口函数是指密码接口标准所规定的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据要导入的私钥或密钥对的密钥数据的特征位确定要导入的私钥或密钥对是真正的私钥或密钥对还是伪私钥或伪密钥对,若要导入的私钥或密钥对是真正的私钥或密钥对,则返回错误,或者按导入真正的私钥或密钥对的方式进行密钥导入处理,否则,所述密码模块创建一个系统私钥或密钥对对象,并将伪私钥或伪密钥对的密钥数据中保存的系统私钥或密钥对的标识信息保存在创建的系统私钥或密钥对对象中;所述额外的密钥导入接口函数是指密码接口标准所规定的密钥导入函数以外的由密码模块开发者定义的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用标准的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出的私钥或密钥对的密钥对象是否是系统私钥或密钥对对象,若不是,则按导出真正的私钥或密钥对的方式进行密钥导出处理;若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的系统私钥或密钥对的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述标准的密钥导出接口函数是指密码接口标准所规定的密钥导出函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出私钥或密钥对的密钥对象是否是系统私钥或密钥对对象,若不是,则返回错误,或按导出真正的私钥或密钥对的方式进行密钥导出处理,若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的系统私钥或密钥对的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述额外的密钥导出接口函数是指密码接口标准所规定的密钥导出函数以外的由密码模块开发者定义的密钥导出函数。
3.根据权利要求2所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
当一个密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,密钥管理工具将按如下方式获得系统私钥或密钥对的标识信息并通过额外的密钥生成接口函数将标识信息提交给密码模块:
所述密钥管理工具或密码模块在本地保存或缓存有一个或多个系统私钥或密钥对的名字及标识信息;所述密钥管理工具通过人机交互界面让用户从本地保存或缓存的一个或多个系统私钥或密钥对的名字中选择要生成的系统私钥或密钥对的名字,在用户选择要生成的系统私钥或密钥对的名字后,通过名字得到对应的系统私钥或密钥对的标识信息;或者,本地没有保存或缓存系统私钥或密钥对的名字及标识信息,所述密钥管理工具从密码服务器获得一个或多个系统私钥或密钥对的名字及标识信息,并通过人机交互界面让用户选择要生成的系统私钥或密钥对的名字,在用户选择要生成的系统私钥或密钥对的名字后,通过名字得到对应的系统私钥或密钥对的标识信息;
对于密码应用程序调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对的操作,密码应用程序的实施者确定要生成的系统私钥或密钥对的标识信息的获取方式并通过额外的密钥生成接口函数提交给密码模块。
4.一种从用户端密码模块调用系统私钥的密码系统,其特征是:
密码服务器:一个存放有一系列系统私钥并使用系统私钥进行密码运算的系统或系统组件;所述系统私钥是供授权用户的密码应用程序使用、用于数据解密和/或数字签名密码运算的私钥;所述系统私钥对应的公钥称为系统公钥;系统私钥和公钥构成的密钥对称为系统密钥对;所述密码服务器中存放的一系列系统私钥所对应的一系列系统密钥对在同样的密码应用程序中使用;所述密码应用程序是使用系统公钥和系统私钥实现安全目的的程序;
所述在同样的密码应用程序中使用的一系列系统密钥对对应有一个密钥系列标识信息用于对对应的一系列系统密钥对进行整体标识,而一系列系统密钥对中的每个系统密钥对都对应有区分标识信息,用于在一系列系统密钥对、以及对应的一系列系统公钥和私钥中区分和标识不同的系统密钥对、公钥和私钥,即密钥系列标识信息结合区分标识信息唯一确定了在同样的密码应用程序中使用的一系列系统密钥对、以及对应的一系列系统公钥和私钥中的一个具体的密钥对、公钥和私钥;所述密钥系列标识信息同时也是所标识的一系列系统密钥对所对应的一系列系统公钥和私钥的整体标识信息;
密码模块:一个运行在用户计算设备中提供密码功能调用的软件组件;
所述密码模块中有与在同样的密码应用程序中使用的一系列系统密钥对相对应的私钥或密钥对对象,称为系统私钥或密钥对对象;所述系统私钥或密钥对对象中并没有存放系统私钥或密钥对;所述系统私钥或密钥对对象中保存有对应的一系列系统密钥对的密钥系列标识信息;密码应用程序像使用通常的存放有私钥或密钥对的密钥对象一样的方式使用所述系统私钥或密钥对对象;
所述在同样的密码应用程序中使用的一系列系统密钥对及其对应的一系列系统公钥和私钥分别对应有一个伪密钥对、伪公钥和伪私钥;所述伪密钥对、伪公钥和伪私钥分别是具有一种密码算法类型的密钥对、公钥和私钥的数据结构,但其中分别存放的不是对应密码算法类型的密钥对、公钥和私钥的密钥数据,而是分别存放有所对应的一系列系统密钥对的密钥系列标识信息的密钥数据;所述伪密钥对、伪公钥和伪私钥的密钥数据中有特征位,用于区分真正的密钥对数据和伪密钥对数据、真正的公钥数据和伪公钥数据、真正的私钥数据和伪私钥数据;
使用所述密码服务器中存放的一系列系统私钥所对应的一系列系统密钥对的密码应用程序像使用真正的密钥对、公钥和/或私钥一样的方式使用伪密钥对、伪公钥和/或伪私钥;
若所述密码系统提供数据加密和解密密码运算功能,则:
当一个密码应用程序调用所述密码模块使用所述伪公钥进行数据加密密码运算时,密码模块根据缺省或密码模块配置的策略选择伪公钥对应的一系列系统公钥中的一个公钥进行数据加密密码运算并把使用的系统公钥的区分标识信息作为填充或附加数据填充或附加到加密密码运算后的结果中;
当一个密码应用程序调用所述密码模块使用所述系统私钥或密钥对密钥对象进行数据解密密码运算时,密码模块从待解密的加密数据的填充或附加数据中获得加密时所用的系统公钥的区分标识信息,并调用所述密码服务器使用区分标识信息对应的系统私钥进行数据解密密码运算;
若所述密码系统提供数字签名和签名验证密码运算功能,则:
当一个密码应用程序调用所述密码模块使用所述系统私钥或密钥对密钥对象进行数字签名密码运算时,密码模块根据缺省或密码模块配置的策略选择系统私钥或密钥对密钥对象对应的一系列系统私钥中的一个私钥进行数字签名密码运算并把使用的系统私钥的区分标识信息作为填充或附加数据填充或附加到数字签名密码运算后的结果中;
当一个密码应用程序调用所述密码模块使用所述伪公钥进行签名验证密码运算时,密码模块从待签名验证的签名数据的填充或附加数据中获得签名时所用的系统私钥的区分标识信息,然后使用区分标识信息对应的系统公钥进行签名验证密码运算。
5.根据权利要求4所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
当接收到密码应用程序使用公钥进行加密密码运算的调用请求后,所述密码模块根据公钥数据的特征位确定密码应用程序使用的公钥是真正的公钥还是伪公钥,若使用的公钥是真正的公钥,则按使用真正的公钥的方式进行加密密码运算;若使用的公钥是伪公钥,则所述密码模块按如下方式使用伪公钥进行加密密码运算:
按缺省或密码模块配置的策略在伪公钥所对应的一系列系统公钥中确定要使用的公钥及公钥的区分标识信息,然后使用确定的公钥进行加密密码运算,或者通过密码模块的人机交互界面由用户在伪公钥所对应的一系列系统公钥中选择要用的公钥,然后使用用户选择的系统公钥进行加密密码运算;在完成加密密码运算后,密码模块将所使用的公钥在伪公钥所对应的一系列系统公钥中的区分标识信息作为填充或附加数据填充到加密密码运算的结果中;
当所述密码模块接收到密码应用程序使用所述系统私钥或对称密钥对象进行解密密码运算的请求后,所述密码模块从要进行解密密码运算的加密数据的填充或附件数据中获得加密时所用的系统公钥在一系列系统公钥中的区分标识信息,然后连接密码服务器,请求使用与区分标识信息相对应的系统私钥进行解密密码运算;密码服务器在完成对调用密码模块的密码应用程序的用户的身份鉴别并确认用户具有使用私钥的权限后,使用与区分标识信息相对应的系统私钥进行解密密码运算,并将解密密码运算结果返回给密码模块,然后由密码模块把解密密码运算的结果返回给密码应用程序。
6.根据权利要求5所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
若密码应用程序使用伪公钥请求进行加密密码运算时,密码模块进行加密密码运算所使用的公钥是用户通过密码模块的人机交互界面在伪公钥所对应的一系列系统公钥中选择的公钥,则:
所述密码模块在本地保存或缓存有供用户选择的一系列系统公钥以及每个公钥的名字和区分标识信息;所述密码模块通过人机交互界面让用户通过公钥名字选择要使用的公钥,并确定用户选择的公钥的区分标识信息;
或者,本地没有保存或缓存供用户选择的一系列系统公钥,则所述密码模块从密码服务器获得供用户选择的一系列系统公钥以及公钥的名字和区分标识信息,并通过人机交互界面让用户通过公钥名字选择要使用的公钥;所述系统公钥名字是一个便于用户识别、区分不同系统公钥的命名信息;一个系统公钥的名字与其区分标识信息不同或者相同。
7.根据权利要求4所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
当接收到密码应用程序的使用所述系统私钥或密钥对对象进行数字签名密码运算的调用请求后,所述密码模块按如下方式进行数字签名密码运算:
按缺省或密码模块配置的策略在密码应用程序所使用的系统私钥或密钥对对象所对应的一系列系统私钥中确定要使用的系统私钥及区分标识信息,或者通过密码模块的人机交互界面由用户在密码应用程序所使用的系统私钥或密钥对对象所对应的一系列系统私钥中选择要使用的私钥,并确定用户所选择的私钥的区分标识信息;然后连接密码服务器,请求使用与区分标识信息对应的系统私钥进行数字签名密码运算;密码服务器在完成对调用密码模块的密码应用程序的用户的身份鉴别并确认用户具有使用私钥的权限后,使用与区分标识信息对应的系统私钥进行数字签名密码运算,并将数字签名密码运算结果返回给密码模块,然后由密码模块把数字签名密码运算结果返回给密码应用程序;
在进行数字签名密码运算的处理过程中,由密码服务器或密码模块将所使用的私钥在一系列系统私钥中的区分标识信息作为填充或附加数据填充到数字签名密码运算的结果中;
当接收到密码应用程序的使用公钥进行签名验证密码运算的调用请求后,密码模块根据公钥数据的特征位确定要使用的公钥是伪公钥还是真正的公钥,若是真正的公钥,则按使用真正公钥的方式进行签名验证密码运算,若是伪公钥,则所述密码模块按如下方式使用伪公钥进行签名验证密码运算:
所述密码模块从要进行签名验证密码运算的数据的填充或附件数据中获得数字签名时所用的系统私钥在一系列系统私钥中的区分标识信息,从而得到区分标识信息所对应的系统公钥,然后使用得到的系统公钥进行签名验证密码运算;所述密码模块根据数字签名时所用的系统私钥在一系列系统私钥中的区分标识信息从本地或密码服务器获得区分标识信息所对应的系统公钥,或者在系统公钥是标识公钥时利用区分标识信息直接形成对应的系统公钥。
8.根据权利要求7所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
若密码应用程序使用系统私钥或密钥对对象请求进行数字签名密码运算时,密码模块所使用的私钥是用户通过密码模块的人机交互界面在系统私钥或密钥对对象所对应的一系列系统私钥中选择的一个私钥,则所述密码模块按如下方式确定用户所选择的私钥的区分标识信息:
所述密码模块在本地保存或缓存有供用户选择的一系列系统私钥的名字和区分标识信息并通过人机交互界面让用户通过系统私钥的名字在一系列系统私钥中选择要使用的私钥的名字,然后通过用户选择的系统私钥的名字确定系统私钥对应的区分标识信息;
或者,本地没有供用户选择的一系列系统私钥的名字和区分标识信息,则所述密码模块从密码服务器获得供用户选择的一系列系统私钥的名字和区分标识信息并通过人机交互界面让用户通过在一系列系统私钥中选择要使用的系统私钥的名字,然后通过用户选择的系统私钥的名字确定系统私钥对应的区分标识信息;所述系统私钥名字是一个便于用户识别、区分不同系统私钥的命名信息;一个系统私钥的名字与对应的系统公钥的名字相同。
9.根据权利要求4所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
若所述密码服务器中存放有一系列系统私钥,且存放的一系列系统私钥所对应的一系列系统密钥对在同样的密码应用程序中使用,则:
当一个密码应用程序或密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,所述密码模块创建一个的系统私钥或密钥对对象,并将密码应用程序或密钥管理工具通过接口函数提供的一系列系统私钥或密钥对的密钥系列标识信息保存在创建的系统私钥或密钥对对象中;所述额外的密钥生成接口函数是指密码接口标准所规定的密钥生成函数以外的由密码模块开发者定义的密钥生成函数;
当接收到密码应用程序或密钥管理工具调用标准的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据私钥或密钥对数据的特征位确定要导入的私钥或密钥对是真正的私钥或密钥对还是伪私钥或伪密钥对,若要导入的私钥或密钥对是真正的私钥或密钥对,则按导入真正的私钥或密钥对的方式进行密钥导入处理;若要导入的是伪私钥或伪密钥对,则所述密码模块利用要导入的伪私钥或伪密钥对的数据创建一个系统私钥或密钥对对象;所述标准的密钥导入接口函数是指密码接口标准所规定的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导入接口函数导入私钥或密钥对的调用请求后,所述密码模块根据要导入的私钥或密钥对数据的特征位确定要导入的是真正的私钥或密钥对还是伪私钥或伪密钥对,若是真正的私钥或密钥对,则报错,或按导入真正的私钥或密钥对的方式进行密钥导入处理;若是伪私钥或伪密钥对,则所述密码模块利用要导入的伪私钥或伪密钥对的数据创建一个系统私钥或密钥对对象;所述额外的密钥导入接口函数是指密码接口标准所规定的密钥导入函数以外的由密码模块开发者定义的密钥导入函数;
当接收到密码应用程序或密钥管理工具调用标准的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出私钥或密钥对的密钥对象是否是系统私钥或密钥对对象,若不是,则按导出真正的私钥或密钥对的方式进行密钥导出处理;若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的一系列系统私钥或密钥对所对应的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述标准的密钥导出接口函数是指密码接口标准所规定的密钥导出函数;
当接收到密码应用程序或密钥管理工具调用所述密码模块的额外的密钥导出接口函数导出私钥或密钥对的调用请求后,所述密码模块检查确定要导出私钥或密钥对的密钥对象是否是使系统私钥或密钥对对象,若不是,则返回错误,或按导出真正的私钥或密钥对的方式进行密钥导出处理,若是,则所述密码模块形成要导出私钥或密钥对的系统私钥或密钥对对象所对应的一系列系统私钥或密钥对所对应的伪私钥或伪密钥对,然后将生成的伪私钥或伪密钥对导出;所述额外的密钥导出接口函数是指密码接口标准所规定的密钥导出函数以外的由密码模块开发者定义的密钥导出函数。
10.根据权利要求9所述的从用户端密码模块调用系统私钥的密码系统,其特征是:
当一个密钥管理工具调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,密钥管理工具将按如下方式获得一系列系统私钥或密钥对的密钥系列标识信息并通过额外的密钥生成接口函数提交给密码模块:
用户端计算机本地保存或缓存有一个或多个系列系统私钥或密钥对的密钥系列名字及密钥系列标识信息;所述密钥管理工具通过人机交互界面让用户选择要生成的一系列系统私钥或密钥对的密钥系列名字,在用户选择要生成的一系列系统私钥或密钥对的密钥系列名字后,通过密钥系列名字得到对应的系统私钥或密钥对的密钥系列标识信息;或者,用户端计算机本地没有保存或缓存一个或多个系列系统私钥或密钥对的密钥系列名字及密钥系列标识信息,所述密钥管理工具从密码服务器获得一个或多个系列系统私钥或密钥对的密钥系列名字及密钥系列标识信息,并通过人机交互界面让用户选择要生成的一系列系统私钥或密钥对的密钥系列名字,在用户选择要生成的一系列系统私钥或密钥对的密钥系列名字后,通过密钥系列名字得到对应的系统私钥或密钥对的密钥系列标识信息;
当一个密码应用程序调用所述密码模块的额外的密钥生成接口函数生成私钥或密钥对时,密码应用程序的实施者确定要生成的一系列系统私钥或密钥对的密钥系列标识信息的获取方式并通过额外的密钥生成接口函数提交给密码模块。
CN201610545135.5A 2016-07-12 2016-07-12 一种从用户端密码模块调用系统私钥的密码系统 Expired - Fee Related CN106059760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610545135.5A CN106059760B (zh) 2016-07-12 2016-07-12 一种从用户端密码模块调用系统私钥的密码系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610545135.5A CN106059760B (zh) 2016-07-12 2016-07-12 一种从用户端密码模块调用系统私钥的密码系统

Publications (2)

Publication Number Publication Date
CN106059760A true CN106059760A (zh) 2016-10-26
CN106059760B CN106059760B (zh) 2019-03-19

Family

ID=57185290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610545135.5A Expired - Fee Related CN106059760B (zh) 2016-07-12 2016-07-12 一种从用户端密码模块调用系统私钥的密码系统

Country Status (1)

Country Link
CN (1) CN106059760B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN109347625A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 密码运算、创建工作密钥的方法、密码服务平台及设备
CN110149356A (zh) * 2019-02-28 2019-08-20 深圳点猫科技有限公司 一种网络请求异常状态统一处理方法及装置
CN110691060A (zh) * 2018-07-06 2020-01-14 武汉信安珞珈科技有限公司 一种基于csp接口实现远端设备密码服务的方法和系统
CN113678182A (zh) * 2019-04-24 2021-11-19 哈曼国际工业有限公司 用于交通信号验证的系统和密码硬化方法
CN115134120A (zh) * 2022-05-30 2022-09-30 西藏大学 一种ecc结合opt的加密方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567780A (zh) * 2009-03-20 2009-10-28 武汉理工大学 一种针对加密数字证书的密钥管理与恢复方法
CN102255729A (zh) * 2011-07-07 2011-11-23 武汉理工大学 一种基于媒介数字证书的ibe数据加密系统
CN102307096A (zh) * 2011-08-26 2012-01-04 武汉理工大学 一种基于伪rsa密钥的新近公开密钥加密算法的应用实现方法
US8161565B1 (en) * 2000-12-26 2012-04-17 Entrust, Inc. Key release systems, components and methods
CN102932149A (zh) * 2012-10-30 2013-02-13 武汉理工大学 一种集成ibe数据加密系统
CN104717232A (zh) * 2015-04-09 2015-06-17 武汉理工大学 一种面向群组的密码系统
CN104734847A (zh) * 2015-04-21 2015-06-24 武汉理工大学 面向公钥密码应用的共享对称密钥数据加密和解密方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161565B1 (en) * 2000-12-26 2012-04-17 Entrust, Inc. Key release systems, components and methods
CN101567780A (zh) * 2009-03-20 2009-10-28 武汉理工大学 一种针对加密数字证书的密钥管理与恢复方法
CN102255729A (zh) * 2011-07-07 2011-11-23 武汉理工大学 一种基于媒介数字证书的ibe数据加密系统
CN102307096A (zh) * 2011-08-26 2012-01-04 武汉理工大学 一种基于伪rsa密钥的新近公开密钥加密算法的应用实现方法
CN102932149A (zh) * 2012-10-30 2013-02-13 武汉理工大学 一种集成ibe数据加密系统
CN104717232A (zh) * 2015-04-09 2015-06-17 武汉理工大学 一种面向群组的密码系统
CN104734847A (zh) * 2015-04-21 2015-06-24 武汉理工大学 面向公钥密码应用的共享对称密钥数据加密和解密方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN106549770B (zh) * 2017-01-13 2019-07-12 武汉理工大学 Sm2数字签名生成方法及系统
CN110691060A (zh) * 2018-07-06 2020-01-14 武汉信安珞珈科技有限公司 一种基于csp接口实现远端设备密码服务的方法和系统
CN109347625A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 密码运算、创建工作密钥的方法、密码服务平台及设备
CN109347625B (zh) * 2018-08-31 2020-04-24 阿里巴巴集团控股有限公司 密码运算、创建工作密钥的方法、密码服务平台及设备
CN110149356A (zh) * 2019-02-28 2019-08-20 深圳点猫科技有限公司 一种网络请求异常状态统一处理方法及装置
CN113678182A (zh) * 2019-04-24 2021-11-19 哈曼国际工业有限公司 用于交通信号验证的系统和密码硬化方法
US11961310B2 (en) 2019-04-24 2024-04-16 Harman International Industries, Incorporated System and cryptographic hardening method for traffic signal verification
CN115134120A (zh) * 2022-05-30 2022-09-30 西藏大学 一种ecc结合opt的加密方法
CN115134120B (zh) * 2022-05-30 2023-07-07 西藏大学 一种ecc结合opt的加密方法

Also Published As

Publication number Publication date
CN106059760B (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN110383757B (zh) 用于安全处理电子身份的系统和方法
CN107864139B (zh) 一种基于动态规则的密码学属性基访问控制方法与系统
CN106059760A (zh) 一种从用户端密码模块调用系统私钥的密码系统
CN103679436B (zh) 一种基于生物信息识别的电子合同保全系统和方法
CN102170357B (zh) 组合密钥动态安全管理系统
CN104184743B (zh) 面向云计算平台的三层认证系统及认证方法
CN104717232B (zh) 一种面向群组的密码系统
CN109347625B (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
CN107454079A (zh) 基于物联网平台的轻量级设备认证及共享密钥协商方法
KR20070024633A (ko) 갱신가능한 그리고 개인적인 바이오메트릭
CN102782694A (zh) 用于数据安全设备的事务审计
CN109067528A (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
US8220040B2 (en) Verifying that group membership requirements are met by users
CN109768983A (zh) 基于区块链的多维动态身份识别方法、装置及系统
CN107317677A (zh) 密钥存储及设备身份认证方法、装置
CN102301629A (zh) 鉴别通信会话和加密其数据的电路、系统、设备和方法
CN106572076A (zh) 一种Web服务访问方法、一种客户端、一种服务端
CN106209730B (zh) 一种管理应用标识的方法及装置
CN108462696A (zh) 一种去中心化的区块链智能身份认证系统
CN104734847B (zh) 面向公钥密码应用的共享对称密钥数据加密和解密方法
US20220020020A1 (en) Methods, systems, and devices for managing digital assets
CN106936775A (zh) 一种基于指纹识别的认证方法及系统
CN110597836A (zh) 基于区块链网络的信息查询请求响应方法及装置
CN113364597A (zh) 一种基于区块链的隐私信息证明方法及系统
CN114884697A (zh) 基于国密算法的数据加解密方法及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190319

Termination date: 20210712