張宏生
(國網(wǎng)安徽省電力公司計量中心,合肥230088)
隨著國家智能電網(wǎng)的大規(guī)模建設(shè),智能電能表等儀器設(shè)備得到廣泛的使用和普及[1-3]。智能電能表作為國家電網(wǎng)用戶終端的主要設(shè)備,它的安全性是至關(guān)重要的。如何提高電能表的工作安全性,如何提高總體的信息安全傳輸是一個亟需解決的重大難題。目前在一定程度上,自動化讀取已經(jīng)取代了傳統(tǒng)的人工讀取方式,但由于自動化讀取作業(yè)不夠成熟,加上信息的安全性不高,總體的系統(tǒng)運行效率還比較低。此外,由于智能電能表的具體運行環(huán)境中不確定因素較多,整個電能表的安全運行是越加復雜。
傳統(tǒng)意義上的智能電能表只能進行用電數(shù)據(jù)的具體讀取,但是對于讀取數(shù)據(jù)的安全性傳輸或者處理則是能力十分有限。在具體的運行過程中,不可避兔的存在以下幾個問題:(1)智能電能表被人為破壞,導致無法進行正常運行;(2)電能表讀取的數(shù)據(jù)在中途傳輸過程中遭到破壞或者劫持,使得中央控制器收到不真實的信號;(3)智能電能表本身發(fā)生數(shù)據(jù)錯亂。以上種種問題,都亟需一種新型安全系統(tǒng)嵌入電能表去解決。
針對以上所提問題的挑戰(zhàn),本文提出一種基于可編程邏輯器件(field programmable gate array:FPGA)[4]平臺的高安全性橢圓加密系統(tǒng)[5]。該系統(tǒng)是從底層結(jié)構(gòu)進行優(yōu)化開始設(shè)計的:該系統(tǒng)設(shè)計首先從優(yōu)化的有限域乘法器開始,再到中間的整體結(jié)構(gòu)實現(xiàn),最后到最終系統(tǒng)的實現(xiàn)完成。該系統(tǒng)采用硬件平臺直接實現(xiàn),因此在速度處理和運行效果上都取得較好結(jié)果。最后,該系統(tǒng)也被實際地應用在具體電網(wǎng)中得到檢測驗證。
本系統(tǒng)可以針對單相智能電能表或者是三相智能電能表(這些電能表是在電能作業(yè)系統(tǒng)的基礎(chǔ)之上建立的)。與傳統(tǒng)的電能表系統(tǒng)相比,智能電能表的主要特點是所有的數(shù)據(jù)讀取或者信號處理都是自動完成的。目前的智能電能表主要有直接型和間接型兩種,對于作業(yè)環(huán)境要求復雜度高的地方就采用直接型的電能表系統(tǒng)。一般說來,一個智能電能表系統(tǒng)主要有如圖1所示的系統(tǒng)組成。如圖1所示,整個電能表系統(tǒng)的主要運行過程如下:
圖1 智能電能系統(tǒng)組成圖Fig.1 Structure diagram of smartmeter system
(1)計算測定輸入:該工作單元執(zhí)行整個電能表系統(tǒng)的第一步,主要是對智能電能表的數(shù)據(jù)輸入進行計算處理(通常是進行模擬信號和數(shù)字信號的轉(zhuǎn)換處理)。經(jīng)過處理后的數(shù)據(jù)經(jīng)過反饋進行再計算和在顯示屏上進行顯示;
(2)反饋:初步得出的數(shù)據(jù)有時會存在一定的誤差(主要由運行環(huán)境所決定)。在這種情況下,電能表就需要對初步所得的數(shù)據(jù)進行反饋再計算以便隨時調(diào)整整個電能表的計算系統(tǒng);
(3)顯示:該單元主要是對計算所得出的結(jié)果進行顯示屏顯示。一般是采用比較穩(wěn)定的數(shù)字顯示方式;
(4)檢定輸出:檢定所得的結(jié)果會通過輸送單元運輸?shù)娇刂浦行?。控制中心將所采集的?shù)據(jù)進行集中協(xié)調(diào)管理。
橢圓曲線密碼系統(tǒng)是近期應用比較廣泛的新型公鑰密碼系統(tǒng)[5]。由于它具有復雜實現(xiàn)度低,安全性能高等特點,目前在各類信息處理系統(tǒng)得到廣泛的應用。本文采用以橢圓曲線密碼系統(tǒng)為基礎(chǔ)的信息加密系統(tǒng),它的主要原理如圖2所示。
圖2 橢圓曲線密碼系統(tǒng)原理圖Fig.2 Principle diagram of elliptic curve cryptographic system
如圖2所示,在一個橢圓曲線密碼系統(tǒng)中,A方和B方共同協(xié)議在一個系統(tǒng)中,由A方將信號傳輸?shù)紹方,同時B方將公鑰釋放給A方。兩方之間進行如上的加密和解密的運算操作,使整個系統(tǒng)能夠通暢進行。
具體到系統(tǒng)的實現(xiàn)層面上,加密系統(tǒng)的結(jié)構(gòu)主要由一系列的基于有限域GF(2m)乘法器和加法器構(gòu)成(當然包括其中的狀態(tài)機運算)。在整個系統(tǒng)中,基于有限域GF(2m)乘法器占了很大比重。相比之下,基于有限域GF(2m)加法器的占用比率不是很大。因此,本文更加注重基于有限域GF(2m)乘法器的設(shè)計。本系統(tǒng)將通過底層突破的辦法,層層遞進,由下往上取得最終的結(jié)構(gòu)。
橢圓曲線密碼系統(tǒng)可優(yōu)化的地方主要集中在基于有限域GF(2m)乘法器的設(shè)計。本文通過對底層的基于有限域GF(2m)乘法器進行優(yōu)化設(shè)計來取得整個加密系統(tǒng)的最優(yōu)化實現(xiàn)。具體的設(shè)計過程如下:
美國國家標準局設(shè)定了基于有限域GF(2m)乘法器的次數(shù),其中有m=163 233 283 409 571。其中有兩個是三項式,三個是五項式[5]。本文所設(shè)計的結(jié)構(gòu)將建立在三項式上。
假定f(x)是一m次的不可約多項式在域GF(2)內(nèi),它的表達式可為:
其中 fi∈ GF(2) ={0,1}。那么集合{1,x,…xm-1}就是有限域GF(2m)的多項式的基。這樣,在有限域GF(2m)內(nèi)的一個多項式可表示為:
其中 ai∈ GF(2)。
假定 a(x),b(x)和 c(x)是在有限域 GF(2m)內(nèi)的三個有限元。那么有限域的乘法可以由如下表示[6]:
其中:
bi∈GF(2),i=0,1,…,m-1。同時 R(x)可以表示為:
其中g(shù)cd表示最大公除數(shù)。一般情況下,對于一個三項式f(x)=xm+xk+1,R(x)=xk是作為 Montgomery乘法因子。同時,R(x)有以下特性 R-1(x)+f(x).f′(x)=1。那么整個乘法器的步驟就如下表示:
步驟1:H(x)=a(x)b(x).
步驟2:U(x)=H(x)f′(x)mod R(x).
步驟3:c(x)=(H(x) +U(x)f(x))/R(x)mod f(x)。
對于三項式 f(x)=xm+xn+1在域 GF(2)內(nèi)。假定 T(x)=t2m-2x2m-2+… +t1x+t0是 a(x)和 b(x)的乘積中間值,那么就有:
接著這個中間值T(x)也可以表示為:
接著再選擇乘法因子R(x)=xn,那么最終的乘法將有如下表示[6]:
那么最終的乘法結(jié)果可以表示為:
在這一部分里,關(guān)于乘法器的硬件結(jié)構(gòu)圖將具體地給出。本部分將具體展現(xiàn)結(jié)構(gòu)來實現(xiàn)B1.A和B2.A。B1.A可以由信號流程圖表示,如圖3所示。它包括m個M節(jié)點和(m-1)個A節(jié)點。這些節(jié)點的功能在圖3的小圖中分別顯示出來。
圖3中,節(jié)點M是進行位乘運算,而節(jié)點A是進行位加法運算。本文同時又用了另外一個信號流程圖來輸入信號的轉(zhuǎn)換過程,如圖4所示,其中有m個S節(jié)點。這些S節(jié)點的功能主要是進行位移和轉(zhuǎn)換,如圖4(b)所示。根據(jù)式(9)中的運算,M1節(jié)點的輸入應該是 b(x):b0,b1,…,bm-1,而再進行位移運算轉(zhuǎn)為次序如:bm-1,b0,…,bm-2。
根據(jù)圖4的流程圖進行時間上的切割和重新定義,可以得到初步的脈動結(jié)構(gòu)如圖5所示。在圖5中,一個節(jié)點S,節(jié)點M和節(jié)點A被分在同一個區(qū)間里面。這樣就使得設(shè)計完成后的脈動結(jié)構(gòu)的關(guān)鍵路徑為(TA+TL+TX),其中 TX,TL和 TA分別是 XOR門,寄存器和AND門的時間。
圖3 乘法器的信號流程圖Fig.3 Flow chart ofmultiplier signal
圖4 乘法器的信號流程圖Fig.4 Flow chart ofmultiplier signal
圖5 輸入信號流程圖的關(guān)鍵路徑切割Fig.5 Input signal flow chart of key route cutting
根據(jù)圖4和圖5所設(shè)計的最終結(jié)構(gòu)圖在圖6所示,該結(jié)構(gòu)由總共m個處理單元(Processing Element:PE)組成,每一個PE的內(nèi)部功能在圖6(b)有顯示。設(shè)計完成后的結(jié)構(gòu)需要在可編程邏輯器件上進行測試通過(圖7是一具體的FPGA測試板)。FPGA器件具有處理速度快、效率高等特點,特別適合那些專門面向硬件平臺開發(fā)實現(xiàn)的系統(tǒng)測試。整個測試的過程如下:
首先,對圖6中的結(jié)構(gòu)進行硬件描述語言的編程。程序設(shè)計完成后在某公司的編譯軟件ISE下進行編譯通過和仿真測試驗證。
接著,把程序下載到FPGA器件上進行實體仿真操作,同時得到具體的功耗、時間和占用面積等優(yōu)化數(shù)值。如果數(shù)據(jù)不理想,需要重新返回第一步進行再仿真。
最后,通過測試的程序?qū)⑦B同F(xiàn)PGA器件安裝到電能表系統(tǒng)中進行實際測試并觀察具體運行效果。
圖6 最終結(jié)構(gòu)圖Fig.6 Final structure diagram
FPGA硬件電路板的結(jié)構(gòu)圖如圖7所示。
圖7 FPGA硬件電路板的結(jié)構(gòu)圖Fig.7 Structure diagram of FPGA hardware circuit board
在基于有限域GF(2m)乘法器的具體化硬件實現(xiàn)之后最終,該部分就被應用到整個橢圓曲線加密系統(tǒng)的結(jié)構(gòu)里面。
由于橢圓曲線加密算法主要是以基于有限域GF(2m)乘法器的一系列有規(guī)則的運算(當然也包括了基于有限域GF(2m)的加法器和平方器)。因此,本文采用有限狀態(tài)機(finite state machine)作為主要的控制單元(然后也設(shè)計了基于有限域GF(2m)的加法器和平方器)。在基本的運算單元都實現(xiàn)了之后,就用控制單元對運算單元的進行調(diào)用控制從而實現(xiàn)最終的加密算法。當然,在狀態(tài)機的運行過程中也需要對基本運算單元的結(jié)果進行臨時存儲以便在下一周期中使用(同時也需要一個選擇器對基本的運算單元進行選擇)。具體的最終結(jié)構(gòu)如圖8所示。
圖8 加密系統(tǒng)結(jié)構(gòu)圖Fig.8 Structure diagram of cryptographic system
加密系統(tǒng)的應用在基于FPGA(Xilinx Vitex-6芯片)平臺的硬件測試中已經(jīng)取得很好的優(yōu)化效果(m=233),如表1所示。無論是在面積、速度和功耗方面,都比之前的系統(tǒng)有所提高。
表1 加密系統(tǒng)的FPGA測試結(jié)果(m=233)Tab.1 FPGA test result of cryptographic system(m=233)
本文同時也將該加密系統(tǒng)具體應用到整個電能表系統(tǒng)中進行測試驗證。以一自動化智能電能表系統(tǒng)為例,它的設(shè)計要求是每日的電能表檢測量為7 600只,并且每日的數(shù)據(jù)檢測量很大。
現(xiàn)設(shè)置具體的實驗測試如下:
(1)數(shù)據(jù)準確性測試(無攻擊狀態(tài)下)
數(shù)據(jù)的準確性主要是指在安裝本文所提出的加密系統(tǒng)后,中央控制器所接收到信號與電能表所發(fā)出的信號進行比較的概率。
在使用本文所提出的新型加密系統(tǒng)之后,單個電能表系統(tǒng)的運行量每日基本保持不變(但是數(shù)據(jù)傳輸?shù)臏蚀_性大大提高,數(shù)據(jù)出錯率減少到0.01%)。由于上述數(shù)據(jù)還是在單個電能表系統(tǒng)的運行下得出,當整個電網(wǎng)系統(tǒng)(由多條電能表線組成)都裝上該加密設(shè)備后,那么所取得的綜合效果就會非常突出,就如表2所示。
(2)數(shù)據(jù)準確性測試(有攻擊狀態(tài)下)
本步驟的測試采用最新型的SAT算法[7]對電能表所發(fā)出的每一個信息進行排查攻擊(即進行排查猜測以猜出真實的原始值)。現(xiàn)有的智能電能表中所采用的簡單數(shù)據(jù)加密主要采用了二進制混淆方法,即進行插入某一些邏輯算法(與門、或門等)以取得加密效果。
本步驟的測試對象是一組10只采用現(xiàn)有加密方法的智能電能表,另外一組是同樣數(shù)量的采用了本文加密系統(tǒng)的電能表。在這兩組電能表分別發(fā)出相同數(shù)據(jù)的情況下,一臺高性能計算機(Intel處理器)采用SAT算法對這些信號進行攻擊檢測。所得出的具體結(jié)果(包括攻擊所需要的時間)都顯示在表3中。本測試時間限定在36小時。
表2 具體運行狀況Tab.2 Concrete operation status
表3 攻擊狀態(tài)下的測試效果Tab.3 Test result under attacking conditions
由表3中可以看出,在使用本文所提出的加密系統(tǒng)后,在單個電能表系統(tǒng)和多個電能表系統(tǒng),數(shù)據(jù)的安全性能大大提高。特別是現(xiàn)有的算法無法在短期內(nèi)破解的優(yōu)點決定了電能表在采用該類系統(tǒng)后的安全性能將大大提高。綜合以上兩方面的測試,可以看到該加密系統(tǒng)在電能表系統(tǒng)中的表現(xiàn)優(yōu)異,值得在同類產(chǎn)品中大力推廣。
本文通過對智能電能表中嵌入加密系統(tǒng)的具體分析和討論,結(jié)合橢圓曲線加密優(yōu)化算法的硬件實現(xiàn)的具體優(yōu)勢,對現(xiàn)有的智能電能表信號處理的自動化作業(yè)進行優(yōu)化處理。多方面的結(jié)果證明本文所提出的方法在電能表的具體運行中有優(yōu)異表現(xiàn),在保證不影響具體作用的同時,取得信息安全方面很大幅度的提高。由于該加密系統(tǒng)在電能表中的應用設(shè)計合理、效率極高,值得在國家電網(wǎng)建設(shè)中大力推廣使用。