王林冬,田有亮,楊科迪,肖 曼,熊金波,5
(1.貴州大學 公共大數據國家重點實驗室,貴州 貴陽 550025;2.貴州大學 計算機科學與技術學院,貴州 貴陽 550025;3.貴州大學 密碼學與數據安全研究所,貴州 貴陽 550025;4.貴州大學 貴州省密碼學與區塊鏈技術特色重點實驗室,貴州 貴陽 550025;5.福建師范大學 計算機與網絡空間安全學院,福建 福州 350117)
電子證照是指由權威機構依法頒發與紙質證件具有同等法律效力的各類電子證明文件,如身份證、戶口簿、駕駛證、營業執照等。相比紙質證件,電子證照不僅可以有效減少紙質材料使用,同時可以有效突破時間和空間的限制,方便企業和個人多次調閱、使用。因此,全面實現電子證照互認共享有利于促進政務信息資源整合,推動社會經濟高效發展,改善人民生活質量。
目前,我國正在探索電子證照的安全共享存證方案。如上海市于2022年7月1日起施行的《上海市電子證照管理辦法》指出,發證單位、用證單位、社會化用證主體應當嚴格執行市電子證照庫的安全管理要求,確保電子證照合法合規使用。通常,電子證照共享存證過程中,首先由權威發證方頒發具有與紙質證件同等法律效力的電子證照,然后持證方根據實際所需可將電子證照副本提交給相關存證方,最后由存證方代表持證方本人完成具體業務辦理。
由于電子證照的共享留存剛開始進入人們的視野,其安全問題還未能引起各專家學者的廣泛關注[1]。如圖1所示,電子證照在共享留存過程中,存在非真實授權使用、泄露后無法追溯等安全問題。針對電子證照共享留存過程中真實授權使用的可驗證問題,傳統方法僅通過電子簽章技術可確保發證方發證行為的真實可驗證,但是忽略了持證方、存證方操作行為的真實性可驗證問題。特別是存證方在接收電子證照時無法驗證當前電子證照是否經過持證方本人的真實授權。針對電子證照泄露后的可追溯問題,傳統方法通過區塊鏈保存證照流轉信息,在電子證照完整的前提下可實現泄露追溯。但是,若電子證照遭受破壞,則追溯者無法進行追溯。更為嚴重的是,若電子證照遭受共謀攻擊,而傳統方法無法檢測出所有參與共謀的攻擊者。因此,傳統方法在實際應用中存在真實授權使用的可驗證問題及證照泄露后的可追溯問題,亟需一種可驗證可追溯的電子證照存證方案,為電子證照的共享與留存提供安全保障。

圖1 電子證照使用中的安全問題
針對電子證照共享留存過程中持證方授權使用的可驗證問題,傳統的電子簽章方法是將信息加密和身份認證相結合,具有簽名可識別、簽名內容不可篡改的特點。然而,該方法只能驗證證照來源的真實性,且簽名的表現形式是可見的,這使得簽名容易被惡意攻擊者破壞。為此,該方案基于可逆信息隱藏技術[2-4]以及數字簽名設計電子證照模型,實現電子證照共享留存過程中隱式三方可驗證。
針對電子證照的泄露追溯問題,傳統方法采用區塊鏈存儲完整的證照信息,無法對遭到破壞的證照進行追溯。而惡意存證方可能會泄露證照副本,為逃避追溯,對證照的副本圖像進行共謀、剪切、亮化、噪聲等攻擊。為此,文中方案引入魯棒水印算法[5-7],充分利用魯棒水印嵌入水印信息魯棒的特點[8-10],從而實現電子證照在泄露及遭受惡意破壞后仍可追溯。此外,傳統的強魯棒水印算法存在水印信息丟失不可恢復的問題,故文中基于BCH(Bose Chaudhuri Hocquenghem)碼改進傳統的強魯棒水印算法,實現水印失真可糾錯,從而進一步提高證照泄露追溯效率。文中工作的具體貢獻如下:
(1) 設計電子證照安全共享存證系統模型。針對電子證照非授權使用問題以及泄露后無法追溯問題,基于實際應用特點設計電子證照安全共享存證系統模型,確保電子證照發證方、持證方、存證方三方可驗證性及泄露后可追溯性。
(2) 構造可糾錯魯棒水印算法。針對證照泄露追溯問題,構造可糾錯魯棒水印算法。通過對現有魯棒性強的水印算法進行改進,在不增加原有擴頻水印冗余信息的前提下,為水印算法增加水印信息可糾錯的功能,從而使得算法在遭受攻擊后仍可恢復丟失的擴頻水印信息,從而提高水印算法在抗高斯噪聲、抗中值濾波等常見強圖像攻擊時的魯棒性。
(3) 構建可驗證可追溯電子證照存證方案。首先,三方各自生成簽名消息;然后,通過可逆信息隱藏技術分別嵌入到證照載體中,確保簽名信息嵌入后三方可驗證;最后,通過所提魯棒水印算法將三方身份信息分別嵌入到證照載體的RGB通道中,確保證照泄露后的高效可追溯。
(4) 實現電子證照的可驗證留存與共謀泄露追溯。通過安全性分析證明,所提可驗證可追溯電子證照存證方案,能在確保三方可驗證的前提下實現證照泄露可追溯;通過實驗分析證明,所提魯棒水印算法具有較強的魯棒性,并驗證了文中模型具有較高的泄露追溯效率以及較強的共謀者檢測能力。
魯棒水印算法在面對多種常見圖像攻擊時具有較強的魯棒性。因此,該類水印算法被廣泛應用于解決圖像版權保護問題。傳統電子證照共享留存方法在受到常見的圖像攻擊后,無法驗證發證方的真實性,且證照泄露后無法進行有效追溯,而通過在文中方案中應用魯棒水印算法,可以確保證照泄露后的高效可追溯。
魯棒水印算法[11]RW=(KeyGen,EmWater,DeWater),由3個基本算法構成。其描述如下:
(1) KeyGen():輸出水印的嵌入提取密鑰Kw。
(2) EmWater(I,W,Kw):水印嵌入算法以待嵌入水印圖像載體I、二值水印信息W以及水印密鑰Kw為輸入,輸出水印圖像Iw。
(3) DeWater(Iw,Kw):水印提取算法以已嵌入水印的水印圖像Iw以及水印密鑰Kw為輸入,輸出水印信息W。
可逆信息隱藏技術在完整提取水印信息后可以無損恢復原始載體圖像。該技術被廣泛應用于軍事、醫學等對圖像敏感的領域,在這些領域中原始載體圖像的失真是不被允許的[12]。若通過魯棒水印算法嵌入簽名信息,則原始簽名原文已被破壞,從而無法進行有效驗證。因此,通過在文中方案中運用可逆信息隱藏技術,可確保電子證照在共享留存過程中的三方可驗證性。
可逆信息隱藏技術[12]RDH=(EmWaterR,DeWaterR),由兩個基本算法構成。其描述如下:
(1) EmWaterR(I,W):以待嵌入秘密數據的載體圖像I以及二值秘密數據W為輸入,輸出嵌入秘密數據后的圖像Iw。
(2) DeWaterR(Iw):以已嵌入秘密數據的圖像Iw為輸入,輸出秘密數據W以及完整恢復的原始載體圖像I。
定義p為大素數,Fp為有限域,選擇a,b∈Fp作為橢圓曲線E的參數,定義P為橢圓曲線E上的一點,并將其作為群G的生成元,群的階為q,定義Hv()為摘要長度為v比特的哈希算法。
SM2數字簽名算法[13-14]SM2=(Setup,KeyGen,SignGen,SignVerif),可由4個基本算法構成。其基本描述如下:
(1) Setup(λ):初始化算法,給定安全參數λ,輸出橢圓曲線參數params=(p,a,b,P,q)。

(3) SignGen(params,SK,M):簽名算法,給定參數params、私鑰SK以及消息M,輸出簽名C=(r,s)。
(4) SignVerif(params,PK,M′,C′):驗證算法,給定參數params、公鑰PK、消息M′以及簽名C′=(r′,s′),輸出驗證結果b∈{0,1}。驗證通過則輸出1;否則,輸出0。
SM2屬于橢圓曲線公鑰密碼算法,具有比RSA碼驗簽速度快、存儲空間小和運算復雜度低的特點,其安全性建立在求解橢圓曲線離散對數問題的困難性之上。文獻[15]證明了若哈希函數是均勻且抗碰撞的,則SM2數字簽名算法在通用群模型[16]中對適應性選擇消息攻擊具有存在不可偽造性[15]。
SM3密碼雜湊算法[17]可以將任意長度的消息壓縮成固定長度的摘要消息,其首先將輸入數據按照512 bit的大小分成若干組,最后一組不足512 bit時,按規則填充至512 bit。經過多輪迭代壓縮后,輸出長度為256 bit的摘要值。
該算法于2012年發布為密碼行業標準(GM/T 0004—2012),2016年發布為國家密碼雜湊算法標準(GB/T 32905—2016),具有較強的抗碰撞性,能夠有效避免高概率的局部碰撞。輸入數據即使變化1 bit,輸出數據也將發生巨大變化,計算結果具有惟一性。因此,通過在文中方案中運用SM3密碼雜湊算法生成三方的惟一身份識別碼,具有較高的安全性。
BCH碼是一種線性分組循環碼,具有結構簡單、編碼方便以及可以糾正多位隨機錯誤的優點,尤其當碼字較短時,其性能更優越。在水印嵌入前,利用BCH碼對水印進行預處理。在提取水印時,即使部分水印序列出現失真,水印算法仍然能夠依靠BCH碼恢復部分丟失的水印信息,從而有效提高算法的魯棒性。BCH碼碼長可以表示為n=qm-1,其中m為整數,碼字的前k個比特為信息比特,后n-k個比特為校驗位,由其生成多項式g(x)=1+g1x+…+gn-k-1xn-k-1+xn-k指定,其中gi∈GF(q)。碼字c=(c0,…,cn-1)的多項式表示形式為c(x)=c0+c1x+…+cn-1xn-1。編碼操作可以用多項式的形式表示為c(x)=g(x)u(x),其中u(x)是要編碼的信息。Berlekamp-Massey(BM)算法是BCH碼的一個代數解碼算法。當q=2和m=3時,碼字長度為n=7 bit,信息位為k=4 bit,校驗位為3 bit。
電子證照的非真實授權使用問題及泄露后無法追溯問題嚴重威脅著持證方個人的信息安全。基于實際應用特點,設計了電子證照安全共享存證系統模型,確保電子證照的三方可驗證性及泄露后可追溯性。該模型如圖2所示。

圖2 系統模型
電子證照安全共享存證系統模型涉及發證方、持證方、存證方、區塊鏈網絡[18-19]、大數據平臺等5個主體。
(1) 發證方:頒發證照的權威機構,其職責首先是審核證照申請人的基本信息并生成證照樣板,然后在該樣板中嵌入自身身份信息并進行簽名,最后將其頒發給相應的持證方。
(2) 持證方:持有證照的人群,必要時可在證照中嵌入自身身份信息并進行簽名,以便向存證方提交可驗證的證照副本。
(3) 存證方:辦理政務的存證機構,其職責首先是驗證證照來源的真實性,包括是否來源于真實的頒發機構以及是否經過持證方真實授權,其次是在合法的證照副本中嵌入自身身份信息并進行簽名留存。
(4) 區塊鏈網絡:存儲證照流轉過程中的驗證信息,確保證照泄露后可追溯。
(5) 大數據平臺:存儲可驗證可追溯證照副本。
由于實際應用中,惡意的持證方可能出現盜用他人證照的行為,惡意的存證方可能出現泄露他人證照的行為。因此,文中系統建設存證過程中電子證照可能受到如下攻擊:
(1) 盜用:惡意用戶通過某種途徑獲得其他真實持證方的電子證照后,其可能在未經證照持證方本人真實授權的前提下盜用該電子證照。
(2) 泄露:惡意用戶可能在未經持證方本人授權的情況下泄露其證照副本。
為了實現電子證照的安全共享,所提出的系統模型應實現以下目標:
(1) 可驗證性:為避免惡意用戶的盜用,持證方應可對發證方頒發的電子證照進行身份驗證,確保該電子證照來源于真實的發證方,存證方應可對持證方提交的電子證照副本進行身份驗證,確保該電子證照來源于真實的發證方且經過真實持證方的授權。
(2) 可追溯性:為實現證照泄露可追溯,方案中應設計合理的泄露追溯機制。當發現網絡中存在可疑的證照泄露副本時,追溯者能及時、有效追溯到泄露者。
(3) 一致性:為實現證照泄露可追溯,電子證照中的追溯信息必須和用戶的真實身份進行一致性綁定。
(4) 魯棒性:為實現證照泄露可追溯,保留在電子證照中的追溯信息應具備較強的魯棒性,使其不易被惡意用戶篡改或去除。
傳統強魯棒水印算法雖然在抗各種圖像攻擊時具備一定的魯棒性,但是不具備水印信息丟失可糾錯的功能,這導致嵌入三方身份信息的電子證照容易被惡意泄露者篡改或去除。因此,傳統強魯棒水印算法不能較好滿足文中所提方案的應用需求。為此,對傳統強魯棒水印算法中魯棒性較好的HUANG等[11]提出的水印算法進行改進,提出可糾錯魯棒水印算法。首先,結合糾錯碼可借助冗余信息還原丟失信息的特點,設計可糾錯的擴頻水印,從而在不增加原有擴頻水印冗余信息的前提下為水印算法增加水印信息可糾錯的功能;其次,利用雙層離散余弦變換(Discrete Cosine Transform,DCT)策略獲取圖像DCT系數以嵌入水印,有效減少水印圖像在遭受攻擊后的失真,從而進一步提高水印算法的總體魯棒性。
(1) 水印糾錯碼生成。 假設原始水印序列包含n個組件,記為W=(?1,?2,…,?n),且?i∈{0,1}。 將W按照每4 bit劃分成一組作為BCH碼的信息位,總共有n/4個組。 編碼后,每組得到一個7 bit的碼字,其中后3位為校驗位。 經BCH碼編碼后水印序列包含m個組件,記為θ=(θ1,θ2,…,θm),且m=7n/4。
(2) 水印密鑰生成。 生成大小為m×2n的隨機數矩陣Λ,且Λi,j∈(0,1),其中i=1,2,…,m;j=1,2,…,2n。 通過施密特正交化將Λ中的每一列向量轉化為標準正交向量組,記為Ai=[Λi,1,Λi,2,…,Λi,2n],其中i=1,2,…,m。 由正交向量組構成的新矩陣可作為水印的嵌入提取密鑰Kw。
(3) 可糾錯擴頻水印生成。 生成大小為2n的擴頻水印K,記為K=(κ1,κ2,…,κ2n)。 2n個組件通過的計算公式為
(1)
其中,τ=1,2,…,2n且i=1,2,…,m。
(1) 水印圖像特征向量獲取。 通過在原始載體圖像上應用雙層DCT,從而獲取圖像的特征向量。 將水印信息嵌入DCT低頻系數中水印算法魯棒性更好,但是不可見性表現較差;將水印信息嵌入DCT高頻系數中,水印算法不可見性較好,但是魯棒性表現較差。 因此,文中采用折中的策略,提取屬于中頻系數且行列索引為偶數的DCT系數以構造新矩陣。 首先將原始圖像切分成10×10的非重疊子塊,然后分別在每一個子塊上應用首層DCT得到DCT系數矩陣μ,并從其中頻系數中選擇一個行列索引為偶數的值構造成一個新的矩陣;其次在新構造的矩陣上應用二層DCT得到新的DCT系數矩陣μ′;最后選擇μ′中所有行列索引為偶數的系數構成圖像特征向量,記為φ=[γ1,γ2,…,γ2n]。

(2)
其中,δ表示水印的嵌入強度,其值的確定是基于不可見性和魯棒性的折中。

(3)
其中,C(·)表示兩個同維度向量的內積,Ai通過Kw獲得。
(3) 水印糾錯。 將K*按7 bit為一組進行劃分,得到Ek=(εk1,εk2,…,εk7),其中k=1,2,…,m/7。 針對每一個Ek,通過BM算法進行解碼,從而得到4 bit水印信息。在此過程重復m/7次后,得到提取的所有水印信息。
針對電子證照的盜用問題,傳統方法采用電子簽章技術僅能確保發證方的真實性可驗證;然而持證方與存證方的真實性無法驗證。針對電子證照的泄露追溯問題,傳統方法通過區塊鏈技術保存證照流轉信息,在電子證照完整且不被破壞的情況下,追溯者可以通過區塊鏈網絡進行泄露追溯。然而,一旦電子證照遭受攻擊者的惡意破壞,該方法就不能進行有效追溯。而且,傳統方法無法抵御多人共謀攻擊,即不能準確檢測出多個參與共謀的泄露者。因此,在文中方案中基于魯棒水印與可逆信息隱藏技術設計電子證照模型,并基于此模型設計電子證照共享存證協議,從而確保電子證照流轉過程中三方可驗證性以及泄露后高效可追溯。此外,該模型若基于所提可糾錯魯棒水印,文中方案不僅具有更好的單一泄露者檢測能力,而且具有較好的共謀者檢測能力。
文中模型的主要構建思路:首先,三方分別通過SM3密碼雜湊算法生成256 bit的雜湊值作為三方各自的惟一身份識別碼γa、γb和γc,實現三方身份信息與電子證照的一致性綁定。其次,通過魯棒水印算法將三方參與者的惟一身份識別碼分別嵌入到證照圖像的RGB通道中,為電子證照泄露后的追溯提供支持。為確保三方在執行各自操作時互不干擾,在三方各自嵌入身份信息階段,發證方的身份識別碼被嵌入到證照圖像的紅色(R)通道中,持證方的身份識別碼被嵌入到證照圖像的綠色(G)通道中,存證方的身份識別碼被嵌入到證照圖像的藍色(B)通道中。最后,將三方參與者的簽名信息通過可逆信息隱藏技術嵌入到電子證照的RGB通道中,實現簽名信息嵌入后的可驗證。電子證照模型如圖3所示。

圖3 電子證照模型
首先,為確保發證方泄露證照后的可追溯性,權威發證方在頒發可信電子證照時需通過魯棒水印算法在電子證照R通道αr中嵌入其惟一身份識別碼γa。同時,為確保發證方可驗證性,權威發證方在頒發可信電子證照時需通過可逆信息隱藏技術在嵌入其身份碼后的電子證照R通道βr中嵌入其簽名信息μr。其次,為確保持證方泄露證照后的可追溯性,持證方在提交電子證照副本時需通過魯棒水印算法在電子證照G通道αg中嵌入其惟一身份識別碼γb。再次,為確保存證方泄露證照后的可追溯性,存證方在得到電子證照時需通過魯棒水印算法在電子證照B通道αb中嵌入其惟一身份識別碼γc。同時,為確保存證方的可驗證性,存證方需通過可逆信息隱藏技術在嵌入其身份碼后的電子證照B通道βb中嵌入其簽名信息μb。值得注意的是,由于持證方在嵌入簽名信息前需要審核持證方是否已嵌入自身身份信息,因此持證方嵌入簽名信息需在存證方嵌入身份信息之后。最后,為確保持證方的可驗證性,持證方需通過可逆信息隱藏技術在嵌入其身份碼后的電子證照G通道βg中嵌入其簽名信息μg。
由于一個持證方可能對應多個存證方,所以在提交可信證照時持證方提供給存證方的電子證照是只含兩方信息的證照副本,不同存證方得到的是不同的證照副本。存證方在拿到其對應的證照副本之后分別嵌入自身的身份識別碼,一個證照副本只可能嵌入一個存證方的身份信息,從而在進行泄露追溯時確保不同證照副本間提取身份識別碼互不干擾。
為了更詳細地闡述所提可驗證可追溯電子證照存證方案,基于所提電子證照模型設計電子證照共享存證協議,協議具體描述了電子證照在三方流轉過程中文中方案的具體工作。所提電子證照共享存證協議具體過程如圖4所示。
本協議的初始階段:首先,發證者、持證者、存證者均基于SM2數字簽名算法KeyGen生成各自的公私密鑰對,各自持有私鑰SKa、SKb、SKc,并向區塊鏈網絡公開公鑰PKa、PKb、PKc,以便生成各自的SM2簽名信息,從而實現證照嵌入簽名信息后的可驗證。其次,三方各自以其自身持有的公鑰及其身份信息作為輸入,取SM3雜湊算法256 bit的雜湊值作為其惟一身份識別碼γa、γb、γc,以完成電子證照與各參與方身份信息的一致性綁定。三方的身份信息可以包括參與方的姓名、單位、職位、工號等。最后,基于魯棒水印算法生成全局魯棒水印嵌入提取密鑰Kw,以便各參與方將各自惟一身份識別碼嵌入到證照載體中。

圖4 電子證照共享存證協議
文中所提電子證照共享存證協議具體過程如下:
步驟1 權威證照頒發。首先,為實現發證方身份信息與證照通道αr的嵌入式綁定,發證方通過EmWater(αr,γa,Kw)將γa嵌入到αr中,得到含發證方身份信息的證照R通道βr;其次,為確保通道證照的不可偽造,發證方通過SignGen(params,SKa,βr)以βr作為待簽名原文生成其簽名信息μr,并通過EmWaterR(βr,μr)將μr嵌入到βr中;最后,將含發證方認證信息的證照原件αrgb_r=(δr,αg,αb)發送給持證方,同時將相關驗證信息{γa,params,PKa,βr,μr}公布到區塊鏈,從而完成權威證照的可驗證頒發。
步驟2 可信證照提交。首先,持證方通過DeWaterR(δr)得到發證方簽名原文βr及簽名信息μr,并通過SignVerif(params,PKa,βr,μr)驗證證照來源的真實性;其次,為完成持證方身份信息與所提交證照的一致綁定,持證方以類似步驟1的方法將γb嵌入到αg中,從而得到包含持證方身份信息的證照G通道βg;最后,將含兩方信息的證照副本αrgb_gg=(δr,βg,αb)發送給存證者,同時將相關驗證信息{γb,params,PKb,βg}公布到區塊鏈,從而完成電子證照的可信提交。
步驟3 返回授權。首先,存證方通過DeWaterR(δr)得到發證方簽名原文βr及簽名信息μr,并通過SignVerif(params,PKa,βr,μr)驗證證照來源的真實性;其次,為完成存證方身份信息與所提交證照的一致綁定,存證方采用類似步驟1的方法將γc嵌入到αb中,從而得到包含存證方身份信息的證照B通道βb;然后,以βr、βg、βb作為待簽名原文生成對應的簽名信息μb,并通過EmWaterR(βb,μb)將μb嵌入到βb中;最后,將含三方信息的證照副本αrgb_bb=(δr,βg,δb)返回給相應持證方,同時將相關驗證信息{γc,params,PKc,βr‖βg‖βb,μb}公布到區塊鏈。
步驟4 授權證照提交。首先,持證方通過DeWater(δb,Kw)確認存證方已嵌入自身身份信息;其次,為實現證照真實授權使用的可驗證性,持證方以βr和βg作為待簽名原文,通過SignGen(params,SKb,βr‖βg)生成對應的簽名信息μg,并通過EmWaterR(βg,μg)將μg嵌入到βg中;最后,將含三方認證信息的證照副本αrgb_g=(δr,δg,δb)發送給存證方,同時將相關驗證信息{γb,params,PKb,βr‖βg,μg}公布到區塊鏈,從而完成電子證照的可驗證可追溯存儲。在得到證照副本之后,存證方可通過DeWaterR(δg)得到持證方簽名原文βg及簽名信息μg,并通過SignVerif(params,PKb,βg,μg)驗證證照是否得到持證方本人的真實授權。
首先分析所構造的可驗證可追溯電子證照存證方案具有三方可驗證性,其次分析其泄露可追溯性。
性質1如果SM2簽名算法滿足抗存在偽造性,則所提電子證照存證方案具有三方可驗證性。
證明:僅通過魯棒水印算法嵌入各參與方的簽名后證照載體的數據形式已發生改變,這使得即便能正確提取出簽名消息也無法對欲保護的證照進行有效驗證。而可逆信息隱藏技術具有在提取水印后能夠無損恢復原始載體圖像的特點,這使其能夠對欲保護的證照進行有效驗證。由5.2節可知,由于證照生成過程中,為確保證照的不可偽造,發證方首先以βr作為待簽名原文,并通過可逆信息隱藏技術將μa嵌入到βr中,然后將含有其認證信息的證照原件αrgb=(δr,αg,αb)發送給持證者。由于可逆信息隱藏技術具有在提取水印后能夠無損恢復原始載體圖像的特點,所以持證方收到證照原件αrgb=(δr,αg,αb)后,可以通過以下方式驗證證照是否源于真實的發證方:
(βr,μr)=DeWaterR(δr) ,
(4)
b=SignVerif(params,PKa,βr,μr) 。
(5)
由于SM2簽名算法滿足抗存在偽造性[15],因此,當證照αrgb_r=(δr,αg,αb)驗證通過時,可以確定其源于真實的發證方即本存證模型滿足發證方的可驗證性。同理,文中模型可以通過類似的方法驗證持證方、存證方參與行為的真實性。因此,文中電子證照存證模型具有發證方、持證方、存證方的三方可驗證性。
性質2若魯棒水印算法具有較強的魯棒性,則所提電子證照存證方案具有泄露可追溯性。
證明:由5.2節可知,由于證照存證過程中,存證方需將自己的惟一身份識別碼γc嵌入到證照的B通道αb中,形成含自身身份信息的證照通道βb。而且,持證方通過DeWater(δb,Kw)確認存證方已嵌入自身身份信息后,才會對其證照進行簽名,所以,若某處出現涉嫌泄露的證照副本,則追溯者可通過魯棒水印算法中的DeWater,快速從泄露的副本證照αrgb_b=(δr,δg,δb)中獲取存證時嵌入的水印信息,并通過最佳匹配原則快速找出數據庫中與所提水印信息匹配率最高的存證方惟一身份識別碼,該身份識別碼對應的存證方即可推斷為該證照副本的潛在泄露方。因此,該存證追溯模型具有可追溯性。
通過實驗對所提模型的追溯效率進行分析。實驗中,采用1臺主機(CPU為Intel Core i5 7500,內存為8 GB,操作系統為Windows 10)模擬大數據平臺,4臺主機(CPU為Intel Core i3 2120,內存為4 GB,操作系統為Windows 7)模擬共識節點,選用C++作為主要編程語言模擬實現所提可糾錯魯棒水印算法、可逆信息隱藏技術、SM2簽名算法、SM3密碼雜湊算法和實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)共識算法。基于上述實驗環境,如圖5所示,以大小為640×320的電子證照圖像作為證照載體進行多次存證與追溯實驗。
為完整分析整個證照存證執行的時間消耗,首先通過所提魯棒水印算法將三方各自的惟一身份識別碼嵌入到證照載體對應的通道中,其次使用可逆信息隱藏技術將三方各自SM2簽名信息嵌入到證照載體對應的通道中,最后利用PBFT共識算法將交易信息寫到鏈上。基于此,對電子證照的發證、持證、存證進行了完整實驗,相應執行時間如圖6所示。從圖6可以看出,各參與者的處理操作總時間消耗均在2 s左右。因此,文中模型的操作時間代價能很好滿足實際應用需要。

圖5 測試圖

圖6 各方電子證照操作執行時間代價
非法轉發者通常會對含水印的合法副本進行不同程度的攻擊,以得到無法追責的非法副本。對于單一攻擊者,剪切、縮放、JPEG壓縮、高斯噪聲、亮化、中值濾波是較強的攻擊;對于多攻擊者,Max、Min、Mean等攻擊是最為常見的攻擊。其中,Max、Min、Mean攻擊指的是對于某一位置像素取所有合法副本的最大值、最小值、平均值作為非法副本對應位置像素的最終值。
為分析本模型在不同水印算法下的泄露追溯效果,分別基于文中、HUANG[11]、HU[20]、SUN[21]等4種魯棒性較強的水印算法將三方256 bit的惟一身份識別碼嵌入數字載體中,并進行不同程度的攻擊,所得檢測效果如表1所示。三方各自的身份識別碼為256 bit,以文中所提可糾錯魯棒水印算法進行嵌入時,身份識別碼經擴頻后為448 bit,算法各通道載體的最大容量為512 bit,所以各通道載體的最大容量能夠滿足所需。
表1為單一攻擊者對不同水印算法下的證照載體分別進行10%~50%的剪切攻擊、50%~90%的縮放攻擊、10%~90%的JPEG壓縮攻擊、0.1~0.5的高斯噪聲攻擊、10~50的亮化攻擊、2~6的中值濾波攻擊。從表1可以看出,若對證照載體進行剪切、縮放攻擊,文中模型在基于上述4種水印算法時均能很好地檢測出證照泄露者。然而,對于JPEG壓縮攻擊,文中模型僅在基于文中及HU[20]提出的水印算法時能夠較好地檢測出證照泄露者。此外,對于亮化攻擊,文中模型僅在基于文中及HUANG[11]提出的水印算法時能夠較好地檢測出證照泄露者。總體,若以目前較為魯棒的水印算法為基礎,文中模型均能很好地檢測出單一攻擊者環境下的證照泄露者。此外,文中提出水印可糾錯的魯棒水印算法,這使得文中本模型在基于所提魯棒水印算法時,相比基于其他水印算法在高斯噪聲、中值濾波、JPEG壓縮等強圖像攻擊下,能更好地檢測出單一攻擊者環境下的證照泄露者。

表1 單攻擊者檢測識別效果
若定義原始三方惟一身份識別碼與檢測所得哈希的匹配率為η=(lh-dhd)/lh,其中lh為原始三方惟一身份識別碼的比特長度,dhd為原始身份識別碼與檢測所得身份識別碼的漢明碼距離。文中通過該匹配率評估所提模型的共謀檢測效率,若共謀者與非共謀者的匹配率之間存在明顯的界限,則說明文中模型能夠較好地檢測出參與共謀的證照泄露者。在3種共謀攻擊下,文中模型在2人共謀(A+、B+、C、D、E)及3人共謀(A+、B+、C+、D、E)時的共謀檢測效率分別如圖7與圖8所示,“+”表示參與共謀。
從圖7可知,在兩人共謀(A+、B+、C、D、E)情況下,針對3種共謀攻擊,本模型在基于上述4種水印算法時都能很好檢測出證照泄露者。從圖8可知,在3人共謀(A+、B+、C+、D、E)情況下,針對Max、Min攻擊,文中模型在基于文中、HUANG[11]、HU[20]所提水印算法時均能很好檢測出證照泄露者,而在基于SUN[21]所提水印算法時不能很好檢測出證照泄露者。此外,針對Mean攻擊,該模型在基于文中、HUANG[11]、SUN[21]所提水印算法時均能較好檢測出證照泄露者,而在基于HU[20]所提水印算法時不能很好地檢測出證照泄露者。總體,若共謀參與者較少,則文中模型能夠很好地檢測出參與共謀的證照泄露者。

(a) Max攻擊

(b) Min攻擊

(c) Mean攻擊

(a) Max攻擊

(c) Mean攻擊
為進一步分析文中模型在多共謀者環境下的檢測能力,假設共謀人數規模為1~10人,同時分別以文中、HUANG[11]的水印算法為基礎進行大量的實驗。通過實驗發現,若文中模型基于HUANG[11]與文中的水印算法,非共謀者的檢測匹配率分別不超過65%與63%;為安全起見,分別以66%與64%作為文中模型在HUANG[11]與文中的水印算法下區分共謀者與非共謀者的匹配率閾值。圖9分別展示在共謀人數規模為1~10人且基于HUANG[11]與文中水印算法時本模型共謀者檢測的正確率與錯誤率。從圖9可知,當共謀人數在小于等于8人時,對于3種共謀攻擊,文中模型在基于文中或HUANG[11]的水印算法時,均能正確檢測出所有共謀者。而當共謀人數大于9人時,對于Max與Min攻擊,文中模型的共謀者檢測能力在基于HUANG[11]水印算法時要強于基于文中水印算法時。對于Mean攻擊,文中模型在基于兩類水印算法時的共謀者檢測能力差別不大。

(a) 共謀檢測正確率

(b) 共謀檢測錯誤率
綜合上述分析,在面對JPEG壓縮、噪聲攻擊與中值濾波等強圖像攻擊時,文中模型在基于文中所提可糾錯魯棒水印算法時,在單一攻擊者環境下具有更好的證照泄露者檢測能力。此外,在遭受共謀攻擊時,文中模型基于文中所提魯棒水印算法或基于現有強魯棒水印算法,在共謀人數少于等于8人時,都能100%正確檢測出參與共謀的攻擊者。考慮抗8人共謀攻擊足以滿足實際場景中的應用需求且基于文中所提魯棒水印算法時,文中模型具有更好的單一泄露者檢測能力。因此基于文中所提魯棒水印算法時,文中模型具有更好的證照泄露者檢測能力。
目前針對電子證照應用中安全問題的相關解決方案并不多。針對電子證照跨地區跨部門申請流程復雜、驗證證書難度大、政府信息溝通渠道不暢、訪問權限管理不科學等問題,一種基于區塊鏈的電子證照解決方案被提出。該方案可以有效防止紙質證件在使用中存在的多個問題,使得多個組織之間的信息可以無縫訪問,解決了電子證照共享難的問題。此外,該方案通過靈活的訪問控制和隱私保護策略,保證了信息流通過程中的數據隱私安全[1]。針對傳統電子證照管理方案存在數據偽造、難以共享的問題,一種基于區塊鏈的電子證照存儲和共享模型被提出。該模型基于聯盟鏈、改進的El Gamal數字簽名方案以及改進的PBFT共識算法,能夠有效、快速實現電子證照的安全存儲和共享[22]。針對傳統智慧城市系統中心化導致的數據孤島問題,一種基于區塊鏈的去中心化電子證照庫共享交易系統被提出,實現了電子證照資源跨地區、跨層級共享及強化管理[23]。傳統電子證照的應用解決方案雖然在一定程度上解決了電子證照的安全存儲和共享難題,但卻忽略了電子證照流轉過程中是否經過證照本人的真實授權以及證照泄露且被破壞后無法追溯的問題。
魯棒水印算法是指一類能夠抗多種圖像攻擊的水印算法。即使水印圖像受到攻擊,接收方也依然能從被破壞的水印圖像中提取出水印。因此,該類水印算法被廣泛應用于圖像版權保護領域[24-26]。而如何提高魯棒水印算法抗多種圖像攻擊的魯棒性是研究該類水印算法的難點。惡意攻擊者對水印圖像的常見攻擊主要分為噪聲攻擊、濾波攻擊、壓縮攻擊、幾何攻擊等[27-28]。其中,高斯噪聲、中值濾波、JPEG壓縮攻擊、縮放攻擊等對圖像的破壞比較大,從而使得水印信息丟失嚴重。針對縮放攻擊,自適應量化閾值的差分量化方案利用兩個選定的DCT系數之間的差異來嵌入水印,同時基于自適應嵌入策略最大化量化閾值,有效提高水印算法抗縮放攻擊時的魯棒性[11]。針對幾何攻擊,基于低階Zernike矩的水印算法利用低階Zernike矩在數學上對圖像縮放的不變特性,將水印嵌入低階Zernike矩中,不僅能有效提高算法抗幾何攻擊的魯棒性,而且對JPEG壓縮也具有較強的魯棒性[20]。針對濾波攻擊,基于深度卷積神經網絡的水印算法借助神經網絡預測攻擊對圖像的影響,同時結合離散余弦變換構建水印算法,有效提升算法抗濾波、縮放攻擊時的魯棒性[21]。通過對現有多種先進的魯棒水印算法[11,20-21]進行實驗對比分析,發現HUANG[11]等所提的魯棒水印算法在遭受多種圖像攻擊時魯棒性綜合表現更好,然而其在抗JPEG壓縮時魯棒性不能滿足實際應用的需求。為了滿足電子證照泄露后高效可追溯的應用需求,文中對HUANG[11]等提出的魯棒水印算法進行改進,同時引入糾錯碼機制,從而構建可糾錯魯棒水印算法,為水印算法增加水印信息可糾錯的功能,進一步提高水印算法抗多種圖像攻擊時的魯棒性。
電子證照互認共享是加快推進國家治理現代化的重要舉措,其可驗證性及可追溯性是人們一直關注的問題。文中以電子證照共享留存過程中三方參與者的可驗證、可追溯需求為主要研究切入點。首先,基于實際應用特點,構建電子證照共享存證系統模型;其次,通過設計可糾錯魯棒水印算法,為傳統魯棒水印算法增加水印可糾錯的功能,從而提高水印算法總體魯棒性;然后,基于所提魯棒水印算法、可逆信息隱藏技術以及簽名算法構建可驗證可追溯電子證照模型,并基于此模型設計電子證照共享存證協議,從而實現電子證照的三方可信驗證及證照泄露高效可追溯;最后,實驗分析了文中方案的安全性及效率,希望能夠為該領域的研究者提供有價值的參考信息。