说明书一种具有高效解密特性的基于身份匿名广播加密方法
技术领域
本发明涉及密码学和计算机安全领域,更具体地,涉及一种具有高效解密特性的基于身份匿名广播加密方法。
背景技术
互联网与无线通信技术的进步促进了面向多个接收者应用(诸如电子内容分发、付费视频)的发展,这些应用需要保护内容的版权,拒绝未授权用户的非法访问。为了保护具有版权的内容,通常的做法是将内容进行加密。在多接收者条件下,密文的数目与接收者数目线性相关,加密数据如何在多接收者条件下进行高效解密是一个充满挑战的问题。
在基于身份匿名广播加密中,发送方预先指定一个授权接收者集合,并使用每个授权接收者的公钥加密明文。只有预先指定的授权接收者才能够使用自己的私钥解密密文,未经授权的接收者无法从广播而来的密文中得到任何信息。
Fan等人在“匿名多接收者基于身份加密”一文中利用拉格朗日插值算法首次构造出一种匿名多接收者基于身份加密方案。此方案在安全性定义中只涉及两个接收者,未能真正达到多接收者的应用环境。Hur等人在“具有隐私保护特性的基于身份广播加密”一文中首次利用索引构造出一种能快速定位接收者对应密文部分的基于身份匿名广播加密方案。然而该文未给出严格的安全性证明,因此该文提出的方案的安全性不能得到保障。Zhang等人在“一种改进的匿名多接收者基于身份加密”一文中给出了一种可证明安全的匿名多接收者基于身份加密。但是此方案中授权的接收者不能快速定位到属于自己的密文部分,在解密成功之前需要尝试解密每一 个接收者对应密文部分,由此带来了比较大的计算开销。
发明内容
针对现有技术的缺陷以及改进的需求,本发明提供了一种具有高效解密特性的基于身份匿名广播加密方案,其目的在于解决已有技术在接收者解密环节的开销大以及匿名性弱而导致授权接收者身份信息泄露的技术问题。
本发明提供一种具有高效解密特性的基于身份广播加密方案,包括以下步骤:
(1)系统初始化。根据预先指定的安全级别构建对应的双线性映射,并根据该双线性映射计算出主公开参数MP和主秘密参数MS;
(2)授权接收者的密钥提取。根据生成的主公开参数MP、主秘密参数MS以及每个授权接收者的身份ID,为每个授权接收者生成私钥SK,并将该私钥发送给对应的授权接收者;
(3)发送方执行广播加密。发送方首先指定接收方(授权接收者集合),提取其身份信息(ID1,ID2,…,IDn),并使用接收方钥(即接收方的身份信息)将待广播的明文M加密为密文C,最后通过公共信道将密文C进行广播传输;
(4)接收者进行解密。授权接收者能够使用自身的私钥SK定位并提取出属于自己的密文部分,然后通过解密恢复出明文;未经授权的接收者虽然也可以通过收听广播获取密文,却无法从密文中获取任何信息。
总体而言,通过本发明构思的技术方案与现有技术相比,具有以下有益效果:
(1)解密的高效性。利用索引定位并提取出属于对应授权接收者的密文,避免了试图解密每一条密文带来的开销。
(2)更强的安全性。保证密文安全性的同时为接收者提供匿名性。任意授权接收者不会从密文中提取出其他授权接收者的身份信息,未经授权 的接收者也不会从密文中提取出任意授权接收者的身份信息。
附图说明
图1为本发明具有高效解密特性的基于身份匿名广播加密的应用场景示意图;
图2为本发明具有高效解密特性的基于身份匿名广播加密的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,其显示出本发明方法的应用环境图,本方法涉及三方实体:发送方、密钥生成中心(Key Generation Center,简称KGC)、接收方(授权接收者集合)。发送方预先指定接收方,使用接收方公钥将明文加密为密文之后通过公共信道将密文通过广播发送给接收方。密钥生成中心负责生成主公开参数、主秘密参数以及每个授权接收者相对应的私钥,将主公开参数发送给每个授权接收者,将主秘密参数保密,将私钥发送给对应的授权接收者。授权接收者在接收到密文之后使用自身的私钥定位并提取出属于自己的密文,最终通过解密恢复明文;未经授权的接收者虽然能够获取密文,却无法从密文中获取任何信息。
如图2所示,本发明提供一种具有高效解密特性的基于身份匿名广播加密方案,该方案包括以下步骤:
(1)系统初始化。密钥生成中心根据预先确定的安全级别构建对应的双线性映射,并根据该双线性映射和系统中的接收者数量计算出主公开参数MP和主秘密参数MS;
具体而言,预先确定的安全级别是由密钥生成中心根据需要确定的,如 果安全级别越高,则授权接收者私钥的长度越大,每次运算需要的时间就越长,相应的系统运行效率就越低,反之则运行效率越高。主公开参数向所有接收者公开,主秘密参数被密钥生成中心保留;
本步骤包含以下子步骤:
(1-1)根据所需的安全级别设定安全参数α,并构建双线性映射e:G1×G1→GT,其中G1和GT为椭圆曲线群,这两个椭圆曲线群的阶数q的比特长度等于安全参数α;
(1-2)在椭圆曲线群G1中随机选取生成元g,在q阶的正整数群群中随机选取一个正整数s,令p=gs。选取一种安全的对称加密方案(K,SEK,DEK),其中K代表对称密钥空间,SEK表示对称加密算法,DEK表示对称解密算法。选择哈希函数如下:
用于将任意长度的01比特串映射到q阶正整数群中;
(1-3)根据上述步骤(1-1)和(1-2)的结果生成主公开参数MP和主秘密参数MS;
MP=(q,G1,GT,e,g,p,H,K,SEK,DEK),MS=s
其中主秘密参数MS由密钥生成中心保留,主公开参数MP由密钥生成中心发送给授权接收者。
(2)授权接收者的密钥提取。根据上一步生成的主公开参数MP中的哈希函数H、每个授权接收者所具有的身份ID(其为具有一定长度的01字符串)以及主秘密参数MS,为每个授权接收者生成私钥SKID,并将该私钥SKID发送给对应的授权接收者;具体而言,本步骤是采用以下公式:
SKID=H(ID)s
其中H用于将表示授权接收者ID的比特串映射到q阶正整数群
(3)发送方执行广播加密。使用授权接收者集合S=(ID1,ID2,…,IDn)的公钥对待发送明文数据M进行加密并生成密文C,并通过公共信道广播给 授权接收者,其中每个授权接收者的公钥为其自身的ID;
本步骤包括以下子步骤:
(3-1)发送方确定待发送明文数据的授权接收者集合S,并取得S中所有授权接收者的公钥(即所有授权接收者的身份ID);
(3-2)在群中随机选取两个正整数r1和r2,在对称密钥空间K中随机选取一个密钥x,新建一个一维空数组L;
(3-3)对于i∈[1,n],计算Ii=e(p,H(IDi))r1]]>以及Ci=e(p,H(IDi))r2*]]>Key,并对数组进行赋值使得L[Ii]=Ci;
(3-4)使用对称加密算法SEKey加密明文M,即Cn+1=SEKey(M)
(3-5)最终的密文C=(C0,C′0,L,Cn+1),其中
C0=gr1]]>
C0′=gr2]]>
(4)接收者进行解密。属于授权接收者集合S中的授权接收者在接收到公共信道广播而来的密文C之后使用自己的私钥SKID进行解密;
本步骤包括以下子步骤:
(4-1)将接收而来的密文C解析为(C0,C′0,L,Cn+1)形式;
(4-2)计算索引I′=e(C0,SKID),并利用索引在数组L中定位属于自己的密文部分C′=L[I′];
(4-3)计算对称密钥Key′=C′*e(C′0,SKID)-1;
(4-4)使用对称解密算法恢复明文M=DEkey′(Cn+1)。
未经授权的接收者虽然能从公共信道接收到密文C,但是无法提取出属于自身的密文部分,也不能从其他授权接收者的密文中获取任何信息;同时任意授权接收者也无法获取其他授权接收者的身份信息,以此保证了密文的安全性以及授权接收者的匿名性。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同 替换和改进等,均应包含在本发明的保护范围之内。