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