国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

車聯(lián)網(wǎng)中支持動態(tài)操作的密鑰協(xié)商協(xié)議*

2020-07-03 03:23:16周天祺楊惠杰
密碼學(xué)報 2020年3期

周天祺, 楊惠杰, 沈 劍,2

1. 南京信息工程大學(xué) 江蘇省網(wǎng)絡(luò)監(jiān)控工程中心, 南京210044

2. 鵬城實驗室 網(wǎng)絡(luò)空間安全研究中心, 深圳518000

1 背景

車載自組網(wǎng)(Vehicular Ad Hoc Networks, VANETs)[1,2]是物聯(lián)網(wǎng)的重要應(yīng)用. 一般來說, VANETs主要由車載單元(On Board Unite, OBU), 路邊單元(Road Side Unit, RSU) 和可信機構(gòu)(Trusted Authority, TA) 組成. VANETs 可以為導(dǎo)航、交通預(yù)測、測速等各種車輛應(yīng)用提供平臺. 隨著人工智能技術(shù)的快速發(fā)展,無人駕駛以及更多的車載應(yīng)用將進一步推動VANETs 的發(fā)展和應(yīng)用. 然而,除了VANETs所具備的優(yōu)點和所提供的各種實際應(yīng)用之外, 安全性和效率仍然是VANETs 中備受關(guān)注的兩大問題[3,4].例如, 在導(dǎo)航的過程中, 對于交通事故或者道路擁堵等需要及時響應(yīng)的信息, 需要VANETs 做出及時的信息發(fā)布, 確保相關(guān)車輛能夠及時反應(yīng), 合理規(guī)劃路線. 此外, 安全的信息傳輸也是VANETs 系統(tǒng)中需要考慮的重要問題, 如果消息的傳輸被攻擊者惡意地修改或者刪除, 將會給用戶的行駛帶來不便甚至引起嚴重的后果. 另一方面, 隨著人工智能技術(shù)的發(fā)展, 無人駕駛對網(wǎng)絡(luò)環(huán)境的安全和效率提出了更高的需求. 除了對機器學(xué)習(xí)技術(shù)的改進和完善, VANETs 環(huán)境的安全和效率將是無人駕駛技術(shù)普及的重要制約因素. 在這些要求下, 密鑰協(xié)商協(xié)議作為一種重要的密碼學(xué)原語[5,6]可以為VANETs 環(huán)境中的安全通信提供有力保障. 此外, 用戶數(shù)量動態(tài)變化的VANETs 環(huán)境會面臨頻繁的密鑰更新操作, 因此設(shè)計良好的方案不僅要考慮會話密鑰的生成, 還要需要考慮高效的密鑰更新機制.

在本文中, 針對傳統(tǒng)密鑰協(xié)商協(xié)議通信輪數(shù)偏高、密鑰更新效率較低等問題, 我們利用對稱平衡不完全區(qū)組設(shè)計(Symmetric Balanced Incomplete Block Design, SBIBD) 和不可區(qū)分混淆技術(shù), 提出了一種支持高效密鑰更新和動態(tài)特性的VANETs 密鑰協(xié)商協(xié)議. SBIBD 是組合設(shè)計領(lǐng)域中的一種重要技術(shù), 具有良好的平衡和對稱的特性, 在實驗對比設(shè)計中可用于樣本的對比組合檢測從而得到最優(yōu)選擇[7]. 本文對SBIBD 的結(jié)構(gòu)特性進行研究, 將其特性應(yīng)用于密鑰協(xié)商的通信模型, 有效降低密鑰協(xié)商過程中的通信開銷. 然而, SBIBD 的構(gòu)建一般需要較大的計算開銷, 為了解決該問題, 我們進一步研究SBIBD 構(gòu)造方案,提出了基于移位寄存器的構(gòu)造方案, 有效降低了構(gòu)建該結(jié)構(gòu)的計算開銷. 另一方面, 針對密鑰更新問題, 我們采用目前最新的不可區(qū)分混淆技術(shù)[8], 設(shè)計基于不可區(qū)分混淆的高效密鑰更新方案. 混淆技術(shù)最早是在軟件領(lǐng)域為了實現(xiàn)版權(quán)保護而提出的, 其核心思想是對代碼進行混淆, 使得用戶只能以黑盒的方式訪問程序. 在密碼學(xué)領(lǐng)域, 混淆技術(shù)的提出則是起源于安全多方計算問題, 即如何在不公開自己秘密值的情況下與他人進行計算并最終得出計算結(jié)果. 之后, 電路混淆和不可區(qū)分混淆的概念相繼被提出. 在本文中, 密鑰更新是根據(jù)之前的會話密鑰計算新的會話密鑰的過程, 為了保證該過程的安全性和高效性, 借助混淆技術(shù)來設(shè)計更新算法.

1.1 相關(guān)工作

針對VANETs 動態(tài)變化的特性, 文獻[9] 提出了一種結(jié)合AODV 和DSDV 協(xié)議的路由算法, 從而平衡了移動狀態(tài)VANETs 網(wǎng)絡(luò)的傳輸效率和分組投遞率. 文獻[10] 對端系統(tǒng)、管系統(tǒng)、云系統(tǒng)中的VANETs 進行了詳細討論,并介紹了VANETs 中的兩種重要通信方式,即車輛與車輛之間的通信(Vehicle to Vehicle, V2V) 和車輛與路邊單元間的通信(Vehicle to Roadside, V2R). 文獻[9] 和[10] 都致力于VANETs 網(wǎng)絡(luò)的路由協(xié)議研究. 另一方面, 文獻[11] 研究了VANETs 網(wǎng)絡(luò)體系結(jié)構(gòu), 并分析了相關(guān)的關(guān)鍵技術(shù). 然而, 上述工作并沒有詳細討論VANETs 中存在的安全問題. 文獻[12] 設(shè)計了一種電子車牌采集的安全方案, 解決了物理車牌在實際使用中存在的偽造、套牌、遮擋等安全問題, 為電子車牌的進一步推廣提供了思路. 同時, 文獻[13,14] 針對VANETs 中的隱私和安全問題進行研究. 文獻[13] 詳細分析了現(xiàn)有的VANETs 隱私保護方案, 指出平衡身份認證與用戶匿名是VANETs 隱私保護方案的研究重點. 文獻[14] 借助數(shù)字簽名技術(shù)提出了一種基于代理簽名簇的VANETs 隱私保護框架. 然而, 以上方案都存在認證效率低的問題. 為了實現(xiàn)VANETs 中的安全數(shù)據(jù)共享, 方案[15] 提出了一種支持RSU 數(shù)據(jù)下載的安全數(shù)據(jù)共享方案. 但是, 它只支持RSUs 和OBUs 之間的數(shù)據(jù)共享并且該方案需要大量的存儲空間. 文獻[16] 提出了一種基于地理位置的數(shù)據(jù)聚合方案, 該方案致力于最小化聚合數(shù)據(jù)的通信開銷. 盡管如此,它還是會遭受數(shù)據(jù)包沖突和并且需要更長的通信時延. 此外, 針對物聯(lián)網(wǎng)環(huán)境中的安全問題, 人們提出了許多研究工作[17-19], 這些工作可以作為保證VANETs 安全的參考.

1.2 本文工作

本文針對VANETs 中安全高效的通信需求, 提出了一種新的密鑰協(xié)商協(xié)議. 本方案主要考慮適用于多方安全的密鑰協(xié)商, 本文協(xié)議具有良好的安全性和高效性, 能夠為VANETs 安全高效的通信提供保障.為了在動態(tài)VANETs 中實現(xiàn)安全高效的密鑰協(xié)商, 本文提出了基于移位寄存器的SBIBD 構(gòu)造, 基于該結(jié)構(gòu)設(shè)計了安全多方密鑰協(xié)商方案. 此外, 通過設(shè)計不可區(qū)分混淆算法, 提出了安全高效的密鑰更新算法. 本文的貢獻總結(jié)如下.

(1) 設(shè)計SBIBD 構(gòu)造方案. 通過利用移位寄存器本文提出了基于移位寄存器的SBIBD 構(gòu)造方案.通過使用移位寄存器, 該方案顯著降低了SBIBD 構(gòu)造的復(fù)雜性. 此外, 基于MapReduce 分布式計算模型給出了SBIBD 的構(gòu)建方案, 該方案能很好地支持VANETs 中大規(guī)模的并行計算, 進一步提升SBIBD 結(jié)構(gòu)的構(gòu)造效率.

(2) 多用戶間安全密鑰協(xié)商. 為了保證VANETs 中安全高效的通信信道, 設(shè)計多用戶間的密鑰協(xié)商協(xié)議, 得到多用戶間的會話密鑰. 采用SBIBD 結(jié)構(gòu)將有效降低密鑰生成的通信開銷. 此外, 多用戶間相同的會話密鑰可以有效支持安全通信的高效性, 即利用生成的相同會話密鑰進行對稱加密的時間開銷將大大低于公鑰加密的時間開銷. 針對協(xié)議可能面臨的實際安全威脅, 本文還給出了密鑰生成階段的威脅模型, 并基于現(xiàn)有的密碼學(xué)困難性問題和安全的密碼學(xué)方案證明本文協(xié)議是安全的.

(3) 實現(xiàn)動態(tài)環(huán)境下的高效密鑰更新. 在VANETs 中, 利用不可區(qū)分混淆的概念實現(xiàn)密鑰的高效更新. 在這種資源受限的環(huán)境中, 通過重新啟動協(xié)議來更新會話密鑰是一種資源消耗和不現(xiàn)實的做法. 在資源受限的環(huán)境下, 為了實現(xiàn)密鑰的高效更新, 本文創(chuàng)新性地在VANETs 中采用了不可區(qū)分混淆技術(shù). 此外, 為了保證密鑰更新的安全, 本文給出了密鑰更新階段的威脅模型并基于安全的密碼學(xué)原語證明更新操作的安全性.

(4) 對協(xié)議進行模擬和對比實驗分析. 本文利用PBC 密碼學(xué)庫對本文協(xié)議進行模擬實驗, 基于C 語言和PBC 密碼學(xué)庫實現(xiàn)了本文協(xié)議. 通過多次運行協(xié)議得到平均運行時間作為協(xié)議的時間開銷.此外, 實踐了同類型VANETs 環(huán)境下的密鑰協(xié)商協(xié)議并與本文協(xié)議進行對比分析.

本文的結(jié)構(gòu)如下. 第2 節(jié)介紹了一些預(yù)備知識. 第3 節(jié)介紹了系統(tǒng)模型. 第4 節(jié)詳細介紹了本文協(xié)議. 第5 節(jié)進行安全性和性能分析. 第6 節(jié)對本文進行總結(jié).

2 預(yù)備知識

2.1 BLS 簽名

BLS 簽名算法是目前公認的安全簽名算法, 算法流程如下:

(1) 初始化: 選取循環(huán)群G1和G2, G1中的生成元為g, 雙線性映射: G1×G1→G2, 密碼學(xué)哈希函數(shù)H :{0,1}?→G1. 選取, 計算P =gs. 其中, 私鑰為s, 公鑰為P.

(2) 簽名: 利用私鑰對消息M 進行簽名得到σ =H(M)s.

基于CDH 困難性問題, BLS 簽名算法具備選擇消息攻擊下的存在性不可偽造安全.

2.2 RSA 加密算法

RSA 算法是一種安全的加密算法, 其最原始的算法如下:

(1) 初始化選取兩個大素數(shù)p, q, 計算n = p×q, 選取與φ(n) 互素的數(shù)e, 其中φ(n) 是n 的歐拉函數(shù). 利用擴展的歐幾里得算法計算e 的逆d 滿足ed ≡1(mod((p ?1)(q ?1)). 最終得到公鑰為(e,n), 私鑰為(d,n).

(2) 加密: 利用公鑰e, 對消息M 進行加密得到密文C=Me.

(3) 解密: 利用私鑰d, 對密文進行解密得到明文M =Cd=(Me)d.

RSA 算法的安全性基于大數(shù)的因數(shù)分解難解性問題, 基于該難解性問題對RSA 加密得到的密文進行分析的難度等同于因數(shù)分解問題的難度. 然而, 為了滿足加密算法最基礎(chǔ)的安全需求, 即選擇明文攻擊下的語義安全, 原始的RSA 算法還需進行修改, 一種可行的安全RSA 加密算法如下所示:

(1) 初始化選取兩個大素數(shù)p, q, 計算n = p×q, 選取與φ(n) 互素的數(shù)e, 其中φ(n) 是n 的歐拉函數(shù). 利用擴展的歐幾里得算法計算e 的逆d 滿足ed ≡1(mod((p ?1)(q ?1)). 最終得到公鑰為(e,n), 私鑰為(d,n).

(3) 解密: 利用私鑰d, 對密文進行解密得到明文M=(H(r)⊕M)⊕H((re)d).

上述改進算法通過在原始算法的基礎(chǔ)上引入隨機數(shù)r, 使得改進的RSA 算法能夠滿足公鑰加密體制中的最基本安全需求: 在選擇明文攻擊下的語義安全. 此外, 只要選取合適長度的素數(shù), 該算法就能為真實各類型應(yīng)用提供不同程度的安全性保證.

2.3 混淆技術(shù)

混淆的概念起源于計算機領(lǐng)域, 即代碼混淆. 混淆的目的是為了保護軟件的安全和防止逆向工程. 在計算機領(lǐng)域, 模糊處理通過混淆代碼, 使代碼不可識別, 同時保持代碼的原始功能, 保證了程序的安全性.攻擊者無法從混淆的代碼中獲取原始代碼. 在密碼學(xué)中, 混淆的概念最早由Barak 等人于2001 年提出.它顯示了一般程序不可能實現(xiàn)的黑盒安全性[20]. 之后, 為了達到實用的混淆, 他們給出了一個較弱的概念——不可區(qū)分混淆. 定義1 描述了不可區(qū)分混淆的概念.

定義1(不可區(qū)分混淆) 對于兩個功能相同的電路C 和C′, 不可區(qū)分混淆器IO 可以使這兩個電路混淆, 從而滿足條件IO(C)≈polyIO(C′). 其中, “≈poly” 表示著C 和C′的混淆在多項式上是不可區(qū)分的[21].

2.4 移位寄存器

在數(shù)字電路中, 移位寄存器是一種順序器件, 它將輸入端的數(shù)據(jù)移動或移位到輸出端. 輸入和輸出操作能支持并行和串行的方式. 在每個時鐘周期內(nèi), 寄存器中的數(shù)據(jù)將從最高有效位(Most Significant Bit,MSB) 順序移位到最低有效位(Least Significant Bit, LSB).

2.5 平衡不完全區(qū)組設(shè)計

定義2(平衡不完全區(qū)組設(shè)計)設(shè)V 為v 階的集合,則簇B 由集合V 中的v 階子集組成. 如果V 的每一個元素在B 中恰好出現(xiàn)x 次, 則簇B 是平衡不完全區(qū)組設(shè)計(Balanced Incomplete Block Design,BIBD). 其中, B 的每一個子集稱為一個區(qū)組. 此外, 如果簇B 中的子集的數(shù)目等于v , 并且每個元素出現(xiàn)的數(shù)目x 等于子集的階k, 則該簇是對稱平衡不完全區(qū)組設(shè)計(Symmetric Balanced Incomplete Block Design, SBIBD). 特別是, SBIBD 中的參數(shù)是(b,v,k,r,λ). 其中, b 是區(qū)組的數(shù)目, v 是元素的數(shù)目. 對于SBIBD, 我們有以下條件b = v, k = r 和v = k2+k+1. 其中, k 是B 中元素的個數(shù), 并且k 是一個質(zhì)數(shù)[22]. 圖1 中是一個v = 7 的區(qū)組設(shè)計, 其中每個元素分別用不同顏色標注. 由圖1 可以清晰地看出SBIBD 結(jié)構(gòu)平衡對稱的特性, 即每個元素的出現(xiàn)次數(shù)和每個區(qū)組的元素個數(shù)相同, 集合的元素個數(shù)和區(qū)組的個數(shù)相同.

在實踐中, BIBD 和SBIBD 結(jié)構(gòu)由于其獨特的特性, 被廣泛應(yīng)用于實驗設(shè)計中以實現(xiàn)高效的對比實驗的目的.

圖1 SBIBD 結(jié)構(gòu)Figure 1 Example of SBIBD structure

3 系統(tǒng)模型與SBIBD 結(jié)構(gòu)

3.1 系統(tǒng)模型

VANETs 通常由三個實體組成: 路邊單元(RSU)、車載單元(OBU) 和可信機構(gòu)(TA). RSU 和TA之間的信道被認為是安全的, 它們是具有高帶寬和低錯誤率的有線通信信道. 此外, RSU 之間的信道也是安全的. 另一方面, OBUs 的通信信道是IEEE 802.11p 定義的無線信道, 其中普遍使用的是5.9 ghz 專用短程通信(Dedicated Short Range Communication, DSRC).

在系統(tǒng)模型中,TA 與RSUs 之間的信道和RSUs 與RSUs 之間的信道是安全可靠的有線鏈路,OBUs與OBUs 之間的信道和OBUs 與RSUs 之間的信道是無線的、不安全的鏈路. 一般來說, 有線鏈路的傳輸速率比無線鏈路快, 有線鏈路的錯誤率比無線鏈路低. 此外, TA 和RSUs 的計算和存儲能力都強于OBUs. 因此, 在所提出的密鑰協(xié)商協(xié)議中, 會話密鑰的計算由RSUs 執(zhí)行, 然后將密鑰傳輸?shù)狡淇刂品秶腛BU.

3.2 威脅模型

協(xié)議的威脅模型由敵手A 和挑戰(zhàn)者C 之間進行的下列交互游戲構(gòu)成. 其中挑戰(zhàn)者C 是攻擊困難性問題或者現(xiàn)有公認的安全方案的攻擊者, 敵手A 是攻擊本文所設(shè)計的密鑰協(xié)商協(xié)議的攻擊者. 在不同的游戲中, 挑戰(zhàn)者C 的目的是對協(xié)議進行不同程度的攻擊. 在游戲中, 挑戰(zhàn)者C 首先構(gòu)建一個模擬的方案,敵手A 則與挑戰(zhàn)者C 進行交互. 之后利用挑戰(zhàn)者C 的回答, 敵手A 嘗試對所設(shè)計的密鑰協(xié)商協(xié)議進行攻擊. 最終, 利用游戲的交互, 將敵手A 對密鑰協(xié)商協(xié)議的攻擊能力規(guī)約到挑戰(zhàn)者C 對困難性問題或者現(xiàn)有公認的安全方案的攻擊能力, 從而得出悖論.

3.2.1 子密鑰的安全性

子密鑰安全性由敵手A 和挑戰(zhàn)者C 之間游戲GS模擬

3.2.2 會話密鑰安全性

會話密鑰安全性由敵手A 和挑戰(zhàn)者C 之間游戲GC模擬

3.2.3 密鑰更新安全性

會話密鑰安全性由敵手A 和挑戰(zhàn)者C 之間游戲GU模擬

3.3 SBIBD 結(jié)構(gòu)

本文利用SBIBD 結(jié)構(gòu)保證安全高效的VANETs 通信. 具體來說, VANETs 中OBUs 密鑰協(xié)商的消息交互方式和后續(xù)VANETs 的通信拓撲結(jié)構(gòu)都是基于SBIBD. 因此, 本節(jié)將詳細介紹SBIBD 結(jié)構(gòu). 以圖2 所示的SBIBD 結(jié)構(gòu)為例, 根據(jù)SBIBD 的定義, 集合V 有7 個元素, 區(qū)組的數(shù)目也等于7. 其次, 每個塊包含3 個元素, 每個元素出現(xiàn)3 次. 值得注意的是, 在所提出的方案中為了實現(xiàn)降低通信冗余, 一個特殊的SBIBD 結(jié)構(gòu)被給出(如圖2). 在該結(jié)構(gòu)中, 每對集合V 中的元素同時出現(xiàn)在區(qū)組中的次數(shù)為一次. 具備這種特殊特性的SBIBD 結(jié)構(gòu)也可以稱為一個(v,k+1,1)-設(shè)計, 其中v 表示元素和區(qū)組的數(shù)目,k+1 表示每個區(qū)組包含的元素個數(shù)和元素在所有區(qū)組中出現(xiàn)的次數(shù), λ 表示每對元素的出現(xiàn)次數(shù). 其中,k 是一個素數(shù), λ = 1, v = k2+k+1. 此外, 如圖2 所示, 根據(jù)SBIBD 的轉(zhuǎn)換[22], 可以得到適用于密鑰協(xié)商的SBIBD 結(jié)構(gòu).

圖2 轉(zhuǎn)換的SBIBD 結(jié)構(gòu)Figure 2 Transformed SBIBD structure

4 方案設(shè)計

4.1 SBIBD 構(gòu)建

本節(jié)給出了基于移位寄存器的SBIBD 構(gòu)建方案. 特別地, 針對VANETs 環(huán)境下可能處理大規(guī)模數(shù)據(jù)的情況, 為了進一步提升構(gòu)建效率, 本節(jié)基于MapReduce 分布式計算模型詳細說明了該構(gòu)建的具體實現(xiàn).MapReduce 是一種用于大規(guī)模數(shù)據(jù)集并行運算的編程模型. VANETs 中OBU 和RSU 數(shù)量的增加都可能會導(dǎo)致大規(guī)模數(shù)據(jù)的處理, 一方面可能需要構(gòu)建較大的SBIBD 結(jié)構(gòu), 另一方面由于RSU 和OBU 組成的網(wǎng)絡(luò)數(shù)量增多, 可能會需要構(gòu)建大量的SBIBD 結(jié)構(gòu). 因此, 本節(jié)基于MapReduce 分布式計算模型實現(xiàn)SBIBD 結(jié)構(gòu)的構(gòu)建. 圖3 展示了在MapReduce 模型下SBIBD 構(gòu)建任務(wù)的劃分細節(jié). 首先, 將任務(wù)分解為多個小任務(wù). 之后, 進行Map 操作, 即將小任務(wù)并行地進行處理得到中間結(jié)果. 最后, 進行Reduce 操作對中間結(jié)果進行處理, 即將已完成的小任務(wù)合并成大任務(wù)從而完成一個或多個完整SBIBD 構(gòu)建任務(wù).

圖3 MapReduce 模型下SBIBD 構(gòu)建任務(wù)細節(jié)Figure 3 Construction of SBIBD structure in MapReduce framework

為了展示該構(gòu)建方案的可行性, 圖4 展示了一個具體的SBIBD 結(jié)構(gòu)構(gòu)建例子, 其k = 7, v = 56. 為了便于對結(jié)構(gòu)的描述, (v,k+1,1)-設(shè)計被分成從0 到k 的k+1 個單元, 每個單元的對應(yīng)的標號分別為0 到k. 第一個單元包含k+1 個區(qū)組, 而其他單元包含k 個區(qū)組, 該結(jié)構(gòu)的構(gòu)造具體步驟如下.

(1) 第一個單元的構(gòu)造: 第一單元是k+1 階的方陣. 該方陣第一列元素全為0, 第二列到最后一列的元素為1 至k ?1 遞增的順序按行排列. 第一個單元的構(gòu)建可以通過循環(huán)完成, 不參與并行處理.

(2) 剩余k 個單元第一二列的構(gòu)建: 第一列元素全為該單元的標號k, 第二列元素為k+1+row, 其中k 是SBIBD 的結(jié)構(gòu)參數(shù), row 是該元素所在的行號. 該構(gòu)建可以通過循環(huán)完成, 不參與并行處理.

(3) 第二單元剩余k ?1 列的構(gòu)建: 每一列元素加上等長的大小為k 的向量構(gòu)成下一列. 對于k =7,v = 56 的結(jié)構(gòu), 第二單元剩余k ?1 列如圖4 中頂層的結(jié)構(gòu)所示. 該結(jié)構(gòu)是SBIBD 并行構(gòu)建的基礎(chǔ)結(jié)構(gòu).

(4) 剩余單元剩余k ?1 列的構(gòu)建: 將第二單元剩余k ?1 列發(fā)布為k ?1 個任務(wù), 在Map 階段對每個任務(wù)進行不同長度的k ?1 次循環(huán)移位得到中間結(jié)果. 該循環(huán)移位過程由圖4 第二行中的黑色虛線表示, 生成的中間結(jié)果由圖4 第二行表示. 最后, 進行Reduce 操作, 將中間結(jié)果合并得到最后的計算結(jié)果, 完成并行處理操作. 該結(jié)果由圖4 第三行表示.

圖4 MapReduce 模型下SBIBD 構(gòu)建例子Figure 4 Example of SBIBD construction

4.2 密鑰生成

本節(jié)基于所構(gòu)建的SBIBD 結(jié)構(gòu), 提出了基于(v,k + 1,1)-設(shè)計的密鑰協(xié)商協(xié)議, 該協(xié)議可以保證VANETs 的通信安全. 具體的密鑰協(xié)商過程描述如下.

(2) 每個OBU 使用輕量級安全的公鑰加密算法Enc() 對其秘密密鑰s 進行加密, 并將加密的密文C =EncPR(s) 發(fā)送給RSU. 其中, PR是RSU 的公鑰.

(3) 每個RSUi對接收到的密文C 進行解密, 得到OBUs 的s, 并將所有s 聚合為S. 其中, i 代表RSU 的編號.

(4) 根據(jù)構(gòu)造的(v,k+1,1)-設(shè)計, 對于每個區(qū)組Bi, 用Bi中的k 個元素表示RSU 的索引號. 這k個RSUs 使用RSUi的公鑰對各自聚合的密鑰值進行加密, 并將密文發(fā)送給RSUi. 同時, 根據(jù)(v,k+1,1)-設(shè)計的性質(zhì), 元素i 被包含在k+1 個區(qū)組中. 因此, 這些k 區(qū)組(塊i 除外) 的索引號表示該RSU 需要以加密格式將從第三步獲得的k 個S 發(fā)送給RSUi. 這樣, 所有RSUs 共享彼此聚合的OBUs 的秘密值, 并最終構(gòu)成最終的會話密鑰S =∏Si.

(5) 每個RSU 計算最終的會話密鑰S =∏Si, 并將密鑰分發(fā)給其范圍內(nèi)的OBUs.

4.3 密鑰更新

在實踐中, VANETs 的結(jié)構(gòu)經(jīng)常發(fā)生變化, VANETs 的動態(tài)特性和資源約束特性要求支持有效的密鑰更新. 本文方案不需要重新啟動協(xié)議完成密鑰更新操作. 重新啟動協(xié)議是更新會話密鑰最為直接簡單方法, 但該方法需要相對較高的通信和計算開銷, 并且更重要的因素是無法要求用戶在密鑰更新過程中處于在線狀態(tài). 因此, 在所提出的方案中采用不可區(qū)分混淆的技術(shù)來解決上述問題. 密鑰更新的詳細過程描述如下所示.

4.3.1 用戶加入

4.3.2 用戶退出

為了實現(xiàn)OBU 的高效退出操作, 同時保證未退出OBUs 的安全性, 群組的會話密鑰也需要被更新.此外, OBU 的撤銷操作應(yīng)該以一種高效的方式執(zhí)行, 以適應(yīng)資源受限和動態(tài)的VANETs. 為了實現(xiàn)高效的密鑰更新, 本文采用了不可區(qū)分混淆和撤銷列表相結(jié)合的方法. 密鑰更新的具體實現(xiàn)如算法1 所示.

Algorithm 1: 密鑰更新算法Input: Session key: S, Signature: h(update,ti)S, Identity: ID Output: Updated session key S?1 發(fā)布密鑰更新請求(update,ti)2 建立撤銷列表Rev_List 3 設(shè)計密鑰更新算法:4 1) 輸入: 會話密鑰S, 簽名h(update,ti)S, 身份信息ID 5 2) 根據(jù)身份信息ID 對應(yīng)的公鑰驗證簽名, 判斷下列等式是否成立e(g,h(update,ti)S) = e(h(update,ti),gS)7 3) 查找ID 是否在撤銷列表Rev_List, 如果不在則執(zhí)行密鑰更新操作8 4) 密鑰更新生成會話密鑰S?= PRG(S)9 5) 輸出: S?10 混淆密鑰更新算法:11 1) 輸入: 會話密鑰S, 簽名h(update,ti)S, 身份信息ID 12 (下述步驟2)、3)、4) 為混淆程序, 只能以黑盒方式訪問)13 2) 根據(jù)身份信息ID 對應(yīng)的公鑰驗證簽名, 判斷下列等式是否成立14 e(g,h(update,ti)S) = e(h(update,ti),gS)15 3) 查找ID 是否在撤銷列表Rev_List, 如果不在則執(zhí)行密鑰更新操作16 4) 密鑰更新生成會話密鑰S?= PRG(S)17 5) 輸出: S?18 發(fā)布密鑰更新混淆程序19 所有用戶利用混淆程序進行密鑰更新6

在密鑰更新階段, 首先由某個用戶發(fā)布密鑰更新請求, 生成該輪更新的公共參數(shù)(update,ti), 其中update 是更新的原因以及該輪更新的標識符, ti是發(fā)布更新請求時刻的時間戳. 此外, 該用戶根據(jù)撤銷的用戶構(gòu)建用戶撤銷列表Rev_List 用于更新的驗證階段. 之后, 可信第三方TA 或者可信用戶基于BLS簽名算法[23]和偽隨機數(shù)生成器PRG 構(gòu)建密鑰更新算法, 并用不可區(qū)分混淆將密鑰更新程序混淆. 在算法1 中混淆程序為混淆密鑰更新算法中的2)、3)、4), 表示該部分只能以黑盒的方式進行訪問. 最后, 發(fā)布該混淆程序, 在獲取密鑰更新混淆程序之后, 群組內(nèi)所有用戶都可以利用混淆程序生成新的會話密鑰. 3.2節(jié)給出了針對該更新階段的威脅模型, 形式化定義了攻擊者具備的能力. 之后, 在5.1 節(jié)安全性分析中, 將給出相應(yīng)的安全性證明.

5 安全和性能分析

本節(jié)對本文協(xié)議進行了安全性和性能分析. 針對所定義的威脅模型進行了相應(yīng)的安全性分析, 并利用PBC 密碼學(xué)庫進行模擬和對比. 具體分析如下所示.

5.1 安全分析

本協(xié)議在密鑰協(xié)商階段的安全性基于非對稱加密算法RSA 的安全性, RSA 是學(xué)術(shù)界和工業(yè)界公認的安全加密算法. 為了保證算法的安全性需要選取1024 位隨機數(shù)種子, 之后, 由該隨機種子生成長度為128位的公私鑰對.

定義 3(敵手優(yōu)勢) 在游戲GS, GC和GU中, 敵手A 的優(yōu)勢分別被定義為advantageGS(k),advantageGC(k) 和advantageGU(k), 由于在每個游戲中敵手都能以至少1/2 的概率猜測正確, 為了能表現(xiàn)出敵手對協(xié)議的攻擊能力, 即贏得游戲的概率, 敵手的優(yōu)勢被定義如下

定理1如果對于可忽略的ε 有advantageGS<ε 和advantageGC<ε, 則所提出的方案能保證安全的密鑰協(xié)商.

證明:假設(shè)有一個敵手A 以不可忽視的優(yōu)勢贏得了游戲GS, 那么挑戰(zhàn)者C 就能夠破壞RSA 加密算法Enc() 的語義安全. 由于GS的定義完全遵循加密方案的語義安全的定義. 因此, 如果RSA 加密算法是語義安全的, 那么任何一個敵手都不能以不可忽視的優(yōu)勢贏得游戲GS. 否則, 將與RSA 加密算法Enc() 的語義安全相違背. 另一方面, 游戲GC模擬已知的會話密鑰攻擊. 由于在所提出的方案中, 子密鑰在每一個會話中都是獨立選擇的, 因此將前一個會話密鑰透露給敵手并不影響當前會話的安全性. 即使A可以訪問Reveal() 寓言機, 他/她也無法以不可忽視的優(yōu)勢贏得游戲GC.

定理2如果對于可忽略的ε 有advantageGU<ε, 則所提出的方案能保證密鑰更新階段的安全性.

證明:假設(shè)有一個敵手A 以不可忽視的優(yōu)勢贏得了游戲GU, 那么挑戰(zhàn)者C 就能夠完成下列任意類型的攻擊: 1) 以不可忽略的優(yōu)勢ε1攻破BLS 簽名算法[23]在選擇消息攻擊下的存在性不可偽造; 2) 以不可忽略的優(yōu)勢ε2破壞不可區(qū)分混淆的不可區(qū)分性; 3) 以不可忽略的優(yōu)勢ε2預(yù)測偽隨機數(shù)生成器PRG的輸出. 如果敵手A 能夠以不可忽視的優(yōu)勢ε 贏得了游戲, 意味著挑戰(zhàn)者C 利用敵手A 的能力能夠成功攻擊上述三種安全密碼學(xué)方案的其中一種. 由于實際上, 挑戰(zhàn)者無法對BLS 簽名方案[23], 不可區(qū)分混淆以及偽隨機數(shù)生成器PRG 進行任何有效的攻擊. 因此, 如果所利用的密碼學(xué)方案是安全的, 那么任何一個敵手都不能以不可忽視的優(yōu)勢贏得游戲GU. 否則, 將與上述密碼學(xué)方案的安全相違背.

此外, 本文提出的密鑰協(xié)商協(xié)議還具備以下安全特性.

(1) 會話密鑰的前后向安全性: 后向安全性保證了OBU 退出之后后續(xù)通信的安全性, 而前向安全性則保護了OBU 加入之前的會話安全性. 所提出協(xié)議的密鑰更新能夠保證協(xié)議的前后向安全性.具體來說, 當OBU 加入時, RSU 會更新會話密鑰, 從而保證群組通信的前向安全性. 并且, 會話密鑰通過混淆程序IOupdate進行更新, 從而能夠保證協(xié)議的后向安全性. 顯然, 由于被撤銷的OBU 持有先前的會話密鑰, 因此不能保證撤銷用戶退出后的前向安全性.

(2) 抵抗中間人攻擊: 在密鑰協(xié)商階段, 子密鑰的加密是使用接收者的公鑰進行加密, 解密操作只有使用接收者的私鑰才能完成. 在密鑰更新階段, 運行不可區(qū)分混淆程序需要通過簽名的驗證, 只有合法的用戶才能通過驗證. 因此, 本文協(xié)議能夠抵抗中間人攻擊.

(3) 抵抗去同步攻擊: 去同步攻擊指攻擊者阻塞或者截取了用戶在密鑰更新階段的信息交互從而阻礙密鑰的更新操作, 使得一方完成了更新而另一方無法完成更新. 在本文協(xié)議中, 密鑰更新階段的不可區(qū)分混淆程序是公開的, 每個合法的群組用戶都能夠獲取到該程序, 之后進行身份認證, 認證通過即可進行密鑰更新. 因此本文協(xié)議能夠抵抗去同步攻擊.

5.2 性能分析

本節(jié)中我們將所設(shè)計的協(xié)議與同類型車聯(lián)網(wǎng)下的密鑰協(xié)商協(xié)議[24,25] 進行模擬實驗對比. 模擬實驗采用的環(huán)境是虛擬機VMware? Workstation 15 Pro 下運行的Ubuntu 12.04.5 LTS 操作系統(tǒng). 其中,主機的配置為Intel(R) Core(TM) i7-10510U CPU @1.80 GHz 2.3 GHz, 運行內(nèi)存8.00 GB, 基于X64處理器. 設(shè)置的虛擬運行內(nèi)存為2 G, 硬盤內(nèi)存為20 G, 處理器個數(shù)為1 個. 實驗中利用C 語言進行代碼編寫, 使用的編譯器是Ubuntu 系統(tǒng)自帶的gcc 編譯器. 在代碼編寫過程中主要使用Pairing-Based Cryptography(PBC) Library 版本號為pbc-0.5.14.

5.2.1 密鑰協(xié)商階段對比試驗分析

鑰協(xié)商階段, 本文提出的協(xié)議基于RSA 算法進行加密傳輸每個OBU 的子會話密鑰, 協(xié)議[24,25] 則采用傳統(tǒng)的Diffie-Hellman[26]進行密鑰協(xié)商. 圖5 展示了本文協(xié)議與協(xié)議[24,25]在密鑰協(xié)商階段每個用戶所需的計算時間開銷對比. 由圖5 可以看出本文協(xié)議在密鑰協(xié)商階段所需的計算開銷低于協(xié)議[24,25].

圖5 密鑰協(xié)商階段對比試驗分析Figure 5 Comparison of key agreement phase

5.2.2 密鑰更新階段對比實驗分析

密鑰更新階段, 本文協(xié)議基于BLS 簽名和不可區(qū)分混淆進行密鑰更新, 而協(xié)議[24,25] 則需要再次運行協(xié)議才能實現(xiàn)密鑰更新. 圖6 展示了本文協(xié)議與協(xié)議[24,25] 在密鑰更新階段每個用戶所需的計算時間開銷對比. 由圖6 可以看出本文協(xié)議在密鑰更新階段隨著用戶增加只需要常數(shù)級計算開銷, 而協(xié)議[24,25]所需的計算開銷高于本文協(xié)議并且隨著用戶數(shù)量的增加而增加.

6 總結(jié)

針對VANET 資源受限環(huán)境下的安全高效密鑰協(xié)商問題, 本文提出了一種基于SBIBD 結(jié)構(gòu)的VANETs 密鑰協(xié)商協(xié)議. 特別地, 基于移位寄存器, 提出了區(qū)組設(shè)計結(jié)構(gòu)的構(gòu)建方案, 并且為了支持VANETs 環(huán)境可能面臨的大規(guī)模數(shù)據(jù)處理情況, 基于MapReduce 分布式計算模型給出了SBIBD 結(jié)構(gòu)的具體構(gòu)建方案, 從而支持高效的密鑰生成. 此外, 利用不可區(qū)分混淆技術(shù), 本文設(shè)計了高效的密鑰更新操作, 實現(xiàn)了動態(tài)VANETs 的高效密鑰更新. 在安全性方面, 本文對密鑰生成和密鑰更新階段的威脅模型進行了詳細地定義并給出了對應(yīng)的安全性分析. 在性能分析方面, 本文基于PBC 庫對本文協(xié)議進行模擬并于相關(guān)工作進行對比研究. 安全性分析和性能分析表明所提出的方案能夠提供較高的安全性和運行效率,適用于資源受限的VANET 環(huán)境.

圖6 密鑰更新階段對比試驗分析Figure 6 Comparison of key update phase

正宁县| 团风县| 小金县| 格尔木市| 平陆县| 海林市| 新密市| 宜城市| 新河县| 繁昌县| 定安县| 晋州市| 福建省| 揭东县| 襄汾县| 公主岭市| 永兴县| 吉首市| 泉州市| 邳州市| 鄂尔多斯市| 都江堰市| 沐川县| 福鼎市| 姜堰市| 寻甸| 古蔺县| 塔河县| 华宁县| 德庆县| 昌黎县| 南乐县| 新和县| 萝北县| 会同县| 呈贡县| 鲁甸县| 桑日县| 汉川市| 枞阳县| 乳源|