主权项 |
一种基于指定服务器的支持多密钥加密的公钥可搜索加密方法,其特征在于,包括以下步骤:101、初始化算法:生成全局的公共参数,G,G<sub>T</sub>,e,H<sub>1</sub>(),H<sub>2</sub>(),g,m,n。其中G,G<sub>T</sub>是两个阶数为p的循环群,阶数p为素数,e:G×G→G<sub>T</sub>是一个双线性映射,根据安全参数λ随机选择一个生成元g∈G和两个随机数m,n∈G,选择两个哈希函数H<sub>1</sub>:{0,1}<sup>*</sup>→G,H<sub>2</sub>:G<sub>T</sub>→{0,1}<sup>λ</sup>;102、随机选择一个值α∈Z<sub>p</sub>,Z<sub>p</sub>是{0,1,...,p‑1}的整数集合,作为服务器的私钥sk<sub>s</sub>=α,然后计算生成服务器的公钥pk<sub>s</sub>=(pk<sub>s,1</sub>,pk<sub>s,2</sub>)=(g<sup>α</sup>,m<sup>1/α</sup>);103、生成用户的公钥和私钥,随机选择一个值β∈Z<sub>p</sub>作为用户的私钥sk<sub>u</sub>=β,然后计算生用户的公钥pk<sub>u</sub>=(pk<sub>u,1</sub>,pk<sub>u,2</sub>)=(g<sup>β</sup>,n<sup>β</sup>);104、生成文件的加密密钥,即随机选择一个值k<sub>j</sub>∈Z<sub>p</sub>作为文件的加密密钥k<sub>j</sub>;105、生成关键字密文,输入用户公钥pk<sub>u</sub>,指定服务器的公钥pk<sub>s</sub>,随机选择一个值r∈Z<sub>p</sub>,产生相对应的密文C=[A,r,B],其中<img file="FDA0000618346650000011.GIF" wi="238" he="78" /><maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>B</mi><mo>=</mo><msub><mi>H</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>e</mi><msup><mrow><mo>(</mo><msub><mi>pk</mi><mrow><mi>s</mi><mo>,</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>H</mi><mn>1</mn></msub><msup><mrow><mo>(</mo><mi>w</mi><mo>)</mo></mrow><mi>r</mi></msup><mo>)</mo></mrow><msub><mi>k</mi><mi>j</mi></msub></msup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000618346650000012.GIF" wi="569" he="89" /></maths>106、生成查询关键字陷门,输入用户私钥sk<sub>u</sub>,待查询的关键字w,计算生成关键字陷门<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>T</mi><mi>w</mi></msub><mo>=</mo><msub><mi>H</mi><mn>1</mn></msub><msup><mrow><mo>(</mo><mi>w</mi><mo>)</mo></mrow><mrow><mn>1</mn><mo>/</mo><msub><mi>sk</mi><mi>u</mi></msub></mrow></msup><mo>;</mo></mrow>]]></math><img file="FDA0000618346650000013.GIF" wi="367" he="95" /></maths>107、生成相应Δ信息及T′<sub>w</sub>:输入用户公钥pk<sub>u</sub>及文件加密密钥k<sub>j</sub>,计算生成<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>Δ</mi><mo>=</mo><msubsup><mi>pk</mi><mrow><mi>u</mi><mo>,</mo><mn>1</mn></mrow><msub><mi>k</mi><mi>j</mi></msub></msubsup><mo>,</mo></mrow>]]></math><img file="FDA0000618346650000014.GIF" wi="222" he="89" /></maths>并计算得到<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>T</mi><mi>w</mi><mo>′</mo></msubsup><mo>=</mo><mi>e</mi><mrow><mo>(</mo><msubsup><mi>pk</mi><mrow><mi>u</mi><mo>,</mo><mn>1</mn></mrow><msub><mi>k</mi><mi>j</mi></msub></msubsup><mo>,</mo><msub><mi>H</mi><mn>1</mn></msub><msup><mrow><mo>(</mo><mi>w</mi><mo>)</mo></mrow><mrow><mn>1</mn><mo>/</mo><msub><mi>sk</mi><mi>u</mi></msub></mrow></msup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000618346650000015.GIF" wi="504" he="89" /></maths>108、输入指定服务器的私钥sk<sub>s</sub>、T′<sub>w</sub>及待检索关键的密文C=[A,r,B],计算并判断等式<img file="FDA0000618346650000016.GIF" wi="332" he="82" />是否成立,如果成立,则返回与关键字w相关的文件,否则,返回错误。 |