发明名称 基于身份的广播密钥分发方法
摘要 本发明公开了一种基于身份的广播密钥分发方法,通过使用基于身份的公钥密码机制来实现广播密钥的分发,分发者和用户之间需要交换任何秘密信息,只需要分发者向所有用户广播一些可公开信息即可完成广播密钥的分发。因此,不需要密钥分发者和各用户之间事先建立一条安全信道,从而提高了广播密钥分发效率和系统整体安全性。
申请公布号 CN101599827A 申请公布日期 2009.12.09
申请号 CN200910023288.3 申请日期 2009.07.10
申请人 西北工业大学 发明人 李慧贤;庞辽军
分类号 H04L9/08(2006.01)I;H04L9/32(2006.01)I;H04L9/30(2006.01)I;H04L12/18(2006.01)I 主分类号 H04L9/08(2006.01)I
代理机构 西北工业大学专利中心 代理人 黄毅新
主权项 1、一种基于身份的广播密钥分发方法,其特征在于包括以下步骤:(1)广播密钥分发者S通过以下方法向n个用户R<sub>1</sub>,R<sub>2</sub>,…,R<sub>n</sub>分发广播密钥K:(1.1)对于每一个用户R<sub>i</sub>(i=1,2,...,n),广播密钥分发者S利用自己的私钥S<sub>0</sub>和R<sub>i</sub>的公钥ID<sub>i</sub>计算信息SK<sub>i</sub>=e(ID<sub>i</sub>,S<sub>0</sub>);(1.2)广播密钥分发者利用自己的私钥S<sub>0</sub>、每个用户R<sub>i</sub>(i=1,2,...,n)的公钥ID<sub>i</sub>和上述步骤(1.1)中计算的信息SK<sub>i</sub>(i=1,2,...,n)构造(n+1)个数值对:(0,S<sub>0</sub>)、(ID<sub>1</sub>,SK<sub>1</sub>)、(ID<sub>2</sub>,SK<sub>2</sub>)、......、(ID<sub>n</sub>,SK<sub>n</sub>),进一步对该(n+1)个数值对进行拉格朗日(Lagrange)插值操作,得到一个n次多项式f(x);(1.3)广播密钥分发者随机选择两个公开元素Q<sub>1</sub>,Q<sub>2</sub>∈G<sub>1</sub>和一个秘密整数<maths num="0001"><![CDATA[<math><mrow><mi>r</mi><mo>&Element;</mo><msubsup><mi>Z</mi><mi>p</mi><mo>*</mo></msubsup><mo>,</mo></mrow></math>]]></maths>计算公开信息如下:<maths num="0002"><![CDATA[<math><mrow><mover><mi>I</mi><mo>&RightArrow;</mo></mover><mo>[</mo><mn>1</mn><mo>:</mo><mi>n</mi><mo>]</mo><mo>=</mo><mo>{</mo><mi>f</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mi>rP</mi><mo>,</mo><mi>f</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mi>rP</mi><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>f</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>rP</mi><mo>}</mo></mrow></math>]]></maths>P<sup>*</sup>=rP<maths num="0003"><![CDATA[<math><mrow><msubsup><mi>Q</mi><mn>1</mn><mo>*</mo></msubsup><mo>=</mo><mi>r</mi><msub><mi>Q</mi><mn>1</mn></msub></mrow></math>]]></maths>CK=e(S<sub>0</sub>P,Q<sub>2</sub>)<sup>r</sup>K(1.4)广播密钥分发者将上述计算结果<img file="A2009100232880002C4.GIF" wi="53" he="48" />P<sup>*</sup>、Q<sub>1</sub><sup>*</sup>和CK向所有用户R<sub>1</sub>,R<sub>2</sub>,...,R<sub>n</sub>进行广播;(2)广播密钥获取过程。每一个用户R<sub>i</sub>(i=1,2,...,n)收到广播信息<img file="A2009100232880002C5.GIF" wi="54" he="49" />P<sup>*</sup>、Q<sub>1</sub><sup>*</sup>和CK后,做如下计算以获取密钥K:(2.1)用户R<sub>i</sub>利用自己的私钥S<sub>t</sub>和发送者S的公钥ID<sub>0</sub>计算SK<sub>i</sub>=e(ID<sub>0</sub>,S<sub>i</sub>);(2.2)令集合Γ={1,2,...,n,ID<sub>i</sub>}={v<sub>1</sub>,v<sub>2</sub>,...v<sub>n+1</sub>},并对每个元素v<sub>k</sub>∈Γ计算信息<maths num="0004"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mrow><mi>k</mi><mo>,</mo><mi>&Gamma;</mi></mrow></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>=</mo><munder><mi>&Pi;</mi><mrow><msub><mi>v</mi><mi>j</mi></msub><mo>&Element;</mo><mi>&Gamma;</mi><mo>,</mo><mi>j</mi><mo>&NotEqual;</mo><mi>k</mi></mrow></munder><mfrac><msub><mi>x</mi><mi>j</mi></msub><mrow><msub><mi>x</mi><mi>j</mi></msub><mo>-</mo><msub><mi>x</mi><mi>k</mi></msub></mrow></mfrac><mo>,</mo><mrow><mo>(</mo><mi>k</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>(2.3)计算密钥K如下:<maths num="0005"><![CDATA[<math><mrow><mi>K</mi><mo>=</mo><mfrac><mrow><mi>e</mi><mrow><mo>(</mo><msubsup><mi>Q</mi><mn>1</mn><mo>*</mo></msubsup><mo>,</mo><msub><mi>ID</mi><mn>0</mn></msub><msub><mi>Q</mi><mi>TTP</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>CK</mi></mrow><mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>Q</mi><mn>1</mn></msub><mo>+</mo><msub><mi>Q</mi><mn>2</mn></msub><mo>,</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&sigma;</mi><mrow><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><mi>&Gamma;</mi></mrow></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mover><mi>I</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>&sigma;</mi><mrow><msub><mi>v</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>&Gamma;</mi></mrow></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><msub><mi>SK</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>Q</mi><mn>1</mn></msub><mo>+</mo><msub><mi>Q</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>,</mo><msup><mi>P</mi><mo>*</mo></msup><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>其中,<img file="A2009100232880002C8.GIF" wi="73" he="59" />表示数组<img file="A2009100232880002C9.GIF" wi="23" he="48" />中第i个元素,即<maths num="0006"><![CDATA[<math><mrow><mover><mi>I</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mi>rP</mi><mo>.</mo></mrow></math>]]></maths>
地址 710072陕西省西安市友谊西路127号