趙 巖,陳 嵐
(中國科學院微電子研究所,北京100029)
在低壓電力線載波通信的安全認證系統中,加密算法的安全性是認證協議能正常運行的最基本保障。而作為加密算法的核心,密鑰的質量主要依靠隨機數的不可預測性和不可重復性。因此,高質量的隨機數是電力線通信系統安全通信的重要保障。
現在常用的隨機數生成法有真隨機數生成法和偽隨機數生成法。其中,偽隨機數生成法是通過算法來實現隨機數,它產生隨機數的質量受算法以及初始種子限制;真隨機數生成法又叫硬隨機數生成法,其主要是通過硬件方法根據自然界中物理現象的隨機特性來實現[1]。
相比于偽隨機數,真隨機數具有很好的隨機性、魯棒性和不可預測性,因此常被用于對隨機數要求較高的安全系統中。常用的真隨機數生成法主要有熱噪聲生成法、振蕩采樣生成法和離散時間混沌法,這些方法的思想都是通過對自然界中某一物理器件的隨機特性進行一系列處理然后得到較為理想的隨機數。
本設計針對現階段常用真隨機生成法的缺陷,提出了一種具有電路設計簡單、隨機序列隨機性高等特點的基于信道噪聲的真隨機數發生器。分析了信道中噪聲的隨機性,詳細介紹了真隨機數發生器的結構和具體實現過程,并對設計進行了驗證。
真隨機數的隨機性主要是利用自然界各種物理現象的隨機特性,可以是原子核的放射性衰敗、大氣噪聲、熱噪聲等[1]。通過對這些物理現象進行采樣,然后經過一系列的處理就可以得到相關性很好的真隨機數。
熱噪聲采樣法是通過直接放大電阻兩端的熱噪聲,同時和基準電壓進行比較來產生均勻分布的“0”、“1”隨機序列。
振蕩采樣法主要是利用獨立振蕩器存在的相位噪聲(理想狀態MOSFET熱噪聲的副效應)以及器件中所存在的差異性來產生隨機數。其原理如圖1所示,頻率不同的兩個振蕩源,快振蕩器作為數據輸入端,慢振蕩器作為D觸發器時鐘信號來采樣快速時鐘。依靠兩個振蕩器的頻率差和抖動可使得采樣具有不確定性,理論上可以在每個采樣點產生一個隨機位,并可通過選擇兩種振蕩器的頻率比來增強隨機性。

圖1 基于振蕩采樣的真隨機數發生器
離散時間混沌法是通過構造一個混沌系統,利用混沌電路的不可預測性以及對初始條件敏感的依賴性來產生隨機數。比如,根據Bernoulli變換關系Xn=[2(Xn-1+e(n))]mod 1.0來產生隨機序列。
通過對現在幾種常用的真隨機數生成法進行調研分析,發現這些方法雖然可以通過對物理現象采樣來獲得隨機數,但由于熱噪聲采樣法提取電路的魯棒性較差、振蕩采樣法產生的隨機序列隨機性不夠以及離散時間混沌法電路復雜度較高等弊端,嚴重影響著生成隨機數的質量,制約著其在加密安全系統中的廣泛應用。
為了能夠獲得高質量的真隨機數,在現階段的芯片設計中,通過采用兩種真隨機生成法或者多種真隨機數生成法進行優化組合來產生真隨機數,然后通過后處理模塊來消除相關性,再經過偽隨機數發生器處理后生成真隨機數。本設計就是基于現階段真隨機數生成法,利用電力線噪聲的隨機性和電力線通信中的加密算法,對真隨機數的整個生成過程進行優化,減少不必要的功耗和芯片面積的浪費,同時保證了生成的真隨機數的質量。
電力線上的噪聲源分為人為噪聲源和非人為噪聲源,人為噪聲的來源主要是各種電器產品的使用,而非人為噪聲的來源主要是自然現象,比如雷電等[2]。
根據國內外對電力線信道噪聲的研究現狀,電力線上的噪聲可以總結為背景噪聲和脈沖噪聲兩大類。
背景噪聲的主要特性是低功率的噪聲源,隨頻率的增大而減小,保持時間不穩定,并且產生的干擾強度受用電器數量影響。包括有色背景噪聲、窄帶噪聲和異步于工頻的周期脈沖噪聲。其中,有色背景噪聲是由低功率噪聲源引起,在時域上表現為一個變化緩慢的隨機過程;窄帶噪聲主要由電力線中的駐波或者諧振中短波廣播引起,主要表現為多種正弦條幅信號的疊加;脈沖是多種衰減正弦波的疊加,是電力線通信的主要干擾源[3]。
ARMA(Auto Regressive Moving Average)模型是常用于背景噪聲建模的參數模型[4]。該模型用一個p階差分方程來進行描述

式中:w(n)是零均值、方差為的白噪聲;x(n)是要研究的隨機序列。
脈沖噪聲是隨時間變化而變化,在信道中一般表現為突發性脈沖噪聲,其具有很強的隨機性[2]。主要包括同步于工頻的周期脈沖噪聲和異步脈沖噪聲[5]。根據調研國內外對脈沖噪聲的研究進展,可以發現脈沖噪聲具有馬爾科夫特性。馬爾科夫過程是一種應用廣泛的隨機過程,其定義如下:若狀態和時間參量都是離散的隨機過程X(n),在k時刻狀態X(k)已知的條件下,其后k+1時刻所處的狀態只與k時刻的狀態有關,而與之前時刻的狀態無關,則該過程成為馬爾科夫鏈[6]。
圖2、圖3分別是通過實地對電力線信道噪聲進行采樣得到的頻譜波形和時域波形。由時域波形可以發現,電力線噪聲包絡具有周期性,這主要是由于電力線噪聲在過零點噪聲值較小,在峰值處噪聲大,使得包絡整體呈現出50 Hz的周期性,但實際數值并沒有周期性;此外,由于電力線噪聲存在很強的時域脈沖噪聲和突發噪聲,因此在頻域波形可以觀察到,電力線噪聲在低頻段噪聲較強,且存在很強的窄帶噪聲和頻域脈沖噪聲。

圖2 電力線信道噪聲的頻譜波形

圖3 電力線信道噪聲時域波形
本設計主要由噪聲提取模塊、數字化處理模塊和后處理模塊組成,其整體設計流程如圖4所示。在隨機數產生工作過程中,首先從信道噪聲進行噪聲采樣,將采到的信道噪聲經過噪聲提取模塊的數字化處理,獲得噪聲數據比特流,再經由后處理模塊通過使用類哈希函數把隨機噪聲數據比特流做加密處理來消除隨機數的偏差和自相關性,最后生成分布均勻、相對獨立的隨機序列。

圖4 真隨機數實現流程圖
在噪聲的采集上,本設計使用了常用的信號采集方式,即通過在電力線信道上采集噪聲,經過放大器放大,濾波器濾波,最后由A/D轉換模塊將提取的噪聲進行數字化處理,把采集到的噪聲轉化為噪聲數據比特流。在電力線通信安全認證中,由于每一個隨機數都有固定的生命周期,不需要實時進行更新,因此出于芯片功耗的考慮,在噪聲提取模塊的設計中增加一個噪聲采集的控制模塊,以便能夠精確地控制隨機數的生成。圖5是噪聲提取的具體實現流程圖。

圖5 信道噪聲提取模塊
用物理的方法來產生真隨機序列,雖然具有不可猜測、不能重復的優點,但在采樣數字量化的過程中容易受到電路中各類噪聲的干擾和環境溫度的影響,產生的真隨機數序列會出現偏差和自相關性,因此為了保證產生高質量的真隨機數序列,需要采用后處理機制來對產生的隨機序列進行校正。
現在常用的后處理算法主要有馮·諾依曼校正法、多級級聯的異或鏈法、哈希函數[7]等。基于本設計是應用于電力線載波安全通信中,其安全認證功能模塊中已包含類哈希函數的加密模塊EAX[8-9],所以使用類哈希函數作為后處理算法,其具體實現如圖6所示。

圖6 使用EAX加密算法的后處理模塊
哈希函數作為后處理算法不僅能夠消除隨機數的偏差,保證隨機數的獨立性和魯棒性,而且還具有一些其他方法不具備的優點[7]:
1)在真隨機數生成系統出現錯誤時,哈希函數的非線性能夠使得該后處理模塊可以作為偽隨機數發生源用來產生相對可靠的偽隨機數。
2)哈希函數的非線性能夠很好地彌補物理采樣機制中的缺陷。
3)哈希函數廣泛應用于信息安全認證系統中,使用其作為后處理算法可以節省硬件資源,減少芯片面積的使用,提高資源的利用率,降低芯片成本。
3.2.1 EAX 算法和實現
EAX算法是一種應用于解決驗證加密的類哈希函數算法。它通過對一系列明文M進行各種加密處理,使用多種密鑰將明文轉化成相對應的密文,并且會產生一個用于保護信息隱秘性和明文驗證的標記符T。圖7是EAX算法的具體實現:
1)使用OMAC算法分別對時間戳N、數據頭H進行加密,得到相應的密文N,H;
2)使用CTR算法對明文M進行加密,得到密文C;
3)對密文C用OMAC算法進行加密,得到密文C;
4)將3種密文N,H,C按位進行異或運算,最后得到需要的隨機數T。

圖7 EAX算法實現[2]
圖7中,N代表的是時間戳,M代表的是明文,H代表的是數據頭。CTR,OMAC為兩種加密算法。
CTR算法[10]通過分別對一系列輸入數據塊進行加密,得到相應系列的密文值,將得到的密文值再與明文異或得到最終的密文。在CTR算法中,最后的數據塊按照其位長的不同,需進行不同的操作:若數據塊位長小于或者等于系統設定位長,則將其全部進行異或,否則只將系統設定的位長進行異或,其他位被舍棄。
OMAC算法[11]即 one-key CBC MAC 算法,也是一種通過對數據塊加密來對數據進行驗證的加密算法。每個數據塊與前一個加密模塊的密文塊進行異或后,進行再次加密。在最后數據塊處理過程中,根據其位長的不同,在異或操作中做不同的移位運算。在整個加密過程中,只用一個密鑰來進行加密。
在本設計中,為了能夠保證隨機數經后處理后的隨機性,特對參數做以下設定:
1)設定0x0000F0F0作為Nonce的初始量,在每次調用EAX模塊后Nonce自加1;
2)設定ID‖Time作為H的例化,其中ID是每一個設備自帶的14 byte隨機數,Time為調用EAX模塊時的8 byte時間常數,精確到毫秒;
3)設定Nonce‖Time作為調用EAX模塊時使用的密鑰。
后處理模塊在獲得經過數字化的噪聲數據后,按照EAX算法的具體實現過程,對時間戳Nonce做OMAC加密,對噪聲數據M依次做CTR加密和OMAC加密,對數據頭H做OMAC加密,最后將得到的三種密文根據位數的要求做異或運算,最終得到經過后處理模塊加密處理的隨機數T。
為了驗證真隨機數設計的可靠性和隨機性,本設計遵循FIPS140-2標準[12]中對隨機數測試的要求,采集了20 000 bit隨機數作為測試量,依次進行了頻數檢測、撲克檢測、游程檢測和長游程檢測四種常用的隨機數檢測,檢測的結果如表1所示。

表1 真隨機數檢測結果
從表1的檢測結果可以看出,本設計產生的真隨機數在頻數檢測、撲克檢測、游程檢測、長游程檢測中的測試結果均在FIPS140-2標準規定的置信區間內,符合FIPS140-2標準對真隨機數的要求。
通過對生成的真隨機數的測試結果表明,本設計通過采用以電力線信道上的噪聲作為隨機源,經數字處理后再由EAX加密作后處理的方式可以產生隨機性很好的真隨機數。并且由于本設計不需要額外在芯片硬件上完成異或鏈電路,同時不需要通過軟件來搭建偽隨機數發生器,這樣可以減少在真隨機數生成過程中不必要的資源浪費,提高了工作效率。
本設計針對現階段常用真隨機數發生器生成方法的弊端,提出了一種具有電路設計簡潔、產生隨機序列隨機性高等特點的基于電力線信道噪聲的真隨機數生成器設計,該方法的隨機源是電力線信道噪聲,經過噪聲提取模塊數字化處理,再由后處理模塊使用EAX加密算法消除生成隨機數的偏差和自相關性,最后獲得具有很好隨機性、獨立性和魯棒性的隨機數。本設計具有電路設計簡單、占用芯片面積小、受電路噪聲影響較小,產生的隨機序列隨機性好、功耗相對較低的特點,能夠彌補常用真隨機發生器的不足,通過測試表明,使用本設計方法可以產生隨機性很好的高質量真隨機數序列。
[1] EASTLAKE D,SCHILLER J,CROCKER S.Randomness requirements for security[EB/OL].[2013 -06 -10].http://www.hjp.at/doc/rfc/rfc4086.html.
[2]張秀秀.低壓電力線信道噪聲特性分析[J].山西電子技術,2009(5):57-59.
[3]林虹,林東.PLC信道噪聲建模及噪聲發生器的設計[J].電力系統通信,2011(7):61-65.
[4]范劍青,姚琦偉.非線性時間序列:建模、預備及應用[M].北京:高等教育出版社,2005.
[5]翟明岳,曾慶安.低壓電力線通信信道的馬爾柯夫特性研究[J].中國電機工程學報,2007,27(22):116-121.
[6]郭昊坤,吳軍基,陸嫻,等.電力線通信信道噪聲模型研究現狀[J].電力系統通信,2011(8):1-3.
[7] SUNAR B.True random number generators for cryptography[EB/OL].[2013-06-10].http://link.springer.com/chapter/10.1007/978-0-387-71817-0_4#page-1.
[8] BERSANIF,TSCHOFENIG H.The EAP-PSK protocol:a pre-shared key extensible authentication protocol(EAP) method[EB/OL].[2013-06-10].http://tools.ietf.org/html/rfc4764.
[9] BELLAREM,ROGAWAY P,WAGNER D.The EAX mode of operation[EB/OL].[2013-06-10].http://link.springer.com/chapter/10.1007/978-3-540-25937-4_25#page-1.
[10] Special Publication(SP)800-38B,National institute of standards and technology,recommendation for block cipher modes of operation:the CMACmode for authentication[S].2005.
[11] IWATA T,KUROSAWA K.FSE 03,Springer-Verlag LNCS 2887,OMAC:one-key CBCMAC[S].2003.
[12] NIST FIPS140-2,Security requirements for cryptographic modules[S].2001.