王興華,張 俊,高來(lái)先,張永炘?
(1. 廣東電網(wǎng)有限責(zé)任公司電網(wǎng)規(guī)劃研究中心,廣東 廣州 510600;2. 廣東電網(wǎng)有限責(zé)任公司江門供電局,廣東 江門 529099;3. 廣東創(chuàng)成建設(shè)監(jiān)理咨詢有限公司,廣東 廣州 510062)
電力能源是促進(jìn)時(shí)代和社會(huì)發(fā)展的重要基礎(chǔ)支撐之一[1]。近年來(lái)隨著電網(wǎng)建設(shè)的投資力度和建設(shè)規(guī)模持續(xù)增加,電網(wǎng)系統(tǒng)迅速鋪開。其中預(yù)制艙變電站由于其低成本、高耐久和建造周期短等特點(diǎn),有逐步取代傳統(tǒng)電站的趨勢(shì)[2]。雖然預(yù)制艙變電站技術(shù)尚未成熟,但是伴隨著該技術(shù)的普及和推廣,在預(yù)制艙變電站模式下的數(shù)據(jù)安全問(wèn)題逐漸顯露,引起社會(huì)各界人士的關(guān)注[3]。
縱觀國(guó)內(nèi)外研究結(jié)果,利用密碼技術(shù)解決數(shù)據(jù)安全問(wèn)題已屢見不鮮,其中基于混沌映射的數(shù)據(jù)加密更是成為研究熱點(diǎn)之一[4]。文獻(xiàn)[5]提出了一種基于混沌映射的圖像隱藏加密算法,將明文信息通過(guò)加密操作后隱藏在公開圖中,進(jìn)而實(shí)現(xiàn)圖像的隱藏加密。文獻(xiàn)[6]設(shè)計(jì)了一種基于多混沌的加密算法,并利用比特平面分解來(lái)進(jìn)行置換擴(kuò)散,能夠抵御多種形式的攻擊。文獻(xiàn)[7]利用了混沌的復(fù)雜動(dòng)力學(xué)原理,在空間域算法的基礎(chǔ)上,提出了一種基于混沌映射的加密算法。綜上,基于混沌映射的保密通信技術(shù)已有較成熟的研究成果[8]。但是,這些算法大多采用對(duì)稱加密協(xié)議,該協(xié)議在預(yù)制艙變電站模式的“多對(duì)多”的信息交互模式下存在局限性。
相對(duì)于對(duì)稱加密協(xié)議,非對(duì)稱加密協(xié)議中的公鑰密碼系統(tǒng)更加符合物聯(lián)網(wǎng)安全通信的需求[9]。在公鑰密碼體制中,任何人都可以在數(shù)據(jù)庫(kù)中查詢到他人的公鑰。該公鑰用于信息發(fā)送方對(duì)明文進(jìn)行加密。此外,信息發(fā)送方和接收方都有一個(gè)用于解密的個(gè)人私鑰,接收方可以利用個(gè)人私鑰來(lái)解密得到明文。另外,公鑰密碼體制還能為發(fā)送方的消息提供認(rèn)證。發(fā)送方使用個(gè)人私鑰加密的明文通過(guò)簽名算法經(jīng)信道傳送給接收方,接收方再使用發(fā)送方的個(gè)人私鑰進(jìn)行解密[10]。同時(shí),混沌動(dòng)力系統(tǒng)具有不周期、不發(fā)散、不收斂的特性。以此為基礎(chǔ),利用其生成的高隨機(jī)性序列作為密鑰序列,并結(jié)合公鑰密碼體制對(duì)數(shù)據(jù)進(jìn)行加密,達(dá)到信息保密、通信安全的目的[11]。
因此,針對(duì)預(yù)制艙變電站技術(shù)中潛在的信息安全問(wèn)題,設(shè)計(jì)一種采用公鑰密碼系統(tǒng)的混沌加密算法具有重要的理論意義和應(yīng)用價(jià)值[12]。本文提出一種面向預(yù)制艙變電站的加密算法設(shè)計(jì)。首先利用素?cái)?shù)發(fā)生器確定加密系統(tǒng)的公鑰和私鑰。接著對(duì)RAS算法加密產(chǎn)生的密鑰初值進(jìn)行歸一化處理,得到符合要求的密鑰。然后通過(guò)超混沌系統(tǒng)生成的隨機(jī)序列對(duì)數(shù)據(jù)進(jìn)行掩膜、置亂、擴(kuò)散。最后將得到的密文發(fā)送至接收端。
混沌系統(tǒng)是一種具有不發(fā)散、不收斂和不周期等特點(diǎn)的非線性系統(tǒng)[13]。一維的離散混沌系統(tǒng)通常形式簡(jiǎn)單且序列生成時(shí)間短,但同時(shí)以此序列作為密鑰的密碼系統(tǒng)通常存在密鑰空間小,抗攻擊能力差等問(wèn)題。而二維超混沌系統(tǒng)生成的偽隨機(jī)序列,由于變換了加密因子,所以系統(tǒng)的動(dòng)態(tài)行為更加難以預(yù)測(cè),對(duì)保密通信有更高的價(jià)值[14]。在評(píng)估混沌系統(tǒng)的特性時(shí),通常使用Lyapunov指數(shù)(即李氏指數(shù))來(lái)衡量。通常,正李氏指數(shù)越多表示系統(tǒng)狀態(tài)量的個(gè)數(shù)就越多,同時(shí)系統(tǒng)的不穩(wěn)定程度就越高[15]。根據(jù)混沌系統(tǒng)的正李氏指數(shù)的個(gè)數(shù),可將其分為一般的混沌系統(tǒng)和超混沌系統(tǒng),本文所采用的是Chen超混沌系統(tǒng),方程組表示如下:
(1)
式中a、b、c、d、k為系統(tǒng)參數(shù),當(dāng)a=36,b=3,c=28,d=16且-0.7≤k≤0.7時(shí),Chen超混沌系統(tǒng)處于混沌狀態(tài),并生成四個(gè)混沌序列。Chen超混沌吸引子如圖1所示。相同參數(shù)下生成的Chen超混沌的倍周期分叉圖如圖2所示。
圖1 Chen超混沌吸引子
圖2 Chen超混沌的倍周期分叉圖
提出的加密算法如圖3所示,具體步驟如下:
步驟1 利用素?cái)?shù)產(chǎn)生器產(chǎn)生3個(gè)大素?cái)?shù)J、K和L
大素?cái)?shù)J、K和參數(shù)L的生成如下:
(2)
其中J、K為大素?cái)?shù),參數(shù)L為RSA算法的一個(gè)參量。isprime為素?cái)?shù)產(chǎn)生函數(shù)。此外an∈[0,10000],是差值為2的等差序列。
步驟2 確定加密密鑰(公鑰)
任意選取一位與(J-1)*(K-1)互質(zhì)大值整數(shù)H作為加密密鑰。
步驟3 確定解密密鑰(私鑰)
由已知加密密鑰H,以及大素?cái)?shù)J、K求得解密密鑰G,具體如下式:
G*H=1 mod[(J-1)*(K-1)]
(3)
其中mod為取余函數(shù)。
步驟4 RSA算法加密
利用產(chǎn)生的加密密鑰H,參數(shù)L完成RSA加密,具體公式如下:
D=F*Hmod(L)
(4)
其中D為非對(duì)稱加密后的混沌初值,F(xiàn)為非對(duì)稱加密前的混沌初值。
此外,若需要解密則必須知道解密密鑰G,具體公式為:
F=D*Gmod(L)
(5)
步驟5 數(shù)據(jù)歸一化處理
將所求得的密鑰初值D進(jìn)行歸一化處理,使其數(shù)值在Chen混沌序列初值區(qū)間內(nèi)。
步驟6 利用超混沌系統(tǒng)生成掩膜、置亂、擴(kuò)散的隨機(jī)序列
將RSA算法產(chǎn)生的初值代入超混沌系統(tǒng),并舍棄前100位序列,根據(jù)加密信息的長(zhǎng)度計(jì)算相應(yīng)的迭代次數(shù)。具體公式如下:
(6)
其中x∈[0,1],y∈[0,0.1],z∈[0,0.2],β∈[6,+∞],當(dāng)a=10,b=8/3,c=28,r∈(-1.52,0.06)時(shí),系統(tǒng)處于超混沌狀態(tài)。
步驟7 異或掩膜
明文通過(guò)一個(gè)用與其等長(zhǎng)等寬的混沌矩陣進(jìn)行位異或運(yùn)算,具體公式如下:
C1=Bitxor(P,x')
(7)
其中Bitxor為按位異或函數(shù),P為待加密的信息,x'為處于[0,255]混沌序列。
步驟8 置亂擴(kuò)散
置亂具體如下:
(8)
其中C1(i,j)為置換后的密文,indexH,indexW為順序排序的混沌序列,I是混沌系統(tǒng)產(chǎn)生的一個(gè)二維矩陣。
擴(kuò)散具體如下:
Ci*j=Ci*j-1⊕Si*j⊕C1(i*j)
(9)
其中Ci*j為擴(kuò)散后密文,同時(shí)也是最終加密圖像,Si*j為混沌系統(tǒng)產(chǎn)生的長(zhǎng)度為i*j的混沌序列。
步驟9 生成密文
經(jīng)過(guò)以上操作,可生成一張加密質(zhì)量良好的雪花密文,并發(fā)送至接收端。
圖3 超混沌加密算法總框圖
解密過(guò)程:首先,將私鑰G通過(guò)另外一個(gè)通道發(fā)送給接收方,并利用公式5將非對(duì)稱加密后的混沌初值D還原為之前的混沌初值F。然后,利用混沌初值產(chǎn)生的序列矩陣進(jìn)行逆擴(kuò)散和逆置亂,分別還原像素值和像素位置。最后,做異或掩膜變換,得到解密后的信息。
設(shè)置產(chǎn)生的浮點(diǎn)數(shù)型偽隨機(jī)序列,公式如下:
n=2*H*W
(10)
其中n為浮點(diǎn)數(shù)型偽隨機(jī)序列的長(zhǎng)度。
生成整數(shù)型偽隨機(jī)序列,公式如下:
(11)
其中X為整數(shù)型偽隨機(jī)序列,floor為取整函數(shù),max為取最大值函數(shù)。
使用Aronld矩陣對(duì)圖像進(jìn)行置亂,算法如下:
fori=1:H
forj=1:W
K=1a(i,j);b(i,j)a(i,j)*b(i,j)+1
k=mod([K]*[i;j],[H;W])+[1;1];
t=A(i,j);
A(i,j)=A(k(1),k(2));
A(k(1),k(2))=t;
end
end
其中k是由坐標(biāo)(i,j)計(jì)算得出的新坐標(biāo)位置向量,t為與坐標(biāo)(k(1),k(2))交換后的坐標(biāo)(i,j)。
將置亂后的圖像矩陣賦給另一變量B,使用Aronld矩陣還原圖像矩陣B,算法如下:
B=A
fori=H:-1:1
forj=W:-1:1
K=1a(i,j);b(i,j)a(i,j)*b(i,j)+1
k=mod([K]*[i;j],[H;W])+[1;1];
t=B(i,j);
B(i,j)=B(k(1),k(2));
B(k(1),k(2))=t;
end
end
生成GF(17)的乘法運(yùn)算查找表,公式如下:
TBL=mod{[transpose(0:16)*(0:16)],17}
(12)
其中transpose為轉(zhuǎn)置函數(shù),TBL為乘法運(yùn)算查找表。
用查找表計(jì)算B(1)和B(i)的值,算法如下:
A=P(:);B0=0;
B(1)=LookUpGF17(B0,S1(1),A(1),TBL);
fori=2:H*W
B(i)=LookUpGF17(B(i-1),S1(i),A(i),TBL);
end
其中LookUoGF17為基于GF(17)域的乘法運(yùn)算函數(shù)。
利用查找表計(jì)算C(H*W)和C(i)的值,算法如下:
C0=0;
C(H*W)=LookUpGF17(C0,S2(H*W),B(H*W),TBL);
fori=H*W-1:-1:1
C(i)=LookUpGF17(C(i+1),S2(i),B(i),TBL);
end
在物聯(lián)網(wǎng)環(huán)境下進(jìn)行實(shí)驗(yàn)驗(yàn)證能夠更好地說(shuō)明本算法在預(yù)制艙變電站環(huán)境下的可行性。實(shí)驗(yàn)使用的Chen超混沌映射,映射參數(shù)為:a=10,b=8/3,c=28,可調(diào)參數(shù)r=-1。物聯(lián)網(wǎng)環(huán)境為Raspberry Pi 4 Model B+,CPU型號(hào)為Broadcom BCM2711,四核Cortex-A72 (ARM V8) 64位 SoC @ 1.5GHz,內(nèi)存 8 GB。Raspberry Pi在處理器速度、多媒體性能、內(nèi)存等方面具備一定的優(yōu)勢(shì),因此能夠更好地驗(yàn)證算法在預(yù)制艙變電站環(huán)境下的適配情況。基于物聯(lián)網(wǎng)設(shè)備的加密系統(tǒng)如圖4所示。
圖4 基于物聯(lián)網(wǎng)設(shè)備的加密系統(tǒng)
密鑰敏感性的強(qiáng)弱是反映加密算法能否抵擋暴力破解的重要指標(biāo)之一。密鑰敏感性越強(qiáng)說(shuō)明加密算法在面對(duì)暴力攻擊時(shí)越安全。基于密鑰敏感性的分析情況如圖5所示。
圖5(a)為明文圖像,圖5(b)為密文圖像。圖5(c)為密鑰完全正確時(shí)的解密結(jié)果,能夠準(zhǔn)確反映明文信息。圖5(d)為密鑰出現(xiàn)10-15數(shù)量級(jí)錯(cuò)誤時(shí)的解密結(jié)果,解密圖像呈噪聲樣式。從實(shí)驗(yàn)結(jié)果不難看出,即使解密密鑰與正確密鑰存在微小差異,錯(cuò)誤密鑰也無(wú)法準(zhǔn)確還原明文。實(shí)驗(yàn)結(jié)果證明了算法具有良好的密鑰敏感性。
圖5 數(shù)據(jù)加密解密結(jié)果
兩幅圖像對(duì)應(yīng)位置的不同的像素點(diǎn)個(gè)數(shù)占全部像素點(diǎn)的比例,稱為NPCR(Unmber of Pixels Change Rate)。兩幅圖像對(duì)應(yīng)位置的像素點(diǎn)的差值與最大差值的比例的平均值,稱為UACI(Unified Average Changing Intensity)。兩者都是評(píng)估圖像抗差分攻擊能力的重要指標(biāo)。具體計(jì)算公式如下:
(13)
其中X1和X2分別為兩幅大小為H×W的圖像,NPCR中的D(i,j)的值如下式:
(14)
利用本算法分別對(duì)不同的圖像進(jìn)行加密,并記錄分析各次加密后NPCR和UACI的值。不同圖像加密后記錄結(jié)果如表1所示。
表1 不同圖像加密后NPCR和UACI的數(shù)值
NPCR的理論期望值為99.6%,UACI的理論期望值為33.5%。由實(shí)驗(yàn)結(jié)果可知,本算法對(duì)不同圖像的加密結(jié)果均符合理論期望值,所以本算法能夠較好地抵抗差分攻擊。
密鑰空間是反映加密算法對(duì)抗暴力破解攻擊時(shí)的另一安全指標(biāo)。密鑰空間越大說(shuō)明算法抵御暴力破解的能力越強(qiáng)。本文算法選取系統(tǒng)的初始值作為超混沌系統(tǒng)的密鑰參數(shù),H和G為密鑰控制參數(shù)。密鑰空間可表示為:
KCHAOS∈{x0,y0,z0,w0,H,G}
設(shè)定密鑰參數(shù)為雙精度數(shù)據(jù)類型,其精度值為10-16,混沌系統(tǒng)初始值{x0,y0,z0,w0}的密鑰空間為1064,加解密密鑰{H,G}的密鑰空間至少為(105)2。綜上所述,總密鑰空間為1064×1010=1074≈2245,密鑰長(zhǎng)度為245 bit?;诿荑€長(zhǎng)度,將本文算法與其他算法進(jìn)行比較,比較結(jié)果如圖6所示。
圖6 密鑰長(zhǎng)度對(duì)比圖
從實(shí)驗(yàn)對(duì)比結(jié)果可以看出,本文算法相較于其他算法具有較大的密鑰空間,在面對(duì)暴力破解時(shí)具備一定的優(yōu)越性。
相比與傳統(tǒng)變電站,預(yù)制艙變電站更能滿足標(biāo)準(zhǔn)化、集成化、智能化等現(xiàn)代電網(wǎng)技術(shù)標(biāo)準(zhǔn)要求,但同時(shí)信息交互中的安全性也是該標(biāo)準(zhǔn)下的重要考量指標(biāo)[19]。利用混沌加密算法優(yōu)化預(yù)制艙變電站模式下的信息交互模式。在公鑰密碼體制下,信息發(fā)送方使用公鑰加密,信息接收方使用私鑰解密,保證算法能夠應(yīng)用于“多方發(fā)送,多方接收”的復(fù)雜電網(wǎng)信息通信環(huán)境,有效提高信息交互效率[20]。同時(shí),密鑰的產(chǎn)生基于超混沌系統(tǒng)所產(chǎn)生的偽隨機(jī)序列,該序列具有高隨機(jī)性、高敏感性等特點(diǎn),契合密鑰的安全性需求[21]。
針對(duì)預(yù)制艙變電站技術(shù)中可能存在的安全問(wèn)題,利用Chen超混沌的初值敏感性和高隨機(jī)性,提出了一種基于Chen超混沌的公鑰密碼算法。加密方案通過(guò)素?cái)?shù)發(fā)生器確定公鑰和私鑰,利用超混沌系統(tǒng)生成的隨機(jī)序列進(jìn)行掩膜、擴(kuò)散的加密操作。實(shí)驗(yàn)數(shù)據(jù)表明,提出的算法在具備高初值敏感性的同時(shí),還具有密鑰空間大、抗差分攻擊強(qiáng)等特點(diǎn)。混沌加密算法與預(yù)制艙變電站技術(shù)相結(jié)合的想法和模式,將有望優(yōu)化甚至解決變電站智能化過(guò)程中產(chǎn)生的信息安全漏洞,為構(gòu)建更好的電網(wǎng)系統(tǒng)提供幫助。