基于群签名的属性加密方案1

2019-02-20 07:49:10张兴兰崔遥
网络与信息安全学报 2019年1期
关键词:敌手密文密钥

张兴兰,崔遥

(北京工业大学信息学部,北京 100124)

1 引言

随着计算机技术的发展和分布式技术的应用,人们将越来越多的数据存储到云端[1],基于属性的加密(ABE,attribute based encryption)在这种背景下应运而生。ABE最早由Sahai等[2]提出,由于ABE具有内在的一对多的良好性质,能够对密文进行细粒度的访问控制,被广泛应用于云存储环境,它解决了复杂信息系统中的细粒度访问控制和大规模用户动态扩展问题,为开放的网络环境提供了比较理想的访问控制方案[3]。之后,Goyal等[4]进一步明确了ABE的概念,将ABE分为基于密钥策略的属性加密(KP-ABE,key-policy attribute-based encryption)和基于密文策略的属性加密(CP-ABE,cipher text-policy attribute-based encryption)。在基于密钥策略的属性加密机制中,密钥与访问策略相关,密文与属性集相关;而在基于密文策略的属性加密机制中,密钥与属性集相关,密文与访问策略相关[5]。然而访问策略同样包含敏感信息,当恶意用户获得访问策略时,就可以根据访问策略判断出密文信息,如对一份病例通过ABE机制进行加密,它对应的访问策略中要求心理医生访问,这样容易暴露该病例对应的病人很可能是位心理疾病患者[6]。在这种情况下,隐藏策略中的敏感信息显得十分重要。

Kapadia等[7]提出一种叫作PEAPOD(privacyenhanced attribute-based publishing of data)策略隐藏的 CP-ABE方案,该方案需要引入一个在线的半可信服务器进行密文的重加密,这种引入方式会导致安全和性能的提升受限。Nishide等[8]介绍了两种CP-ABE方案来实现策略隐藏,在多值属性之间通过与门逻辑表示访问结构,将访问结构隐藏在加密的信息中。Muller等[9]在Nishide的成果上,使用了树形访问控制技术,使用布尔表达式来表示访问结构,从而实现访问结构的隐藏。文献[10]同样是将访问结构嵌入密文中[10]。文献[11]提出了一种半策略隐藏属性加密方案,将属性表示为属性名和属性值的对应关系,对属性值进行隐藏,用以保护用户隐私,主要针对属性经常变更和变更涉及隐私信息的情况,但将大量的计算工程外包给云服务器,外包计算的安全性是一个重要问题[12]。Lai等[13]通过系统加密机制实现访问结构的隐藏,在基于密文的属性加密机制的基础上构造了隐藏访问结构的方案,密文长度以及双线性对运算都与属性数量成正相关,大大增加了方案的运算和存储开销,导致系统运行效率低。Chase等[14]引入了多权威中心的CP-ABE来提高安全性。

本文在 CP-ABE访问树结构的基础上,通过群签名的方式,实现了策略中属性的隐藏,同时使策略支持多样化的表达。在传统的CP-ABE访问结构中[15-16],树形访问结构以属性作为叶子节点,门限节点(与、或、非、门限)作为非叶子节点,这种结构比较清晰,但直接将属性作为叶子节点可能会泄露隐私信息,所以在 CP-ABE中加入群签名,将树形访问结构最底层的叶子节点放入群中。传统的访问结构如图1所示。可以将A、B和C、D分别作为一个群G1和G2,如图2所示,这样如果用户的访问条件成立,验证者只能知道访问者符合访问控制规则,无法知道群中的具体成员。

图1 传统访问结构

图2 基于群签名的访问结构

2 预备知识

2.1 访问结构

在CP-ABE中,用户可以用一系列属性来描述,访问结构可以定义为相关属性的逻辑表达式,表示数据允许被访问的范围[17-18]。定义{a1,a2,… ,an}是一个属性的集合,如果访问结构A包含于 2{a1,a2,…,an}是单调的,那么任取集合B和集合C,若B∈A,且B⊆C,则C∈A。

访问结构A是 {a1,a2,… ,an}的非空子集,即A包含于 2{a1,a2,…,an}/∅ 。A中的集合称为授权集,否则称为非授权集。

在本文方案中,访问结构树为一颗多叉树,该树中,用与或门限的布尔操作给内部节点赋值,用属性给叶子节点赋值。访问结构树即为访问策略,指定了可以解密密文的属性组合。

2.2 双线性映射

设置两个阶为素数p的乘法循环群G1和G2,若存在一个映射e:G1×G1->G2满足如下特征,则是双线性映射[19]。

1) 双线性:对 ∀a,b∈Zq, ∀g,h∈G1,都有(ega,hb)=e(g ,h)ab,则称映射e:G1×G1->G2是双线性的。

2) 非退化性: ∃g∈G1,使(eg,g)≠ 1。

3) 可计算性: ∀g,h∈G1,存在一个有效的算法来计算(eg,h)。注意:e(*,*)是对称操作,即 (ega,hb) = (eg,h)ab=(egb,ha) 。

2.3 秘密共享机制

一般地,一个有秘密分发者D和参与者{p1,p2,p3,… ,pn}构成的(t,n)秘密分享机制包含下面两个协议[5,20-21]。

1) 秘密分发协议:在这个协议中,秘密分发者D在n个参与者中分享秘密s,每个参与者Pi获得一个碎片Si,i=1,…,n。

2) 秘密重构协议:在这个协议中,任意不少于t个参与者一起合作,以自己的碎片为输入,重构原秘密s。

Shamir秘密共享机制是一个安全的(t,n)秘密分享机制:一方面,任意t个参与者通过提供自己的碎片能够协作恢复出原秘密s;另一方面,任意少于t个参与者即使拥有自己的碎片也无法计算关于原秘密s的任何信息。这里的t一般为门限值。该机制实现如下。

3) 秘密分发者D在n个参与者之间分享秘密s,D选择一个素数q> max(s,n),随机选择定义以 及t-1次的多项式参与者p获得秘密碎片i

4) 秘密恢复:已知任意不少于t个点(x,y)= (i,si),根据拉格朗日差值定理,可以确定唯一的其中拉格朗日系数定义为

2.4 群签名

群签名的概念是由Chaum和Heyst在1991年联合提出的[9,13]。在一个群签名体制中,群体中的成员可代表整个群体进行匿名签名。一方面,验证者只能确定签名是由群体中的某个成员产生的,但不能确定是哪个成员,即匿名性;另一方面,在必要的时候群管理者可以打开签名来揭示签名成员身份,使签名成员无法否认,即可追踪性[22-23]。

2.5 安全模型

通过挑战者与敌手的游戏定义方案的安全性,分为以下5个游戏阶段。

1) 建立阶段,挑战者运行setup算法,并发布公开参数。

2) 阶段一,敌手针对访问结构A1、A2…Aq进行查询Ω= {a1,a2,a3,… ,an}的密钥,该查询为自适应的查询,敌手每次在之前返回结果的基础上进行查询,每次挑战者通过运行密钥生成算法对查询进行回答。

3) 挑战,敌手提交两个等长的明文m0、m1给挑战者,挑战者投掷公平的硬币b,为0则用属性集Ω对m0进行加密,为1则用属性集Ω对m1进行加密,且访问结构A1、A2…Aq不满足属性集Ω,然后将密文发送给敌手。

4) 阶段二,重复阶段一密钥询问。

5) 猜测,敌手输出b的猜测值b'。

3 系统模型和方案形式化定义

3.1 系统模型

本文的系统架构包含如下实体:可信中心、数据拥有者、云服务器、用户、属性群、群组管理者,如图3所示。

可信中心:发布系统公钥和私钥。

数据所有者:定制策略,分发属性至属性群,加密数据,将密文发送到云服务器。

云服务器:负责存储密文,接受用户的访问请求。

用户:用户向云服务器提出访问请求,当且仅当用户包含的属性满足访问结构才能解密获得明文。

G1,G2,G3,…,Gm:属性群,根据用户的属性生成群签名发送给群组管理者。

群组管理者:验证群签名,合成最终签名。

3.2 本文方案形式化定义

本文方案描述如下。

1) 初始化算法:输出系统公钥PK和主密钥MK。

2) 密钥生成:根据MK和属性集合生成属性私钥。

3) 加密算法:数据所有者根据访问控制结构使用公钥PK加密明文m,生成密文CT。

4) 解密算法:根据属性集、CT、PK计算得出密文m,否则为⊥。

4 方案设计

本文方案的设计思路是将CP-ABE与群签名的技术相结合,在属性层面完成属性的不可见性。系统中,用户的属性集合为Ω= {a1,a2,a3, … ,an},n为属性的个数,IDi(1 ≤i≤n)为每个属性的ID。方案分为系统初始化、密钥生成算法、加密算法、解密算法。

4.1 系统初始化

选定一个大素数p,G是阶为p的乘法循环群,双线性映射e:G×G→G1,g为G的生成元。生成一个椭圆曲线和b满足 4a3+ 27b2≠ 0(modp)。E为曲线上的一个生成元,可信中心选择一个单向散列函数h(),选择随机元素计算如下。

输出系统公钥

保存主密钥

4.2 密钥生成算法

4.3 加密算法

输入公钥PK、主密钥MK,访问控制结构T、输出密文CT。

输入树形访问控制结构T,根节点为s,子树分别为与或门等逻辑关系,运用Shamir秘密共享机制进行秘密分发。当该节点为或门节点,则子树对应的群或节点的秘密值均为s,否则,对于该节点的子树,从左到右进行分发秘密值,假设该节点对应的群或者节点的范围为(h,k),随机选择直到该节点的最后一个子树,为最后一个子树计算秘密值其中,s'为该节点对应的秘密值。

将属性值加入对应的群中,对于群Gl(1 ≤l≤m) ,秘密值为sl,设计(t,n)门限函数,选择一个素数q> max(sl,n),随机选择a1,a2,定义和次的多项式

对每一个加入该群的属性ai(1 ≤i≤n),选择随机数计算并发送U和至属性群Gl。

输入明文m,计算

4.4 解密算法

输入PK、MK、访问控制策略T、密文CT,输出明文。

对于群Gl(1 ≤l≤m) ,本群的属性集合为ω′,根据用户的属性,计算本群的群签名如下。

计算

将计算结果Sign发送给用户,否则返回⊥。用户收到Sign,计算如下。

从而得到m。

5 安全性分析

下面证明本文方案在 DBDH假设下满足密文的不可区分性。若敌手A以不可忽略的优势攻破本文方案,那么存在一个算法能够以相同的优势攻破DBDH假设。

证明:若敌手A在一个多项式时间内以不可忽略的优势ε赢得游戏,则证明能够以不可忽略的优势解决DBDH困难问题。具体描述过程如下。

挑战者指定 DBDH的挑战元组(ga,gb,gc,Z),其中,Z在群G中的取值概率与 (e g,g)abc相同。

Step1敌手 A提供给挑战者两个访问结构W1、W2,挑战者C运行初始化算法,C输出系统公钥PK={e,g,y,Tj(1 <j≤n),E,h()},保存主密钥

Step2敌手 A 提供一个属性列表Ω= {a1,a2,a3,… ,an}作为私钥询问的输入列表,要求属性列表Ω同时不满足访问结构W1和W2,所以必定存在一个属性i∈ [1 ,2,3,… ,n],ai∉W1,选择随机数如果或者计算否则返回返回给敌手

Step3敌手A提交两个明文m0、m1给挑战者,挑战者C投掷一枚公平的硬币b∈ {0 ,1},得到随机的一个值b,选择随机数计算

Step4敌手A重复Step2和Step3,继续私钥询问。

Step5敌手A给出对b的猜测值b′∈ {0,1},若b'=b,表明敌手A能以不可忽略的优势攻破方案,即Z=(e g,g)abc,否则,Z为随机值。

在上述DBDH游戏中,若b'≠b,那么Z为一个随机值,敌手 A没有获得关于消息mb的信息,所以

当敌手A猜测成功,根据定义知道敌手有ε的优势攻破本方案,所以

综合敌手的优势为

综上可知,如果敌手A按照以上的安全模型以不可忽略的优势ε攻破了本文方案,则存在一种能以不可忽略的优势解决 DBDH问题的多项式时间算法。因为不存在一种多项式时间算法能以不可忽略的优势解决DBDH问题,所以不存在能以不可忽略的优势攻破本方案的敌手A,即证明本文所提方案达到了CPA安全。

6 结束语

本文提出了一种基于群签名的 CP-ABE方案,可以有效解决访问结构导致的隐私泄露问题。该方案在DBDH困难问题假设下实现CPA安全,可有效保护策略中的隐私信息。但是方案基于访问结构控制树的设定有一定的局限性,下一步的研究将就此展开。

猜你喜欢
敌手密文密钥
探索企业创新密钥
一种针对格基后量子密码的能量侧信道分析框架
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
密码系统中密钥的状态与保护*
不带着怒气做任何事
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
电信科学(2017年6期)2017-07-01 15:45:06
云存储中支持词频和用户喜好的密文模糊检索
不带着怒气作战