发明名称 可撤销快速数据外包封装方法及装置
摘要 本发明公开了一种可撤销快速数据外包封装方法及装置,其中,该方法包括:首先可信权威进行初始化;接着数据所有者执行数据封装;审计员执行封装检测,采用变色龙哈希函数进行计算和检验三个等式是否成立,输出结果;可信权威执行访问权限产生,输出访问证书;可信权威执行访问权限更新,更新访问权限,公布更新后的访问证书;数据使用者执行数据解封装,检测访问证书是否被撤销和计算解封装密钥并解封装;可信权威执行访问权限撤销模块,撤回访问权限。该方法实现了有效的访问控制,并最大程度地保护了电子健康病例在存储于不可完全信赖的第三方服务器上的安全性,节约了移动设备的解密开销。
申请公布号 CN105978696A 申请公布日期 2016.09.28
申请号 CN201610302830.9 申请日期 2016.05.09
申请人 北京航空航天大学 发明人 刘建伟;刘巍然;陶芮
分类号 H04L9/32(2006.01)I;H04L9/06(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 张大威
主权项 一种可撤销快速数据外包封装方法,其特征在于,包括以下步骤:S1,可行权威执行系统初始化,包括:S11,可信权威输入安全参数<img file="FDA0000985132210000011.GIF" wi="118" he="47" />和属性集合的最大数目<img file="FDA0000985132210000012.GIF" wi="174" he="47" />运行<img file="FDA0000985132210000013.GIF" wi="430" he="83" />来获得两个素数p阶群<img file="FDA0000985132210000014.GIF" wi="147" he="63" />一个双线性映射<img file="FDA0000985132210000015.GIF" wi="259" he="59" />S12,所述可信权威选择对称加密方案ε<sub>sym</sub>,所述对称加密方案ε<sub>sym</sub>采用加密算法symEnc(key,data)和解密算法symDec(key,data),其中,key为数据解封装密钥,data为用户的HER数据;S13,所述可信权威选择一种抗碰撞哈希函数H(·),所述抗碰撞哈希函数H(·)满足抗碰撞哈希函数的所有特性,输入为任意长度的0、1字符串,输出为映射到<img file="FDA0000985132210000016.GIF" wi="43" he="47" />群中的某一元素,<img file="FDA0000985132210000017.GIF" wi="593" he="115" />S14,所述可信权威选择一个有辅助参数域<img file="FDA0000985132210000018.GIF" wi="47" he="46" />的安全变色龙哈希函数CH:{0,1}<sup>*</sup>→Z<sub>p</sub>;S15,所述可信权威运行随机数生成算法,得到g,h,u,v,w,h<sub>r</sub>,<img file="FDA0000985132210000019.GIF" wi="146" he="62" />和整数<img file="FDA00009851322100000110.GIF" wi="150" he="63" />S16,设定撤回列表RL=0,并且选择一个大于等于N个叶节点的二叉树BT;S17,所述可信权威有主密钥msk(α),对外公布公共参数为<img file="FDA00009851322100000111.GIF" wi="1086" he="63" />S2,数据所有者执行数据封装,包括:S21,数据所有者选取一个随机的整数<img file="FDA00009851322100000112.GIF" wi="115" he="55" />并计算key=e(g,g)<sup>αs</sup>,c<sub>0</sub>=g<sup>s</sup>;S22,假设在任何一个LSSS编码的策略中有一个最大的行数,所述数据所有者对于每一个i∈[p]选择随机的整数λ′<sub>i</sub>,χ<sub>i</sub>,<img file="FDA00009851322100000113.GIF" wi="120" he="63" />并且计算<img file="FDA00009851322100000114.GIF" wi="770" he="82" />S23,所述数据所有者选择一个随机的整数<img file="FDA00009851322100000115.GIF" wi="155" he="62" />并且设置<img file="FDA00009851322100000116.GIF" wi="491" he="70" />S24,所述数据所有者运行(chk,td)←CHGen(1<sup>λ</sup>),选择一个随机的辅助参数<img file="FDA00009851322100000117.GIF" wi="115" he="64" />和一个随机的字符串<img file="FDA00009851322100000118.GIF" wi="243" he="63" />计算V=Hash(chk||CHash(chk,m',r'<sub>m</sub>)),输出<img file="FDA00009851322100000119.GIF" wi="310" he="68" />S25,所述数据所有者选择一个随机的整数<img file="FDA00009851322100000120.GIF" wi="139" he="63" />并且计算<img file="FDA00009851322100000121.GIF" wi="334" he="94" />最后输出中间包头为<img file="FDA00009851322100000122.GIF" wi="654" he="111" />被所述数据所有者存储以供实时封装时使用;S26,所述数据所有者已获得数据data,封装时间T,和对应的访问控制策略(M,ρ),其中<img file="FDA0000985132210000021.GIF" wi="211" he="71" />ρ:[1]→μ1≤p,所述数据所有者选择随机整数<img file="FDA0000985132210000022.GIF" wi="308" he="63" />输出<img file="FDA0000985132210000023.GIF" wi="382" he="70" />S27,所述数据所有者计算分享向量<img file="FDA0000985132210000024.GIF" wi="537" he="78" />对于i∈[I],所述数据所有者计算C<sub>i,4</sub>=λ<sub>i</sub>‑λ′<sub>i</sub>,C<sub>i,5</sub>=‑t<sub>i</sub>·(ρ(i)‑x<sub>i</sub>)对于时间T,所述数据所有者计算C<sub>R,2</sub>=s·(T‑T');S28,封装的数据为en=SymEnc(key,data),所述数据所有者运行r<sub>m</sub>=Coll(td,m',r'<sub>m</sub>,m),其中m设为:m=en||C<sub>0,1</sub>||C<sub>0,2</sub>||C<sub>0,3</sub>||C<sub>1,1</sub>||C<sub>1,2</sub>||C<sub>1,3</sub>||C<sub>1,4</sub>||C<sub>1,5</sub>||...||C<sub>1,1</sub>||C<sub>1,2</sub>||C<sub>1,3</sub>||C<sub>1,4</sub>||C<sub>1,5</sub>||C<sub>R,1</sub>||C<sub>R,2</sub>||(M,ρ)||T包头的形式表示为:<img file="FDA0000985132210000025.GIF" wi="925" he="167" />S29,所述数据所有者输出待存储的数据(hdr,en),上传并存储;S3,审计员执行封装检测,包括:S31,审计员计算V=CHash(chk,m,r<sub>m</sub>),其中m=enC<sub>0,1</sub>C<sub>0,2</sub>C<sub>0,3</sub>C<sub>1,1</sub>C<sub>1,2</sub>C<sub>1,3</sub>C<sub>1,4</sub>C<sub>1,5</sub>…C<sub>l,1</sub>C<sub>l,2</sub>C<sub>l,3</sub>C<sub>l,4</sub>C<sub>l,5</sub>C<sub>R,1</sub>C<sub>R,2</sub>(M,ρ)T;S32,对于所有的i∈[l]检测<img file="FDA0000985132210000026.GIF" wi="651" he="110" />是否成立来验证相关的属性,检测<img file="FDA0000985132210000027.GIF" wi="638" he="111" />是否成立来验证封装时间,要检测<img file="FDA0000985132210000028.GIF" wi="534" he="116" />是否成立,如果其中一个等式不成立,那么算法输出v=0,否则输出v=1;S4,可信权威执行访问权限产生,包括:S41,数据使用者属性集合为<img file="FDA0000985132210000029.GIF" wi="419" he="71" />其中<img file="FDA00009851322100000210.GIF" wi="171" he="70" />所述可信权威从所述二叉树BT中随机的选择一个未赋值的叶节点η,并且将属性集合S存储在节点η中;S42,对于每一个节点θ∈Path(η),一个元素g<sub>θ</sub>存储在节点θ当中,那么所述可信权威就从所述节点θ检索所述元素g<sub>θ</sub>,所述一个元素g<sub>θ</sub>不存储在节点θ当中,所述可信权威随机的选择一个元素<img file="FDA00009851322100000211.GIF" wi="179" he="123" />并且将<img file="FDA00009851322100000212.GIF" wi="305" he="127" />存储在节点θ当中;S43,所述可信权威选择随机的整数<img file="FDA00009851322100000213.GIF" wi="370" he="71" />计算<img file="FDA00009851322100000214.GIF" wi="488" he="63" />并且对于<img file="FDA00009851322100000215.GIF" wi="162" he="71" /><img file="FDA00009851322100000216.GIF" wi="651" he="79" />S44,所述可信权威对于所有的θ∈Path(θ)集合<img file="FDA0000985132210000031.GIF" wi="602" he="88" />并且输出所述属性集合S的访问证书如下:<img file="FDA0000985132210000032.GIF" wi="982" he="151" />S5,可信权威更新访问权限,对于每一个节点θ∈CUNode(BT,RL,T),所述可信权威从节点θ取出<img file="FDA0000985132210000033.GIF" wi="124" he="87" />在访问证书生成过程中已经预定义了,随机的选择一个整数<img file="FDA0000985132210000034.GIF" wi="139" he="72" />并且计算<img file="FDA0000985132210000035.GIF" wi="410" he="97" /><img file="FDA0000985132210000036.GIF" wi="218" he="93" />所述可信权威最终公布更新的证书为:<img file="FDA0000985132210000037.GIF" wi="758" he="151" />S6,数据使用者执行数据解封装,包括:S61,假设它的访问证书是:<img file="FDA0000985132210000038.GIF" wi="946" he="187" />所述可信权威公布的更新证书为:<img file="FDA0000985132210000039.GIF" wi="535" he="144" />所述数据使用者检查集合I∩J,如果<img file="FDA00009851322100000310.GIF" wi="214" he="47" />则该属性集合的访问证书被撤销了,程序简单的输出⊥,否则,数据使用者选择θ∈I∩J并且计算<img file="FDA00009851322100000311.GIF" wi="279" he="86" />S62,数据使用者设置<img file="FDA00009851322100000312.GIF" wi="338" he="79" />并且计算常数<img file="FDA00009851322100000313.GIF" wi="267" he="87" />使得<img file="FDA00009851322100000314.GIF" wi="485" he="109" />其中<img file="FDA00009851322100000315.GIF" wi="66" he="71" />是共享生成矩阵M的第i行,对于所有的满足访问控制策略的<img file="FDA00009851322100000316.GIF" wi="68" he="46" />常数<img file="FDA00009851322100000317.GIF" wi="246" he="83" />都可以被有效的找到,数据最终可以通过运行data=SymDec(key,en)而得到,使用的解封装密钥key如下计算:<img file="FDA00009851322100000318.GIF" wi="1149" he="246" />其中j是<img file="FDA00009851322100000319.GIF" wi="38" he="47" />中属性ρ(i)的编号;S7,可信权威执行访问权限撤销,包括:将η记作所述二叉树BT的叶节点,与所述属性集合<img file="FDA00009851322100000320.GIF" wi="43" he="53" />联系的,所述可信权威通过RL←RL∪{(η,T)}并且公开,来撤回访问权限。
地址 100191 北京市海淀区学院路37号