一 文章内容
摘要
背景和挑战:
在V2G(Vehicle-to-Grid)网络中,为鼓励BV(Battery-powered vehicle)的参与须要设置必定的奖励机制,可是扩大V2G网络部署会带来 安全 和 隐私 问题。html
提出方法:
本文提出一种新概念:BBARS (V2G网络中基于区块链的匿名奖励机制) ,并给出了正式的 系统模型 和 安全模型 ,经过两种不一样的PKC(Public key cryptosystem)设计了详细的BBARS机制。web
1 简介
1.1 相关工做
现有工做的不足:
It is still an open problem to solve the anonymity, unlinkability,untraceability simultaneously安全
1.2 文章贡献
首次提出基于区块链的V2G网络中匿名奖励机制,并给出正式的系统模型和安全模型。并首次考虑CAG(Center Aggregator)的匿名和BV的匿名。
付款方和收款方地址具备 不可连接性 (没法创建奖励双方的联系)和 不可追踪性 (不可找到付款方的地址)。
使用两种PKC来设计BBARS机制,一种用于聚合签名,一种用于区块链
2 BBARS 机制
2.1 密码方案
(1)ECC 和 双线性对
(2)Aggregate signature & Ring signature
Aggravated signature
An aggregate signature scheme is a signature scheme which can aggregate many signatures on many distinct messages from many distinct users into one single signature .网络
Ring signature
For a secure ring signature,it is required that only users in the group member list can generate a valid signature and the signatures generated by different members are theoretically indistinguishable .架构
2.2 安全模型
2.2.1 安全目标
1)BV、CAG和LAG间的互相认证
2)BV的匿名性
3)CAG的匿名性
4)不可连接性
2.2.2 Definition-不可伪造性
1) 定义:
拥有 几率多项式时间 的敌手A赢得游戏的几率是可 忽略不计的 ,则称CAG的认证协议知足不可伪造性。
2) 过程:
Setup :生成系统参数,CAG生成公/私钥对(PKI),BV生成公/私钥对(By self),将系统参数、CAG的公钥、BV的公钥发送给敌手A;
敌手A和挑战者C的交互 :A能够选择性的向挑战者发送信息并获得回应:
Hash请求:A向C发送哈希请求,C建立哈希函数值并将其发送给A。或者,C访问哈希函数并用实际的哈希值响应A
Authentication请求:A使用不一样的公钥和相应的信息(表示为
C
o
n
t
i
Cont_i
C o n t i .)发起请求,C建立认证信息
σ
j
\sigma _j
σ j 并返回给A.
伪造 :A使用公钥和相应的信息伪造有效认证
C
o
n
t
Cont
C o n t ,A赢得游戏知足 其中p(k)是安全参数k的多项式,A赢得游戏的几率是不可忽略的。
2.3 BBARS架构
系统实体
CAG(Center Aggregator)
LAG(Local Aggregator)
BV(Battery powered vehicle)
Blockchain
2.4 BBARS系统工做流程
2.4.1 Setup
1)Parameter type 1
用途:Blockchain、Monero
E(椭圆曲线)、
F
q
\mathbb{F} _q
F q (有限域)、
q
q
q (素数)、
G
G
G (
E
(
F
q
)
E(\mathbb{F} _q)
E ( F q ) 的生成点/基点)、
l
^
\hat{l}
l ^ (G的阶)、
F
l
^
\mathbb{F}_{\hat{l}}
F l ^ (由参数
l
^
\hat{l}
l ^ 构成的有限域)
2)Parameter type 2
用途:Registration、Receipt、Certificate、Authentication、Revocation
2.4.2 Contract-based authorization
C
o
n
t
i
Cont_i
C o n t i 包含:BV’s status information、reward for the service、service charge standard、payment method、
(
A
i
,
B
i
)
(A_i,B_i)
( A i , B i )
CAG首先用本身的私钥z和收到的
C
o
n
t
i
Cont_i
C o n t i 生成签名
σ
i
=
z
H
(
C
o
n
t
i
)
\sigma _i =zH(Cont_i)
σ i = z H ( C o n t i )
在Tab表中记录BV的地址
(
A
i
,
B
i
)
(Ai,Bi)
( A i , B i )
CAG将
(
C
o
n
t
i
,
σ
i
)
(Cont_i,\sigma _i)
( C o n t i , σ i ) 发给
B
V
i
BV_i
B V i
CAG发送更新的Tab表给LAGs
2.4.3 Anonymous service and receipt
B
V
i
BV_i
B V i 访问
V
2
G
V2G
V 2 G 网络而且为电网提供服务,它向
L
A
G
j
LAG_j
L A G j 提供
(
C
o
n
t
i
,
σ
i
)
(Cont_i,\sigma _i)
( C o n t i , σ i ) ,验证过程以下:app
L
A
G
j
LAG_j
L A G j 收到大量
(
C
o
n
t
i
,
σ
i
)
(Cont_i,\sigma _i)
( C o n t i , σ i ) 对,其中
i
∈
I
i \in \mathbb{I}
i ∈ I
L
A
G
j
LAG_j
L A G j 选区随机数
α
i
∈
F
p
\alpha _i \in \mathbb{\mathbb{F}}_p
α i ∈ F p ,验证
e
(
∑
i
∈
I
α
i
σ
i
,
P
)
=
e
(
∑
i
∈
I
α
i
H
(
C
o
n
t
i
)
,
Z
)
e(\underset{i \in \mathbb{I}}{\sum}\alpha_i \sigma_i,P)=e(\underset{i \in \mathbb{I}}{\sum}\alpha_i H(Cont_i),Z)
e ( i ∈ I ∑ α i σ i , P ) = e ( i ∈ I ∑ α i H ( C o n t i ) , Z ) 不成立则拒绝,不然执行下列步骤
对全部
i
∈
I
i \in \mathbb{I}
i ∈ I ,
L
A
G
j
LAG_j
L A G j 从
C
o
n
t
i
Cont_i
C o n t i 提取出相应公钥
(
A
i
,
B
i
)
(Ai,Bi)
( A i , B i ) ,判断
(
A
i
,
B
i
)
(Ai,Bi)
( A i , B i ) 是否属于
T
a
b
Tab
T a b 表,成立则接受服务,不然拒绝
当
B
V
i
BV_i
B V i 为电网提供了服务,
L
A
G
j
LAG_j
L A G j 生成相应的
r
e
c
e
i
p
t
receipt
r e c e i p t :
记
B
V
BV
B V 的服务和相应奖励为信息
m
i
,
j
m_i,_j
m i , j .
L
A
G
j
LAG_j
L A G j 计算
σ
i
,
j
=
l
j
H
(
m
i
,
j
,
A
i
,
B
i
)
\sigma _i,_j = l_jH(m_i,_j, Ai, Bi)
σ i , j = l j H ( m i , j , A i , B i )
L
A
G
j
LAG_j
L A G j 给
C
A
G
CAG
C A G 和
B
V
i
BV_i
B V i 都发送
(
m
i
,
j
,
A
i
,
B
i
,
σ
i
,
j
)
(m_i,_j , Ai, Bi, \sigma _i,_j)
( m i , j , A i , B i , σ i , j )
PS: Receipt(BVi):
(
m
i
,
j
,
A
i
,
B
i
,
σ
i
,
j
)
(m_i,_j , Ai, Bi, \sigma _i,_j)
( m i , j , A i , B i , σ i , j ) Certificate(CAG):
(
m
i
,
j
,
A
i
,
B
i
,
σ
i
,
j
)
(m_i,_j , Ai, Bi, \sigma _i,_j)
( m i , j , A i , B i , σ i , j )
2.4.4 Reward from CAG
,svg
C
A
G
CAG
C A G 接受到
L
A
G
j
LAG_j
L A G j 发送的
(
m
i
,
j
,
A
i
,
B
i
,
σ
i
,
j
)
(m_i,_j , Ai, Bi, \sigma _i,_j)
( m i , j , A i , B i , σ i , j ) ,选取随机数
β
i
,
j
∈
F
p
,
i
∈
I
,
j
∈
J
\beta _i,_j \in \mathbb{F}_p,i \in \mathbb{I}, j \in \mathbb{J}
β i , j ∈ F p , i ∈ I , j ∈ J 验证下列等式是否成立: 若是不成立则拒绝,成立则继续
对于特定
B
V
i
BV_i
B V i ,
C
A
G
CAG
C A G 解压接收的消息并提取其地址
(
A
i
,
B
i
)
(A_i,B_i)
( A i , B i ) ,选取随机数
r
∈
F
l
^
∗
r \in \mathbb{F}^*_ {\hat{l}}
r ∈ F l ^ ∗ ,而后计算
B
V
i
BV_i
B V i 的一次性公钥(One-Time Public Key)
P
i
^
=
H
1
(
r
A
i
)
G
+
B
i
\hat{P_i}=H_1(rA_i)G+B_i
P i ^ = H 1 ( r A i ) G + B i
CAG能够解压信息
m
i
,
j
m_i,_j
m i , j 获得奖励金额
b
a
l
i
,
j
bal_i,_j
b a l i , j ,而后计算总的奖励金额
b
a
l
i
=
∑
j
∈
J
b
a
l
i
,
j
bal_i=\underset{j \in \mathbb{J}}{\sum}bal_i,_j
b a l i = j ∈ J ∑ b a l i , j ,
C
A
G
CAG
C A G 能够从区块链读取总的奖励金额
b
a
l
bal
b a l ,所以
C
A
G
CAG
C A G 准备了
J
+
1
\mathbb{J}+1
J + 1 个输出:分别为上一步计算的一次性公钥(即地址)
P
i
^
\hat{P_i}
P i ^ 和
b
a
l
i
bal_i
b a l i 包含
J
J
J 个元素。为了简化,将输出和一些元数据表示为信息
m
m
m ,例如:对于每个
B
V
i
BV_i
B V i ,
m
m
m 包含
R
R
R 和
(
P
i
^
,
b
a
l
i
)
(\hat{P_i},bal_i)
( P i ^ , b a l i ) ,其中
R
=
r
G
R=rG
R = r G
CAG用私钥
z
z
z 计算对消息
m
m
m 的签名再哈希
A
=
H
2
(
S
i
g
n
z
(
m
)
)
A=H_2(Sign_z(m))
A = H 2 ( S i g n z ( m ) )
最终步骤:
经过上述构造,CAG首先计算:
L
i
=
{
q
i
G
i
f
i
=
s
q
i
G
+
w
i
P
i
i
f
i
≠
s
L_i=\left\{\begin{matrix}q_iG & if & i=s\\ q_iG+w_iP_i & if & i \ne s\end{matrix}\right.
L i = { q i G q i G + w i P i i f i f i = s i ̸ = s
R
i
=
{
q
i
H
2
(
P
i
)
i
f
i
=
s
q
i
H
2
(
P
i
)
+
w
i
I
i
f
i
≠
s
R_i=\left\{\begin{matrix}q_iH_2(P_i) & if & i=s\\ q_iH_2(P_i)+w_iI & if & i \ne s\end{matrix}\right.
R i = { q i H 2 ( P i ) q i H 2 ( P i ) + w i I i f i f i = s i ̸ = s
而后计算
c
=
H
1
(
m
,
A
,
L
0
,
.
.
.
,
L
n
,
R
0
,
.
.
.
,
R
n
)
c=H_1(m,A,L_0,...,L_n,R_0,...,R_n)
c = H 1 ( m , A , L 0 , . . . , L n , R 0 , . . . , R n ) 和下列值:
c
i
=
{
w
i
i
f
i
≠
s
c
−
∑
i
≠
s
c
i
i
f
i
=
s
c_i=\left\{\begin{matrix}w_i & if & i \ne s\\ c-\underset{i \ne s}{\sum}c_i& if & i = s\end{matrix}\right.
c i = { w i c − i ̸ = s ∑ c i i f i f i ̸ = s i = s
r
i
=
{
q
i
i
f
i
≠
s
q
s
−
c
s
x
s
i
f
i
=
s
r_i=\left\{\begin{matrix}q_i & if & i\ne s\\ q_s-c_sx_s & if & i = s\end{matrix}\right.
r i = { q i q s − c s x s i f i f i ̸ = s i = s 最终的签名(环签名)为:
σ
=
(
I
,
A
,
c
0
,
.
.
.
,
c
n
,
r
0
,
.
.
.
r
n
)
\sigma=(I,A,c_0,...,c_n,r_0,...r_n)
σ = ( I , A , c 0 , . . . , c n , r 0 , . . . r n )
奖励
b
a
l
i
bal_i
b a l i 发送到
P
i
^
\hat{P_i}
P i ^ ,
b
a
l
c
bal_c
b a l c 发送到
P
c
^
\hat{P_c}
P c ^ (新选定的存储剩余奖金的地址)
2.4.5 Verification and Gain
收到消息
m
m
m 的签名
σ
\sigma
σ 后,验证者对签名的有效性进行验证:函数
计算:
L
i
′
=
r
i
G
+
c
i
P
i
,
R
i
′
=
r
i
H
2
(
P
i
)
+
c
i
I
L_i'=r_iG+c_iP_i, R_i'=r_iH_2(P_i)+c_iI
L i ′ = r i G + c i P i , R i ′ = r i H 2 ( P i ) + c i I
验证者检查等式:
∑
n
i
=
0
c
i
=
H
1
(
m
,
A
,
L
0
′
,
.
.
.
L
n
′
,
R
0
′
,
.
.
.
,
R
n
′
)
m
o
d
  
l
^
\sum_{n}^{i=0}c_i=H_1(m,A,L_0',...L_n',R_0',...,R_n') \mod \hat{l}
∑ n i = 0 c i = H 1 ( m , A , L 0 ′ , . . . L n ′ , R 0 ′ , . . . , R n ′ ) m o d l ^ ,成立则继续
验证者检查镜像
I
=
x
s
H
2
(
P
s
)
I=x_sH_2(P_s)
I = x s H 2 ( P s ) 是否在之前的签名中出现过,若是是则拒绝,不然接受
σ
\sigma
σ
接受签名
σ
\sigma
σ 后,
B
V
i
BV_i
B V i 获取奖励:区块链
提取消息
m
m
m 中的
R
R
R 和
(
P
i
^
,
b
a
l
i
)
(\hat{P_i},bal_i)
( P i ^ , b a l i )
计算
P
i
′
=
H
1
(
a
i
R
)
G
+
B
i
P_i '=H_1(a_iR)G+B_i
P i ′ = H 1 ( a i R ) G + B i 并判断
P
i
^
=
P
i
′
\hat{P_i} = P_i'
P i ^ = P i ′ 是否成立,成立则继续
B
V
i
BV_i
B V i 计算
x
i
=
H
1
(
a
i
R
)
+
b
i
x_i=H_1(a_iR)+b_i
x i = H 1 ( a i R ) + b i ,知足
P
i
^
=
x
i
G
\hat{P_i}=x_iG
P i ^ = x i G ,由于
B
V
i
BV_i
B V i 拥有本身的私钥
(
a
i
,
b
i
)
(a_i,b_i)
( a i , b i )
3 实验结果
3.1 CAG在Contract-based authorization阶段时间开销和LAG在Anonymous service and receipt阶段时间开销比较
3.2 CAG在Reward from CAG阶段时间开销(不一样
J
\mathbb{J}
J )
3.3 CAG在Reward from CAG阶段时间开销(不一样
I
\mathbb{I}
I )
3.4 区块链在Verification and Gain阶段时间开销