孫艷玲,邢宇,董賢光,翟曉卉,孫艷鳳,張宏生
(1.國(guó)網(wǎng)山東省電力公司營(yíng)銷(xiāo)服務(wù)中心(計(jì)量中心),濟(jì)南 250001; 2.國(guó)網(wǎng)天津市電力公司薊州供電分公司,天津 301900; 3.國(guó)網(wǎng)安徽省電力公司營(yíng)銷(xiāo)服務(wù)中心,合肥 230088)
近年來(lái),隨著國(guó)家電網(wǎng)的大規(guī)模建設(shè),智能電網(wǎng)作為國(guó)家電網(wǎng)系統(tǒng)交通終端一環(huán)已經(jīng)變得越發(fā)重要了[1-2]。由于智能電網(wǎng)的規(guī)模大,智能電能表與各個(gè)環(huán)節(jié)的網(wǎng)絡(luò)存在很多的數(shù)據(jù)交換,這些數(shù)據(jù)交換在通信過(guò)程中隱存很多安全問(wèn)題。如何恰當(dāng)?shù)卦O(shè)計(jì)智能電能表適應(yīng)的安全系統(tǒng)是學(xué)術(shù)界和工業(yè)界一個(gè)當(dāng)前的研究熱點(diǎn)。
圍繞智能電能表的安全問(wèn)題已經(jīng)在各個(gè)方面逐步展開(kāi)[3-14]。故障預(yù)警系統(tǒng)的設(shè)計(jì)與開(kāi)關(guān)在最近的文獻(xiàn)[3]中有涉及。基于同態(tài)密碼體制的智能電能表安全協(xié)議在文獻(xiàn)[4]也有所報(bào)道。特別一提的是,文獻(xiàn)[5-10]提出了關(guān)于智能電能表的數(shù)據(jù)安全采集和用戶隱私保護(hù)問(wèn)題。另外,文獻(xiàn)[11-14]展示了智能電能表的安全算法和相關(guān)電路系統(tǒng)的研究??傮w而言,對(duì)于如何給智能電能表配置適當(dāng)?shù)拿艽a系統(tǒng)的研究還是有待繼續(xù)加強(qiáng)。
橢圓曲線密碼系統(tǒng)(Elliptic Curve Cryptography (ECC))安全問(wèn)題如圖1所示,由于能夠提供比傳統(tǒng)的密碼系統(tǒng)更強(qiáng)的效果,現(xiàn)在已經(jīng)成為智能電能表中的安全系統(tǒng)的理想候選者[15-19]。但是由于橢圓曲線密碼系統(tǒng)的計(jì)算復(fù)雜度較大,并且智能電能表中還有其它的應(yīng)用資源需要考慮[20],目前,距離具體應(yīng)用還有大量的研究工作。
圖1 智能電網(wǎng)中關(guān)系于數(shù)據(jù)通信系統(tǒng)的安全問(wèn)題Fig.1 Security issues related to a typical data communication system within smart grid
在橢圓曲線密碼系統(tǒng)中最主要的一個(gè)運(yùn)算是基于橢圓曲線上的點(diǎn)加法運(yùn)算,其中包含了在二進(jìn)制域(GF(2m))中的加法、開(kāi)方和乘法運(yùn)算。在二進(jìn)制有限域中加法和開(kāi)方運(yùn)算都能比較簡(jiǎn)單且快速,然而二進(jìn)制有限域的乘法運(yùn)算就顯得比較復(fù)雜。這就使得密碼系統(tǒng)占有資源面積變大、整體運(yùn)算時(shí)間加長(zhǎng)和運(yùn)算速度減慢。文獻(xiàn)[15-19]相繼推薦了5個(gè)不可約多項(xiàng)式用于橢圓曲線密碼器的計(jì)算,目前許多的研究工作集中在如何有效實(shí)現(xiàn)基于有限域GF(2m)上的乘法器。
基于有限域GF(2m)(二進(jìn)制域)的多項(xiàng)式乘法器的實(shí)現(xiàn)可以主要分為三個(gè)基的運(yùn)算:多項(xiàng)式基、正規(guī)基、和復(fù)基。對(duì)于橢圓曲線密碼系統(tǒng),特別是對(duì)于基于Koblitz曲線的密碼器,基于正規(guī)基的多項(xiàng)式運(yùn)算比其它兩種基具有明顯的效果:基于正規(guī)基的GF(2m)開(kāi)方不需要任何硬件資源(只需要簡(jiǎn)單的移位)。但從另一面來(lái)說(shuō),一個(gè)有效的橢圓密碼系統(tǒng)的實(shí)現(xiàn)也由一個(gè)密碼系統(tǒng)中的主要運(yùn)算單元的平行度所決定。因此,一個(gè)好的密碼系統(tǒng)的實(shí)現(xiàn)需要同時(shí)優(yōu)化底層結(jié)構(gòu)和上層算法。
可編程邏輯器件(Field-Programmable Gate Array (FPGA) Device)具有操作簡(jiǎn)單和易于重復(fù)編程等特點(diǎn),目前正在智能電網(wǎng)中越來(lái)越多地使用。文中根據(jù)這一發(fā)展趨勢(shì),提出了一種基于FPGA平臺(tái)的新型橢圓曲線密碼系統(tǒng)設(shè)計(jì)方式(適用智能電能表平臺(tái))。該設(shè)計(jì)從底層的乘法器設(shè)計(jì)創(chuàng)新出發(fā),擴(kuò)展到高層橢圓曲線的點(diǎn)計(jì)算。設(shè)計(jì)的結(jié)構(gòu)在具體的FPGA器件上進(jìn)行驗(yàn)證通過(guò)。該密碼系統(tǒng)與現(xiàn)有的系統(tǒng)相比具有資源占用率低、速度快等特點(diǎn)。因而該設(shè)計(jì)系統(tǒng)值得在智能電網(wǎng)建設(shè)中大力推廣并使用。
橢圓曲線密碼系統(tǒng)是由文獻(xiàn)[21]在1985年提出的。該系統(tǒng)的具體組成和數(shù)學(xué)背景陳述如下:
高斯正規(guī)基是正規(guī)基中的一種,由于它的運(yùn)算復(fù)雜度低,近年來(lái)受到學(xué)術(shù)界越來(lái)越多的關(guān)注[22]。高斯正規(guī)基在GF(2m)域下的定義如下:
設(shè)N={β,β2, …,βn},其中,n=2m-1;m是域的次數(shù)(β是一個(gè)正規(guī)基的基本單位)。那么對(duì)于任何的一個(gè)多項(xiàng)式A在該域下的表達(dá)式可為:
(1)
式中A=(a0,a1, ....,am-1)和ai∈GF(2)。高斯正規(guī)基的運(yùn)算較普通的正規(guī)基要簡(jiǎn)單一點(diǎn),但是它的開(kāi)方運(yùn)算仍然遵循不需要硬件資源這一規(guī)則。對(duì)于在該基下的兩個(gè)多項(xiàng)式A和B,它們的乘積C可以表示為:
(2)
式中R(i,j), 0≤R(i,j)≤m-1, 1≤i≤m-1, 1≤j≤T表示乘法矩陣R(m-1)×T,該乘法矩陣的具體過(guò)程可參考文獻(xiàn)[18]。
一般說(shuō)來(lái),一個(gè)Koblitz曲線可以通常表示為:
Ea,b:y2+xy=x3+ax2+b
(3)
式中a,b∈GF(2m)并且b≠0。取橢圓曲線上的兩個(gè)點(diǎn)P和Q,使得Q=kP(k>1是整數(shù))。那么,點(diǎn)P稱(chēng)為曲線的基點(diǎn),Q稱(chēng)為結(jié)果點(diǎn)。一般來(lái)說(shuō),在曲線上點(diǎn)的運(yùn)算包含點(diǎn)加運(yùn)算和點(diǎn)乘運(yùn)算(點(diǎn)乘運(yùn)算可以轉(zhuǎn)為點(diǎn)加運(yùn)算)。
有很多方法已經(jīng)被提出來(lái)去有效地實(shí)現(xiàn)Koblitz橢圓曲線上的點(diǎn)加運(yùn)算。其中最主要的包括Jacobian投影、標(biāo)準(zhǔn)投影和Lopez-Dahab投影方法。文中設(shè)計(jì)參考的是Lopez-Dahab投影方法,它的主要過(guò)程如下:
假設(shè)X、Y和Z表示曲線上的點(diǎn)的坐標(biāo),那么整個(gè)點(diǎn)加運(yùn)算的過(guò)程如下:
(4)
(5)
(6)
通過(guò)這些點(diǎn)的依次運(yùn)算,就可以得到橢圓曲線密碼系統(tǒng)的綜合運(yùn)算過(guò)程。
橢圓曲線密碼系統(tǒng)的硬件實(shí)現(xiàn)一般都會(huì)用到底層基于GF(2m)域的高斯正規(guī)基乘法器和加法器。為了達(dá)到較好地實(shí)現(xiàn)效果如資源占用低、速度快等,乘法器一般都采用多位串行處理的方法(Digit-Serial),如圖2所示。圖2中包含了一個(gè)乘法器的乘法核心單元和累加單元以取得最終的乘積(其中的一個(gè)輸入是以分段的方式接入到乘法器核心單元里面)。累加單元?jiǎng)t需要對(duì)這些分段得到的乘法結(jié)果進(jìn)行累加并且輸出最終結(jié)果。
圖2 一個(gè)基于GF(2m)域的高斯正規(guī)基乘法器Fig.2 One Guassian normal basis multiplier based on GF(2m)
由于基于高斯正規(guī)基的開(kāi)方運(yùn)算是沒(méi)有硬件資源消耗(只有位的位置轉(zhuǎn)換),那么有:
(7)
式中I1和I2為輸入;I為輸出。按照傳統(tǒng)實(shí)現(xiàn)方法,式(7)需要先進(jìn)行I2的開(kāi)方運(yùn)算,然后再進(jìn)行下一步的乘法運(yùn)算來(lái)取得最終結(jié)果。
為減少具體應(yīng)用過(guò)程的計(jì)算延遲,文中提出一種新型的乘法器和加法器混合設(shè)計(jì)方法:即把這個(gè)開(kāi)方運(yùn)算合并到乘法運(yùn)算里面(因開(kāi)方只有位的移位而已)。這樣,原來(lái)兩個(gè)運(yùn)算就可以合并成為一個(gè)新的單獨(dú)運(yùn)算,相對(duì)應(yīng)的設(shè)計(jì)如圖3所示。
圖3 混合結(jié)構(gòu)的乘法器(新型設(shè)計(jì))Fig.3 Hybrid structure based multiplier (new design)
如圖3所示,由于開(kāi)方的運(yùn)算不占用資源,原先需要兩個(gè)周期的運(yùn)算(指乘法和開(kāi)方)現(xiàn)在就可以在一個(gè)周期內(nèi)完成。這樣的設(shè)計(jì)安排將對(duì)整個(gè)密碼系統(tǒng)的涉及到乘法和開(kāi)方的運(yùn)算進(jìn)行優(yōu)化。
同樣,對(duì)于以下的運(yùn)算方式:
I=(I1+I2)2
(8)
式中I1和I2為輸入;I為輸出。按照傳統(tǒng)的實(shí)現(xiàn)方法,式(8)需要先進(jìn)行I1和I2的加法運(yùn)算,然后再進(jìn)行下一步的開(kāi)方運(yùn)算。
為此,文章提出一種新的混合設(shè)計(jì)方法,即把這個(gè)開(kāi)方運(yùn)算合并到加法運(yùn)算里面(開(kāi)方只有位的移位而已)。這樣原先的兩個(gè)運(yùn)算就可以轉(zhuǎn)換成為一個(gè)單獨(dú)的運(yùn)算如圖4所示。
圖4 新的混合運(yùn)算加法器Fig.4 New hybrid adder
為驗(yàn)證文中提出的混合結(jié)構(gòu)的優(yōu)勢(shì),文章對(duì)圖3和圖4的混合結(jié)構(gòu)采用硬件描述語(yǔ)言(Very High-Speed Integrated Circuit Hardware Description Language, VHDL)進(jìn)行建模仿真。這兩個(gè)設(shè)計(jì)在FPGA(Altera Cyclone II芯片)平臺(tái)上進(jìn)行仿真驗(yàn)證,并且通過(guò)Altera Quartus II 12.1 軟件測(cè)得結(jié)果。本設(shè)計(jì)采用m=100作測(cè)試,所得的FPGA結(jié)果(主要指占用邏輯資源)如表1所示。
表1 FPGA測(cè)試結(jié)果Tab.1 FPGA testing result
LE: Logic element,F(xiàn)PGA平臺(tái)上的邏輯資源。
由表1可知,采取了混合結(jié)構(gòu)的資源占有和非混合結(jié)構(gòu)(FPGA平臺(tái)上)是一樣的。這顯示本設(shè)計(jì)可以在具體算法中進(jìn)行使用而不增加額外資源消耗。
為了更好地融合所提出的混合乘法器和加法器結(jié)構(gòu),該設(shè)計(jì)將之前的算法式(4)~式(6)改進(jìn)如下:
(9)
(10)
(11)
其中,H1=y2Z12,H2=A2和H3=B2這三個(gè)運(yùn)算都可以用之前提出的混合結(jié)構(gòu)來(lái)實(shí)現(xiàn)。
根據(jù)文獻(xiàn)[18],式(4)~式(6)橢圓曲線系統(tǒng)的整體運(yùn)算,可以用圖5的信號(hào)流程圖來(lái)表示,如圖5所示。
由圖5中可以看到,整個(gè)橢圓曲線系統(tǒng)的算法運(yùn)行可以由13個(gè)階段組成,其中三個(gè)階段的主要運(yùn)行是乘法器(每個(gè)階段有M+1個(gè)運(yùn)算周期)。綜合而言,乘法器的執(zhí)行所占用時(shí)間遠(yuǎn)遠(yuǎn)大于其它運(yùn)算所占用的時(shí)間。所以,整個(gè)橢圓曲線密碼系統(tǒng)的計(jì)算時(shí)間實(shí)際上主要由乘法器的執(zhí)行時(shí)間決定。
圖5 信號(hào)流程圖Fig.5 Signal flow chart
為降低密碼系統(tǒng)的整個(gè)執(zhí)行時(shí)間,文中采用所提出的新設(shè)計(jì)方式如式(9)~式(11)。如圖6所示,文中采用的新型混合結(jié)構(gòu)的橢圓曲線密碼系統(tǒng)的整個(gè)算法的計(jì)算時(shí)間由之前的12個(gè)階段減少到10個(gè)階段。這樣,整個(gè)算法的計(jì)算時(shí)間得以有效減少。此外,由于減少了2個(gè)計(jì)算階段,相應(yīng)的硬件控制環(huán)節(jié)和涉及的硬件資源消耗也會(huì)降低。
圖6 新的信號(hào)流程圖(虛線框內(nèi)是混合結(jié)構(gòu))Fig.6 New signal flow chart (dotted block is the hybrid structure)
該硬件結(jié)構(gòu)是由圖6的信號(hào)流程圖直接印射而得,基于新的信號(hào)流程圖上的橢圓曲線密碼系統(tǒng)的新型硬件結(jié)構(gòu)如圖7所示。
圖7 最終的橢圓曲線密碼系統(tǒng)架構(gòu)Fig.7 Finalized structure for ECC
由于圖6所示的整個(gè)的橢圓曲線密碼系統(tǒng)需要4個(gè)乘法器和2個(gè)加法器,圖7中的硬件結(jié)構(gòu)主要由三大塊組成:控制器、運(yùn)算器和寄存器??刂破髦饕钱a(chǎn)生相對(duì)應(yīng)的控制信號(hào)以進(jìn)行各個(gè)運(yùn)算周期的調(diào)配。運(yùn)算器則是包含了基本的運(yùn)算單元如乘法器和加法器。寄存器主要的作用是進(jìn)行各個(gè)運(yùn)算周期之間的數(shù)據(jù)讀入和讀出。在具體的運(yùn)行過(guò)程中,該三大塊組件需要進(jìn)行合理協(xié)調(diào)以得到正確結(jié)果。
為驗(yàn)證本設(shè)計(jì)的優(yōu)異性能,設(shè)計(jì)好的結(jié)構(gòu)如圖7所示,用硬件描述語(yǔ)言(VHDL)進(jìn)行編程建模。然后,所設(shè)計(jì)的結(jié)構(gòu)在FPGA Altera Stratix II EP2S180F10 20C3芯片上進(jìn)行測(cè)試和驗(yàn)證(在具體的測(cè)試中文章采用了m=163和m=233)。為展示本設(shè)計(jì)的優(yōu)異性能,文章把所測(cè)試的結(jié)果與現(xiàn)有的文獻(xiàn)[15-18]進(jìn)行比較,結(jié)果展示在表2中。值得注意的是現(xiàn)有的文獻(xiàn)主要報(bào)導(dǎo)了m=163的結(jié)果。但隨著安全技術(shù)的進(jìn)步,選擇較大的m(與安全級(jí)別直接相關(guān))將有更廣泛的應(yīng)用空間。
表2 FPGA平臺(tái)測(cè)試結(jié)果比較Tab.2 Comparison of testing results on the FPGA platform
其中,面積的大小由ALM(Adaptive Logic Module,F(xiàn)PGA平臺(tái)上的基本邏輯資源)的數(shù)量決定,最高頻率的單位是MHz。m值的大小主要反應(yīng)密碼系統(tǒng)的安全級(jí)別(通常m越大系統(tǒng)越安全)。但是比較則是需要按相同的m值下的性能進(jìn)行比較?,F(xiàn)有文獻(xiàn)[15-18]只報(bào)導(dǎo)了m=163時(shí)的結(jié)果。面積×?xí)r間=ALM的數(shù)量×(延遲周期/頻率)。該參數(shù)通常用來(lái)衡量一個(gè)設(shè)計(jì)的綜合面積和時(shí)間復(fù)雜度。
由表2可知,文章所提出的結(jié)構(gòu)與之前的結(jié)構(gòu)相比(相同的m值情況)具有更好的時(shí)間和資源利用效率??紤]到本設(shè)計(jì)也降低了橢圓曲線的計(jì)算周期,最終的時(shí)間使用改進(jìn)力度將大幅超過(guò)之前報(bào)道的結(jié)果。同時(shí),由于本設(shè)計(jì)采用了高斯基的多項(xiàng)式乘法器,本設(shè)計(jì)的最終占用邏輯資源與之前的設(shè)計(jì)相比也有較大幅度的降低(比如,在m=163情況下,相比文獻(xiàn)[15-18],文中設(shè)計(jì)有164-7581ALM的節(jié)省)。
除此之外,該設(shè)計(jì)也具有延遲時(shí)間低的特點(diǎn)(延遲時(shí)間=延遲周期/頻率)。如表2所示,文中的頻率比之前的結(jié)構(gòu)具有較好的可比性。同時(shí),該設(shè)計(jì)的延遲周期相對(duì)比較少。因此,該設(shè)計(jì)的綜合延遲時(shí)間小于其它參考設(shè)計(jì)的延遲時(shí)間。
綜合而言,文中所提出的橢圓曲線密碼系統(tǒng)比之前的報(bào)道結(jié)果在時(shí)間和資源使用上都有較大幅度的改進(jìn)。如表2所示,文中采用了面積×?xí)r間的綜合復(fù)雜度指標(biāo)來(lái)衡量各個(gè)方案的實(shí)現(xiàn)復(fù)雜度(該指標(biāo)在其它參考文獻(xiàn)中也被使用[15-18])。表2的數(shù)值表明文中設(shè)計(jì)的密碼器比現(xiàn)有結(jié)構(gòu)至少低了18.2%的綜合復(fù)雜度(面積和時(shí)間上)。
除此之外,文章所設(shè)計(jì)的橢圓曲線密碼系統(tǒng)結(jié)構(gòu)也在智能電能表上進(jìn)行驗(yàn)證測(cè)試。文中將所設(shè)計(jì)的結(jié)構(gòu)嵌入智能電能表的測(cè)試平臺(tái)進(jìn)行輸入輸出測(cè)試。在進(jìn)行1 000次的輸入測(cè)試過(guò)程中,得到的輸出結(jié)果與預(yù)想完全吻合(正確率達(dá)到100%)。
終上所述,該設(shè)計(jì)的新型橢圓曲線密碼系統(tǒng)具有計(jì)算周期少、運(yùn)算速度快和占用面積小等特點(diǎn)。因此,該設(shè)計(jì)方案比較適合于在智能電能表(或者類(lèi)似平臺(tái))上的應(yīng)用??紤]到智能電網(wǎng)同時(shí)還包括了其它方面的組成部件[20-23],未來(lái)在這一方面的研究可以擴(kuò)展到如何更好的與周?chē)牟考f(xié)同運(yùn)行。此外,考慮到智能電能表的具體應(yīng)用環(huán)境(客戶終端一環(huán)),加強(qiáng)所設(shè)計(jì)密碼系統(tǒng)的防攻擊能力(如側(cè)道攻擊等)也是未來(lái)研究的一個(gè)主要方向。
文章提出了一種應(yīng)用于智能電能表平臺(tái)的新型橢圓密碼系統(tǒng)設(shè)計(jì)方法。該密碼系統(tǒng)的設(shè)計(jì)方案主要由底層的運(yùn)算單元結(jié)構(gòu)設(shè)計(jì)創(chuàng)新、上層算法流程的優(yōu)化更新和最終新型硬件結(jié)構(gòu)設(shè)計(jì)而組成。文中對(duì)所得到的相對(duì)應(yīng)硬件結(jié)構(gòu)進(jìn)行了基于FPGA平臺(tái)上的具體測(cè)試,并且取得了比之前文獻(xiàn)所報(bào)導(dǎo)結(jié)構(gòu)更好的結(jié)果。此外,該密碼系統(tǒng)在具體的測(cè)試也驗(yàn)證了其在智能電能表中的應(yīng)用可行性。
文章的具體創(chuàng)新點(diǎn)為:(1)提出新的有限域乘法器和加法器混合結(jié)構(gòu)設(shè)計(jì)方式;(2)提出新的橢圓曲線算法實(shí)現(xiàn)方式;(3)提出基于新算法的橢圓曲線密碼硬件設(shè)計(jì)方案和整體架構(gòu)。文章所提出的密碼系統(tǒng)新型設(shè)計(jì)方案具有延遲少、速度快和面積小等特點(diǎn),適合在智能電網(wǎng)中的智能電能表上大規(guī)模推廣使用。