CCA安全的SM9匿名广播加密方法

文档序号:32950804发布日期:2023-01-14 13:26阅读:48来源:国知局
CCA安全的SM9匿名广播加密方法
cca安全的sm9匿名广播加密方法
技术领域
1.本发明涉及信息安全技术领域,尤其涉及cca安全的sm9匿名广播加密方法。


背景技术:

2.sm9算法为我国的密码行业标准,也是国家标准和iso/iec标准,包括数字签名算法、密钥交换协议,密钥封装机制和公钥加密算法。sm9属于标识算法,基于椭圆曲线的双线性对实现,可用身份证号、手机号、邮箱地址等唯一能够表示用户身份的字符串作为公钥,用户的私钥则由密钥生成中心(key generation center,kgc)负责计算并通过安全信道发送给用户。sm9算法现已成为物联网安全认证的最佳选择之一,有效克服了物联网中传统密钥分发算法的安全性较弱等问题。
3.随着电子图书、在线音乐、在线电影等数字产品的普及,互联网逐渐由传统点对点的通信方式演变为一对多、多对多的通信方式。安全并高效地分发数字产品是长久以来难以解决的困难问题。为此,人们通常采用加密技术来保证数据的机密性,一种简单的解决方式是多次使用点对点加密实现多用户数据安全共享,然而该做法耗费的计算开销和通信代价较高,难以大规模应用。由fiat和naor提出的广播加密为群组信息安全共享的典型技术,可有效解决此问题。在广播加密系统中,发送者可通过广播信道(通常为不安全信道)将数据安全地分发给一组选定的用户。具体而言,加密者首先选择一组接收者,使用其公钥集合s加密数据,最后通过公开信道发送密文。只有在集合s内的用户才能正确解密获得明文,不在集合s内的用户即使合谋也无法获取明文内容。广播加密现已广泛应用于付费电视、卫星通信、无线传感网等应用中。
4.在一些特殊应用中,接收者的身份信息同样为敏感信息,不允许泄露。例如广播订阅服务,一些敏感广播的订阅者并不希望其他订阅者知道他所订阅的频道。在区块链应用中同样需要保护用户的身份信息。因此,匿名性是广播加密的一个重要安全需求。适应性选择密文攻击(adaptively chosen ciphertext attack,cca)能有效刻画现实应用中的主动攻击,具有主动攻击能力的敌手在广播信道中具有较强的攻击能力,而选择明文安全的广播加密方案不能完全满足实际应用对广播加密安全性的需求。所以,cca安全的方案变得尤为重要。sm9作为我国国家的标准,其在广播加密的研究较少,目前在主流期刊和会议上未见基于sm9的cca安全的匿名广播加密相关研究。


技术实现要素:

5.本发明的目的在于提供cca安全的sm9匿名广播加密方法,以解决现有技术中存在泄漏接收者身份信息同时无法抵抗主动攻击的技术问题。
6.本发明采用的技术方案是:
7.cca安全的sm9匿名广播加密方法,具有三类实体,即密钥生成中心(kgc)、发送者(广播者)和接收者(授权用户),具体的加密方法包括以下步骤:
8.s1、密钥生成中心(kgc)根据安全参数生成系统主公钥和系统主私钥,将系统主公
钥公开给系统中的用户,系统主私钥由密钥生成中心秘密保存;
9.进一步地,s1的具体步骤如下:
10.s1-1,密钥生成中心kgc首先确定一次加密最大接收者个数m,根据安全参数λ选取双线性群bp=(g1,g2,g
t
,e,p),
11.s1-2,随机选取群g1的生成元p1和群g2的生成元p2、r、u和v;对任意i∈1,2,

,m的接收者分别计算群g1中的元素αip1,群g2中的元素p
pub
=α2p2,;
12.s1-3,选择随机数作为系统主私钥,选取三个密码杂凑函数h1、h2和h3,密钥派生函数kdf,共同组合生成系统主公钥mpk并公开;主公钥mpk的表达式如下
[0013][0014]
其中,bp为双线性群;p我循环群g1、g2、g
t
的阶,且为大于2
191
的素数;g1、g2分别表示阶为素数p的加法循环群;g
t
表示阶为素数p的乘法循环群;e表示从g1×
g2到g
t
的双线性映射;α表示系统主私钥;m表示一次加密的最大接收者个数;p1为群g1的生成元;p2、r、u、v分别表示群g2的生成元;表示群g1中的元素;p
pub
为群g2中的元素;h1、h2、h3分别表示密码杂凑函数;kdf表示密钥派生函数;mpk表示系统主公钥。
[0015]
s2、密钥生成中心基于用户的请求利用系统公私钥对生成用户私钥,将用户私钥通过安全信道发送给用户;用户私钥的计算公式如下:
[0016][0017]
其中,id表示已知用户标识;sk
id
表示用户id的用户私钥,属于群g2中的元素;h1表示{0,1}
*
到由密码杂凑函数派生的密码函数;
[0018]
s3、加密者利用公开的系统主公钥和接收者标识集合s=(id1,id2,

,idn)(n≤m)对待加密消息的比特串m∈{0,1}
l
进行加密得到密文,并将密文以广播的方式发送给信道上的所有用户;
[0019]
s3的具体加密步骤如下:
[0020]
s3-1.定义多项式1.定义多项式
[0021]
s3-2.选取随机数r,k,
[0022]
s3-3.计算群g1中的元素c0=p(α)p1,c1=rp(α)p1;
[0023]
s3-4.对任意i=1,2,

,n,计算群g
t
中的元素wi=e(αpi(α)p1,p2)r;
[0024]
s3-5.定义多项式其中bn=1;
[0025]
s3-6.计算k=kdf(c0,k,l),计算计算c3=rp
pub

[0026]
s3-7.计算h=h3(c0,c1,c2,c3,b0,b1,

,bn),计算群g2中的元素c4=r(hr+τu+v),输出密文ct=(τ,c0,c1,c2,c3,c4,b0,b1,

,bn)。
[0027]
其中,m为待加密消息;idi为用户i的标识;s为接收者标识集合;r、k、τ分别表示中的随机数;c0、c1均为临时变量,属于群g1中的元素;wi为临时变量,属于群g
t
中的元素;bi为多项式q(x)的系数,属于有限域f
p
中的元素;k为封装的会话密钥,长度为l的比特串;kdf
为到{0,1}
l
的密钥派生函数;c2为临时变量,c2为长度为l的字符串;c3为临时变量,属于群g2中的元素;h3为到由密码杂凑函数派生的密码函数;c4为临时变量,属于群g2中的元素;ct为封装密文。
[0028]
s4、接收者利用系统主公钥和自己的私钥对密文解密得到明文,具体为:
[0029]
s4-1,解密者接收到密文ct=(τ,c0,c1,c2,c3,c4,b0,b1,

,bn)后,首先计算

=h3(c0,c1,c2,c3,b0,b1,

,bn),并判断等式e(c1,’r+τu+v)=e(c0,c4)是否成立;是则,执行s4-2;否则,输出错误信息;
[0030]
s4-2,利用私钥计算
[0031]
s4-3,计算k

=kdf(c0,k

,l),并输出解密消息m

,解密方法为:判断能否基于三确计算出wi;是则k

=k,k

=k,
[0032]
其中,

为临时变量,属于有限域f
p
中的元素;w

为临时变量,属于群g
t
中的元素;k

为临时变量,属于有限域f
p
中的元素;k

为临时变量,长度为l的比特串;m

为解密后的消息。
[0033]
本发明采用以上技术方案,密钥生成中心(kgc)根据安全参数生成系统主公钥和系统主私钥,将系统主公钥公开给系统中的用户,系统主私钥由密钥生成中心秘密保存;密钥生成中心基于用户的请求,利用系统主公私钥对生成用户私钥,将用户私钥通过安全信道发送给用户;加密者利用公开的系统主公钥和接收者标识集合对消息加密,并将产生的密文以广播的方式发送给用户;接收者利用系统主公钥和自己的私钥对密文解密,得到明文。
[0034]
本发明具有如下有益效果:(1)基于我国自研的sm9,保证信息安全自主可控。(2)本发明利用多项式技术可实现一次加密的密文被多个接收者解密。与多次使用sm9加密算法实现一对多的通信相比,效率更高,更适用于大数据、云计算、物联网等多用户场景下一对多通信的应用场景;(3)本发明安全性更强,能够抵抗适应性选择密文攻击;(4)实现数据高效传输的同时保证了数据机密性和接收者匿名性,任何授权用户和非授权用户都无法从密文中获取其他接收者的信息。
[0035]
综上,本发明所实现的功能重点为匿名性,能满足匿名性的要求,解密过程中无需输入所有接收者的标识信息idi,加密者知道所有接收者的标识信息,匿名性体现在仅有加密者知晓所有接收者信息,而授权用户和非授权用户均无法获取接收者信息,与现有算法的构造方式完全不同。
附图说明
[0036]
以下结合附图和具体实施方式对本发明做进一步详细说明;
[0037]
图1为了cca安全的sm9匿名广播加密方法的流程图。
具体实施方式
[0038]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图对本技术实施例中的技术方案进行清楚、完整地描述。
[0039]
本发明公开了cca安全的sm9匿名广播加密方法,包括密钥生成中心(kgc)根据安全参数生成系统主公钥和系统主私钥,将系统主公钥公开给系统中的用户,系统主私钥由密钥生成中心秘密保存;密钥生成中心基于用户的请求,利用系统主公私钥对生成用户私钥,将用户私钥通过安全信道发送给用户;加密者利用公开的系统主公钥和接收者标识集合对消息加密,并将产生的密文以广播的方式发送给用户;接收者利用系统主公钥和自己的私钥对密文解密,得到明文。
[0040]
cca安全的sm9匿名广播加密方法,具有三类实体,即密钥生成中心(kgc)、发送者(广播者)和接收者(授权用户),具体的加密方法包括以下步骤:
[0041]
s1、密钥生成中心(kgc)根据安全参数生成系统主公钥和系统主私钥,将系统主公钥公开给系统中的用户,系统主私钥由密钥生成中心秘密保存;
[0042]
进一步地,s1的具体步骤如下:
[0043]
s1-1,密钥生成中心kgc首先确定一次加密最大接收者个数m,根据安全参数λ选取双线性群bp=(g1,g2,g
t
,e,p),
[0044]
s1-2,随机选取群g1的生成元p1和群g2的生成元p2、r、u和v;对任意i∈1,2,

,m的接收者分别计算群g1中的元素αip1,群g2中的元素p
pub
=α2p2,;
[0045]
s1-3,选择随机数作为系统主私钥,选取三个密码杂凑函数h1、h2和h3,密钥派生函数kdf,共同组合生成系统主公钥mpk并公开;主公钥mpk的表达式如下
[0046][0047]
其中,bp为双线性群;p我循环群g1、g2、g
t
的阶,且为大于2
191
的素数;g1、g2分别表示阶为素数p的加法循环群;g
t
表示阶为素数p的乘法循环群;e表示从g1×
g2到g
t
的双线性映射;α表示系统主私钥;m表示一次加密的最大接收者个数;p1为群g1的生成元;p2、r、u、v分别表示群g2的生成元;表示群g1中的元素;p
pub
为群g2中的元素;h1、h2、h3分别表示密码杂凑函数;kdf表示密钥派生函数;mpk表示系统主公钥。
[0048]
s2、密钥生成中心基于用户的请求利用系统公私钥对生成用户私钥,将用户私钥通过安全信道发送给用户;用户私钥的计算公式如下:
[0049][0050]
其中,id表示已知用户标识;sk
id
表示用户id的用户私钥,属于群g2中的元素;h1表示{0,1}
*
到由密码杂凑函数派生的密码函数;
[0051]
s3、加密者利用公开的系统主公钥和接收者标识集合s=(id1,id2,

,idn)(n≤m)对待加密消息的比特串m∈{0,1}
l
进行加密得到密文,并将密文以广播的方式发送给信道上的所有用户;
[0052]
s3的具体加密步骤如下:
[0053]
s3-1.定义多项式1.定义多项式
[0054]
s3-2.选取随机数r,k,
[0055]
s3-3.计算群g1中的元素c0=p(α)p1,c1=rp(α)p1;其中,由于αip1是系统公开参
数,因此c0,c1是可计算的。
[0056]
s3-4.对任意i=1,2,

,n,计算群g
t
中的元素wi=e(αpi(α)p1,p2)r;由于αpi(α)p1是可计算的,因此wi是可计算的。
[0057]
s3-5.定义多项式其中bn=1;
[0058]
s3-6.计算k=kdf(c0,k,l),计算计算c3=rp
pub

[0059]
s3-7.计算h=h3(c0,c1,c2,c3,b0,b1,

,bn),计算群g2中的元素c4=r(hr+τu+v),输出密文ct=(τ,c0,c1,c2,c3,c4,b0,b1,

,bn)。
[0060]
其中,m为待加密消息;idi为用户i的标识;s为接收者标识集合;r、k、τ分别表示中的随机数;c0、c1均为临时变量,属于群g1中的元素;wi为临时变量,属于群g
t
中的元素;bi为多项式q(x)的系数,属于有限域f
p
中的元素;k为封装的会话密钥,长度为l的比特串;kdf为到{0,1}
l
的密钥派生函数;c2为临时变量,c2为长度为l的字符串;c3为临时变量,属于群g2中的元素;h3为到由密码杂凑函数派生的密码函数;c4为临时变量,属于群g2中的元素;ct为封装密文。
[0061]
s4、接收者利用系统主公钥和自己的私钥对密文解密得到明文,具体为:
[0062]
s4-1,解密者接收到密文ct=(τ,c0,c1,c2,c3,c4,b0,b1,

,bn)后,首先计算h

=h3(c0,c1,c2,c3,b0,b1,

,bn),并判断等式e(c1,h

r+τu+v)=e(c0,c4)是否成立;是则,执行s4-2;否则,输出错误信息;
[0063]
s4-2,利用私钥计算
[0064]
s4-3,计算k

=kdf(c0,k

,l),并输出解密消息m

,解密方法为:判断能否基于正确计算出wi;是则k

=k,k

=k,
[0065]
其中,h

为临时变量,属于有限域f
p
中的元素;w

为临时变量,属于群g
t
中的元素;k

为临时变量,属于有限域f
p
中的元素;k

为临时变量,长度为l的比特串;m

为解密后的消息。
[0066]
本发明以sm9标识加密算法为基础,主要对加解密算法进行修改,使其满足一次加密产生的密文能够同时被多用户解密。本发明包括三类实体,即密钥生成中心(kgc),发送者(广播者)和接收者(授权用户)。密钥生成中心生成系统主公钥、系统主私钥和用户私钥。在具体的广播加密过程中,发送者为所有目标接收者加密广播消息,并通过公开信道广播,此时监听该信道的授权用户和非授权用户都可以获取该广播密文。但是,只有授权用户可利用自己的私钥解密密文获取消息,非授权用户使用自己的私钥解密将获得一个无意义的字符串。此外,任何用户无法从密文中获得其他接收者的身份信息,有效保护了接收者的身份信息。就计算效率而言,本发明在解密阶段有明显优势,适用于云计算、物联网等场景中。
[0067]
本发明采用以上技术方案,具有如下有益效果:(1)基于我国自研的sm9,保证信息安全自主可控。(2)本发明利用多项式技术可实现一次加密的密文被多个接收者解密。与多次使用sm9加密算法实现一对多的通信相比,效率更高,更适用于大数据、云计算、物联网等多用户场景下一对多通信的应用场景;(3)本发明安全性更强,能够抵抗适应性选择密文攻
击;(4)实现数据高效传输的同时保证了数据机密性和接收者匿名性,任何授权用户和非授权用户都无法从密文中获取其他接收者的信息。
[0068]
综上,本发明所实现的功能重点为匿名性,能满足匿名性的要求,在算法的加密步骤仅需输入自己的标识信息,不需要输入所有接收者的标识信息,与现有算法的构造方式完全不同。
[0069]
显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1