CN104717232B - 一种面向群组的密码系统 - Google Patents
一种面向群组的密码系统 Download PDFInfo
- Publication number
- CN104717232B CN104717232B CN201510167158.2A CN201510167158A CN104717232B CN 104717232 B CN104717232 B CN 104717232B CN 201510167158 A CN201510167158 A CN 201510167158A CN 104717232 B CN104717232 B CN 104717232B
- Authority
- CN
- China
- Prior art keywords
- group
- key
- crypto module
- public
- community secret
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- 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/32—Cryptographic 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/3247—Cryptographic 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
- H04L9/3255—Cryptographic 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 using group based signatures, e.g. ring or threshold 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)
Abstract
本发明涉及一种面向群组的密码系统,包括密钥服务系统、密码模块、群组管理系统。基于所述密码系统,群组成员共享的一系列在不同时期有效的群组秘密密钥包括对称密钥或私钥在用户计算装置的密码模块中被保存在一个群组密钥对象中;当密码应用程序使用群组密钥对象进行密码运算时,密码模块选择群组密钥对象中合适的秘密密钥进行密码运算;若群组密钥对象中没有合适的秘密密钥,密码模块自动从密钥服务系统获取密码运算所需的群组秘密密钥,在获取过程中密码模块先连接群组管理系统获得证明用户是群组成员的群组令牌。基于本发明的密码系统,在群组秘密密钥进行更新时,用户无需每次进行秘密密钥的手工安装配置。
Description
技术领域
本发明属于信息安全领域,特别是一种适合于群组成员之间交互信息加密和解密的密码系统。
背景技术
人们常常有向群组成员发送消息的需求。许多通信软件支持这种群组消息发送功能,比如,许多电子邮件系统支持通过邮件组向特定用户群发送电子邮件:一个电子邮件组地址被分配给一个用户组,用户组中每个用户的电子邮箱地址被关联到这个邮件组地址,当一个用户向邮件组发送邮件时,邮件服务器会将发送到邮件组的邮件分发到邮件组中每个用户的邮件帐户,使得邮件组中的每个人都能收到此邮件;再比如,向QQ群发送消息:QQ群中的任一个人向QQ群中发送一条消息,群中的任何人都能收到此消息,这是因为虽然每个QQ用户有自己的QQ帐户,当一个用户加入一个QQ群后,他本人的QQ帐户就同QQ群帐户关联了,发送到QQ群帐户的消息被QQ即时通信系统分发到了群中每个用户的QQ帐户,从而使得QQ群中每个用户都能收到消息。
除了向群组用户发送消息,人们还有向群组用户发送加密消息的需求。假如消息通信系统或工具支持加密,那么,一种简单的方案是让群组用户共享一个密钥(对称密钥)或一对密钥(非对称密钥),当群组中的一个用户向群组通信地址发送加密消息时,群组中的每个用户都能解密加密消息。比如,目前的许多电子邮件客户端支持数字证书公钥加密,对此可以针对电子邮件组地址签发一张数字证书,邮件组中的每个成员都通过一定的安全渠道获得此证书的私钥,然后将此带私钥的数字证书安装、配置到邮件客户端的证书库中,这样邮件组中的每个用户都能发送加密邮件,以及解密发送到邮件组的加密邮件(发送加密邮件时,邮件客户端是根据接收邮件的地址选择用于加密的数字证书及公钥的;接收、读取加密邮件时,邮件客户端是根据加密邮件中的公钥标识信息找到对应的加密数字证书及私钥的)。若即时通信工具支持基于对称密钥的加密消息发送,则群组中每个用户通过安全途径获取用于群组消息加密的对称密钥,并安装到通信工具。但是,这种简单共享密钥方案存在一个问题:由于群组用户经常变更,因此,群组需要每隔一段时间(比如一个月、一周)变更共享密钥(对称或非对称密钥),这时,要求群组用户每隔一段时间去获取共享密钥并进行共享密钥安装配置将是一件非常麻烦的事情,这将影响用户对群组消息加密的使用。本发明就是要解决此问题。
发明内容
本发明的目的是提出一种适合于在群组成员之间进行加密数据交换以及便于定期更新共享密钥的面向群组的密码系统。
为了实现上述目的,本发明所采用的技术方案是:
一种面向群组的密码系统,所述系统包括密钥服务系统、密码模块以及群组管理系统,其中,
密钥服务系统:一个为群组成员在线生成和恢复群组秘密密钥的系统;所述群组秘密密钥是在群组成员中共享、用于数据加密和解密的秘密密钥,所述群组秘密密钥包括对称密钥(群组对称密钥)和公开密钥的私钥(群组私钥);(由于密钥更新和/或应对密钥泄露的需要)一个群组在不同时期具有不同的群组秘密密钥(比如,一个群组秘密密钥每周更新一次);在出现群组秘密密钥泄露时,一个群组的秘密密钥通过密钥更新在同一个时期出现不同的群组秘密密钥;
密码模块:一个运行在用户计算设备中提供密码功能的软件组件或软硬件相结合的组件;所述密码功能包括密钥管理和密码运算(比如,密钥的生成、导入、导出、删除,对数据的加密和解密密码运算);所述密码模块维护有群组密钥对象,包括永久性和临时性的群组密钥对象;密码模块中的一个群组密钥对象对应一个群组,并保存有群组的一系列在不同时期有效的群组秘密密钥,以及每个在不同时期有效的群组秘密密钥的标识信息;所述群组秘密密钥的标识信息用于在群组的一系列秘密密钥中标识和区分一个秘密密钥;所述群组密钥对象在初始创建时没有群组秘密密钥(即初始创建的群组密钥对象是一个空的群组密钥对象);密码模块按通常标识对称密钥或非对称密钥的密钥对象的方式标识群组密钥对象,群组密钥对象是被标识为对称密钥对象还是非对称密钥对象取决于群组密钥对象中存放的秘密密钥是对称密钥还是非对称密钥;密码应用程序按通常使用(对称或非对称)密钥对象的方式使用群组密钥对象,即密码应用程序不知道也不关心使用的群组密钥对象是通常的、非群组的密钥对象还是一个群组密钥对象(比如,若密码模块按Windows CSP或PKCS#11接口实现,则密码应用程序按通常使用Windows CSP或PKCS#11的对称或非对称密钥对象的方式使用群组密钥对象);所述密码应用程序是运行在用户计算设备中并使用密码模块中的群组密钥对象进行数据加密和解密的应用程序(若群组密钥对象中存放的是群组私钥,则仅进行数据解密密码运算);
群组管理系统:一个用于用户群组(简称群组)管理包括群组创建、群组维护和群组删除的系统;所述群组维护包括群组成员用户的加入和退出管理;所述群组管理系统管理的每个群组都有一个标识符,称为群组标识符或群组ID;所述群组标识符是一个唯一标识群组的字符串(如QQ群组的QQ号码、一个邮箱组的邮件地址等);当一个用户从密钥服务系统在线获取一个群组秘密密钥时,所述群组管理系统负责在线鉴别用户的身份,确定用户是群组成员,并在身份鉴别和群组成员确认通过后为用户签发证明用户是群组成员的群组令牌(group token)。
所述密码模块中的群组密钥对象由密码应用程序通过调用密码模块的密钥管理接口生成,或者由用户通过使用密钥管理工具调用密码模块的密钥管理接口生成。
若所述密码模块的群组密钥对象中保存的群组秘密密钥是对称密钥,则群组密钥对象中保存有群组标识符(用于指示群组密钥对象中的一系列秘密密钥所属的群组);
若所述密码模块的群组密钥对象中保存的群组秘密密钥是公开密钥对的私钥,且密码模块使用群组公钥对数据加密后放入到加密数据中的群组秘密密钥的标识信息中不包含有群组标识符,则群组密钥对象中保存有群组标识符(同样用于指示群组密钥对象中的秘密密钥所属的群组);
若所述密码模块的群组密钥对象中保存的群组秘密密钥是公开密钥对的私钥,且群组密钥对象中没有保存群组标识符,则密码模块使用群组公钥对数据加密后放入到加密数据中的群组秘密密钥的标识信息中包含有群组标识符;
若群组密钥对象中保存有群组标识符,则群组密钥对象中保存的群组标识符在群组密钥对象生成时由密码应用程序输入或者由用户输入。
若所述群组秘密密钥是公开密钥对的私钥,则每个群组对应有一个群组伪公钥(或称为伪群组公钥);所述群组伪公钥具有普通公钥一样的密钥数据结构,但其中的数据是群组标识符和使用群组公钥进行密码运算时所需的参数(具体需要什么参数取有于群组秘密密钥所对应的公开密钥密码算法);群组伪公钥所对应或标识的公开密钥密码算法的类型与群组公开密钥对的公开密钥密码算法的类型不同或者相同;群组伪公钥的密钥数据中存放有预先约定的特征标志,用于区分普通公钥(如RSA公钥)和群组伪公钥(如伪RSA公钥)。
当密码应用程序通过密码模块的接口使用公钥进行数据加密时,密码模块通过检查公钥中是否有群组伪公钥的特征标志判断密码应用程序使用的公钥是普通公钥(如RSA公钥)还是群组伪公钥(如伪RSA公钥),若是普通公钥,则密码模块按使用普通公钥的方式进行数据加密;若是群组伪公钥,则密码模块使用群组伪公钥中的群组标识符所指的群组的当前有效的群组公钥进行数据加密;若在密码模块本地无法得到群组的当前有效的群组公钥,则密码模块利用群组伪公钥中的群组标识符从密钥服务系统获取群组的当前有效的群组公钥,并将获得的当前有效的群组公钥保存到密码模块本地,然后使用获得的当前有效的群组公钥对数据进行加密;在使用群组的当前有效的群组公钥对数据加密后,密码模块将所使用的当前有效的群组公钥的标识信息作为解密加密数据的群组秘密密钥的标识信息按预先约定的方式放入到加密后的数据中(比如将标识信息作为填充或附加数据直接存放到加密后的数据中);所述当前有效的群组公钥即在使用群组公钥进行数据加密时刻有效的群组公开密钥对的公钥。
若所述加密模块中的群组密钥对象中存放的秘密密钥是对称密钥,则当密码应用程序通过密码模块的接口使用一个群组密钥对象对数据进行加密时,密码模块检查群组密钥对象中是否有当前有效的群组秘密密钥,若有,则使用当前有效的群组秘密密钥对数据进行加密;否则,密码模块先使用群组密钥对象中的群组标识符从密钥服务系统获得当前有效的群组秘密密钥,并将获得的当前有效的群组秘密密钥及群组秘密密钥的标识信息保存到群组密钥对象中,然后再使用当前有效的群组秘密密钥对数据进行加密;密码模块在使用群组秘密密钥对数据进行加密后,将所使用的当前有效的群组秘密密钥的标识信息作为解密加密数据的群组秘密密钥的标识信息按预先约定的方式放入到加密后的数据中(比如放入到加密后的数据的头部位置或尾部位置);所述当前有效的群组秘密密钥是指在使用秘密密钥进行数据加密时刻有效的群组秘密密钥(群组对称密钥)。
当密码应用程序通过所述密码模块的接口使用一个群组密钥对象对加密数据进行解密时,密码模块按如下方式进行数据解密处理:
第1步:从待解密的加密数据中获得加密方的密码模块在加密时放入的群组秘密密钥的标识信息;
第2步:检查密码应用程序使用的群组密钥对象中是否有第1步获得的群组秘密密钥的标识信息所对应的群组秘密密钥,若有,则使用对应的群组秘密密钥对加密数据进行解密;否则,从群组密钥对象或者从加密数据中的群组秘密密钥的标识信息中获得群组标识符,使用获得的群组标识符从密钥服务器获取加密数据中的群组秘密密钥的标识信息所对应的群组秘密密钥,并将获取的群组秘密密钥及群组秘密密钥的标识信息保存在群组密钥对象中,然后使用获取的群组秘密密钥对加密数据进行解密。
所述密码模块使用群组标识符从密钥服务器获取当前有效的群组秘密密钥的过程如下:
第一步:密码模块连接群组管理系统,提交群组标识符(群组ID),请求获取证明用户是群组成员的群组令牌;
第二步:群组管理系统对用户进行身份鉴别,身份鉴别通过后群组管理系统通过用户数据库检查确认用户是否是密码模块提交的群组标识符所对应的群组中的成员,若检查确认通过,则向密码模块返回证明用户是群组成员的群组令牌,返回的群组令牌中有用户所属群组的群组标识符信息和群组令牌的有效时间,且群组令牌被数字签名;若身份鉴别不通过,或者用户不属于密码模块提交的群组标识符所对应的群组,则返回出错;
第三步:密码模块获得证明用户是群组成员的群组令牌后,将群组令牌和获取群组秘密密钥的请求提交到密钥服务系统,请求中有要获取的群组秘密密钥的标识信息;
第四步:密钥服务系统先验证确认群组令牌的有效性,包括时间有效性和数字签名有效性,有效性验证确认通过后根据群组令牌确认用户是否是群组成员,从而确认用户是否被允许获取请求中的群组秘密密钥标识信息所对应的群组秘密密钥,确认通过后生成请求中的群组秘密密钥标识信息所对应的群组秘密密钥,并返回到密码模块。
若所述密码模块的群组密钥对象中的秘密密钥是对称密钥,而密码应用程序使用对称密钥密码算法进行数据加密和解密处理,则密码应用程序被配置为使用群组密钥对象进行数据加密和解密处理;若所述密码模块的群组密钥对象中的群组秘密密钥是公开密钥对的私钥,而密码应用程序使用公开密钥密码算法进行数据加密和解密处理,则密码应用程序被配置为使用群组密钥对象进行数据解密处理,被配置为使用群组伪公钥进行数据加密处理。
若所述密码模块的群组密钥对象中的群组秘密密钥是公开密钥对的私钥且密码应用程序通过数字证书进行数据加密和解密处理,则一个群组密钥对象被设置成为或关联成为一个伪数字证书(群组伪数字证书)的私钥对象,而密码应用程序被配置为(自动或手工配置为)通过伪数字证书使用群组公钥和群组私钥进行数据加密和解密处理;所述伪数字证书是一个具有X509格式但证书上的公钥是群组伪公钥的数字证书;所述伪数字证书由一个单独的CA系统签发或者由一个在用户计算设备中自生成、自签名的CA证书的私钥签发;在不同用户计算设备上使用自生成、自签名的CA证书的私钥所签发的、针对同一个群组的伪数字证书的签发者名(Issuer Name)和序列号(Serial Number)相同;由单独CA系统签发或者在用户计算设备中自生成、自签名的CA证书的私钥签发的伪数字证书的有效期覆盖所有群组秘密密钥的有效期。
从以上描述可以看到,一个群组的一系列秘密密钥在用户计算装置的密码模块中用一个密钥对象存储;在数据加密和解密过程中如果需要获取一个新的群组秘密密钥或恢复之前的一个群组秘密密钥,密码模块会自动连接群组管理系统和密钥管理系统获取所需的群组秘密密钥,无需用户反复进行安装配置。如果一个密码应用程序通过数字证书进行数据的加密和解密,则用户或密码应用程序只需进行一次数字证书的安装配置即可通过数字证书使用群组秘密密钥进行数据加密和解密。
附图说明
图1为本发明的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
下面先描述密码模块的实现。密码模块既可以按标准接口(如Windows CSP、PKCS#11)实现,也可以按自动定义接口实现,取决于密码应用程序。如果密码应用程序是通过标准的密码接口调用密码模块,则密码模块按标准密码接口实现,否则,按自定义密码接口实现。进一步的实施方式取决于群组秘密密钥是对称密钥还是公开密钥对的私钥,以及在群组秘密密钥是私钥时群组密钥对象中是否保存群组标识符。
若群组秘密密钥是对称密钥,或者群组秘密密钥是私钥且群组密钥对象中保存群组标识符,则群组秘密密钥的标识信息的实施方案如下。
群组秘密密钥的标识信息,包括加密数据中的当前有效的群组秘密密钥的标识信息以及群组密钥对象中的群组秘密密钥的标识信息,可用一个时间有效期和序列号来表示,作为群组秘密密钥的标识信息,比如:起始时间“:”结束时间“|”序列号(引号中的内容原样保持),其中,起始时间“:”结束时间表示有效期,而序列号表示该有效期内的一个秘密密钥,序列号用于应对群组秘密密钥的泄露,比如,若在某个有效期内的群组秘密密钥被泄露,则在此有效期内可使用另一个序列号不同的秘密密钥。序列号可用数字表示,其初始值可取0。密码模块可从群组密钥对象或群组伪公钥中获得群组标识符,并结合时间有效期和序列号唯一标识和识别一个群组秘密密钥。
若群组秘密密钥是对称密钥,或者群组秘密密钥是私钥且群组密钥对象中保存有群组标识符,则密码模块的密钥管理接口要实现如下功能:
(1)密钥生成接口要有额外的参数输入群组标识符(密码模块按标准接口实施时,此密钥生成接口是自定义的额外接口),或者在密钥生成接口被调用生成秘密密钥(对象)时,密码模块弹出窗口要求用户进一步输入群组标识符(密码模块按标准接口实施时,此密钥生成接口是标准接口);
(2)定义有群组秘密密钥(对象)导入、导出接口,用于群组秘密密钥对象的导入、导出(密码模块按标准接口实施时,这些导入、导出接口是额外定义的)。
若群组秘密密钥是私钥且群组密钥对象中没有(单独)保存群组标识符,则群组秘密密钥的标识信息的实施方案如下。
群组秘密密钥的标识信息,包括加密数据中的当前有效的群组秘密密钥的标识信息以及群组密钥对象中的群组秘密密钥的标识信息,可用群组标识符加上时间有效期和序列号作为群组秘密密钥的标识信息,比如:群组标识符“|”起始时间“:”结束时间“|”序列号(引号中的内容原样保持),此群组秘密密钥的标识信息唯一标识了一个群组秘密密钥(群组私钥),密码模块可从群组伪公钥中或者加密数据中的群组秘密密钥的标识信息中获得所需的群组标识符。若群组秘密密钥是私钥,则群组秘密密钥的标识信息也是对应公钥的标识信息。
在群组秘密密钥是私钥且群组密钥对象中没有(单独)保存群组标识符的情况下,密码模块的密钥生成接口无需关心群组标识符(在密码模块的所有对称密钥对象或非对称密钥对象都是与一个标识符对应的密钥的情况下,密码模块甚至无需关心密钥对象是群组密钥对象还是非群组密钥对象,在密码模块连接群组管理系统获取令牌时,群组管理系统自动识别标识符是群组标识还是个人标识符,并相应地签发群组令牌和个人令牌)。
将加密数据时所用的当前有效的群组秘密密钥的标识信息放到加密数据中的实施方案如下。
若群组秘密密钥是对称密钥,则在进行数据加密时,密码模块可将加密数据时所用的当前有效的群组秘密密钥的标识信息放到加密数据的头部或尾部。
若群组秘密密钥是公开密钥对的私钥(即是群组私钥),则群组伪公钥可按如下方式实施。
选择合适的公开密钥算法类型和密钥长度的公钥作为群组伪公钥。群组伪公钥的公开密钥算法类型可以是任意的,但考虑到要在群组伪公钥数据中存放特征标志、群组标识符及使用群组公钥进行密码算法时所需的参数,则群组伪公钥选择适当长度的伪RSA公钥比较合适,因为,RSA公钥数据结构通常比较大,能容纳较多的数据。群组私钥对应的公开密钥的算法类型与群组伪公钥的公开密钥的算法类型不需要是一致的,比如,若群组伪公钥的密钥类型是伪RSA密钥,此时的群组私钥对应的公开密钥的算法类型可以是ECC(Elliptic Curve Cryptography)或IBC(Identity Based Cryptography)或IBE(IdentityBased Encryption)或RSA。
若群组伪公钥选择的是RSA公钥,则群组秘密密钥的密钥对象被标识为RSA私钥或RSA密钥对密钥对象;实施者自己确定群组伪公钥的特征标志是怎样的,哪些参数需要放入伪公钥,但RSA公钥或密钥对的长度要满足如下要求:
(1)公钥数据结构能放置下群组标识符、特征标志和公钥密码运算所需的参数;
(2)伪RSA公钥按RSA密钥算法对数据块加密后的数据长度大于群组公钥对数据块加密后的数据长度和当前有效的群组秘密密钥的标识信息的长度之和。
在RSA公钥或密钥对的长度满足以上条件下,使用当前有效的群组公钥进行块加密后,密码模块将当前有效的群组秘密密钥的标识信息(通过适当分隔后)放置到加密数据块之后,然后再填上其他填充数据使得用群组公钥加密后的数据、附加的密钥标识信息及填充数据的总长度等于RSA加密后的数据块长度。
另外,若密码模块中既有存放群组秘密密钥的密钥对象,又有存放非群组秘密密钥的密钥对象,则密钥对象中可设置相应的标志用于区分密钥对象是存放群组秘密密钥的密钥对象还是存放非群组秘密密钥的密钥对象。
群组管理系统可以采用任何信息系统开发技术(如J2EE、ASP.NET)并结合数据库技术(如Oracle、MySQL),或则在已有群组管理系统的基础上扩展,如QQ群管理系统的基础上扩展,加入在线签发群组令牌的功能。若密码模块能直接访问或使用用户在群组管理系统进行身份鉴别的秘密数据,如口令、个人秘密密钥,则密码模块可以自动连接群组管理系统完成身份鉴别、获得群组令牌。
同样地密钥服务系统可以采用任何信息系统开发技术(如J2EE、ASP.NET)并结合数据库技术(如Oracle、MySQL),实现群组密钥的生成。若群组密钥是基于群组标识符和秘密密钥标识信息唯一生成的,比如是IBC密钥对或IBE密钥对或基于标识的ECC密钥对或基于标识的对称密钥,则密钥服务系统无需集中保存已生成的群组密钥(对称密钥或密钥对),因为,密钥服务系统可根据群组标识符和秘密密钥标识信息随时生成群组密钥(对称密钥或密钥对)。若群组密钥不是基于群组标识符和秘密密钥标识信息唯一生成的,比如是RSA密钥对,则密钥服务系统需要集中、安全地存储已生成的所有群组密钥。
密码模块同密钥服务系统、群组管理系统之间的交互协议可自定义。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种面向群组的密码系统,其特征在于,所述系统包括:密钥服务系统、密码模块以及群组管理系统,其中,
密钥服务系统:一个为群组成员在线生成和恢复群组秘密密钥的系统;所述群组秘密密钥是在群组成员中共享、用于数据加密和解密的秘密密钥,所述群组秘密密钥包括对称密钥和公开密钥的私钥;一个群组在不同时期具有不同的群组秘密密钥;在出现群组秘密密钥泄露时,一个群组的秘密密钥通过密钥更新在同一个时期出现不同的群组秘密密钥;
密码模块:一个运行在用户计算设备中提供密码功能的软件组件或软硬件相结合的组件;所述密码功能包括密钥管理和密码运算;所述密码模块维护有群组密钥对象,包括永久性和临时性的群组密钥对象;密码模块中的一个群组密钥对象对应一个群组,并保存有群组的一系列在不同时期有效的群组秘密密钥,以及每个在不同时期有效的群组秘密密钥的标识信息;所述群组秘密密钥的标识信息用于在群组的一系列秘密密钥中标识和区分一个秘密密钥;所述群组密钥对象在初始创建时没有群组秘密密钥;密码模块按通常标识对称密钥或非对称密钥的密钥对象的方式标识群组密钥对象,群组密钥对象是被标识为对称密钥对象还是非对称密钥对象取决于群组密钥对象中存放的秘密密钥是对称密钥还是非对称密钥;密码应用程序按通常使用密钥对象的方式使用群组密钥对象,即密码应用程序不知道也不关心使用的群组密钥对象是通常的、非群组的密钥对象还是一个群组密钥对象;所述密码应用程序是运行在用户计算设备中并使用密码模块中的群组密钥对象进行数据加密和解密的应用程序;
群组管理系统:一个用于用户群组管理包括群组创建、群组维护和群组删除的系统;所述群组维护包括群组成员用户的加入和退出管理;所述群组管理系统管理的每个群组都有一个标识符,称为群组标识符或群组ID;所述群组标识符是一个唯一标识群组的字符串;当一个用户从密钥服务系统在线获取一个群组秘密密钥时,所述群组管理系统负责在线鉴别用户的身份,确定用户是群组成员,并在身份鉴别和群组成员确认通过后为用户签发证明用户是群组成员的群组令牌;
当密码应用程序通过密码模块的接口使用一个群组密钥对象对数据进行加密或解密时,若密码模块检查发现群组密钥对象中没有进行数据加密或解密所需的群组秘密密钥,则密码模块自动连接群组管理系统,从群组管理系统获取证明用户是群组成员的群组令牌,然后利用获得的群组令牌从密钥管理系统获取所需的群组秘密密钥,并将获得的群组秘密密钥及群组秘密密钥的标识信息保存到群组密钥对象中。
2.根据权利要求1所述的面向群组的密码系统,其特征是:
所述密码模块中的群组密钥对象由密码应用程序通过调用密码模块的密钥管理接口生成,或者由用户通过使用密钥管理工具调用密码模块的密钥管理接口生成。
3.根据权利要求1所述的面向群组的密码系统,其特征是:
若所述密码模块的群组密钥对象中保存的群组秘密密钥是对称密钥,则群组密钥对象中保存有群组标识符;
若所述密码模块的群组密钥对象中保存的群组秘密密钥是公开密钥对的私钥,且密码模块使用群组公钥对数据加密后放入到加密数据中的群组秘密密钥的标识信息中不包含有群组标识符,则群组密钥对象中保存有群组标识符;
若所述密码模块的群组密钥对象中保存的群组秘密密钥是公开密钥对的私钥,且群组密钥对象中没有保存群组标识符,则密码模块使用群组公钥对数据加密后放入到加密数据中的群组秘密密钥的标识信息中包含有群组标识符;
若群组密钥对象中保存有群组标识符,则群组密钥对象中保存的群组标识符在群组密钥对象生成时由密码应用程序输入或者由用户输入。
4.根据权利要求1所述的面向群组的密码系统,其特征是:
若所述群组秘密密钥是公开密钥对的私钥,则每个群组对应有一个群组伪公钥;所述群组伪公钥具有普通公钥一样的密钥数据结构,但其中的数据是群组标识符和使用群组公钥进行密码运算时所需的参数;群组伪公钥所对应或标识的公开密钥密码算法的类型与群组公开密钥对的公开密钥密码算法的类型不同或者相同;群组伪公钥的密钥数据中存放有预先约定的特征标志,用于区分普通公钥和群组伪公钥。
5.根据权利要求1所述的面向群组的密码系统,其特征是:
当密码应用程序通过密码模块的接口使用公钥进行数据加密时,密码模块通过检查公钥中是否有群组伪公钥的特征标志判断密码应用程序使用的公钥是普通公钥还是群组伪公钥,若是普通公钥,则密码模块按使用普通公钥的方式进行数据加密;若是群组伪公钥,则密码模块使用群组伪公钥中的群组标识符所指的群组的当前有效的群组公钥进行数据加密;若在密码模块本地无法得到群组的当前有效的群组公钥,则密码模块利用群组伪公钥中的群组标识符从密钥服务系统获取群组的当前有效的群组公钥,并将获得的当前有效的群组公钥保存到密码模块本地,然后使用获得的当前有效的群组公钥对数据进行加密;在使用群组的当前有效的群组公钥对数据加密后,密码模块将所使用的当前有效的群组公钥的标识信息作为解密加密数据的群组秘密密钥的标识信息按预先约定的方式放入到加密后的数据中;所述当前有效的群组公钥即在使用群组公钥进行数据加密时刻有效的群组公开密钥对的公钥。
6.根据权利要求1所述的面向群组的密码系统,其特征是:
若所述加密模块中的群组密钥对象中存放的秘密密钥是对称密钥,则当密码应用程序通过密码模块的接口使用一个群组密钥对象对数据进行加密时,密码模块检查群组密钥对象中是否有当前有效的群组秘密密钥,若有,则使用当前有效的群组秘密密钥对数据进行加密;否则,密码模块先使用群组密钥对象中的群组标识符从密钥服务系统获得当前有效的群组秘密密钥,并将获得的当前有效的群组秘密密钥及群组秘密密钥的标识信息保存到群组密钥对象中,然后再使用当前有效的群组秘密密钥对数据进行加密;密码模块在使用群组秘密密钥对数据进行加密后,将所使用的当前有效的群组秘密密钥的标识信息作为解密加密数据的群组秘密密钥的标识信息按预先约定的方式放入到加密后的数据中;所述当前有效的群组秘密密钥是指在使用秘密密钥进行数据加密时刻有效的群组秘密密钥。
7.根据权利要求1所述的面向群组的密码系统,其特征是:
当密码应用程序通过所述密码模块的接口使用一个群组密钥对象对加密数据进行解密时,密码模块按如下方式进行数据解密处理:
第1步:从待解密的加密数据中获得加密方的密码模块在加密时放入的群组秘密密钥的标识信息;
第2步:检查密码应用程序使用的群组密钥对象中是否有第1步获得的群组秘密密钥的标识信息所对应的群组秘密密钥,若有,则使用对应的群组秘密密钥对加密数据进行解密;否则,从群组密钥对象或者从加密数据中的群组秘密密钥的标识信息中获得群组标识符,使用获得的群组标识符从密钥服务器获取加密数据中的群组秘密密钥的标识信息所对应的群组秘密密钥,并将获取的群组秘密密钥及群组秘密密钥的标识信息保存在群组密钥对象中,然后使用获取的群组秘密密钥对加密数据进行解密。
8.根据权利要求6或7所述的面向群组的密码系统,其特征是:
所述密码模块使用群组标识符从密钥服务器获取当前有效的群组秘密密钥的过程如下:
第一步:密码模块连接群组管理系统,提交群组标识符,请求获取证明用户是群组成员的群组令牌;
第二步:群组管理系统对用户进行身份鉴别,身份鉴别通过后群组管理系统通过用户数据库检查确认用户是否是密码模块提交的群组标识符所对应的群组中的成员,若检查确认通过,则向密码模块返回证明用户是群组成员的群组令牌,返回的群组令牌中有用户所属群组的群组标识符信息和群组令牌的有效时间,且群组令牌被数字签名;若身份鉴别不通过,或者用户不属于密码模块提交的群组标识符所对应的群组,则返回出错;
第三步:密码模块获得证明用户是群组成员的群组令牌后,将群组令牌和获取群组秘密密钥的请求提交到密钥服务系统,请求中有要获取的群组秘密密钥的标识信息;
第四步:密钥服务系统先验证确认群组令牌的有效性,包括时间有效性和数字签名有效性,有效性验证确认通过后根据群组令牌确认用户是否是群组成员,从而确认用户是否被允许获取请求中的群组秘密密钥标识信息所对应的群组秘密密钥,确认通过后生成请求中的群组秘密密钥标识信息所对应的群组秘密密钥,并返回到密码模块。
9.根据权利要求1所述的面向群组的密码系统,其特征是:
若所述密码模块的群组密钥对象中的秘密密钥是对称密钥,而密码应用程序使用对称密钥密码算法进行数据加密和解密处理,则密码应用程序被配置为使用群组密钥对象进行数据加密和解密处理;若所述密码模块的群组密钥对象中的群组秘密密钥是公开密钥对的私钥,而密码应用程序使用公开密钥密码算法进行数据加密和解密处理,则密码应用程序被配置为使用群组密钥对象进行数据解密处理,被配置为使用群组伪公钥进行数据加密处理。
10.根据权利要求1所述的面向群组的密码系统,其特征是:
若所述密码模块的群组密钥对象中的群组秘密密钥是公开密钥对的私钥且密码应用程序通过数字证书进行数据加密和解密处理,则一个群组密钥对象被设置成为或关联成为一个伪数字证书的私钥对象,而密码应用程序被配置为通过伪数字证书使用群组公钥和群组私钥进行数据加密和解密处理;所述伪数字证书是一个具有X509格式但证书上的公钥是群组伪公钥的数字证书;所述伪数字证书由一个单独的CA系统签发或者由一个在用户计算设备中自生成、自签名的CA证书的私钥签发;在不同用户计算设备上使用自生成、自签名的CA证书的私钥所签发的、针对同一个群组的伪数字证书的签发者名和序列号相同;由单独CA系统签发或者在用户计算设备中自生成、自签名的CA证书的私钥签发的伪数字证书的有效期覆盖所有群组秘密密钥的有效期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510167158.2A CN104717232B (zh) | 2015-04-09 | 2015-04-09 | 一种面向群组的密码系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510167158.2A CN104717232B (zh) | 2015-04-09 | 2015-04-09 | 一种面向群组的密码系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104717232A CN104717232A (zh) | 2015-06-17 |
CN104717232B true CN104717232B (zh) | 2018-01-19 |
Family
ID=53416193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510167158.2A Expired - Fee Related CN104717232B (zh) | 2015-04-09 | 2015-04-09 | 一种面向群组的密码系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104717232B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059760B (zh) * | 2016-07-12 | 2019-03-19 | 武汉理工大学 | 一种从用户端密码模块调用系统私钥的密码系统 |
CN108011885B (zh) * | 2017-12-07 | 2020-12-15 | 北京科技大学 | 一种基于群组密码体制的电子邮件加密方法与系统 |
CN110140124B (zh) * | 2017-12-29 | 2021-04-20 | 华为技术有限公司 | 分组应用使用同一密钥共享数据 |
CN110691060B (zh) * | 2018-07-06 | 2022-08-09 | 武汉信安珞珈科技有限公司 | 一种基于csp接口实现远端设备密码服务的方法和系统 |
CN109274690A (zh) * | 2018-11-08 | 2019-01-25 | 蓝信移动(北京)科技有限公司 | 群数据加密方法 |
CN109286636A (zh) * | 2018-11-08 | 2019-01-29 | 蓝信移动(北京)科技有限公司 | 密钥管理方法、密钥服务器以及存储介质 |
CN112422277B (zh) * | 2020-11-04 | 2022-03-25 | 郑州信大捷安信息技术股份有限公司 | 差动保护组内差动单元之间加密数据传输系统及方法 |
CN112511498B (zh) * | 2020-11-10 | 2022-08-26 | 新华三技术有限公司 | 一种数据加密、解密方法、装置及设备 |
CN113708925B (zh) * | 2021-08-09 | 2023-12-12 | 武汉理工大学 | 一种普通密码算法密钥的群组使用方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185795A (zh) * | 2011-04-26 | 2011-09-14 | 苏州阔地网络科技有限公司 | 一种社区平台上实现群组通讯的方法及系统 |
CN103532709A (zh) * | 2013-09-24 | 2014-01-22 | 武汉理工大学 | 一种ibe密码装置及数据加解密方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469455B (zh) * | 2010-11-08 | 2016-04-13 | 中兴通讯股份有限公司 | 基于通用引导架构的机器类通信设备分组管理方法及系统 |
-
2015
- 2015-04-09 CN CN201510167158.2A patent/CN104717232B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185795A (zh) * | 2011-04-26 | 2011-09-14 | 苏州阔地网络科技有限公司 | 一种社区平台上实现群组通讯的方法及系统 |
CN103532709A (zh) * | 2013-09-24 | 2014-01-22 | 武汉理工大学 | 一种ibe密码装置及数据加解密方法 |
Non-Patent Citations (1)
Title |
---|
《移动自组网中基于冻结技术的群组密钥更新》;王国军等;《计算机工程》;20080131;第34卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104717232A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104717232B (zh) | 一种面向群组的密码系统 | |
CN103716322B (zh) | 密钥下载方法、管理方法、下载管理方法及装置和系统 | |
CN105635049B (zh) | 基于客户端标识密码的防伪税控方法和装置 | |
AU2002355593B2 (en) | Data certification method and apparatus | |
US6553493B1 (en) | Secure mapping and aliasing of private keys used in public key cryptography | |
US7571324B2 (en) | Method and device for anonymous signature with a shared private key | |
US20070174636A1 (en) | Methods, systems, and apparatus for encrypting e-mail | |
CN107196966A (zh) | 基于区块链的多方信任的身份认证方法和系统 | |
US20030190046A1 (en) | Three party signing protocol providing non-linkability | |
US20100046757A1 (en) | Electronic Data Communication System | |
CN109672537A (zh) | 基于公钥池的抗量子证书获取系统及获取方法 | |
CN102769623B (zh) | 基于数字证书和生物识别信息进行双重认证的方法 | |
JPH10327147A (ja) | 電子認証公証方法およびシステム | |
CN102932149A (zh) | 一种集成ibe数据加密系统 | |
CN106059760B (zh) | 一种从用户端密码模块调用系统私钥的密码系统 | |
US8220040B2 (en) | Verifying that group membership requirements are met by users | |
CN104734847B (zh) | 面向公钥密码应用的共享对称密钥数据加密和解密方法 | |
Simmons | Secure communications and asymmetric cryptosystems | |
EP3873055A1 (en) | Methods, systems, and devices for managing digital assets | |
CN1697376A (zh) | 用集成电路卡对数据进行认证或加密的方法和系统 | |
Nasir et al. | Study on e-voting systems: A blockchain based approach | |
CN112950356B (zh) | 基于数字身份的个人贷款处理方法及系统、设备、介质 | |
EP4261809A1 (en) | Service provision system | |
CN110278073A (zh) | 一种群组数字签名、验证方法及其设备和装置 | |
WO2021019783A1 (ja) | 所有者同一性確認システム、端末および所有者同一性確認方法 |
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 |
Granted publication date: 20180119 Termination date: 20210409 |
|
CF01 | Termination of patent right due to non-payment of annual fee |