【技术实现步骤摘要】
一种基于国密SM9的IND
‑
sID
‑
CCA2安全标识广播加密方法
[0001]本专利技术涉及密码学
,尤其涉及一种基于国密SM9的IND
‑
sID
‑
CCA2安全标识广播加密方法。
技术介绍
[0002]在信息产业中,数据的安全与隐私的保护问题一直是人们关注的重点,而密码技术的运用是解决这一问题的重要手段之一,以保证数据只能由合法的接收者获取。标识密码(Identity
‑
based Cryptosystem),是密码学中的一个重要研究领域,此概念在1984年由Shamir首次提出。标识密码以接收者的唯一信息作为公钥,取代传统公钥密码中证书的功能。
[0003]考虑到信息安全问题,为实现密码技术的自主可控,我国在2008年自主设计了标识密码SM9,2016年其成为我国密码行业标准,并在2020年正式成为我国的国家标准。之后,随着时间的推移,SM9各部分也陆续成为国际标准。在2021年,SM9全体系纳入ISO/IEC标准。因此基于国密SM9进行各种密码方案的设计是非常有必要的。
[0004]广播加密(Broadcast Encryption,BE)的概念在1993年由Fait和Naor提出,并给出了具体方案。广播加密可以针对某一组确定的接收者对数据进行加密并广播到公共信道,只有在加密阶段指定授权的接收者可以正确解密。广播加密基本满足保密性、正确性、抗合谋攻击的特性。由于广播加密具有一对多通信的特点,现实世 ...
【技术保护点】
【技术特征摘要】
1.一种基于国密SM9的IND
‑
sID
‑
CCA2安全标识广播加密方法,其特征在于,包括:利用系统安全参数λ和最大广播接收者数目m,生成主公钥mpk和主私钥msk;基于主私钥msk和接收者标识ID,生成接收者标识ID所对应的接收者私钥sk
ID
,并将所述私钥sk
ID
发送给对应的接收者;根据主公钥mpk、明文消息M和接收者标识ID的集合S,生成会话密钥K和密文CT;利用接收者标识集合S、主公钥mpk、密文CT、标识ID以及对应的接收者私钥sk
ID
,生成会话密钥K和明文数据M'。2.如权利要求1所述的基于国密SM9的IND
‑
sID
‑
CCA2安全标识广播加密方法,其特征在于:所述主公钥mpk和主私钥msk的生成包括,设置安全参数λ和最大广播接收者数目m,生成一个双线性群BP=(N,G1,G2,G
T
,e);其中,BP表示双线性群,N表示循环群G1,G2,G
T
的阶,且是大于2
191
的素数,G1表示阶为素数N的加法循环群,G2表示阶为素数N的加法循环群,G
T
表示阶为素数N的乘法循环群,e表示从G1×
G2到G
T
的双线性映射。3.如权利要求2所述的基于国密SM9的IND
‑
sID
‑
CCA2安全标识广播加密方法,其特征在于:所述主公钥mpk和主私钥msk的生成还包括,任选两个生成元P1、P2,随机数α,两个密码函数和用一个字节表示的加密私钥生成函数标识符hid;设封装会话密钥的长度为klen,选择密钥派生函数KDF:{0,1}
*
→
klen;基于生成元P1、P2,随机数α,从G1×
G2到G
T
的双线性映射e以及最大广播接收者数目m,计算得到u、P
pub
和g,u=α2P2P
pub
={αP1,α2P1,α3P1,
…
,α
m+1
P1}g=e(P1,P2)
α
其中,u表示群G2中的一个元素,α表示[1,N
‑
1]中的一个随机数,P1表示群G1的生成元,P1∈G1,P2表示群G2的生成元,P2∈G2,P
pub
表示群G1中一些元素的集合,g表示群G
T
中的一个元素,e表示从G1×
G2到G
T
的双线性映射;主私钥msk包括,msk=(α,P2)其中,msk表示主私钥,α表示[1,N
‑
1]中的一个随机数,P2表示群G2的生成元,P2∈G2;主公钥mpk包括,mpk=(u,g,P1,P
pub
,H1,H2,hid,KDF)其中,mpk表示主公钥,u表示群G2中的一个元素,g表示群G
T
中的一个元素,P1表示群G1的生成元,P1∈G1,P
pub
表示群G1中一些元素的集合,表示由密码杂凑函数派生的密码函数,输入一个比特串,输出一个[1,N
‑
1]中的整数,表示由密码杂凑函数派生的密码函数,输入一个比特串,输出一个[1,N
‑
1]中的整数,hid表示用一个字节表示的加密私钥生成函数识别符,klen表示会话密钥的长度,KDF:{0,1}
*
→
klen表示密钥派生函数,输入一个比特串,输出一个klen长的会话密钥。4.如权利要求3所述的基于国密SM9的IND
‑
sID
‑
CCA2安全标识广播加密方法,其特征在
于:所述接收者私钥sk
ID
的生成包括,利用msk和接收者的标识ID,密钥生成中心KGC在有限域F
N
上计算临时变量t1包括,t1=H1(ID||hid,N)+α其中,t1表示临时变量,H1表示由密码杂凑函数派生的密码函数,输入一个比特串,输出一个[1,N<...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。