发明名称 面向云存储加密数据共享的多级权限管理方法
摘要 本发明涉及一种面向云存储加密数据共享的多级权限管理方法,利用属性基加密、访问控制、权限管理等方法,为云存储环境下共享密文的访问及多级权限管理提供一种可靠的方法。本发明通过混合加密体制,首先应用对称加密算法加密数据,生成内容密文;接着采用属性基加密根据不同类别的权限信息加密,生成权限密文;然后采用属性基加密方案加密对称密钥及权限密文,并将其作为内容密文的文件头,生成最终密文。本发明具有易于实现、用户信息保护性强、权限控制粒度细等优点,在服务器不可信的前提下,支持对共享加密数据灵活、可扩展的权限管理,有效保证了用户数据及权限信息的隐私性和安全性,在云存储领域具有较好的实用价值和广阔的应用前景。
申请公布号 CN103107992B 申请公布日期 2015.06.17
申请号 CN201310044503.4 申请日期 2013.02.04
申请人 杭州师范大学 发明人 刘雪娇;蒋莎莎;夏莹杰
分类号 H04L29/06(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 面向云存储加密数据共享的多级权限管理方法,通过以下具体步骤实现:步骤1,系统初始化首先,授权中心随机选择(y,t<sub>1</sub>,...,t<sub>n</sub>)∈Z<sub>q</sub>,运行双线性Diffie‑Hellman(Bilinear Diffie‑Hellman,BDH)参数生成器,产生两个阶为素数q的双线性群G<sub>1</sub>,G<sub>2</sub>,g是群G<sub>1</sub>的生成元,以及双线性对运算e:G<sub>1</sub>×G<sub>2</sub>→G<sub>2</sub>,得到系统公钥(Public Key,PK)以及系统主密钥(Master Key,MK)为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>PK</mi><mo>=</mo><mrow><mo>(</mo><mi>Y</mi><mo>=</mo><mi>e</mi><msup><mrow><mo>(</mo><mi>g</mi><mo>,</mo><mi>g</mi><mo>)</mo></mrow><mi>y</mi></msup><mo>,</mo><msub><mi>T</mi><mn>1</mn></msub><mo>=</mo><msup><mi>g</mi><msub><mi>t</mi><mn>2</mn></msub></msup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>T</mi><mi>n</mi></msub><mo>=</mo><msup><mi>g</mi><msub><mi>t</mi><mi>n</mi></msub></msup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000694193390000011.GIF" wi="831" he="114" /></maths>MK=(y,t<sub>1</sub>,...,t<sub>n</sub>)式中:e(g,g)<sup>y</sup>表示双线性配对运算;步骤2,用户私钥(Secret Key,SK)的生成以及分发2.1首先,授权中心根据用户信息生成用户证书,并将证书分发给各用户;2.2然后,授权中心随机选择一个d‑1次多项式p,d为门限参数,令p(0)=y,根据用户所拥有的属性集A<sub>u</sub>,按以下公式计算,该用户私钥为:<maths num="0002" id="cmaths0002"><math><![CDATA[<msub><mrow><mo>{</mo><msub><mi>SK</mi><mi>i</mi></msub><mo>=</mo><msup><mi>g</mi><mrow><mi>p</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>/</mo><msub><mi>t</mi><mi>i</mi></msub></mrow></msup><mo>}</mo></mrow><mrow><mo>&ForAll;</mo><mi>i</mi><mo>&Element;</mo><msub><mi>A</mi><mi>u</mi></msub></mrow></msub>]]></math><img file="FDA0000694193390000012.GIF" wi="387" he="100" /></maths>2.3最后,授权中心通过用户证书验证用户身份,并将私钥分发给相应用户;步骤3,文件加密及上传3.1首先,数据拥有者应用对称加密算法AES随机生成内容密钥(Context Key,CK),再将文件用内容密钥CK进行加密,得到内容密文N;3.2然后,对文件权限信息进行加密;数据拥有者用可扩展访问控制标记语言(eXtensible Access Control Markup Language,XACML)按照不同的权限访问控制组合分类描述权限信息(R<sub>1</sub>,R<sub>2</sub>,...,R<sub>m</sub>),随机选择(s<sub>1</sub>,s<sub>2</sub>,...,s<sub>m</sub>)∈Z<sub>q</sub>,再根据不同权限组合对应的用户属性集合(A<sub>c1</sub>,A<sub>c2</sub>,...,A<sub>cm</sub>)别部分加密相应权限信息,按以下公式得到文件权限密文K:<maths num="0003" id="cmaths0003"><math><![CDATA[<msub><mrow><mo>{</mo><msub><mi>A</mi><mi>ci</mi></msub><mo>,</mo><msub><mi>K</mi><mi>i</mi></msub><mo>=</mo><msup><mi>Y</mi><msub><mi>S</mi><mi>i</mi></msub></msup><msub><mi>R</mi><mi>i</mi></msub><mo>=</mo><mi>e</mi><msup><mrow><mo>(</mo><mi>g</mi><mo>,</mo><mi>g</mi><mo>)</mo></mrow><msub><mi>ys</mi><mi>i</mi></msub></msup><msub><mi>R</mi><mi>i</mi></msub><mo>,</mo><msub><mrow><mo>{</mo><msub><mi>K</mi><mi>ij</mi></msub><mo>=</mo><msup><mi>g</mi><mrow><msub><mi>t</mi><mi>j</mi></msub><msub><mi>s</mi><mi>i</mi></msub></mrow></msup><mo>}</mo></mrow><mrow><mo>&ForAll;</mo><mi>i</mi><mo>&Element;</mo><msub><mi>A</mi><mi>ci</mi></msub></mrow></msub><mo>}</mo></mrow><mrow><mo>&ForAll;</mo><mi>i</mi><mo>&Element;</mo><mi>m</mi></mrow></msub>]]></math><img file="FDA0000694193390000013.GIF" wi="994" he="118" /></maths>3.3得到权限加密信息后,随机选择z∈Z<sub>q</sub>,根据对该文件具有访问权限的用户属性集合A<sub>a</sub>,按照以下公式加密内容密钥CK以及权限密文K:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mo>{</mo><msub><mi>A</mi><mi>a</mi></msub><mo>,</mo><mi>Q</mi><mo>=</mo><msup><mi>Y</mi><mi>z</mi></msup><mo>{</mo><mi>CK</mi><mo>,</mo><mi>K</mi><mo>}</mo><mo>=</mo><mi>e</mi><msup><mrow><mo>(</mo><mi>g</mi><mo>,</mo><mi>g</mi><mo>)</mo></mrow><mi>yz</mi></msup><mo>{</mo><mi>CK</mi><mo>,</mo><mi>K</mi><mo>}</mo><mo>,</mo><msub><mrow><mo>{</mo><msub><mi>Q</mi><mi>i</mi></msub><mo>=</mo><msup><mi>g</mi><mrow><msub><mi>t</mi><mi>i</mi></msub><mi>z</mi></mrow></msup><mo>}</mo></mrow><mrow><mo>&ForAll;</mo><mi>i</mi><mo>&Element;</mo><msub><mi>A</mi><mi>a</mi></msub></mrow></msub><mo>}</mo></mrow>]]></math><img file="FDA0000694193390000021.GIF" wi="1124" he="107" /></maths>并将其封装成文件头的形式与内容密文N组成密文E,最后,将密文E上传至云服务器,实现文件共享;步骤4,文件解密4.1用户先从服务器将密文下载到本地,若|A<sub>u</sub>∩A<sub>a</sub>|&gt;d,则选择d个属性i∈A<sub>u</sub>∩A<sub>a</sub>,计算e(Q<sub>i</sub>,SK<sub>i</sub>)=e(g,g)<sup>p(i)z</sup>,再用拉格朗日插值找到Y<sup>z</sup>=e(g,g)<sup>p(0)z</sup>=e(g,g)<sup>yz</sup>,得到{CK,K}=Q/Y<sup>z</sup>若用户所拥有的属性集满足用户访问结构A<sub>a</sub>,则文件头解密成功,得到内容密钥CK以及权限密文K;否则,用户无法解密文件;4.2若文件头解密成功,则进一步根据用户所拥有的私钥,解密权限密文K,若|A<sub>u</sub>∩A<sub>ci</sub>|&gt;d,则选择d个属性j∈A<sub>u</sub>∩A<sub>ci</sub>,<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>K</mi><mi>ij</mi></msub><mo>,</mo><msub><mi>SK</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>e</mi><msup><mrow><mo>(</mo><mi>g</mi><mo>,</mo><mi>g</mi><mo>)</mo></mrow><mrow><msub><mi>p</mi><mi>j</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><msub><mi>s</mi><mi>i</mi></msub></mrow></msup><mo>,</mo></mrow>]]></math><img file="FDA0000694193390000022.GIF" wi="579" he="102" /></maths>然后用拉格朗日插值找到<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msup><mi>Y</mi><msub><mi>s</mi><mi>i</mi></msub></msup><mo>=</mo><mi>e</mi><msup><mrow><mo>(</mo><mi>g</mi><mo>,</mo><mi>g</mi><mo>)</mo></mrow><mrow><mi>p</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><msub><mi>s</mi><mi>i</mi></msub></mrow></msup><mo>=</mo><mi>e</mi><msup><mrow><mo>(</mo><mi>g</mi><mo>,</mo><mi>g</mi><mo>)</mo></mrow><msub><mi>ys</mi><mi>i</mi></msub></msup></mrow>]]></math><img file="FDA0000694193390000023.GIF" wi="571" he="94" /></maths>解密得到用户对应的权限信息,<img file="FDA0000694193390000024.GIF" wi="254" he="75" />最后用户用内容密钥CK对内容密文N进行解密得到明文;这样,就可根据用户拥有的权限信息对文件进行操作控制。
地址 310036 浙江省杭州市下沙高教园区学林街16号