APP下载

支持追责和用户撤销的属性基加密方案

2018-07-19颜雪薇刘振华董恩廷

吉林大学学报(理学版) 2018年4期
关键词:发送给私钥密文

马 华, 颜雪薇, 刘振华, 董恩廷

(西安电子科技大学 数学与统计学院, 西安 710071)

在云计算环境下, 用户为节省本地存储资源通常把数据加密后上传至云服务器, 供授权用户共享. 但在实际云计算应用中, 数据经常会共享给一些具体身份信息未知的用户, 这种情况即需要一个细粒度的访问控制策略, 属性基加密机制解决了该问题. 但在动态的属性加密系统中, 仍存在许多问题, 如在云存储系统中, 如果一个不诚实的授权用户为了某些利益把他的解密密钥泄漏给一些未被授权的用户, 使得未授权用户可以访问存储在云上的敏感数据, 则会导致数据拥有者的隐私遭到泄漏. 因此, 如何通过被泄漏的密钥追踪到不诚实用户的身份, 如何撤销不诚实用户的解密权限以及如何避免属性中心非法生成和发放私钥的行为是亟待解决的问题[1]. Lee[2]构造了支持用户撤销的属性基加密方案, 但该方案不能解决恶意用户追踪和机构可追责的问题; Ning等[3]提出了支持追责的属性基加密方案, 该方案使用“不动点”作为密钥拥有者的标识符, 把密钥拥有者的身份嵌入私钥组件中, 只要获取被泄漏的私钥, 即可从私钥中提取到用户的身份. 同时, 通过中心与用户交互生成解密密钥, 解决了半信任中心滥用密钥的问题. 但该方案还存在以下缺点:

1) 私钥生成安全问题. 用户随机选择一个值c′, 把私钥中的c转换为c·c′即可将私钥随机化, 且随机化的私钥可通过密钥可用性测试, 但密钥中嵌入的身份已改变;

2) 属性个数需在系统建立阶段被预先确定, 当添加新属性时, 需重新建立系统;

3) 只能追踪到恶意用户的身份, 但不支持用户解密权限的撤销.

针对上述问题, 本文在支持大属性空间方案[4]的基础上, 提出一个支持追责和用户撤销的属性基加密方案. 该方案使用文献[5]中的方案解决了私钥生成的安全问题; 使用自更新加密[6]方案和完全子集[7]实现用户的即时撤销, 并达到前向/后向安全性, 即保证用户既不能访问以后加密的消息, 也不能解密以前的密文.

1 系统模型

系统模型如图1所示, 本文方案的框架主要由以下5个主体组成.

图1 系统模型Fig.1 System model

1) 云服务器: 为系统中用户提供存储服务;

2) 数据拥有者: 把自己的加密数据上传至云服务器, 以便与其他用户共享;

3) 用户: 从云服务器上下载共享的数据, 并解密密文得到相应的明文;

4) 属性中心: 建立系统并与用户交互生成用户的私钥; 执行追踪过程, 将追踪到的结果发送给数据拥有者; 但数据拥有者并不确定该结果的正确性;

5) 第三方审计者: 如果追踪到的用户声称自己是无辜的, 就需要第三方审计者与用户交互, 对追踪结果进行验证.

2 方案设计

本文方案由系统建立、密钥生成、自更新密钥生成、加密、解密、密文更新、追踪和审计8种算法构成.

2.1 系统建立

q1≠q2, |q1|=|q2|, gcd(q1q2,(q1-1)(q2-1))=1,

2.2 密钥生成

1) U先随机选择s∈Zp并且计算RU=gs, 然后把RU、身份id和属性集S发送给中心AT; 最后U再与AT交互地进行关于RU的离散对数零知识证明[1];

其中A表示访问策略, 并把(c1,SKpri)发送给U. U首先检查下列等式是否成立:

}τ∈{1,2,…,k}),

(5)

其中SKT-ABE,k的k表示路径上第k个节点, 最终输出私钥

SKS,id=(PVid,SKT-ABE,0,…,SKT-ABE,dmax).

2.3 自更新密钥生成

(6)

最终输出包含T和R的更新密钥UKT,R={CVR,SKSUE,1,…,SKSUE,m}.

2.4 加 密

((M,ρ),C0=gt,C1=gat, {Ci,1=wλivti,Ci,2=(uρ(i)h)-ti,Ci,3=gti}i∈{1,2,…,l}).

(7)

产生自更新加密[6]密文CHSUE的过程如下:

首先, 通过计算ψ(T)得到一个标签L∈{0,1}d,d为二叉树的深度; 其次, 选择随机指数s1,s2,…,sd∈Zp, 设置一个指数向量s=(s1,s2,…,sd), 并且得到:

(8)

对于1≤j≤d, 令L(j)=L|d-j‖1, 其中,L|d-j表示L前(d-j)个比特值, ‖表示一个连接符. 执行步骤如下:

3) 对于某个d′≤d, 移除所有空的CH(j), 并且设置CHSUE=(CH(0),CH(1),…,CH(d′)), 其只由非空的CH(j)组成, 注意CH(j)要根据前序遍历安排. 最终输出密文为

CHA,T=(CHT-ABE,CHSUE,C=Ωtm).

(9)

2.5 解 密

输入与访问策略A和时间T相关的密文CHA,T=(CHT-ABE,CHSUE,C), 与属性集S和用户身份id相关的密钥SKS,id=(PVid,SKABE,0,…,SKABE,dmax), 与更新时间T′和撤销列表R相关的更新密钥UKT′,R={CVR,SKSUE,1,…,SKSUE,m}和公共参数PP.

1) 如果U∉R, 则通过运行完全子集[7]匹配算法(CVR,PVU)得到(Sj,Si); 否则, 输出⊥.

(10)

(11)

EKT-ABE=D/E,

(12)

其中,τ是集合S中的属性ρ(i)的索引,τ∈|S|与i∈|I|范围相同.

3) 从CHT中找到CH(j), 其中L(j)是L′=ψ(T′)的前缀, 计算:

,Ki,2).

(13)

4) 通过计算

m=C·(EKT-ABE·EKSUE)-1

(14)

得到明文m, 注意与下标m区分; 否则, 输出⊥.

2.6 密文更新

首先可通过计算ψ(T)得到标签L∈{0,1}l, 然后输入时间T的密文CHT=(CH(0),…,CH(d′))、下一个时间点T+1、一个比特值C∈{0,1}和公共参数PP. 将L(j)作为CH(j)的标签. 执行过程如下:

1) 如果L(0)的长度d小于dmax, 则选择随机指数sd+1∈Zp, 并为新的标签字符串L′=L‖C输出密文

CHL(0)‖0是下一个时间点T+1根据前序遍历生成的密文, 删除CHL(0)‖1中多余的元素. 最后输出更新后的密文

CHSUE′=(CH′(0)=CHL(0)‖0,CH′(1)=CHL(0)‖1,CH′(2)=CH(1),…,CH′(d′+1)=CH(d′)).

(16)

2) 否则, 复制CH(0)中的公共元素到CH(1)中, 并且移除CH(0), 因为CH(1)是下一时间点T+1通过前序遍历生成的密文.

3) 输出密文CHSUE′=(CH′(0)=CH(1),…,CH′(d′-1)=CH(d′)).

4) 最终输出更新密文CHA,T+1=(CHT-ABE,CHSUE′,C).

2.7 追 踪

输入公共参数PP和密钥SK, 此处的密钥为中心和用户交互生成的密钥, 该密钥结构正常且能正常解密密文, 则从SK中T=(1+q)idrqmodq2提取身份id, 由Q=π-1modq知

TπQ=(1+q)id·πQrq·πQmodq2=(1+q)idmodq2=1+id·qmodq2,

因此, 通过

(17)

可恢复出id, 最后输出身份id.

2.8 审 计

1) 用户U把自己的解密密钥SKid发送给审计者PA, 如果该密钥结构错误或不能解密密文, 则审计者PA终止交互; 否则, 转2);

3 安全性证明

本文方案的安全性证明分为四部分: 撤销功能的证明、中心可追责的证明、属性基加密方案中不可区分性的证明以及用户追踪功能的证明. 撤销功能的证明与文献[2]方案中的撤销证明基本相同, 中心可追责的证明较简单, 把证明规约到离散对数问题即可. 因此, 下面只给出属性基加密方案的证明和用户追踪功能的证明.

定理1如果支持大属性空间的属性基加密方案[4]是选择明文安全的, 则本文方案中支持大属性和追责的属性基加密方案是选择明文安全的.

证明: 为方便描述, 用Σlucpabe和Σtlucpabe分别表示文献[4]方案和本文方案中的属性基加密方案. 假设存在一个具有挑战矩阵M*的敌手A, 有AdvAΣtlucpabe的优势来选择性攻破方案Σtlucpabe, 其中M*是一个l×n的矩阵. 本文构造一个算法B, 它有AdvBΣlucpabe的优势来选择性攻破方案Σlucpabe, 其中,AdvBΣlucpabe=AdvAΣtlucpabe. 敌手B是敌手A的挑战者.

初始化:B从A处得到一个挑战策略(M*,ρ*), 并将挑战策略发送给Σlucpabe. 其中: M*是一个l×n矩阵; ρ*∈F([l]→Zp).

系统建立: Σlucpabe发送给B公共参数PPΣlucpabe后, B随机选择a∈Zp及两个随机素数q1,q2, 令q=q1·q2, π=lcm(q1-1,q2-1), Q=π-1modq和g1=(1+q). 将ga,q和g1添加到PPΣlucpabe, 从而得到一个新的公共参数PP=(D,q,g,u,h,w,v,g1,ga,e(g,g)γjk), 将新的公共参数发送给A.

(18)

阶段2: 与阶段1相同.

猜测: 敌手A输出他的猜测β′, 并将β′发送给B, B将β′发送给Σlucpabe.

4 性能分析

表1列出了本文方案与现有属性基加密方案[2-3,8]的性能比较. 为方便描述, 令dmax表示树BT的最大深度, |I|表示满足密文中访问策略解密密钥中属性的个数. 与文献[2]方案相比, 本文方案牺牲了一个对运算, 但实现了用户追责功能, 并避免了半信任中心滥用密钥的问题; 与文献[3]方案相比, 本文方案中的对运算个数略有增加, 但实现了大属性空间与用户撤销功能, 并解决了密钥生成中的安全问题; 与文献[8]方案相比, 本文方案增加了常数个对运算, 但实现了用户撤销和机构追责的功能, 并且追踪过程无需存储代价.

表1 不同方案的功能与效率比较

综上所述, 本文提出了一个支持追责和用户撤销的属性基加密方案. 该方案解决了对恶意用户和半信任中心的追责问题, 并实现了用户撤销功能, 更适用于现实环境, 在可容许范围内增加了计算量, 使本文方案具有实际的应用价值, 并且该方案被证明是选择明文安全的.

猜你喜欢

发送给私钥密文
清扫机器人避障系统区块链私钥分片存储方法
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
基于模糊数学的通信网络密文信息差错恢复
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
密钥共享下跨用户密文数据去重挖掘方法*
【微信小课堂】:如何向好友发送语音
一种基于虚拟私钥的OpenSSL与CSP交互方案
你说我说大家说
一种基于密文分析的密码识别技术*