一 文章內容
摘要
背景和挑戰:
在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階段時間開銷