掌桥专利:专业的专利平台
掌桥专利
首页

一种基于属性的数据加密方法和系统

文献发布时间:2023-06-19 11:45:49


一种基于属性的数据加密方法和系统

技术领域

本发明属于密码技术领域,特别是一种基于属性的数据加密方法和系统。

背景技术

基于属性的加密(Attribute Based Encryption,ABE)是一种公钥密码体制,它将用户属性和密钥关联,将数据加密和解密与基于属性的控制结构相关联,确保只有获得相应属性的用户才能够解密数据,实现对数据解密的控制。基于属性的加密又分为密文策略-基于属性的加密(CP-ABE)和密钥策略-基于属性的加密(KP-ABE)。

基于属性的加密通常是基于双线性映射(bilinear mapping,也称配对运算,Pairing)的算法,其中双线性映射(配对运算)如为:

e:G

若P、Q、R分别为G

e(P+R,Q)=e(P,Q)e(R,Q),

e(P,Q+R)=e(P,Q)e(P,R),

e([a]P,[b]Q)=e(P,Q)

这里a、b是[0,n-1]中的一个整数,[a]P、[b]Q表示点的P、Q的多倍点加运算或数乘运算。

目前的基于属性的加密方案的一个比较突出的问题是算法非常复杂,一般的工程技术人员不容易搞懂,相应的实施难度也较大。有工程经验的人都知道,解决工程中的实际问题,在取得同样技术效果的前提下,尽可能采用简单的方案,这样不但实施简单,而且运行可靠,而不是追求采用理论上最完美的方案,应用理论上最好的算法。目前的基于属性的加密方案面临的另一个问题是实现属性撤销比较困难。

基于属性的加密的应用场景大多是用户端、服务端模式(客户端、服务器模式),对于这种应用场景,可以通过将基于属性的加密和服务端的访问控制结合起来来解决问题,实现预期的技术目标,而不是让基于属性的加密算法去解决所有的问题。

发明内容

本发明的目的是提出一种基于属性的数据加密技术方案,以克服现有技术存在的问题。

为了实现以上目的,本发明的技术方案包括一系列的方法和系统,其中包括一种属性私钥及私钥秘密份额生成和管理方法,以及基于此方法的基于属性的数据加密方法和数据解密方法,以及在这些方法基础上构建的属性私钥及私钥秘密份额生成和管理系统、基于属性的数据加密系统、基于属性的文件加密系统、基于属性的加密文件服务系统。

本发明涉及双线性映射(配对运算)e:G

[k]P,其中k为整数,表示针对双线性映射中加法群(G

在本发明的描述中,如无特别说明,整数的逆(比如,a

本发明提出的属性私钥及私钥秘密份额生成和管理方法具体如下。

所述属性私钥及私钥秘密份额生成和管理方法涉及服务端的属性私钥生成器(Attribute Private Key Generator)、密钥服务器、属性及属性私钥秘密份额管理器(manager),用户端的用户、密钥客户端程序和密码组件;

所述属性私钥生成器用于生成用户属性所对应的私钥即属性私钥;所述用户属性是反映用户特征的信息(如性别、职务、职称、角色等);

所述密钥服务器是用户申请属性私钥的秘密份额时与用户端的密钥客户端程序进行交互的服务端的系统组件;所述属性私钥是用户属性所对应的私钥;所述属性私钥的秘密份额指服务端和用户端分别保存的与属性私钥有关并能恢复属性私钥的秘密;

所述属性及属性私钥秘密份额管理器对用户的属性以及属性私钥的秘密份额进行管理;所述属性及属性私钥秘密份额管理器有用户数据库,用于存放用户属性以及属性私钥的秘密份额;

所述用户是具有用户属性、需要使用属性私钥(的秘密份额)进行数据解密操作处理的个人、机构或系统;

所述密钥客户端程序是用户申请属性私钥的秘密份额时所使用的与密钥服务器进行交互的用户端程序;

所述密码组件是用户端进行密码运算、存储用户密钥(属性私钥之外的其他密钥)以及存储属性私钥的秘密份额的软件组件或软硬件结合的组件;

所述用户、密钥客户端程序和密码组件统称为用户方;

所述属性私钥及私钥秘密份额生成和管理方法涉及双线性映射(配对运算)e:G

针对以上所述双线性映射还定义有:

e

e

所述属性私钥生成器有一个[1,n-1]内的主密钥(主私钥)s;

当用户方需要申请属性A所对应的私钥(即属性私钥)d

密钥服务器通过属性及属性私钥秘密份额管理器的用户数据库验证确认申请属性私钥秘密份额的用户就是其声称的用户(如其声称的人、机构或系统)且拥有对应的属性A,验证通过后将用户方提交的获取属性A的私钥的秘密份额的申请提交到属性私钥生成器(若验证确认不通过,则密钥服务器拒绝用户方申请);

属性私钥生成器检查本地是否已缓存或保存有属性A所对应的属性私钥d

所述属性的名字是属性的标识名称(如男性、女性),或者是针对属性的描述文字(如年龄大于18岁,只要能区分不同属性即可);

属性私钥生成器将d

或者,属性私钥生成器将d

密钥服务器将d

用户方(由密钥客户端程序)将d

以上所述d

若用户有多个属性需要申请属性私钥的秘密份额,则用户方分多次申请获得用户每个属性所对应的属性私钥的用户端的秘密份额,或者一次获得用户所有属性的属性私钥的用户端的秘密份额;于此同时,密钥服务器将用户多个属性的属性私钥的服务端的秘密份额保存在属性及属性私钥秘密份额管理器的用户数据库中的用户信息中;所述多个属性指多于一个的属性(两个或更多);

所述属性私钥生成器有一个主公钥P

(若这里取i=1,那么,后续的i都为1,后续的j都为3-i=2;若这里取i=2,那么,后续的i都为2,后续的j都为3-i=1)

对于以上所述的属性私钥及私钥秘密份额生成和管理方法,所述用户属性包括受时间有效期限定的属性和未受时间有效期限定的属性;

所述受时间有效期限定的属性由属性名或属性标识符加上时间有效期所构成(如,属性名:时间有效期的,如user@secret.com:xxxx-yyyy,即属性名或属性标识符与时间有效期的字串合并);所述时间有效期由起始时间和结束时间构成;

所述时间有效期的表示方式是从一个约定的零时时刻开始(如约定某年某月某日的零时为零时时刻,如1970年1月1日0时0分0秒),然后按每隔一个约定的时间周期(如三个月、半年)更新时间有效期;

对于受时间有效器限定的属性,用户方在属性的时间有效期即将到期之前的规定时间内(如到期之前的一周、两周内)或到期后,申请受新的时间有效期限定的属性所对应的私钥的秘密份额,用户方以及属性及属性私钥秘密份额管理器分别保存用户端和服务端的针对新的属性私钥的秘密份额(之前的秘密份额可以继续保存一段时间)。

对于以上所述的属性私钥及私钥秘密份额生成和管理方法,所述属性私钥生成器或密钥服务器将d

在群G

或者,在[2,n-1]内随机选取一个整数t

所述属性私钥生成器或密钥服务器在群G

在[2,n-1]内随机选取一个整数t

或者,在[1,n-1]内随机选取一个整数t

对于以上所述的属性私钥及私钥秘密份额生成和管理方法,所述属性私钥生成器或密钥服务器将d

在[1,n-1]内随机选择一个整数t

对于以上所述的属性私钥及私钥秘密份额生成和管理方法,将属性A的名字或标识符映射为群G

将属性A的名字或标识符映射到群G

或者,将属性A的名字或标识符映射到群G

或者,将属性A的名字或标识符映射到[1,n-1]中的一个整数h

或者,将属性A的名字或标识符映射到[1,n-1]中的一个整数h

或者,将属性A的名字或标识符映射到[1,n-1]中的一个整数h

或者,将属性A的名字或标识符映射到[1,n-1]中的一个整数h

将属性A的名字或标识符映射到[1,n-1]中的一个整数h

属性私钥生成器在群G

属性私钥生成器在群G

若采用将属性A的名字或标识符映射到[1,n-1]中的一个整数h

若采用将属性A的名字或标识符映射到[1,n-1]中的一个整数h

若采用将属性A的名字或标识符映射到[1,n-1]中的一个整数h

对于以上所述的属性私钥及私钥秘密份额生成和管理方法,若将属性A映射到群G

若采用d

若采用d

当需要计算属性A对应的私钥d

若采用d

若采用d

对于以上所述的属性私钥及私钥秘密份额生成和管理方法,当用户的一个属性A被取消后,所述属性及属性私钥秘密份额管理器将用户数据库中保存的用户的属性A对应的属性私钥d

基于以上所述的属性私钥及私钥秘密份额生成和管理方法的基于属性的数据加密方法如下。

当数据加密方需要利用属性集S=(A

数据加密方以G

若采用d

若采用d

所述利用属性集S=(A

所述数据加密方是所述属性及属性私钥秘密份额管理器中的用户或用户之外的其他实体。

对于以上所述的基于属性的数据加密方法,若m≥2,则所述属性集S中允许包含一个系统属性AS(用系统名或系统标识表示),所述系统属性AS与其他属性一样被映射到群G

若属性私钥生成器采用d

若属性私钥生成器采用d

若允许属性集S中包含系统属性AS,则采用d

若允许属性集S中包含系统属性AS,则用户方无需申请系统属性AS的私钥的用户端的秘密份额,服务端自动生成、保存系统属性AS的私钥d

属性及属性私钥秘密份额管理器的每个用户缺省地拥有系统属性AS,并拥有属性私钥d

对于以上所述的基于属性的数据加密方法的基于属性的数据解密方法,所述基于属性的数据解密方法还涉及服务端的密码服务器和用户端的与密码服务器交互、进行数据解密操作处理的数据解密客户端程序;所述数据解密客户端程序调用用户端的密码组件进行数据解密运算;用户端的密钥客户端程序、密码组件和数据解密客户端程序统称为用户方;

当用户方需要解密采用属性集S=(A

所述当前用户是正在进行数据解密操作的用户方的用户。

对于以上所述的基于属性的数据解密方法:

若d

密码服务器计算w

用户方计算w

之后密码服务器或用户方计算w=w

若d

密码服务器计算w

用户方计算w

之后密码服务器或用户方计算w

若d

用户方计算w

密码服务器计算w

之后密码服务器或用户方计算w

对于以上所述的基于属性的数据解密方法:

若在进行数据解密的过程中用户方的数据解密客户端程序通过与密码服务器的交互知道用户拥有属性集S=(A

基于以上所述的属性私钥及私钥秘密份额生成和管理方法的属性私钥及私钥秘密份额生成和管理系统如下。

所述属性私钥及私钥秘密份额生成和管理系统包括服务端的属性私钥生成器、密钥服务器、属性及属性私钥秘密份额管理器,用户端的密钥客户端程序和密码组件;

所述属性私钥及私钥秘密份额生成和管理系统按所述属性私钥及私钥秘密份额生成和管理方法生成用户属性所对应的私钥以及属性私钥的服务端的秘密份额和用户端的秘密份额,保存和管理用户属性所对应的私钥的服务端的秘密份额。

基于以上所述的基于属性的数据加密方法和基于属性的数据解密方法的基于属性的数据加密系统如下。

所述基于属性的数据加密系统包括服务端的属性私钥生成器、密钥服务器、属性及属性私钥秘密份额管理器、密码服务器,用户端的密钥客户端程序、数据解密客户端程序和密码组件;

所述基于属性的数据加密系统按前述属性私钥及私钥秘密份额生成和管理方法生成用户属性所对应的私钥以及属性私钥的服务端的秘密份额和用户端的秘密份额,保存和管理用户属性以及用户属性所对应的私钥的服务端的秘密份额;

当数据加密方需要利用属性集S=(A

当用户方需要解密采用属性集S=(A

基于以上所述的基于属性的数据加密系统的基于属性的文件加密系统如下。

所述基于属性的文件加密系统还包括用户端的文件解密客户端程序;所述文件解密客户端程序调用数据解密客户端程序与密码服务器交互,对加密文件进行解密操作处理;用户端的密钥客户端程序、数据解密客户端程序、密码组件和文件解密客户端程序统称为用户方;

文件加密方按如下方式对文件进行加密(文件加密方可以是任一用户或系统,不必是属性及属性私钥秘密份额管理器的用户):

随机生成一个对称密钥k

分别使用p个属性集S

设定文件的访问控制策略ac(访问控制策略可以是基于属性的访问控制策略,也可以不是,如何选择、设定访问控制策略ac属于本发明之外的事情);

将p个属性集S

将文件解密控制数据作为附加数据附加到加密后的文件中(如附加到加密文件的头部或尾部)得到加密的文件(加密文件);

当用户方需要对加密文件进行解密时,用户方和密码服务器按如下方式进行文件解密操作处理:

所述密码服务器从加密文件中取出文件解密控制数据,或者用户方从加密文件中取出文件解密控制数据并提交到密码服务器;

密码服务器验证文件解密控制数据的数字签名的有效性,若验证失败,则解密失败,若验证通过,则继续;

密码服务器利用文件解密控制数据中的文件访问控制策略ac,检查确定用户是否具有访问此加密文件明文的权限,若没有,则解密失败,若有,则继续;(访问控制策略规定的是基于属性的访问控制,则密码服务器根据属性及属性私钥秘密份额管理器的用户数据库中的当前用户的用户信息中的属性信息进行访问控制决策;若访问控制策略规定的不是基于属性的访问控制,则密码服务器根据属性及属性私钥秘密份额管理器的用户数据库中的当前用户的用户信息中的其他用户信息,或者依据其他系统的用户数据库中的当前用户的其他用户信息进行访问控制决策)

密码服务器依据属性及属性私钥秘密份额管理器的用户数据库中的当前用户的属性信息,检查确定当前用户的用户属性是否满足文件解密控制数据中的p个属性集S

所述当前用户是正在进行文件解密操作的用户方用户。

对于以上所述的基于属性的文件加密系统:

若加密使用的属性集中的属性是受时间有效期限定的属性,则密码服务器在进行解密操作前,先检查每个属性集中的每个属性的有效期,若当前时刻超过了文件解密控制数据中的某一个属性集中的某一个属性的时间有效期或未到属性中规定的时间有效期,则此属性集不能用于文件解密;若文件解密控制数据中的所有属性集不能用于文件解密,则文件解密失败;

若文件解密控制数据中的某一个属性集中的属性是受时间有效期限定的属性,则当前用户除了需要有此属性集中规定的有效的属性外,还需要有受时间有效期限定的属性所对应的属性私钥的秘密份额(若有有效的属性,没有对应的属性私钥秘密份额,则需解密方申请对应的属性私钥的秘密份额);所述有效的属性即在进行文件解密操作时有效的属性。

基于以上所述基于属性的数据加密系统的基于属性的加密文件服务系统如下。

所述加密文件服务系统还包括服务端的存储有加密文件的加密文件存储服务器和用户端的用于访问加密文件存储服务器中的加密文件的文件客户端程序;

所述文件客户端程序访问所述加密文件存储服务器获取被加密的问题;所述文件客户端程序调用数据解密客户端程序与密码服务器交互,完成加密文件的解密操作;

用户端的密钥客户端程序、数据解密客户端程序、密码组件和文件客户端程序统称为用户方;

所述加密文件存储服务器对存储的加密文件实施有访问控制(采用何种访问控制方式属于本发明之外的事);

在文件被存储到加密文件存储服务器之前,文件加密方按如下方式对文件进行加密(文件加密方可以是文件存储系统、用户或其他实体):

随机生成一个对称密钥k

分别使用p个属性集S

将p个属性集S

将文件解密控制数据作为附加数据附加到加密后的文件中(如附加到加密文件的头部或尾部);

当用户方使用文件客户端程序访问加密文件存储服务器,请求获取一个加密文件时,加密文件存储服务器根据(自身)实施的访问控制,检查确定用户是否具有访问此加密文件明文的权限,若没有,则解密失败,若有,则继续后续操作;

加密文件存储服务器将加密文件提交给密码服务器,请求解密加密文件;

所述密码服务器从加密文件中取出文件解密控制数据;

密码服务器从属性及属性私钥秘密份额管理器的用户数据库中的当前用户的属性信息,检查确定用户属性是否满足文件解密控制数据中的p个属性集S

密码服务器将解密后的文件返回给加密文件存储服务器;

加密文件存储服务器将解密得到的文件(明文文件)返回给用户方,或者通过人机交互界面将文件内容展现给用户。

对于以上所述的基于属性的加密文件服务系统:

若文件解密控制数据中的某一个属性集中的属性是受时间有效期限定的属性,且属性的有效期当前有效(当前时刻有效),则解密文件的用户方的用户除了需要有此属性集中所规定的有效的属性外,还需要有受时间有效期限定的属性所对应的属性私钥的秘密份额(若用户有有效的属性,但没有对应的属性私钥的秘密份额,则需解密方申请对应的属性私钥的秘密份额);用户有此属性集中所规定的有效的属性,即在进行文件解密操作时用户有对应于此所属性集所规定的属性(过去拥有此属性不行);

若文件解密控制数据中的属性集中的某一个属性集中的属性是受时间有效期限定的属性,且此属性集中的(一个或多个)属性的有效期未到,则此属性集及对应的属性私钥(的秘密份额)不允许用于解密加密文件;

对于包含有受时间有效期限定的属性的属性集,文件加密方在文件解密控制数据中设定是否允许对属性集中的受时间有效期限定的属性进行更新;

若文件解密控制数据中的某一个属性集中的属性是受时间有效期限定的属性,且属性的有效期超过了有效时间(当前时刻已失效),而属性集中的受时间有效期限定的属性不允许更新,则此属性集及对应的属性私钥(的秘密份额)不允许用于解密加密文件;

若用于文件加密的属性集中有受时间有效期限定的属性,且加密文件所用的属性集中包含的受时间有效期限定的属性允许更新,则文件加密方在加密文件时,同时使用加密文件服务系统的一个标识(如系统的域名)作为公钥,采用标识密码算法对随机对称密钥k

当密码服务器解密被加密的文件时,若检查发现文件解密控制数据中的属性是受时间有效期限定的属性,且属性有效期超过了有效时间,而属性的有效期允许更新,则密码服务器从文件解密控制数据中取出采用加密文件服务系统的标识加密的随机对称密钥k

从以上描述可以看到,本发明的方案无论是私钥生成,还是数据加密和解密,与现有基于属性的加密方案相比都要简单得多,而且易于实施用户属性撤销,属性私钥更新;本发明的方案虽然不像现有的基于属性的加密(如CP-ABE、KP-ABE)方案那样由密码算法本身来实现复杂的加密解密控制结构,但却能满足现实中的大部分加密解密控制需求,因为大部分的基于属性的数据加密、解密控制需求是针对的用户端、服务端模式(客户端、服务器模式)的应用场景,而且大部分的基于属性的访问控制可用属性集的并(即逻辑“或”)来表示,而且通过与访问控制的有机结合,能很好地满足高安全的数据安全防护需求,而不是仅仅依赖于密码算法本身来解决所有问题(这样做的使用效果未必好)。

附图说明

图1:本发明的数据加密系统示意图

图2:本发明的文件加密系统示意图

图3:本发明的加密文件服务系统示意图

具体实施方式

下面结合实施例对本发明的具体实施方式进行描述。

实施例1、

此实施例涉及属性私钥及私钥秘密份额生成和管理方法的实施。此实施例涉及服务端的属性私钥生成器(Attribute Private Key Generator)、密钥服务器、属性及属性私钥秘密份额管理器,用户端的用户、密钥客户端程序和密码组件。

属性私钥生成器用于生成用户属性所对应的私钥即属性私钥;用户属性是反映用户特征的信息(如性别、职务、职称、角色等);

密钥服务器是用户申请属性私钥的秘密份额时与用户的密钥客户端程序进行交互的服务端的系统组件;

属性及属性私钥秘密份额管理器对用户的属性以及属性私钥的秘密份额进行管理;属性及属性私钥秘密份额管理器有用户数据库,用于存放用户属性以及属性私钥的秘密份额;属性私钥的秘密份额是与属性私钥相关的秘密数据;

用户是具有用户属性、需要使用属性私钥进行数据解密操作的个人、机构或系统;

密钥客户端程序是用户端的与密钥服务器交互、申请获取用户属性私钥的秘密份额的程序;

密码组件是用户端的进行密码运算、存储用户密钥以及存储属性私钥的秘密份额的软件组件或软硬件结合的组件;

用户、密钥客户端程序和密码组件统称为用户方。

实施例涉及双线性映射(配对运算)e:G

在此实施例中,属性私钥生成器有主密钥s和对应的主公钥P

在此实施例采用的将属性A的名字或标识符映射到双线性映射e:G

将属性A的名字或标识符映射到群G

或者,将属性A的名字或标识符映射到群G

这里所说的属性的名字是属性的标识名称(如男性、女性),或者是针对属性的描述文字(如年龄大于18岁,只要能区分不同属性即可)。

当用户方通过密钥服务器申请属性A所对应的私钥的秘密份额时,属性私钥生成器检查本地是否已缓存或保存有属性A所对应的属性私钥d

之后,属性私钥生成器将d

或者,属性私钥生成器将d

密钥服务器将d

此实施例中的用户属性可以是受时间有效期限定的属性,也可以是未受时间有效期限定的属性;

若是受时间有效期限定的属性,则属性由属性名或属性标识符加上时间有效期所构成:

如,属性名:时间有效期,如user@secret.com:xxxx-yyyy);

这里的时间有效期由起始时间和结束时间构成,时间有效期的表示方式是从一个约定的零时时刻开始(如约定某年某月某日的零时为零时时刻,如1970年1月1日0时0分0秒),然后按每隔一个约定的时间周期(如三个月、半年)更新时间有效期;

对于受时间有效器限定的属性,用户方在属性的时间有效期即将到期之前的规定时间内(如到期之前的一周、两周内)或到期后,申请受新的时间有效期限定的属性所对应的私钥的秘密份额,用户方以及属性及属性私钥秘密份额管理器分别保存用户端和服务端的针对新的属性私钥的秘密份额(之前的秘密份额可以继续保存一段时间)。

当用户的一个属性A被取消后,所述属性及属性私钥秘密份额管理器将用户数据库中保存的用户的属性A对应的属性私钥d

实施例2、

此实施例与实施例1的差别在于:在此实施例中用户属性A按与实施例1同样的方式被映射到群G

实施例3、

此实施例与实施例1的差别在于:将属性A的名字或标识符映射到群G

将属性A的名字或标识符映射到[1,n-1]中的一个整数h

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

此实施例,若采用d

实施例4、

此实施例与实施例2的差别在于:将属性A的名字或标识符映射到群G

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

此实施例,若采用d

实施例5、

此实施例与实施例3的差别在于:将属性A的名字或标识符映射到群G

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

属性私钥生成器在群G

实施例6、

此实施例与实施例4的差别在于:将属性A的名字或标识符映射到群G

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

属性私钥生成器在群G

实施例7、

此实施例与实施例5的差别在于:将属性A的名字或标识符映射到群G

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

此实施例,若一旦出现G

实施例8、

此实施例与实施例6的差别在于:将属性A的名字或标识符映射到群G

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

此实施例,若一旦出现G

实施例9、

此实施例与实施例7的差别在于:将属性A的名字或标识符映射到群G

此实施例,属性私钥生成器在群G

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

此实施例,若一旦出现G

实施例10、

此实施例与实施例8的差别在于:将属性A的名字或标识符映射到群G

此实施例,属性私钥生成器在群G

此实施例,若采用d

若采用d

当需要计算属性A对应的私钥d

此实施例,若一旦出现G

在以上实施例1-10中,属性私钥生成器或密钥服务器将d

在群G

或者,在[2,n-1]内随机选取一个整数t

在以上分解d

在[2,n-1]内随机选取一个整数t

或者,在[1,n-1]内随机选取一个整数t

在以上实施例1-10中,属性私钥生成器或密钥服务器将d

在[1,n-1]内随机选择一个整数t

实施例11、

此实施例在实施例1、3、5、7、9中任一个的基础上,实施本发明的基于属性的数据加密方法和数据解密方法,其中基于属性的数据加密方法实施如下。

当数据加密方需要利用属性集S=(A

数据加密方以G

若采用d

若采用d

利用属性集S=(A

数据加密方是属性及属性私钥秘密份额管理器中的用户或用户之外的其他实体。

此实施例,若m≥2,则属性集S中允许包含一个系统属性AS(用系统名、系统标识表示);系统属性AS与其他属性一样被映射到群G

若属性私钥生成器采用d

若属性私钥生成器采用d

若允许属性集S中包含系统属性AS,则采用d

若允许属性集S中包含系统属性AS,则用户方无需申请系统属性AS的私钥的用户端秘密份额,服务端自动生成、保存系统属性AS的私钥d

属性及属性私钥秘密份额管理器的每个用户缺省地拥有系统属性AS,并拥有属性私钥d

此实施例实施的基于属性的数据解密方法还涉及服务端的密码服务器,以及用户端的与密码服务器交互、进行数据解密操作处理的数据解密客户端程序;所述数据解密客户端程序调用用户端的密码组件进行数据解密运算;用户端的密钥客户端程序、密码组件和数据解密客户端程序在此实施例中统称为用户方。

基于属性的数据解密方法的实施如下。

当用户方需要解密采用属性集S=(A

所述当前用户是正在进行数据解密操作的用户方的用户。

更具体地,若采用d

采用Boneh-Franklin的基于配对的IBE算法中的基于双线性映射(配对)的加密方法以及相应的数据解密方法:

对于属性集S(A

数据解密方以d

或者,采用如下数据加密和解密方法:

对于属性集S(A

数据解密时,密码服务器和用户方,以d

若采用d

在此实施例,若d

密码服务器计算w

用户方计算w

之后密码服务器或用户方计算w=w

若d

密码服务器计算w

用户方计算w

之后密码服务器或用户方计算w

若d

用户方计算w

密码服务器计算w

之后密码服务器或用户方计算w

此实施例,若在进行数据解密的过程中用户方的数据解密客户端程序通过与密码服务器的交互知道用户拥有属性集S=(A

实施例12、

此实施例在实施例2、4、6、8、10中任一个的基础上,实施基于属性的数据加密方法和数据解密方法,具体如下。

当数据加密方需要利用属性集S=(A

数据加密方以G

若采用d

若采用d

利用属性集S=(A

数据加密方是属性及属性私钥秘密份额管理器中的用户或用户之外的其他实体。

此实施例,若m≥2,则所述属性集S中允许包含一个系统属性AS(用系统名或系统标识表示),所述系统属性AS与其他属性一样被映射到群G

若属性私钥生成器采用d

若属性私钥生成器采用d

若允许属性集S中包含系统属性AS,则采用d

若允许属性集S中包含系统属性AS,则用户方无需申请系统属性AS的私钥的用户端的秘密份额,服务端自动生成、保存系统属性AS的私钥d

属性及属性私钥秘密份额管理器的每个用户缺省地拥有系统属性AS,并拥有属性私钥d

此实施例实施的基于属性的数据解密方法还涉及服务端的密码服务器,以及用户端的与密码服务器交互、进行数据解密操作处理的数据解密客户端程序;数据解密客户端程序调用用户端的密码组件进行数据解密运算;用户端的密钥客户端程序、密码组件和数据解密客户端程序在此实施例中统称为用户方。

基于属性的数据解密方法的实施如下。

当用户方需要解密采用属性集S=(A

类似地,若采用d

采用Boneh-Franklin的基于配对的IBE算法中的基于双线性映射(配对)的加密方法以及相应的数据解密方法,只是属性公钥和属性私钥所在的群是G

数据解密方以d

与Boneh-Franklin算法原算法的差别仅仅在于,这时的群G

或者,类似地,数据加密和解密可采用如下方法:

对于属性集S(A

数据解密时,密码服务器和用户方通过交互协同完成w=(T,d

若采用d

在此实施例中,若d

密码服务器计算w

用户方计算w

之后密码服务器或用户方计算w=w

若d

密码服务器计算w

用户方计算w

之后密码服务器或用户方计算w

若d

用户方计算w

密码服务器计算w

之后密码服务器或用户方计算w

此实施例,若在进行数据解密的过程中用户方的数据解密客户端程序通过与密码服务器的交互知道用户拥有属性集S=(A

实施例13、

此实施例在以上实施例1-10中任何一个的基础上实施属性私钥及私钥秘密份额生成和管理系统,系统包括服务端的属性私钥生成器、密钥服务器、属性及属性私钥秘密份额管理器,用户端的密钥客户端程序和密码组件;

属性私钥及私钥秘密份额生成和管理系统按实施例1-10中任何一个的方式生成用户属性所对应的私钥以及属性私钥的服务端的秘密份额和用户端的秘密份额,保存和管理用户属性所对应的私钥的服务端的秘密份额。

实施例14、

此实施例,在以上实施例11或12的基础上实施基于属性的数据加密系统,系统包括服务端的属性私钥生成器、密钥服务器、属性及属性私钥秘密份额管理器、密码服务器,用户端的密钥客户端程序、数据解密客户端程序和密码组件;

基于属性的数据加密系统通过实施例11或12,而实施例11或12通过实施实施例1-10中的一个相应实施例,生成用户属性所对应的私钥以及属性私钥的服务端的秘密份额和用户端的秘密份额,保存和管理用户属性以及用户属性所对应的私钥的服务端的秘密份额。

当数据加密方需要利用属性集S=(A

当用户方需要解密采用属性集S=(A

实施例15、

此实施例在实施例14的基于属性的数据加密系统的基础上,实施基于属性的文件加密系统,具体如下。

此实施例的基于属性的文件加密系统还包括用户端的文件解密客户端程序;

文件解密客户端程序调用数据解密客户端程序与密码服务器交互,对加密文件进行解密操作处理;

用户端的密钥客户端程序、数据解密客户端程序、密码组件和文件解密客户端程序统称为用户方;

文件加密方按如下方式对文件进行加密(文件加密方可以是任一个用户或系统):

随机生成一个对称密钥k

分别使用p个属性集S

设定文件的访问控制策略ac(访问控制策略可以是基于属性的访问控制策略,也可以不是,如何选择访问控制策略ac属于本发明之外的事情);

将p个属性集S

将文件解密控制数据作为附加数据附加到加密后的文件中(如附加到加密文件的头部或尾部)得到加密的文件;

当用户方需要对加密文件进行解密时,用户方和密码服务器按如下方式进行文件解密操作处理:

密码服务器从加密文件中取出文件解密控制数据,或者用户方从加密文件中取出文件解密控制数据并提交到密码服务器;

密码服务器验证文件解密控制数据的数字签名的有效性,若验证失败,则解密失败,若验证通过,则继续;

密码服务器利用文件解密控制数据中的文件访问控制策略ac,检查确定用户是否具有访问此加密文件明文的权限,若没有,则解密失败,若有,则继续;(访问控制策略规定的是基于属性的访问控制,则密码服务器根据属性及属性私钥秘密份额管理器的用户数据库中的当前用户的用户信息中的属性信息进行访问控制决策;若不是基于属性的访问控制,则密码服务器根据属性及属性私钥秘密份额管理器的用户数据库中的当前用户的用户信息中的其他用户信息,或者依据其他系统的用户数据库中的当前用户的其他用户信息进行访问控制决策)

密码服务器依据属性及属性私钥秘密份额管理器的用户数据库中的当前用户的属性信息,检查确定用户属性是否满足文件解密控制数据中的p个属性集S

若加密使用的属性集中的属性是受时间有效期限定的属性,则密码服务器在进行解密操作前,先检查每个属性集中的每个属性的有效期,若当前时刻超过了文件解密控制数据中的某一个属性集中的某一个属性的时间有效期或未到属性中规定的时间有效期,则此属性集不能用于文件解密;若文件解密控制数据中的所有属性集不能用于文件解密,则文件解密失败。

此实施例中,若文件解密控制数据中的某一个属性集中的属性是受时间有效期限定的属性,则当前用户除了需要有此属性集中规定的有效的属性外,还需要有受时间有效期限定的属性所对应的属性私钥的秘密份额(若有有效的属性,没有对应的属性私钥秘密份额,则需解密方申请对应的属性私钥的秘密份额);所述有效的属性即在进行文件解密操作时有效的属性。

此文件加密系统用于不集中存放加密文件的场景。

实施例16、

此实施例在实施例14的基于属性的数据加密系统的基础上实施基于属性的加密文件服务系统,系统还包括服务端的存储有加密文件的加密文件存储服务器和用户端的用于访问加密文件存储服务器中的加密文件的文件客户端程序;

所述文件客户端程序访问所述加密文件存储服务器获取被加密的问题;所述文件客户端程序调用数据解密客户端程序与密码服务器交互,完成加密文件的解密操作;

用户端的密钥客户端程序、数据解密客户端程序、密码组件和文件客户端程序统称为用户方;

加密文件存储服务器对存储的加密文件实施有访问控制(采用何种访问控制方式属于本发明之外的事);

在文件被存储到加密文件存储服务器之前,文件加密方按如下方式对文件进行加密(文件加密方可以是文件存储系统、用户或其他实体):

随机生成一个对称密钥k

分别使用p个属性集S

将p个属性集S

将文件解密控制数据作为附加数据附加到加密后的文件中(如附加到加密文件的头部或尾部);

当用户方使用文件客户端程序访问加密文件存储服务器,请求获取一个加密文件时,加密文件存储服务器根据(自身)实施的访问控制,检查确定用户是否具有访问此加密文件明文的权限,若没有,则解密失败,若有,则继续后续操作;

加密文件存储服务器将加密文件提交给密码服务器,请求解密加密文件;

密码服务器从加密文件中取出文件解密控制数据;

密码服务器从属性及属性私钥秘密份额管理器的用户数据库中的当前用户的属性信息,检查确定用户属性是否满足文件解密控制数据中的p个属性集S

密码服务器将解密后的文件返回给加密文件存储服务器;

加密文件存储服务器将解密得到的文件(明文文件)返回给用户方,或者通过人机交互界面将文件内容展现给用户。

若文件解密控制数据中的某一个属性集中的属性是受时间有效期限定的属性,且属性的有效期当前有效(当前时刻有效),则解密文件的用户方的用户除了需要有此属性集中所规定的有效的属性外,还需要有受时间有效期限定的属性所对应的属性私钥的秘密份额(若用户有有效的属性,但没有对应的属性私钥的秘密份额,则需解密方申请对应的属性私钥的秘密份额);用户有此属性集中所规定的有效的属性,即在进行文件解密操作时用户有对应于此所属性集所规定的属性(过去拥有此属性不行);

若文件解密控制数据中的属性集中的某一个属性集中的属性是受时间有效期限定的属性,且此属性集中的(一个或多个)属性的有效期未到,则此属性集及对应的属性私钥(的秘密份额)不允许用于解密加密文件;

对于包含有受时间有效期限定的属性的属性集,文件加密方在文件解密控制数据中设定是否允许对属性集中的受时间有效期限定的属性进行更新;

若文件解密控制数据中的某一个属性集中的属性是受时间有效期限定的属性,且属性的有效期超过了有效时间(当前时刻已失效),而属性集中的受时间有效期限定的属性不允许更新,则此属性集及对应的属性私钥(的秘密份额)不允许用于解密加密文件;

若用于文件加密的属性集中有受时间有效期限定的属性,且加密文件所用的属性集中包含的受时间有效期限定的属性允许更新,则文件加密方在加密文件时,同时使用加密文件服务系统的一个标识(如系统的域名)作为公钥,采用标识密码算法对随机对称密钥k

当密码服务器解密被加密的文件时,若检查发现文件解密控制数据中的属性是受时间有效期限定的属性,且属性有效期超过了有效时间,而属性的有效期允许更新,则密码服务器从文件解密控制数据中取出采用加密文件服务系统的标识加密的随机对称密钥k

此加密文件服务系统用于集中存放加密文件的场景。

为了保证存放在用户数据库中的服务端的属性私钥秘密份额的安全,可以对属性私钥秘密份额加密保存。

其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

相关技术
  • 一种基于属性的数据加密方法和系统
  • 一种基于数据属性的加密方法和系统
技术分类

06120113043340