支持数值型属性比较访问策略的属性加密方法及系统

文档序号:26804477发布日期:2021-09-29 02:22阅读:103来源:国知局
支持数值型属性比较访问策略的属性加密方法及系统

1.本发明涉及密码学领域的属性加密(attribute

based encryption)技术,具体涉及一种支持数值型属性比较访问策略的属性加密方法及系统。


背景技术:

2.随着云计算、大数据的快速发展,越来越多的企业和个人开始存储自己的海量私有数据至云中心,这不仅能够极大地节约本地it建设成本,而且能够借助于云计算平台的强大功能存储和处理数据。然而,云计算数据安全一直是人们担忧的关键问题之一。因为数据一旦被外包至远程的云中心,它们将脱离数据所有者的直接物理控制。用户在外包数据之前,对数据进行加密是保护数据机密性的有效途径之一。然而传统的密码技术可以保证数据的机密性,但缺乏对远程加密数据的访问控制,并不适合像云计算这样数据开发与共享的应用环境。
3.属性加密(attribute

based encryption)允许数据发布者根据数据用户的属性(比如指纹、虹膜、角色、职位等)对数据用户的数据访问能力进行细粒度控制。其基本原理是在密文或密钥中嵌入访问策略,当且仅当解密者的属性集合满足访问策略时,才能对密文进行解密。这样的加密机制能够灵活、细粒度地设置数据的加密条件,控制用户的解密范围,非常适合需要保护数据机密性和对数据进行访问控制的数据共享环境。依据访问策略被嵌入到密文还是密钥中,属性加密主要分为密文策略属性加密和密钥策略属性加密。
4.目前已有的属性加密技术主要支持字符型属性策略,用户属性与访问策略之间的匹配使用字符型属性之间的文本相等关系来衡量,而对数值型属性与数值型属性关系比较策略的匹配缺乏支持。在实际应用中,数值是一个常见的、非常重要的实体属性,比如年龄、身高、职称等级、温度、湿度等等。在属性加密中引入数值型属性比较表达策略,以及以统一的方式、灵活地处理数值属性与关系比较表达策略之间的匹配,能够极大地提高传统访问策略的表达能力。比如一个访问策略为“(职务:高级工程师)and(30≤年龄≤60)”,其中“30≤年龄≤60”就是一个数值性属性的关系比较表达策略。如果某个消息使用此访问策略进行加密,那么只有职务级别为高级工程师而且年龄在30岁和60岁之间的解密者才能成功解密消息(比如一个解密者具有属性<高级工程师,45岁>,则能够恢复消息)。显然,对于像“职务级别”这样的文本属性匹配只要进行文本相等性比较;而对于像“年龄”这样的数值型属性,在目前的属性加密中实现属性值与控制策略的匹配非常棘手。一个简单的方法是列举关系运算中所有值,然后使用“或(or)”连接,比如(职务级别:高级工程师)and(30≤年龄≤60)”,可以转换为等价策略:(职务级别:高级工程师)and(30or 31or 32......or 60)。转换以后进行数值间的相等比较实现属性与策略间的匹配。显然,当数值属性的值空间非常大时,这样转换将带来策略尺寸的迅速膨胀,在实际应用中是不现实的。2007年,bethencourt等人在他们设计的基于密文策略的属性加密中探讨了这个问题,并提出了一个基本方案,但没有很好的解决这个问题。原因在于他们的方法使用“and”和“or”门限转换数值型属性关系比较策略,由于针对不同的关系运算需要使用不同的转换策略,导致复杂
度非常高,而且转换方式不统一、不灵活。2017年,xue等人再次研究了这个问题,并利用0

encoding和1

encoding编码将关系比较策略转换为“or”门连接的bit字符串,但该方法主要考虑了“>”和“<”两种关系运算,缺乏其它比较关系运算如“≤”、“≥”、“≠”的支持。


技术实现要素:

5.本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持数值型属性比较访问策略的属性加密方法及系统,本发明利用前缀成员验证技术,巧妙地转换验证一个数值型属性是否满足数值属性比较表达策略为验证两个集合元素的交集是否为空。本发明能支持所有常见的数值关系比较表达式,并一致、灵活、高效地解决数值型属性与关系比较策略之间的匹配,解决了属性加密中对数值型属性比较策略支持难题。本发明是通用的,能够集成到目前所有的属性加密原语中,实现数值比较表达访问策略与数值属性的匹配和运算。
6.为了解决上述技术问题,本发明采用的技术方案为:
7.一种支持数值型属性比较访问策略的属性加密方法,包括:
8.1)将访问策略中的数值型属性关系比较策略转换为数值范围表示;
9.2)将数值范围的下界和上界分别用n位二进制表示,计算数值范围的前缀最小集合;
10.3)将数值型属性关系比较策略转换为前缀最小集合中元素的“or”门限策略连接,并将前缀最小集合中的元素视为字符串类型的属性值,得到转换后的数值型属性关系比较策略;
11.4)针对给定数值属性,计算数值型属性的前缀家族;
12.5)将原数值属性与数值型属性关系比较策略的匹配转换为判断数值型属性的前缀家族与前缀最小集合的交集是否为空,若不为空,则判定该数值型属性满足访问控制策略,具有对密文的解密权限;否则,判定该数值型属性不满足访问控制策略,不满足解密条件。
13.可选地,步骤1)包括:判断数值型属性关系比较策略的数值比较表达式类型:
14.若数值比较表达式类型为attr>v,则对应的数值范围为[v+1,max];
[0015]
若数值比较表达式类型为attr≥v,则对应的数值范围为[v,max];
[0016]
若数值比较表达式类型为attr<v,则对应的数值范围为[min,v

1];
[0017]
若比较运算的类型为attr≤v,则对应的数值范围为[min,v];
[0018]
若数值比较表达式类型为attr!=v,则对应的数值范围为[min,v

1]∪[v+1,max];
[0019]
若比较运算的类型为attr=v,则对应的数值范围为[v,v];
[0020]
其中,attr为数值型属性,v为数值型属性中的比较数值,max和min分别为数值型属性所能表示的最大和最小值。
[0021]
可选地,步骤2)包括:
[0022]
2.1)将数值范围的下界和上界分别用n位二进制表示为[a1a2...a
n
,b1b2...b
n
],其中a1a2...a
n
为下界的n位二进制,b1b2...b
n
为上界的n位二进制;
[0023]
2.2)从k=1开始在数值范围的下界和上界分别用n位二进制表示中查找满足a
k
<b
k
的最高有效位k:若满足条件(1):最高有效位k不存在,且对所有的1≤i≤n,都有a
i
=b
i
,使得a1a2...a
n
=b1b2...b
n
,则将该数值范围用前缀a1a2...a
n
表示,返回前缀最小集合{a1a2...a
n
},跳转执行步骤3);若满足条件(2):最高有效位k存在,且对所有的k≤i≤n,都有a
i
=0,b
i
=1,则将该数值范围用前缀a1a2a
k
‑1*表示,返回前缀最小集合{a1a2a
k
‑1*},跳转执行步骤3);如果k=1,返回该范围的前缀最小集合为{*},跳转执行步骤3);否则若满足条件(1)和(2),则将数值范围的n位二进制表示为[a1a2...a
n
,b1b2...b
n
]划分为两个新范围:r1=[a1...a
k
‑10a
k+1
...a
n
,a1...a
k
‑10111..1]和r2=[a1...a
k
‑100...0,a1...a
k
‑11b
k+1
..b
n
],跳转执行步骤2.3);
[0024]
2.3)对于范围r1=[a1...a
k
‑10a
k+1
...a
n
,a1...a
k
‑10111..1],以0为标志,去掉上界和下界的前k

1位:a1...a
k
‑1,得到范围[a
k+1
a
k+2
...a
n
,11...1],并将该范围[a
k+1
a
k+2
...a
n
,11...1]作为步骤2.2)的输入跳转执行步骤2.2),并使用串a1...a
k
‑10连接运行过程中返回的所有前缀,作为前缀最小集合中的有效元素;对于范围r2=[a1...a
k
‑1100...0,a1...a
k
‑11b
k+1
..b
n
],以1位标志,去掉上界和下界的前k

1位a1...a
k
‑1,得到范围[00..0,b
k+1
b
k+2
...b
n
],并将该范围[00..0,b
k+1
b
k+2
...b
n
]作为步骤2.2)的输入跳转执行步骤2.2),并使用串a1...a
k
‑11连接运行过程中返回的所有前缀,作为前缀最小集合中的有效元素;
[0025]
2.4)基于得到的前缀最小集合中的有效元素得到前缀最小集合,并输出原始范围[a1a2...a
n
,b1b2...b
n
]的前缀最小集合。
[0026]
可选地,步骤4)包括:针对给定数值属性对应的w位表示整数b1b2...b
w
,依次用通配符“*”取代前一个元素的最低位生成一个前缀,从而得到包含w+1个前缀的集合作为该数值型属性对应的前缀家族。
[0027]
可选地,所述包含w+1个前缀的集合的函数表达式为:
[0028]
{b1b2...b
w
,b1b2...b
w
‑1*,b1b2...b
w
‑2**,**...*}
[0029]
上式中,“*”表示通配符,b1~b
w
分别为给定数值属性的整数表示的第1~w位。
[0030]
可选地,步骤5)中判定该数值型属性对应的密文满足解密条件之后,还包括利用属性加密原语中的解密算法对密文进行解密的步骤。
[0031]
此外,本发明还提供一种支持数值型属性比较访问策略的属性加密系统,包括:
[0032]
数值范围表示转换程序单元,用于将访问策略中的数值型属性关系比较策略转换为数值范围表示;
[0033]
前缀最小集合生成程序单元,用于将数值范围的下界和上界分别用n位二进制表示,计算数值范围的前缀最小集合;
[0034]
策略转换程序单元,用于将数值型属性关系比较策略转换为前缀最小集合中元素的“or”门限策略连接,并将前缀最小集合中的元素视为字符串类型的属性值,得到转换后的数值型属性关系比较策略;
[0035]
前缀家族生成程序单元,用于针对给定数值属性,计算数值型属性的前缀家族;
[0036]
解密条件判断程序单元,用于将原数值属性与数值型属性关系比较策略的匹配转换为判断数值型属性的前缀家族与前缀最小集合的交集是否为空,若不为空,则判定该数值型属性满足访问控制策略,具有对密文的解密权限;否则,判定该数值型属性不满足访问控制策略,不满足解密条件。
[0037]
可选地,还包括解密程序单元,用于利用属性加密原语中的解密算法对密文进行
解密的步骤。
[0038]
此外,本发明还提供一种支持数值型属性比较访问策略的属性加密系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述支持数值型属性比较访问策略的属性加密方法的步骤。
[0039]
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有支持数值型属性比较访问策略的属性加密方法的计算机程序。
[0040]
和现有技术相比,本发明主要解决了属性加密中访问策略中数值型属性关系比较策略的转换、属性与策略之间的匹配、以及如何在属性加密原语中的应用问题,具有下述优点:
[0041]
1、本发明利用前缀成员验证技术,巧妙地转换验证一个数值型属性是否满足数值属性比较表达策略为验证两个集合元素的交集是否为空。本发明能支持所有常见的数值关系比较表达式,并一致、灵活、高效地解决数值型属性与关系比较策略之间的匹配,解决了属性加密中对数值型属性比较策略支持难题。
[0042]
2、发明通过在访问策略中引入数值型属性比较表达策略,以及以统一的方式、灵活地处理比较表达策略与数值属性间匹配,能够极大地提高传统访问策略的表达能力。
[0043]
3、本发明是通用的,可以应用于属性加密中访问策略实施方需要对数值型属性进行关系比较表达的应用场景,能够集成到目前所有的属性加密原语中,实现数值比较表达访问策略与数值属性的匹配和运算。
附图说明
[0044]
图1为本发明实施例方法的应用场景示意图。
[0045]
图2为本发明实施例方法的基本流程示意图。
[0046]
图3为本发明实施例中计算数值范围[11,15]的前缀最小集合的算法执行过程图。
[0047]
图4为本发明实施例中访问策略及访问控制树结构图。
具体实施方式
[0048]
下文将以图1所示应用场景为例,对本发明支持数值型属性比较访问策略的属性加密方法及系统进行进一步的详细说明。参见图1,数据提供者为了保护数据的机密性并需要对数据实施灵活、细粒度的访问控制,利用属性加密技术、在策略“(职务:经理)and(11≤level≤15)”下对文件进行加密,加密的数据被上传到云服务器中进行存储。另一方面,数据访问者利用自己的属性信息,决定是否能够访问到明文数据。显然,图中只有数据访问者b能够解密并访问数据,因为他的属性值{“经理”,12}满足访问策略。由于已有的属性加密技术体系在数值属性12与关系比较策略“11≤level≤15”的匹配问题上存在壁垒,我们进一步说明如何运用本发明解决这个问题。
[0049]
如图2所示,本实施例支持数值型属性比较访问策略的属性加密方法包括:
[0050]
1)将访问策略中的数值型属性关系比较策略转换为数值范围表示;
[0051]
2)将数值范围的下界和上界分别用n位二进制表示,计算数值范围的前缀最小集合;
[0052]
3)将数值型属性关系比较策略转换为前缀最小集合中元素的“or”门限策略连接,
并将前缀最小集合中的元素视为字符串类型的属性值,得到转换后的数值型属性关系比较策略;
[0053]
4)针对给定数值属性,计算数值型属性的前缀家族;
[0054]
5)将原数值属性与数值型属性关系比较策略的匹配转换为判断数值型属性的前缀家族与前缀最小集合的交集是否为空,若不为空,则判定该数值型属性满足访问控制策略,具有对密文的解密权限;否则,判定该数值型属性不满足访问控制策略,不满足解密条件。
[0055]
本实施例中,步骤1)包括:判断数值型属性关系比较策略的数值比较表达式类型:
[0056]
若数值比较表达式类型为attr>v,则对应的数值范围为[v+1,max];
[0057]
若数值比较表达式类型为attr≥v,则对应的数值范围为[v,max];
[0058]
若数值比较表达式类型为attr<v,则对应的数值范围为[min,v

1];
[0059]
若比较运算的类型为attr≤v,则对应的数值范围为[min,v];
[0060]
若数值比较表达式类型为attr!=v,则对应的数值范围为[min,v

1]∪[v+1,max];
[0061]
若比较运算的类型为attr=v,则对应的数值范围为[v,v];
[0062]
其中,attr为数值型属性,v为数值型属性中的比较数值,max和min分别为数值型属性所能表示的最大和最小值,具体如表1所示。
[0063]
表1:数值比较表达式及相应的转换范围。
[0064]
比较运算表达式范围大于attr>v[v+1,max]大于等于attr≥v[v,max]小于attr<v[min,v

1]小于等于attr≤v[min,v]不等于attr!=v[min,v

1]∪[v+1,max]等于attr=v[v,v]
[0065]
根据表1以及前文明说明,可以几乎可以转换所有的关系比较运算为一个等价范围,比如对于表达式v1<attr<v2可以转换为范围[v1+1,v2‑
1]。对于示例中的数值型属性关系比较策略11≤level≤15,将其转换为范围[11,15]。
[0066]
本实施例中,步骤2)包括:
[0067]
2.1)将数值范围的下界和上界分别用n位二进制表示为[a1a2...a
n
,b1b2...b
n
],其中a1a2...a
n
为下界的n位二进制,b1b2...b
n
为上界的n位二进制;
[0068]
2.2)从k=1开始在数值范围的下界和上界分别用n位二进制表示中查找满足a
k
<b
k
的最高有效位k:若满足条件(1):最高有效位k不存在,且对所有的1≤i≤n,都有a
i
=b
i
,使得a1a2...a
n
=b1b2...b
n
,则将该数值范围用前缀a1a2...a
n
表示,返回前缀最小集合{a1a2...a
n
},跳转执行步骤3);若满足条件(2):最高有效位k存在,且对所有的k≤i≤n,都有a
i
=0,b
i
=1,则将该数值范围用前缀a1a2a
k
‑1*表示,返回前缀最小集合{a1a2a
k
‑1*},跳转执行步骤3);如果k=1,返回该范围的前缀最小集合为{*},跳转执行步骤3);否则若满足条件(1)和(2),则将数值范围的n位二进制表示为[a1a2...a
n
,b1b2...b
n
]划分为两个新范围:r1=[a1...a
k
‑10a
k+1
...a
n
,a1...a
k
‑10111..1]和r2=[a1...a
k
‑100...0,a1...a
k
‑11b
k+1
..b
n
],
跳转执行步骤2.3);
[0069]
2.3)对于范围r1=[a1...a
k
‑10a
k+1
...a
n
,a1...a
k
‑10111..1],以0为标志,去掉上界和下界的前k

1位:a1...a
k
‑1,得到范围[a
k+1
a
k+2
...a
n
,11...1],并将该范围[a
k+1
a
k+2
...a
n
,11...1]作为步骤2.2)的输入跳转执行步骤2.2),并使用串a1...a
k
‑10连接运行过程中返回的所有前缀,作为前缀最小集合中的有效元素;对于范围r2=[a1...a
k
‑1100...0,a1...a
k
‑11b
k+1
..b
n
],以1位标志,去掉上界和下界的前k

1位a1...a
k
‑1,得到范围[00..0,b
k+1
b
k+2
...b
n
],并将该范围[00..0,b
k+1
b
k+2
...b
n
]作为步骤2.2)的输入跳转执行步骤2.2),并使用串a1...a
k
‑11连接运行过程中返回的所有前缀,作为前缀最小集合中的有效元素;
[0070]
2.4)基于得到的前缀最小集合中的有效元素得到前缀最小集合,并输出原始范围[a1a2...a
n
,b1b2...b
n
]的前缀最小集合。
[0071]
图3为本发明实施例中计算数值范围[11,15]的前缀最小集合的算法执行过程图。参见步骤3可知,其过程包括:第一步,即执行步骤2.1)分别把11,15转化为4为二进制表示;第二步,即执行步骤2.2)找到k=2,并分割为a10=10和a11=11两个范围r1和r2;第三步,即执行步骤2.3)根据范围r1和r2生成新的范围[11,11]和[00,11];第四步,即执行步骤2.2)分别获得11和*,从而分别将a10连接11得到1011,将a11连接*得到11**,最终得到前缀最小集合为[1011,11**]。
[0072]
本实施例中,步骤3)用于对原有访问策略中的数值型关系比较策略进行转换,其主要实现方式是利用“or”门限策略,对关系比较策略所表示范围的前缀最小集合中的元素进行连接。比如一个密文中的访问策略为“(职务:经理)and(11≤level≤15)”,转换以后的访问策略为“(职务:经理)and((level:1011)or(level:11**))”,原始的访问策略(和访问树)及转换后的访问策略(和访问树)如图4所示。参见图4,访问树中的非叶子节点表示一个阈值门,包含“与(and)”,“或(or)”和“阈值(m of n)”三种类型,每个叶子节点表示一个属性。以下对访问控制树结构定义几个符号:
[0073]
r:访问控制树的根节点;
[0074]
x:访问控制树中除根节点以外的任意节点;
[0075]
parent(x):x节点的父节点;
[0076]
index(x):x节点的索引号。给定一个节点y,其孩子节点的索引号为从左至右的顺序数字编号。比如在图4转换后的访问树中,对于节点“or”,其孩子节点索引号分别为index(1011)=1,index(11**)=2。
[0077]
k
x
:表示节点x的阈值。对于非叶子节点,如果x的孩子数是为n,那么k
x
的范围为0<k
x
≤n;比如x是一个“and”门,则k
x
=n,x是一个“or”门,则k
x
=1。对于叶子节点,定义k
x
=1。
[0078]
在密文策略属性加密中,使用访问控制树结构表达访问控制策略,并利用这种结构对明文信息进行加密。在图4所示的原始访问控制策略中,表示职位是“经理”,而且其职位级别在11和15之间的解密者,可以成功解密密文。在图2所示转换后的访问树中,表示职位是“经理”,而且具有级别属性为“1011”或者“11**”的解密者,可以成功解密密文。可以看出,本实施例的特色在于把属性加密中的数值型属性与访问控制策略中的关系比较表达策略的匹配难题,转换成了传统的字符型属性之间的匹配问题。
[0079]
本实施例中,步骤4)包括:针对给定数值属性对应的w位表示整数b1b2...b
w
,依次用通配符“*”取代前一个元素的最低位生成一个前缀,从而得到包含w+1个前缀的集合作为
该数值型属性对应的前缀家族。
[0080]
本实施例中,包含w+1个前缀的集合的函数表达式为:
[0081]
{b1b2...b
w
,b1b2...b
w
‑1*,b1b2...b
w
‑2**,**...*}
[0082]
上式中,“*”表示通配符,b1~b
w
分别为给定数值属性的整数表示的第1~w位。
[0083]
本实施例中,步骤5)中判定该数值型属性对应的密文满足解密条件之后,还包括利用属性加密原语中的解密算法对密文进行解密的步骤。
[0084]
本实施例中,加解密算法为双线性对映射,双线性对映射的定义如下:g1和g2为阶为素数q的乘法循环群,e为一个双线性映射e:g1×
g1→
g2,g为g1的一个生成元。则双线性映射e具有如下性质:(1)双线性:有e(v
a
,u
b
)=e(v,u)
ab
;(2)非退化性:如果g是g1的生成元,则e(g,g)是g2生成元;(3)可计算性:对于总是存在一个有效的多项式时间算法计算e(v,u)∈g2。
[0085]
在本实施例中,给定的消息m在访问控制策略“(职务:经理)and((level:1011)or(level:11**)”下加密,利用转换后的访问树对明文m进行加密,生成密文ct的函数表达式为:
[0086]
ct=(c'=me(g,g)
αs
,c”=g
βs
,
[0087][0088]
上式中,c',c”,i
y
和i

y
为密文组件,m为明文,e(g,g)为双线性映射,α,β,s是从乘法群中随机选择的元素,g是双线性映射e(g,g)对应的乘法循环群g的一个生成元;y是访问策略中的属性值集合,比如在以上转换以后的访问控制策略中,y={“经理”,“1011”,“11**”};y为属性值集合y中的属性值(访问树中的叶子节点),q表示乘法循环群g的阶,q
y
(0)乘法循环群g的第0阶,h(y)为哈希函数,该哈希函数表示将属性值y映射成乘法循环群g上的一个元素;且加密消息的公钥为(g,g,g
β
,e(g,g)
α
)。在访问树中,集合y中的元素是访问树中的叶子节点,见图4所示。q
y
(0)表示节点y的一个自定义多项式,当自变量等于0时,定义q
y
(0)=q
parent(y)
(index(y)),对于根节点r,定义q
r
(0)=s。多项式的构造说明:从访问树的根节点r开始,以自上而下的方式,为每一个节点x构造一个多项式q
x
,并设置多项式q
x
的度数d
x
为该节点阈值少1,即d
x
=k
x

1。对于根节点r,并设置q
r
(0)=s,然后选择d
r
个随机值,完整定义多项式d
r
;对其它节点x,设置q
x
(0)=q
parent(x)
(index(x)),然后选择其余的d
x
个随机值,完整定义多项式q
x
。以图4所示的访问树为例,其根节点为“and”节点(用r表示),它有2个孩子节点,阈值为k
r
=2,则定义节点r度数为d
r
=1的多项式q
r
=a0+a1x,其中a0=s,a1是从群中选择的随机值。在本实施例中,给定的消息m在访问控制策略“(职务:经理)and((level:1011)or(level:11**)”下加密,解密者的属性集合为s={“经理”,“1100”,“110*”,“11**”,“1***”,“****”}。显然该解密者能够解密密文,因为他的属性满足密文中的访问控制策略,即解密者有属性“经理”和“11**”。可以看出,我们的发明能够让数值属性与访问控制策略中的比较关系表达策略间的匹配转换为传统的字符串间的文本相等关系匹配,巧妙地解决了属性加密中难以处理数值型属性关系比较策略的问题,而且这种转换不会影响原有属性加密的加/解密算法,能够进行无缝集成。
[0089]
根据解密者的属性集合s,利用属性加密中密钥生成算法,生成解密密钥sk如下:
[0090][0091]
上式中,d,d
j
,d

j
为密钥组件,α,β,r以及r
j
(1<j<|s|)是从群中随机选择的元素,s为解密者的属性集合,h(j)为哈希函数,该哈希函数表示将属性值j映射成乘法循环群g上的一个元素。需要注意的是,α和β是在步骤三选择的,而r和r
j
是在生成解密密钥过程中随机选择的。本实施例中根据属性加密中的解密算法的解密过程如下:
[0092]
(1)对于访问树中的每一个叶子节点x,如果x∈s={“经理”,“1100”,“110*”,“11**”,“1***”,“****”},则根据下式计算节点x的中间解密结果f
x

[0093][0094]
上式中,e(d
i
,c
x
)表示密钥组件d
i
到与节点x相关的密文组件c
x
的双线性对映射,e(d

i
,c

x
)表示密钥组件d

j
到与节点x相关的密文组件c

x
的双线性对映射,h(i)为哈希函数,该哈希函数表示将属性值i映射成乘法循环群g上的一个元素。如果则定义节点x的中间解密结果为空,即f
x
=null。
[0095]
(2)对于每一个非叶子节点x,其节点阈值为k
x
,如果存在一个包含k
x
个x的孩子节点的集合s
x
,且对每个孩子节点z∈s
x
都满足f
z
不为null,则计算:
[0096][0097]
上式中,是拉格朗日系数s
x
是x节点的随机子节点集合,i表示index(x),j是s
x
中的元素。如果存在随机子节点集合s
x
满足x节点的阈值,则对x节点可以计算出上述结果如果没有这样的随机子节点集合存在,表示解密者的属性集合s不满足节点x的阈值,那么定义f
x
=null(空)。
[0098]
(3)在本实施例中,解密者的属性集合满足密文中的访问策略,即属性集合{“经理”,“1100”,“110*”,“11**”,“1***”,“****”}满足“(职务:经理)and((level:1011)or(level:11**)”,因此根据递归操作后,可计算对根节点r的解密结果f
r
=e(g,g)
rs
,r表示访问树的根节点。
[0099]
(4)根据根节点r的解密结果f
r
,利用解密密钥sk解密密文,过程如下:首先,根据
下式计算e(c”,d)/f
r

[0100]
e(c”,d)/f
r
=(e(g
βs
,g
(α+r)/β
)/e(g,g)
rs
)=e(g,g)
αs
[0101]
上式中,e(c”,d)表示密文c”与密钥d的双线性映射运算,c”表示为密文ct中的密文组件,d表示密钥sk中的密钥组件;
[0102]
然后根据下式恢复明文m:
[0103]
c'/e(g,g)
αs
=me(g,g)
αs
/e(g,g)
αs
=m
[0104]
上式中,c'表示为密文ct中的密文组件。
[0105]
需要说明的是,上述解密方法仅仅是为一种实施举例,本实施例支持数值型属性比较访问策略的属性加密方法并不依赖于特定的加解密方法。
[0106]
此外,本实施例还提供一种支持数值型属性比较访问策略的属性加密系统,包括:
[0107]
数值范围表示转换程序单元,用于将访问策略中的数值型属性关系比较策略转换为数值范围表示;
[0108]
前缀最小集合生成程序单元,用于将数值范围的下界和上界分别用n位二进制表示,计算数值范围的前缀最小集合;
[0109]
策略转换程序单元,用于将数值型属性关系比较策略转换为前缀最小集合中元素的“or”门限策略连接,并将前缀最小集合中的元素视为字符串类型的属性值,得到转换后的数值型属性关系比较策略;
[0110]
前缀家族生成程序单元,用于针对给定数值属性,计算数值型属性的前缀家族;
[0111]
解密条件判断程序单元,用于将原数值属性与数值型属性关系比较策略的匹配转换为判断数值型属性的前缀家族与前缀最小集合的交集是否为空,若不为空,则判定该数值型属性满足访问控制策略,具有对密文的解密权限;否则,判定该数值型属性不满足访问控制策略,不满足解密条件。
[0112]
此外,该加密系统还包括解密程序单元,用于利用属性加密原语中的解密算法对密文进行解密的步骤。
[0113]
此外,本实施例还提供一种支持数值型属性比较访问策略的属性加密系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述支持数值型属性比较访问策略的属性加密方法的步骤。
[0114]
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有前述支持数值型属性比较访问策略的属性加密方法的计算机程序。
[0115]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0116]
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1