智慧城市中隐私保护性广播加密算法*
2022-06-23牛淑芬方丽芝王彩芬杜小妮
牛淑芬,方丽芝,宋 蜜,王彩芬,杜小妮
(1.西北师范大学计算机科学与工程学院,甘肃 兰州 730070;2.深圳技术大学大数据与互联网学院,广东 深圳 518118;3.西北师范大学数学与统计学院,甘肃 兰州 730070)
1 引言
随着我国城市人口的持续增长,城市化治理出现了一系列问题,政府部门有必要提供一些公共服务来提高市民的生活质量。有效的安全监控网络能够确保水电、交通、医疗和教育等数据的安全,政府可以通过公民参与式管理,推动可持续经济增长和高质量的生活。但是,传统的技术和管理方法很难有效解决这些问题。因此,利用新兴的信息通信技术来解决城市化管理问题是非常必要的。在这样的背景中,一些学者提出了智慧城市的概念[1 - 3]。文献[4]分析了物联网应用于智慧城市中智能家居、车联网、智能电网和公共基础设施场景下存在的不足。文献[5]利用智慧城市中的智能方法解决了互联网环境下车辆的管理控制。智慧城市中最核心的是用户数据,这些数据大部分是敏感的,例如社交账号和密码。敏感数据在传输的过程中必须要保证其安全性和隐私性。如何有效地保护数据的机密性,已经成为智慧城市中的一个重要问题。
Fiat等[6]在1993年提出了广播加密技术,允许中心广播站点向任意一组接收方广播密文,同时最小化与密钥管理相关的传输。文献[6-12]运用广播加密技术在多个接收者的场景下保护了数据安全性和隐私性。Naor等[13]在2001年提出一种应用于无状态接收者的“子集覆盖”框架,该框架基于对称密钥广播加密。Naor等[14]在2000年提出了基于公钥的广播加密算法,采用门限秘密共享方法解决了基于对称密钥广播加密的安全问题,克服了只有可信中心才可以广播密文的缺点。广播加密技术允许一个数据拥有者将数据共享给包含多个用户的集合S,只有集合S内的授权用户才可以访问共享数据。例如,智能电力系统将密钥分发给授权用户,用户通过密钥享受电力服务,反之,若用户没有收到密钥,则不能享受电力服务。
在智慧城市中,“智能”设备应该在一定范围内自动地处理数据访问控制,即根据数据访问控制策略决定用户是否具有访问控制权限。文献[15]提出一种支持用户撤销的属性认证密钥协商协议算法,该算法研究如何对用户进行直接撤销,将用户标识嵌入在私钥中并在通信消息密文中嵌入用户撤销列表,若用户被撤销,则无法认证。文献[16]在合数阶双线性群上提出了完全细粒度属性撤销模型,在密文中添加多个属性用户撤销列表来撤销任意数量的属性,但密文长度与用户数量线性相关,造成智能电网中大数量级的数据文件加密时间过长,不适用于智能电网云存储平台。文献[17]提出一种细粒度权限撤销的云存储模型,数据属主可以是属性分发机构,负责产生属性集合和加入属性撤销参数,但在加密之前要知道用户集合,不适合智能电网中大量的用户属性变化,可能造成用户信息泄露。Lai等[18]在2016年提出了匿名身份的广播加密,发送方可有效地向大量接收者广播密文。文献[19]提出了可撤销身份的广播加密算法,重点突出在数据访问控制下允许第三方撤销用户身份。这2种算法保护了接收者之间的身份隐私,但传输量和计算量较大,会造成数据文件加密和解密时间过长。针对这些问题,本文从基于身份的广播加密生成密文中撤销指定目标集合的接收者,通过对已撤销用户的身份进行加密,未撤销的用户使用私钥对密文解密,保护了接收者之间的匿名性和隐私性。本文主要创新点包含以下2个方面:
(1) 使用广播加密技术实现对加密数据的有效共享,且保证了其加密和共享效率。利用拉格朗日插值实现用户身份的匿名和数据的完全隐私保护,任何接收者在解密时都无法获取其他用户的身份信息。
(2) 算法结合智慧城市中智能电网应用场景进行数据共享。针对用户权限可能会发生改变,用户离开系统会产生数据更新等问题,通过直接撤销实现对智能电网中用户身份的灵活管理。
在Linux Ubuntu-10.10操作系统下利用PBC 和C语言进行编程,对本文算法和现有的部分广播加密算法进行对比实验。实验结果表明,本文算法的效率和性能优于其它算法。在随机预言模型下运用BDH困难问题证明了本文算法的安全性。
2 系统模型与安全模型
本节给出本文算法的系统模型和安全模型。图1为智慧城市的主要应用领域。
Figure 1 Application domains in a smart city图1 智慧城市应用领域
2.1 系统模型
智慧城市中基于身份的隐私保护性广播加密算法适用于一对多的密文传播场景。而智能电网则是智慧城市的应用领域之一,是电网技术发展的有利趋势。图2给出了智能电网的典型应用场景。数据属主智能供电系统将加密的数据文件广播给用户,存储在智能电表中。密钥生成中心生成用户私钥。接收到密钥的用户具有使用智能电力服务的权限,且可以访问加密数据。当用户要离开当前居住地或者使用其他电力系统需要撤销身份时,智能供电系统可以为用户提供管理身份权限的服务,通过智能方式撤销和更新用户信息,被撤销授权的用户无法再解密密文。
智能供电系统为确保客户及其数据隐私,智能电表与智能供电系统之间的数据会被加密。智能供电系统将加密的原始密文传输给云服务器,然后云服务器将原始密文转换为可以用未撤销用户私钥解密的密文。本文算法包括智能供电系统、密钥生成中心、云服务器、智能设备(智能电表)和数据用户5类实体。
2.2 安全模型
参照文献[20]中基于匿名身份的广播加密算法的思想,本文定义了4种安全模型:基于身份的选择明文攻击不可区分性IND-ID-CPA(INDistinguishability under IDentity-based Chosen Plaintext Attack security)安全;基于匿名身份的选择明文攻击不可区分性ANON-ID-CPA(ANONymous IDentity-based Chosen Plaintext Attack security)安全;基于可撤销身份的选择明文攻击不可区分性IND-rID-CPA(INDistinguishability under revocable IDentity-based Chosen Plaintext Attack security)安全;选择性匿名可撤销身份的选择明文攻击性ANON-rID-CPA(selective revocable ANONymous IDentity-based Chosen Plaintext Attack security)安全,以上4种安全模型通过概率多项式时间内的攻击者A和挑战者C之间的游戏定义。
游戏1IND-ID-CPA安全。
在没有有效私钥的情形下,密文中消息与相同长度的随机字符串无法区分。该安全模型定义如下:
(1)系统建立:挑战者C建立算法,输入安全参数λ,输出系统公钥mpk和主密钥msk。
(2)阶段1:攻击者A可对任何身份发起私钥询问。收到身份为IDi的私钥询问时,挑战者C运行密钥生成算法得到私钥dIDi。
(3)阶段2:受制于上述挑战,攻击者A发起适应性私钥询问。
(4)挑战:对任何的IDi∈S*,攻击者A没有发起私钥询问的限制下,输出不同长度的消息M0和M1,以及挑战身份集合S*=(ID1,ID2,…,IDn),挑战者C随机选取b∈{0,1},在S*下为Mb生成挑战密文CT*,并将其返回给A。
游戏2ANON-ID-CPA安全。
系统建立、阶段1和阶段2与游戏1的一致,挑战和猜测步骤如下所示:
(1) 挑战:攻击者A对任意一个身份IDi∈S0△S1=(S0S1)∪(S1S0)输出M*、身份集合S0=(ID0,1,…,ID0,n)和S1=(ID1,1,…,ID1,n)。挑战者C随机选取b∈{0,1},在Sb下对消息M*生成挑战密文CT*。
游戏3IND-rID-CPA安全。
系统建立、阶段1和阶段2与游戏1的一致,挑战和猜测步骤如下所示:
(1) 挑战:对任何IDi∈S*R*,攻击者A没有发起私钥询问的限制下,输出消息M0和M1、挑战身份集合S*=(ID1,ID2,…,IDn)和撤销身份集合R*={IDl1,IDl2,…,IDlt}。挑战者C在S*和R*下为消息Mb生成挑战密文CT′*并将其返回给A。
游戏4选择性ANON-rID-CPA安全。
系统建立和阶段1与游戏1的一致,其他步骤如下所示:
(1) 初始化:输出不同长度的撤销身份集合R0=(ID0,1,…,ID0,t)和R1=(ID1,1,…,ID1,t)。
(2) 挑战:输出消息M*和广播身份集合S*=(ID1,ID2,…,IDn)。挑战者C随机选取b∈{0,1},在S*和Rb下为消息Rb生成挑战密文CT′*。
3 本文具体算法
智慧城市中基于身份的隐私保护性广播加密算法包括以下5个阶段:系统建立阶段、密钥生成阶段、加密阶段、撤销阶段和解密阶段。
(1) 系统建立阶段。该阶段由密钥生成中心执行,输入安全参数λ,具体步骤如下所示:
①随机选取双线性映射群BG=(G,GT,e,p),其中,e:G×G→GT,P∈G是阶为p的生成元。选取s∈Zp,计算公共参数Ppub=sP。
②定义3个抗碰撞的哈希函数:
H:{0,1}*→Zp
H1:{0,1}*→G
H2:GT×{0,1}*→G
③输出系统公钥mpk和主密钥msk:
mpk=(BG,P,Ppub,H,H1,H2)
msk=s
(3) 加密阶段。该阶段由智能供电系统执行。选定一组特定的电力用户身份集合S=(ID1,ID2,…,IDn),公钥mpk和共享给用户的明文M∈G,加密M得到密文CT,存储在智能电表中。加密阶段模型如图3所示。
Figure 3 Data encrypt图3 数据加密
加密阶段的具体步骤如下所示:
②随机选取r1∈Zp和k1∈G作为秘密值,计算Ai=k1+H2(e(H1(IDi),Ppub)r1,IDi),i∈[1,n]。
③计算C0=k1+M,C1=r1P。
⑤生成密文CT=(C0,C1,ui),i∈[1,n]。
(4) 撤销阶段。该阶段由云服务器执行。云服务器收到密文后根据撤销后的身份集合S′加密数据得到撤销后的密文CT′。设用户A为撤销后的用户,其他用户可以收到CT′,而用户A则无法接收到。在此过程中,算法利用拉格朗日插值隐藏用户身份和数据信息,云服务器无法从密文中获取任何用户身份和数据信息。撤销阶段模型如图4所示。该阶段主要步骤如下所示:
①给定系统公钥mpk、撤销身份集合R(|R|=t,t≤n)和密文CT=(R,C0,C1,ui),i∈[1,n]。
Figure 4 ID revoke图4 用户身份撤销
恢复消息M=C′0-k′1-k′2。若存在身份满足IDi∈S,IDi∉R,则k′1=k1,k′2=k2。本阶段通过计算获得k′1和k′2,解密获得正确的明文。
Figure 5 Data decrypt图5 数据解密
在本文构造的算法定义中,撤销编号t(t 本节基于BDH困难问题证明了本文提出的算法在安全模型定义中达到的安全目标和随机预言模型下的安全性。 定理1定义2个抗碰撞的哈希函数H和H2,若BDH困难问题成立,本文提出的基于身份的隐私保护性广播加密算法是IND-ID-CPA安全的。A以ε的优势攻击算法,模拟者B以ε′≥ε·(e·n·qE·qH2)-1的优势解决BDH困难问题。其中,n为广播身份的数量,qE是对私钥的询问数量,qH2是对哈希函数H2的询问数量。 (1) 系统建立。模拟者B令Ppub=aP并构建mpk=(P,Ppub,H1,H2)。 ②H2-询问:B创建L3(Yi,IDi,γi)并初始化为空。若(Yi,IDi)在列表L3中,则返回H2(Yi,IDi)=γi。否则,选取H2(Yi,IDi)=γi,将(Yi,IDi,γi)添加到L3,使用γi响应A。 (2) 阶段1。B从L中获得ci和ti。若ci=0,返回⊥,ci=1,则dIDi=sH1(IDi)=atiP=tiPpub。 (3) 挑战:对任意IDi∈S*没有发起私钥询问,A输出M0、M1和S*=(ID1,ID2,…,IDn)。模拟者B随机选取b∈{0,1}并执行如下操作: □ 定理2定义哈希函数H和H2,若BDH困难问题成立,本文提出的基于身份的隐私保护性广播加密算法是ANON-ID-CPA安全的。若存在ANON-ID-CPA攻击者A以ε的优势攻击提出的算法,存在模拟者B以ε′≥ε·(e·n·qE·qH2)-1的优势解决BDH困难问题,其中qH2是询问H2的数量。 证明H-询问,H2-询问和阶段1与定理1中一致。游戏2中,B与A的互动过程如下所示: (1) 系统建立:B构建mpk=(P,Ppub,H1)。 H2-询问:B创建L2(Xi,IDi,λi),若(Xi,IDi)询问在L2中,则H2(Xi,IDi)=λi;否则选取λi∈G,将(Xi,IDi,λi)添加到L1中,用λi响应敌手A。 (2) 挑战:A输出M*、S0=(ID0,1,…,ID0,n)和S1=(ID1,1,…,ID1,n)。B执行如下步骤: □ 定理3定义2个抗碰撞的哈希函数H和H2,若BDH困难问题成立,提出的基于身份的隐私保护性广播加密算法是IND-rID-CPA安全的。若有一个IND-rID-CPA的攻击者A以ε的优势攻破算法,则B以ε′≥ε·(e·n·qE·qH2)-1的优势解决BDH困难问题。 证明H-询问与阶段1与定理1中的一致,H2-询问与定理2中的一致。在游戏3中,模拟者B与攻击者A的互动过程如下所示: (1) 系统建立:构建mpk=(P,Ppub,H1,H2)。 (2) 挑战:A对任意IDi∈S*R*没有发起私钥询问,输出Μ0、Μ1、集合S*=(ID1,…,IDn)和R*=(IDl1,…,IDlt)。B执行以下操作: □ 证明在游戏4中,模拟者B与攻击者A的互动过程如下所示: (1) 初始化:攻击者A输出不同的目标撤销集合R0=(ID0,1,…,ID0,t)和R1=(ID1,1,…,ID1,t)。 (2) 系统建立:构建mpk=(P,Ppub,H2)。随机选取b∈{0,1}和身份ID*∈RbR1-b。 ①H-询问:B创建L并初始化为空。若IDi询问已存在于L中,返回H(IDi)=hi,否则选取ki∈Zp。如果IDi=ID*,令hi=kibP。否则,hi=kiP。 ②H1-询问:若(Ti,IDi)出现在L1(Ti,IDi,ηi)中,则H1(Ti,IDi)=ηi,将(Ti,IDi)添加到L1中,用ηi响应攻击者A。 (3) 阶段1:A发起私钥询问;B从L中获得ki,计算dIDi=sH1(IDi)=akiP=kiPpub。 (4) 挑战:A输出M*和S*=(ID1,…,IDn);B执行以下步骤: □ 将本文提出的算法与近几年广播加密文献[8-10,12,20]中的算法进行功能性对比,对比结果如表1所示。 Table 1 Comparison of functional properties 由表1可以看出,文献[10,20]算法与本文算法一致,皆为基于身份的加密;本文算法利用基于身份的广播加密,结合智慧城市中用户权限的变化,运用用户撤销的特性灵活管理用户身份,而其它对比算法无法达到用户撤销功能;本文算法还利用拉格朗日插值将用户身份信息嵌入密文中,实现了用户身份的匿名性,保护了接收者之间的身份隐私,文献[8,10]算法不具备保护用户身份隐私的功能。通过与表1中其它广播加密算法的对比表明,本文算法在功能特性上具有一定的优势。 本节从理论角度对比本文算法、文献[18,19]算法在计算量和通信量上的优劣。 (1) 计算量比较。 计算量对比结果如表2所示。在表2中,Tp表示双线性配对运算时间,Te表示指数运算时间,Tm表示乘法运算时间,Th表示哈希运算时间,TInv表示乘法逆元运算时间。常用密码算法操作计算的时间顺序为Tp>Te>Tm>Th>TInv,且Tp远大于其它时间。n表示系统中用户身份的数量。 Table 2 Computation comparison (2) 通信量比较。 通信量比较结果如表3所示。在表3中,分别用|G|、|GT|和|Zp|表示G、GT和Zp中元素的长度。 由表3可以看出,在数据加密阶段,各个算法通信量由大到小依次为文献[19]算法、文献[18]算法和本文算法;在用户撤销阶段,各个算法通信量由大到小依次为文献[18]算法、文献[19]算法和本文算法;在解密阶段,各个算法通信量由大到小依次为文献[18]算法、文献[19]算法和本文算法。 Table 3 Storage comparison 数值模拟实验是在Linux操作系统下利用双线性对包(pairing-based cryptography library)[21]实现的,双线性对包参数类型为Type-A。基于C语言进行编程,在2.60 GHz CPU,8 GB RAM PC机上运行。 实验对文献[18]算法、文献[19]算法和本文算法分别在数据加密算法、用户撤销算法和数据解密算法上的时间开销进行了对比分析。文献[18]算法、文献[19]算法和本文算法用户身份权限会发生变化,将用户身份的个数分别设置为10,20,30,40和50。实验采用50次运行结果的平均值作为实验结果,如图6所示。 Figure 6 Relationships between time cost of algorithms and number of user identities 图6 计算时间与用户身份数量的关系 图6a表示各个算法数据加密算法的运行时间和系统中用户身份数量的关系。由表2可知,在数据加密阶段,文献[18]算法有2个配对运算,文献[19]算法有2个配对运算,本文算法有1个配对运算。由常用密码算法计算时间可知,配对运算时间远远大于其他运算时间,故本文算法加密时间小于文献[18]算法和文献[19]算法加密时间,运行效率更高。 图6b表示各个算法用户撤销算法的运行时间和系统中用户身份数量的关系。由表2可知,在用户撤销阶段,文献[18]算法没有配对运算,文献[19]算法有1个配对运算,本文算法没有配对运算,故本文算法在用户撤销阶段的计算量小于文献[18]算法和文献[19]算法。本文算法在用户撤销算法的计算量比文献[18]算法计算量少Th-TInv,比文献[19]算法计算量少2Th+Tp+Te-TInv。 图6c表示各个算法数据解密算法的运行时间和系统中用户身份数量的关系。由表2可知,在数据解密阶段,文献[18]算法有2个配对运算,文献[19]算法有3个配对运算,本文算法有1个配对运算,故本文算法在数据解密阶段的计算量小于文献[18]算法和文献[19]算法的。总之,本文算法在运行效率和通信效率上均具有较明显的优势,提高了系统的性能。 本文提出一个隐私保护性广播加密算法,利用广播加密技术为多个数据用户执行授权,完成加密数据的有效广播。并在智能电网中通过用户撤销对用户身份灵活管理,实现接收者之间的匿名性。给出了详细的正确性证明、安全性证明和性能分析。数值实验结果表明,本文提出的算法具有较高的效率。在未来的工作中考虑将其应用于基于生物特征的广播代理重加密场景中,以获得更实用的价值。4 安全性证明
5 效率及性能分析
5.1 功能特性比较
5.2 理论分析与比较
5.3 数值实验与比较
6 结束语