1. 引言
在经济全球化的今天,节能环保、低碳持久的经济战略使得智能电网概念应运而生。但是与此同时,智能电网也面临着新的风险,尤其是用户使用时产生的安全与隐私问题。在智能电网中,由于用户的用电数据是由智能电表自动收集并将具体用电信息反馈至服务提供商,恶意攻击者可以从智能电表收集到的大量用电数据中推测出该用户的日常生活规律。例如:不同的家用电器在不同时间的用电量就能够较为准确的反映出用户的行为信息。
针对严重的用户隐私泄露问题,学者们提出了不同的方案进行保护。文献[1] 是从智能电表的安全性着手考虑,阐述了如何在第三方托管协议的协助下成功设计出匿名电表的身份标识,直接从数据出口智能电表处实现在发送用户的实时用电量情况下的匿名性。文献[2] -[4] 分别根据同态加密技术的特性、语义支持的互联网技术、可信平台技术设计了极为有效的信息聚合方法,通过用户隐私感知架构以及规模化、灵活化的智能电表配置、实时准确的通信框架,采用多种技术保护智能电网中的用户隐私问题。文献[5] [6] 主要研究智能电表的硬件安全,根据智能电表的硬件特点制定相关的适用策略,从硬件的角度实现用户隐私保护。文献[7] 和文献[8] 都是从用户的行为进行考虑。文献[7] 提出的方案中运用了数论的思想,以零知识、承诺的概念为突破口,证明了一个既能依据动态的计价标准进行缴费又能保证用户的用电情况不被泄露的方法,这样用户在缴费的过程中可以不必担心隐私的泄露,安全进行缴费活动。文献[8] 是从恶意用户的角度观察问题,针对恶意的用户进行不正当用电行为(窃电)情况,使用基于线性系统方程思想的检测方案,该方法能够在正确检查用户是否窃电的前提下,保证用户的用电数据信息不会被泄露,达到用户隐私保护的目的。
文献[9] 使用群签名和同态加密算法实现用户计费问题。由可信第三方负责分发用户以及服务提供商密钥。用户计算电费总和,通过服务提供商的公钥进行同态加密,再用私钥对同态加密结果进行群签名。服务提供商将用户发送过来的电费数额与计算得到的电费数额进行比较,如果不一致,由可信第三方解决纠纷。该方案中主要存在三个问题:首先可信第三方的权利过大,由可信第三方规定群中用户,当它使某一用户加入特定的群后,将通知服务提供商并发送用户相应的密钥。如果可信第三方中出现恶意攻击者,由于可信第三方熟知用户的密钥,其恶意攻击者便可以伪造用户的消息进行签名。其次,群签名的实现需要一个群管理者,恶意的群管理者的陷门信息将会揭露群中具体签名人员的身份,匿名不够彻底。最后,群签名的过程主要有初始化过程、群成员加入过程、签名过程、验证过程以及打开过程,在签名过程中还使用了同态加密技术,而同态加密有大量的计算开销,整个方案的实施代价较高。
本文通过研究智能电网中造成用户隐私泄露的途径,分析得到环签名的无条件匿名性以及不可伪造性在智能电表传输信息过程中能有效保护用户的具体用电数据,很好地保护用户隐私。同时,为了削弱可信第三方的权利,无证书密码系统中的可信第三方不直接生成用户的私钥,只发送部分私钥,用户可以根据部分私钥计算自己的最终私钥。基于这样的思想,本论文提出结合环签名以及无证书的签名技术、在智能电网中完成正确缴费的同时保护用户隐私安全的方案。
2. 方案设计
该方案主要包括4个实体:智能电表、用户、可信第三方(密钥产生中心KGC)以及服务供应商。KGC是一个既被服务供应商又被用户信任的机构,负责密钥的分发并对用户身份进行管理。当缴费过程中出现用户计算费用与服务提供商计算费用不一致时,由KGC解决冲突。智能电表将用户的用电量定时发给用户以及服务供应商。服务供应商从智能电表中收集用电数据,向用户收取相应的费用。用户从智能电表中得到数据后计算费用并向服务供应商缴纳。
2.1. 概述
该方案主要包括以下过程,如图1所示。
该方案包括以下算法:
1) Setup:KGC建立系统。根据用户的地理位置确定用户所在的群组以及用户对应的服务提供商。
2) Exract:KGC产生并分发用户的tag (由KGC加密并且签名的用户id),用户的部分私钥,服务供应商的密钥。
3) Protocol:
a) 智能电表按照一定的时间间隔周期性地将用电数据发送给用户,用户通过服务提供商的计费价目表进行费用计算,同时用户自己选择一个秘密值,和从KGC中得到的部分私钥计算得到属于自己的私钥,将计算出的电费和从KGC得到的tag一起用KGC的公钥进行加密并进行无证书签名,该签名与计算费用再由群公钥进行加密,然后进行环签名。将该结果发送至智能电表。
b) 智能电表收到用户发来的信息后,将该结果与用户使用电量和环信息发送至服务供应商。首先服务提供商验证签名的有效性,通过智能电表发送的用电数据计算费用,对比与私钥解密出来的用户提交的费用是否一致。如果一致,完成本次缴费,否则,由KGC解决不一致问题。
c) 当用户缴纳费用与服务提供商计算费用不一致时,服务提供商将费用以及环签名结果发送至KGC,KGC得到信息后,对比计算费用,找到计算错误的用户tag,再通过解密得到用户id。KGC根据id信息通知该用户重新进行缴费工作。
2.2. 匿名缴费算法
在文献[10] -[13] 中主要介绍环签名的思想并且分析环签名的特性;文献[14] -[16] 主要介绍无证书签名的基本思想及其特点。本文提出的方案主要结合环签名方案[11] 以及无证书的签名方案[17] 进行设计,具体实现如下:
1) Setup:加法群
和乘法群为
的阶均为素数
,
是
的生成元,双线性对为e:
,
,定义哈希函数如下:


Figure 1. The flow chart of anonymous payment scheme
图1. 本方案流程图
随机选择一个私钥
,计算群公钥为
。得到公钥后进行系统参数发布,KGC将公钥通过安全的信道发送至用户以及服务提供商。KGC将用户
进行加密并且签名形成
,同时利用
值计算用户的部分私钥:

其中
,最后将
以及部分私钥
也通过安全信道发送给用户。
2) Extract:用户选择一个随机的值
,用户的公钥计算为:

其中
,
。用户从KGC处收到部分私钥验证:

该等式成立,则用户私钥确立为:

该验证过程如下:

3) Protocol:
a) 用户从智能电表得到自己的用电数据情况,根据服务提供商公布的电价说明进行计算,得到用电实际费用
,将
与
用群公钥进行加密,同时用自己的私钥进行无证书签名。
用户随机地选择
,并且进行以下计算:
令:
,


通过计算,该用户对此消息的签名为
。该签名与
通过服务提供商的公钥加密进行环签名。假设匿名范围中成员的集合为
,签名者随机选取一个值
,计算
产生环序列,随机选择
,并且计算
,
;
,则环签名的结果为
。最终将该结果发送给智能电表。智能电表收到用户发送的信息之后,将该消息与用户的用电数据以及环信息打包发送给服务提供商。
b) 服务供应商进行收费。服务提供商接收智能电表发送的信息,通过用电量以及对应计价方法计算用户实际使用费用,验证环签名的有效性,输入
,
,环签名结果,计算
。若
,则说明环签名有效,否则拒绝该消息。将服务提供商计算费用与智能电表发送费用进行比较,如果一致,则完成本次缴费,否则,将该信息发送给KGC,由KGC解决冲突。
c) KGC解决冲突。当KGC收到由服务供应商发送的信息后,由KGC验证:

该等式成立,则证明无证书签名有效。其中:



最后,KGC通过私钥解密后获取用户的
,找到缴费不成功的用户并通知该用户重新完成缴费。
3. 安全性分析
针对本文提出的在智能电网中的缴费方案,从以下几个方面对其安全性进行了整体分析:
1) 匿名性:根据该方法无法推算出签名者的实际身份。在签名过程中所使用的参数是根据一定的规则进行首尾相接而组成的环状,整个的签名过程完全不需要群管理员进行参与,所以根本无法通过陷门信息获得签名者的具体信息。恶意攻击者即使非法获得了所有可能签名者的私钥,能够成功找出该签名者的概率也很小,不会超过
(
为所有签名者的个数)。
2) 不可伪造性:恶意攻击者在无法获取群成员私钥的情况下,即便通过其他手段从产生环签名的模型中得到了关于任何消息的签名也不可能成功伪造出一个合法的签名。
3) 可操作性:在整个签名过程中,实际的签名者可以从所有用户中随机任意选择出参与该签名过程的用户,生成一个环签名方案,但不需要通知那些被选中的用户。
4) 机密性:KGC只能生成用户的部分私钥,用户的最终私钥由部分私钥以及用户选取的秘密值组成,从而减少KGC的恶意行为的发生,保证的用户私钥的机密性。
5) 不可关联性:KGC将用户信息
进行加密并签名,服务提供商、恶意攻击者无法获取用户的信息,无法将用户与其具体的用电数据进行关联,从而不能分析出用户的生活规律;同时KGC不能获取用户的用电信息,从而也不能将用户信息与用电数据进行关联,这样保证了不泄露用户的隐私。
6) 正确性:为了完成正确的缴费行为,需要满足的条件是在验证签名的有效性的同时双方计算的费用一致。当双方的计算费用不一致时,服务提供商通过KGC进行公平解决,由KGC确认缴费不一致行为的发生,根据用户信息通知用户进行重新缴费。
根据以上安全性的分析,该方案确实实现了在智能电网中保护用户隐私的前提下,完成智能电表全部用电数据的存储以及服务供应商与用户之间的正确缴费。
4. 方案比较
文献[9] (下文称:群签名方案)与本文提出的方案的特点对比如表1所示。
群签名方案中对于KGC赋予的权利过大。KGC的职责主要有:规定用户所属的群,计算群公钥,向用户本人、服务提供商发送密钥信息以及最终当用户与服务提供商费用结算不一致时进行纠纷解决。当KGC中出现恶意攻击者,并且恶意攻击者知道用户的密钥信息,根据密钥信息,该攻击者可以伪造用户的签名。在本方案里,KGC只计算部分私钥,由用户选择一个秘密值,与KGC发送的部分私钥共同计算得到最终的私钥,然后生成相应的公钥。这样,用户密钥信息的生成是由用户与KGC共同参与完成的,KGC就成为了半可信的(semi-honest),有效削弱了KGC的权利。
群签名方案的群签名技术无法做到无条件匿名。群管理员的陷门信息将会揭露群中具体签名者的身份,若群管理员怀有恶意,那么群中成员的身份信息将会泄露。本文提出的方案,不需要管理员、签名者用自己的私钥和任意个环成员的公钥对消息进行签名,只需要验证是否为环成员所签。恶意攻击者即使知道环成员中所有人的私钥,也无法确定具体是由哪个成员进行的签名,实现了无条件的匿名。
群签名方案的实现代价较大。群签名的过程主要有初始化过程、群成员加入过程、签名过程、验证过程以及打开过程,在签名过程中还使用了同态加密技术,而同态加密有大量的计算开销,本方案使用的环签名技术主要有密钥生成过程、签名过程以及签名验证过程,无证书的签名技术主要计算用户的部分私钥。另外在整个环签名过程中,实际的签名者可以从所有用户中随机任意选择出参与该签名过程的用户,生成一个环签名方案,并且不需要通知那些被选中的用户。
最后考虑到用户缴费过程中可能出现的收费不一致问题,利用KGC进行校验,可以迅速准确的找到问题用户,达到了准确收费的要求。用户的身份id仅由KGC存储,整个缴费过程中,用户的身份信息都是经过KGC加密并签名的,只有KGC拥有。若用户身份信息遭到泄露,将可以确定是KGC出现问题并追究责任,本方案从用户身份信息以及用户用电信息两方面进行了安全保护。
综上所述:本方案的优势在于削弱了KGC的权利,匿名过程更加彻底、实现的代价更小。

Table 1. Characteristics of scheme comparison
表1. 方案特点对比
5. 结论
为了保护用户在智能电网中的隐私安全,基于环签名和无证书签名的思想,本文提出了智能电网用户缴费方案。方案通过匿名缴费算法实现用户缴费过程中的无条件匿名,可以有效防止服务提供商根据缴费信息和用电量获取用户的行为信息。同时用户的私钥由用户选择随机数计算产生,服务提供商无法获取用户身份。该方案保证了服务提供商与用户的利益,保证了双方的正确缴费过程。匿名缴费算法实现过程中计算开销较小,运用于实际生活中的可行性更高,应用价值更大。