1.一种面向智能电网的可保护隐私数据聚合方法,其特征在于,包括以下步骤:
101、系统初始化步骤:首先,智能电表SMi、聚合器AGG和控制中心CC分别生成签名相关的私钥和公钥。其次,智能电表SMi、聚合器AGG和控制中心CC分别生成加密相关的私钥和公钥;
102、用户注册步骤:智能电表SMi向聚合器AGG注册以成为系统中合法的智能电表,首先,SMi计算自己的假名和相关数据发送给AGG;其次,AGG通过使用SMi的假名和相关数据可以计算恢复出SMi的真实身份标识,并且验证SMi发送的消息中所有数据的真实性和完整性;
然后,SMi和AGG进行多次通信,AGG最终可以验证SMi是否是合法用户,同时,SMi和AGG协商出一个会话密钥用于之后的数据加密步骤;
103、数据生成的步骤:智能电表SMi生成加密数据和签名,SMi以基于椭圆曲线的BGN算法作为加密算法,使用系统公钥和会话密钥对明文进行加密,并使用BLS短签名算法生成自己的签名,最后发送密文和签名等消息给AGG;
104、数据聚合的步骤:在接收到SMi发送的消息之后,AGG验证SMi的签名,签名验证成功后,AGG对加密数据进行部分解密,计算最终聚合密文和自己的签名,并发送最终聚合密文和签名等消息给CC;
105、数据解密的步骤:在接收到AGG发送的消息之后,CC验证AGG的签名,签名验证成功后,CC使用私钥解密最终聚合密文获取聚合明文。
2.根据权利要求1所述的面向智能电网的可保护隐私数据聚合方法,其特征在于,所述步骤101系统初始化时智能电表SMi、聚合器AGG和控制中心CC生成签名以及加密的私钥和公钥的步骤具体包括:
1)SMi、AGG和CC分别随机从 中选择xi、xA和xCC作为各自的私钥,其中 是1到(q-1)范围内的整数。然后,SMi、AGG和CC分别计算相应的公钥Xi=xiG2、XA=xAG2和XCC=xCCG2,其中G2是阶为q的椭圆曲线循环群G2的生成元;
2)SMi和AGG分别选择ki, 作为各自的私钥,其中 是1到(n-1)范围内的整数,然后,SMi和AGG分别计算相应的公钥Ki=kiG1、YA=yAG1,其中G1是阶为n=q1q2的椭圆曲线循环群G1的生成元,q1和q2是两个大素数。
3.根据权利要求2所述的面向智能电网的可保护隐私数据聚合方法,其特征在于,所述步骤102智能电表SMi向聚合器AGG注册的步骤具体包括:
1)首先,SMi使用自己的身份标识IDi、随机数 和AGG的公钥YA生成SMi的假名其中H1是一个将字符串映射到范围为1到(n-1)的整数的哈希函数H1:其次,SMi根据随机数ri生成公钥Ri=riG1,然后,SMi使用身份标识IDi、假名AIDi和公钥Ri生成消息摘要e1=H1(AIDi||IDi||Ri),最后,SMi将消息{AIDi,Ri,e1}发送给AGG;
2)AGG首先使用接收到的假名AIDi、公钥Ri和自己的私钥yA计算恢复出SMi的身份标识其次使用计算出的IDi,接收到的AIDi和Ri计算新的消息摘要e2=H1(AIDi||IDi||Ri),然后验证e1和e2是否相等,如果相等,说明SMi是合法的用户,AGG保存{IDi,AIDi}并继续进行通信;否则,AGG终止通信;
3)AGG选择随机数 生成公钥Ri'=ri'G1,并发送Ri'给SMi。
4)SMi使用自己的公钥Ri和接收到的公钥Ri'计算公钥Wi=Ri+Ri',使用身份标识IDi和公钥Wi计算哈希值αi=H1(IDi,Wi),并使用自己的私钥ki、ri和哈希值αi计算随机值βi=ki+riαi,最后将βi发送给AGG;
5)AGG使用自己的公钥Ri'和接收到的公钥Ri计算公钥Wi=Ri+Ri',使用计算出的身份标识IDi和公钥Wi计算哈希值αi=H1(IDi,Wi),并使用接收到的随机值βi、哈希值αi和自己的私钥ri'计算私钥yi=βi+ri'αi,最后,AGG验证yiG1=Ki+αiWi是否成立,其中Ki是SMi的公钥,如果不成立,AGG终止通信;否则,AGG完成通信;
6)AGG保存协商出的密钥Yi=yiG1,SMi计算并保存协商出的密钥Yi=Ki+αiWi。
4.根据权利要求3所述的面向智能电网的可保护隐私数据聚合方法,其特征在于,所述步骤103智能电表SMi生成加密数据的步骤具体包括:
1)SMi选择随机数 其中 是1到(n-1)范围内的整数;
2)SMi通过公式(1)计算加密数据CT,其中P和Q是随机选自阶为n的椭圆曲线循环群G1的生成元,mi是SMi的明文,Ci是mi生成的密文,Di是SMi计算出的公钥;
CT:{Ci=miP+si(Q+Yi),Di=siG1} (1)
3)SMi计算自己的签名δi。SMi首先计算Mi=Ci||Di||AIDi||T和H2(Mi),其中Mi是密文Ci、公钥Di、假名AIDi和时间戳T的数据值的连接,H2是一个将字符串映射到椭圆曲线群G2上的点的函数H2:{0,1}→G2,其次,SMi计算其签名δi=xiH2(Mi);
4)SMi发送消息Ci||Di||AIDi||T||δi给AGG。
5.根据权利要求4所述的面向智能电网的可保护隐私数据聚合方法,其特征在于,所述步骤104聚合器AGG计算聚合密文的具体步骤包括:
1)AGG首先计算H2(Mi),其中Mi=Ci||Di||AIDi||T,然后通过公式(2)验证所有用户的签名,其中e'是一个双线性映射e':G2×G2→GT';
2)AGG通过公式(3)计算聚合数据C和D,为简便起见,令聚合明文 聚合随机数
3)AGG根据SMi的假名AIDi搜索SMi的公钥Yi对应的私钥yi,然后计算聚合私钥根据公式(4),AGG使用聚合私钥 和聚合公钥D=sG1部分解密密文,获取最终的聚合密文C';
4)AGG首先计算MA=C'||IDA||T和H2(MA),其中MA是最终聚合密文C'、AGG的身份标识IDA和时间戳T的数据值的连接,然后,AGG计算自己的签名δA=xAH2(MA);
5)AGG发送消息C'||IDA||T||δA给控制中心CC。
6.根据权利要求5所述的面向智能电网的可保护隐私数据聚合方法,其特征在于,所述步骤105控制中心CC使用私钥解密聚合密文并获取聚合明文的具体步骤包括:
1)CC使用公式(5)验证AGG的签名。
e'(δA,G2)=e'(H2(MA),XA) (5)
2)CC使用解密密钥q1和收到的聚合密文C'作为输入,然后使用公式(6)计算聚合明文m;
7.一种面向智能电网的可保护隐私数据聚合系统,其特征在于,具体包括:系统初始化模块:用于智能电表SMi、聚合器AGG和控制中心CC分别初始化;
注册模块:用于智能电表SMi向聚合器AGG注册以成为系统中合法的智能电表;
加密数据生成模块:用于智能电表SMi生成加密数据;
聚合密文生成模块:用于接收到加密数据后,AGG对加密数据进行部分解密,计算最终聚合密文;
数据解密模块:用于接收到聚合密文后,CC使用私钥解密最终聚合密文获取聚合明文。