張 凱,伍忠東,劉菲菲
(蘭州交通大學電子與信息工程學院,蘭州 730070)
2001年,歐盟通過立法形式確定ETCS[1]成為強制性技術規范,不僅使列車能夠在歐洲各國實現互通運行,并且能夠提高列車運行的安全性和實時性。作為我國CTCS-3級列控通信系統[2]的核心安全協議,RSSP-II協議[3]的安全性[4]和實時性[5]對高速鐵路的運行起到了至關重要的作用,協議中消息鑒定安全層的消息認證碼算法又被視為整個協議功能的核心。
提高鐵路信號安全協議消息鑒定安全層核心算法的安全性和實時性是鐵路信號安全協議中的研究熱點,目前該協議消息鑒定安全層核心算法大多數是基于TDES或者通過傳統軟件方式去實現的。張啟鶴提出了一種基于傳統的TDES算法的消息鑒別碼算法,通過在FPGA上面實現了協議核心算法的功能,提高了協議的實時性[6],A B Nasution等研究使用TDES算法保護數據的機密性和完整性[7],郭偉等從網絡攻擊的角度分析了協議的安全性能,并指出了目前協議的核心算法存在的安全隱患[8],Mohit Mittal等通過MATLAB軟件對DES算法和AES算法的安全性能和時間性能進行了分析比較[9],張元玲等提出了一種基于AES的消息鑒別碼算法,通過軟件的實現方式提高了協議的安全性能[10],CHEN Lijie等利用彩色Petri網(CPN)模型對安全通信協議進行了性能分析與驗證[11],和晟姣介紹了CSP方法建模工具,分析了RSSP-Ⅱ通信協議,從密鑰服務流程、對等實體認證兩個方面對協議進行CSP方法分析建模[12]。
目前RSSP-Ⅱ中消息鑒定安全層消息認證碼算法主要是通過數據加密標準DES算法來實現,但是隨著DES算法的廣泛應用,其安全性和實時性方面的隱患不斷出現:在安全性方面,首先DES算法存在弱秘鑰、半弱秘鑰問題,弱秘鑰、半弱秘鑰問題會導致將不同的明文加密成相同的密文,導致密碼攻擊者很容易破解密碼進而對協議產生安全威脅,其次DES算法存在秘鑰長度過短的問題,密鑰長度僅為56 bit,但是隨著計算機數據處理能力的快速提高,使用傳統DES算法將不能有效抵抗窮舉攻擊,從而使得協議的安全性受到極大的威脅;在實時性方面,首先傳統基于DES的消息認證碼算法對最后一個分組進行3重DES(TDES)計算,會大大增加算法的執行時間,其次鐵路信號安全協議中消息鑒定安全層消息認證碼算法的傳統實現都是基于軟件進行的,相比硬件執行,軟件實現在速度方面具有很大的劣勢,難以保證列車在高速鐵路環境下的實時性要求。
針對傳統算法在安全性和實時性方面存在的上述問題,對鐵路信號安全協議的安全性和時間性進行了深入研究,提出了基于高級加密標準AES算法的MASL-AES-MAC算法。該算法結合了AES加密算法的高安全性和FPGA硬件的快速實現性的優勢,并對算法的硬件實現進行優化處理。通過Altera公司的Cyclone V系列5CSXFC6D6F31C6N FPGA硬件開發板的有效評估,實驗結果表明:MASL-AES-MAC算法較傳統的算法相比不僅具有更高的安全性,同時還縮短了算法的執行時間。
RSSP-Ⅱ通信協議是按照歐洲無線電功能接口標準制定的,目的是能夠為數據提供安全的傳輸服務[13]。其中的消息鑒定安全層的功能就是通過發送方和接收方運行消息源安全驗證程序,為數據傳輸中消息的真實性和完整性提供安全保障,并且同時保障消息發送方的不可偽造性。
發送方驗證:
輸入:消息M,發送方A和接收方B的共享密鑰Ks,源地址SA、目的地址DA。
處理流程:
(1)發送方A的方向標志設為0,接收方設為1。
(2)在消息M前附加消息M的目的地址(DA):DA|M。
(3)計算步驟2所生成字符串的長度L(八字節),并將該長度(2個八位字節)附加到該字符串之前,格式為:L|DA|M。
(4)判斷消息(L|DA|M)的長度,若字符串長度不是64的整數倍,則在字符串后面按照通信雙方的規定進行填充數據P,從而構成新字符串:L|DA|M|P。
(5)用共享密鑰Ks對字符串進行CBC-MAC[14]算法:MAC(M)=CBC-MAC(Ks,L|DA|M|P)。
輸出:將MAC(M)值附加在消息M上并發送給接收方B。
接收方驗證:
輸入:方向標志,包含MAC(M)的消息M,發送方A和接收方B雙方共享密鑰Ks,源地址SA、目的地址DA。
處理流程:
(1)在消息M前附加消息M的目的地址(DA):DA|M。
(2)計算步驟2所生成字符串的長度L(八字節),并將該長度(2個八位字節)附加到該字符串之前,格式為:L|DA|M。
(3)判斷消息(L|DA|M)的長度,若字符串長度不是64的整數倍,則在字符串后面按照通信雙方的規定進行填充數據P,從而構成新字符串:L|DA|M|P。
(4)用共享密鑰Ks對字符串進行CBC-MAC算法:MAC’(M)=CBC-MAC(Ks,L|DA|M|P)。
(5)比較MAC(M)和MAC’(M)是否相等。
輸出:若MAC(M)=MAC’(M),則證明消息沒有被進行篡改且確信消息M由發送者A發送,反之則消息M已被篡改或偽造。
圖1為消息認證模型。其中E表示對消息M用密鑰K進行加密生成Ck(M),||表示對消息M和Ck(M)進行合并發送。

圖1 消息認證模型
高速鐵路應用中,RSSP-Ⅱ中消息鑒定安全層認證碼算法的實時性,主要是指通信認證雙方通過消息認證碼算法產生MAC認證碼進行認證時的及時性,即實時性。消息認證碼算法產生MAC認證碼的速度關乎發送方和接收方對于通信雙方消息源安全驗證程序的快慢,從而為數據傳輸中消息的真實性、完整性和可用性提供保障。若消息認證碼算法產生MAC認證碼的時間超出通信雙方認證所設定的超時重傳時間間隔的最大值,則通信雙方認證失敗。所以盡量縮短消息認證碼算法產生MAC認證碼的時間,提高算法的實時性,對于提高RSSP-Ⅱ協議的性能顯得尤為重要。
CBC-MAC算法是基于分組密碼算法,并且工作在分組密碼的密碼分組連接鏈CBC(Cipher Block Chain)模式下的消息認證碼(Message Authentication Code,MAC)[14]。消息認證碼是將消息M使用一個密鑰,底層通過分組密碼方式加密產生一個特定長度的數據分組。MAC類似于加密,但區別是MAC函數無需是可逆的,圖2為分組密碼工作在密碼分組連接鏈CBC模式下的流程。

圖2 分組密碼的密碼分組連接鏈模式流程
3.1.1 AES算法硬件設計
AES算法屬于分組密碼算法,采用Verilog HDL語言先對底層加密算法AES采用了自底向上的模塊化設計思路,模塊化的設計思路方便后續的頂層模塊整合和對算法的優化處理。本文設計的AES算法FPGA[15]硬件實現主要包括5個子模塊,分別是字節代換模塊、行移位模塊、列混合模塊、輪密鑰加模塊和秘鑰擴展模塊[16-17]。
(1)字節代換模塊
字節代換是一個非線性變換,目的是將輸入或者中間狀態的字節通過查表操作映射為另一個字節。映射具體辦法是將輸入字節高4位作為S盒[18]的行值,低4位作為列值,最后將該行值和列值所對應的元素作為代換結果輸出。例如十六進制數0x6D,則對應S盒的行值是6,列值是D,則對應在S盒之后的結果是0x3C。
S盒是一個由16*16字節構成的矩陣,包括了每個字節的8位值所能表達的256種可能的變換。S盒的設計構造方法有如下3個步驟。
Step1:把每一行字節值按照升序進行排列來初始化S盒。第一行是{00},{01},{02},…,{0F};第二行是{10},{11},…,{1F}等。在行X和列Y的字節值是{xy}。
Step2:把S盒中的每個字節映射為它在有限域GF(28)中的逆,{00}被映射為它自身{00}。GF(28)由一組從0x00到0xFF的256個值組成,加上加法和乘法運算。
Step3:對于S盒中的每個字節都記作為(b7,b6,b5,b4,b3,b2,b1,b0)。然后對S盒中每位做如下變換:
b(i+7)mod 8⊕ci
(1)


圖3 SubBytes()實現非線性置換
(2)行移位模塊
ShiftRows()的設計主要是完成基于行的循環移位操作。即行移位變換作用在中間態的行上,其中第0行不變,第一行循環左移1個字節,第二行循環左移2個字節,第三行循環左移3個字節[19]。圖4為ShiftRows()完成循環移位操作示意。

圖4 ShiftRows()完成循環移位操作
(3)列混合模塊
MixColumns()是對每一列進行逐列混合,其具體方法是:
s′(x)=c(x)·s(x)mod(x4+1)
(2)
式(2)中,
c(x)={03}·x3+{01}·x2+{01}·x+{02}
(3)
式(3)中{}內的數表示的是字節
s(x)=s(0,c)+s(1,c)·x+s(2,c)·x2+s(3,c)·x3
(5)

ximod(x4+1)=ximod 4
(6)
可得
{02}·s(0,c)+{03}·s(1,c)+{01}·s(2,c)+

(7)
其余類似,因此,式(7)可用矩陣表示為式(8),圖5為MixColumns()列變換示意。

(8)

圖5 MixColumns()列變換示意
(4)輪密鑰加模塊
AddRoundKey()的目的是將輸入或中間狀態S的每一列與相對應的一個密鑰字Ki進行按位異或,即AddRoundKey(S,Ki)=S⊕Ki,其中Ki(i=0,1,…,10)是由初始密鑰K通過密鑰擴展算法產生的。每一個輪密鑰由4個字組成,W[r*Nb+c]表示第r輪的第c個輪密鑰字[20]。圖6為AddRoundKey()變換示意,輪密鑰加具體的變換表達式為
[w(r·4+c)]
(0≤r≤10,0≤c≤4)
(9)

圖6 AddRoundKey()輪密鑰加變換示意
(5)密鑰擴展模塊
密鑰擴展模塊的功能是為每一輪的AES加密提供輪密鑰。通過生成器產生Nr+1個輪密鑰,每個輪密鑰由Nb個字組成,共有Nb*(Nr+1)個字W[i](其中i=0,1,…,Nb*(Nr+1)-1)。其中Nb和Nr分別代表中間態的列數和迭代輪數[20]。雖然AES可以使用的密鑰大小有3種,分別是128 bit、192 bit和256 bit,但是由明文分組的大小為128 bit,所以本文選擇密鑰大小和明文分組大小相等的128 bit。
在加密過程中,需要用到Nr+1個輪密鑰,需要構造4×(Nr+1)個32位字。前十個輪常量Rcon[i]的值(用十六進制表示)如表1所示。

表1 Rcon[i]數據
對于AES-128,AES密鑰擴展算法的輸入是4個字(每個字32 bit,共128 bit)。輸入密鑰直接被復制到擴展密鑰數組的前4個字中,得到W[0]、W[1]、W[2]、W[3],剩下的41個字W[i]則由W[i-1]和W[i-4](i>=4)來共同決定,根據不同i值,則有不同的算法。
對于W數組中下標不為4的倍數的元素,采用如下計算方式
W[i]=W[i-1]⊕W[i-4]
(10)
對于W數組中下標為4的倍數的元素,計算方式如下4個步驟:
Step1 RotWord():目的是把輸入的4個字節循環左移一個字節,即把字(b0,b1,b2,b3)變為(b1,b2,b3,b0);
Step2 SubWord():基于S盒對輸入字(Step1的結果)中的每個字進行S盒替換;
Step3 將Step2的結果再與輪常量Rcon[i/4]相異或;
Step4 將Step3的結果再與W[i-4]異或。
3.1.2 改進的基于AES算法的MASL-MAC算法硬件實現
MASL-MAC算法(MASL層使用的MAC算法)是基于AES的一種更安全變形。輸入信息M被分割為P1、P2、…、Pn,若切割后最后一個消息分組塊不足128位,則用0補齊。使用AES算法以秘鑰Ki加密128位的分組塊的過程表示為AES(Ki,Pi),⊕表示異或運算最后輸出的MAC值由公式(11)得出
H0=0;
Hi=AES(K,Hi-1⊕Pi),i=1,2,…,n;
MAC=AES(K,Hn-1⊕Pn);
(11)
本文提出的MASL-MAC算法是以AES加密算法為基礎,工作在分組鏈接鏈(Cipher Block Chain,CBC)狀態下的消息鑒別碼。本節MASL-MAC算法的FPGA硬件設計采用Verilog HDL語言進行了模塊化的設計思路。MASL-AES-MAC算法結構如圖7所示。

圖7 MASL-AES-MAC算法結構
分組加密算法的特點是明文和秘鑰的長度都是固定的,比如DES算法的明文為64位,AES算法的明文分組長度為128位。本文中MASL-AES-MAC算法是基于AES算法的,所以當整個輸入消息M的長度不為128的整數倍時,即需要對最后一個不滿128位的數據分組塊進行Padding補位處理,使其長度達到128位,具體補充處理數學表達式如下

(12)
式(12)中,M_Last為最后一個不足128位的分組塊,i代表需要在其后面所加0的個數,r為分組塊M_Last所表示的以8位大小為單位的向量的個數,r∈[0,16)。
本文提出的基于高級加密標準AES的MASL層MAC認證碼改進算法,但是按照AES基本原理直接在FPGA邏輯電路上實現,會造成大量的邏輯資源浪費,并且效率不高。所以在對核心算法改進的基礎之上對改進算法進行進一步的優化處理,使得在獲得更高數據吞吐率的情況下盡可能地減少FPGA邏輯資源的消耗,最終獲取更高的效率。
3.2.1 輪代換模塊優化
本文之前對AES算法的10輪代換模塊的設計主要有由4個模塊構成,分別是字節代換模塊、行移位模塊、列混合模塊和輪密鑰加模塊。
結合3.1.1節AES算法硬件設計的數學基礎,假設單個輪變化的輸入為狀態a,字節變換的過程用Sb表示,經字節變換的輸出為狀態b,經行移位變換的輸出為狀態c,經列混合之后的輸出為狀態d,i和j分別表示每個狀態矩陣的行和列,則有
bi,j=Sb[ai,j]
(13)

(14)
字節代換模塊是每一輪變換的第一步操作,經過分析發現字節代換模塊是非線性的字節置換,可以構造一個查找表來實現字節代換的功能,從而避免大量的異或運算和乘法運算。其次輪變換的第二步是行移位模塊,是一個循移位操作,是將字節代換模塊輸出的結果按照行移位之后的順序進行排列。
為了減少單獨進行字節代換和行移位變換的資源消耗,對這兩個模塊進行合并操作處理。首先通過預算的方式,計算出所有字節代換的8位輸入數據對應的8位輸出數據,然后將這個輸入數據的高4位作為行值,低4位作為列值,將輸出的8位數據作為具體的元素值,最后構成一個16×16的S盒查找表。S盒模塊的仿真如圖8所示。

圖8 S盒模塊仿真結果
從圖8可以看出,當S盒模塊輸入信號a為8’h0f且復位信號為高電平時,在時鐘上升沿的輸出信號b為8’h76,與理論值一致。同理,其他仿真結果均與理論值一致,仿真正確。
當進行字節替換和行移位時,將輸入狀態矩陣a的每個字節的高4位作為行值,低4位作為列值,取出對應的元素值,輸出順序按照行移位模塊的輸出順序輸出,這樣就完成了字節代換和行移位模塊的功能,同時減少了邏輯資源的消耗。
(15)
其中,0≤j d(0,j)=02·c(0,j)⊕03·c(1,j)⊕c(2,j)⊕c(3,j) d(1,j)=c(0,j)⊕02·c(1,j)⊕03·c(2,j)⊕c(3,j) d(2,j)=c(0,j)⊕c(1,j)⊕02·c(2,j)⊕03·c(3,j) d(3,j)=03·c(0,j)⊕c(1,j)⊕c(2,j)⊕02·c(3,j) (16) 其中d(i,j)為變換后的狀態矩陣d的第j列,按照AES算法數學基礎,可得 03·X=(02⊕01)·X=02·X⊕X (17) 由式(17)可知,式(16)可以轉換為式(18) d(0,j)= 02·c(0,j)⊕(02·c(1,j)⊕c(1,j))⊕c(2,j)⊕c(3,j) d(1,j)= c(0,j)⊕02·c(1,j)⊕(02·c(2,j)⊕c(2,j))⊕c(3,j) d(2,j)= c(0,j)⊕c(1,j)⊕02·c(2,j)⊕(02·c(3,j)⊕c(3,j)) d(3,j)= (02·c(0,j)⊕c(0,j))⊕c(1,j)⊕c(2,j)⊕02·c(3,j) (18) 上述運算都是在GF(28)上進行的,在FPGA硬件實現中,加法運算等效為異或運算,而乘法運算則要分為兩種情況:若字節的最高位為0,則與02做乘法運算時只需將字節左移一位即可;若字節的最高位為1,則與02做乘法運算時,將字節先左移一位之后再與字節1B進行異或運算。 在有限域中,所有元素都可以寫成02不同冪次的和,所以所有常數的乘法都可以通過分解之后進行多次與02的乘法和異或運算實現??紤]到為了減少算法硬件實現的運算量,對于有限域中一個字節與02乘法運算的256種可能的結果用一個16×16的M盒查找表替換,這樣簡化了列混合的運算量,降低了FPGA硬件邏輯資源的消耗。 輸入的一個字節是M盒元素的地址,其中高4位對應行值,低4位對應列值,最后取出對應M盒的值,這個過程表示為02×Ci,j=M(Ci,j)。優化后列混合單列的變換過程可以表示為 d(0,j)= M(c(0,j))⊕(M(c(1,j))⊕c(1,j))⊕c(2,j)⊕c(3,j) d(1,j)= c(0,j)⊕M(c(1,j))⊕(M(c(2,j))⊕c(2,j))⊕c(3,j) d(2,j)= c(0,j)⊕c(1,j)⊕M(c(2,j))⊕(M(c(3,j))⊕c(3,j)) d(3,j)= (M(c(0,j))⊕c(0,j))⊕c(1,j)⊕c(2,j)⊕M(c(3,j)) (19) 其中,M(Ci,j)表示對于優化后的M盒中第i行第j列所對應的元素進行查表操作,這樣避免了大量復雜的乘法運算,僅僅用一個查找表的資源就實現了原來要分多次進行的組合邏輯運算。M盒模塊的仿真如圖9所示。 圖9 M盒模塊仿真結果 從圖9可以看出,當M盒模塊輸入信號c為8’h0f且復位信號為高電平時,在時鐘上升沿的輸出信號d為8’h1e,與理論值一致。同理,其他仿真結果均與理論值一致,仿真正確。 3.2.2 密鑰擴展模塊的優化 密鑰擴展模塊用于生成10輪循環的128位輪密鑰。輪密鑰擴展模塊的方式存在純組合方式和流水線設計方式??紤]到FPGA硬件設計的速度和效率,對密鑰擴展模塊設計使用了10級流水線,在每一輪基本運算后面放入寄存器進行數據緩存,然后在每一個時鐘時刻將上一輪緩存的數據傳入下一基本運算單元,以此類推,從而構成密鑰擴展十級流水線。密鑰擴展模塊10級流水線仿真如圖10所示。 圖10 輪密鑰擴展10級流水線模塊仿真結果 輪密鑰擴展模塊首先需要經過10個時鐘周期產生第一組的10個輪密鑰,由于采用了流水線設計技術,之后每經過一個時鐘周期就會產生10個輪密鑰,表明正確實現了輪密鑰擴展模塊10級流水線結構。 首先編寫了頂層模塊的測試文件Testbench,然后使用Quartus II 13.0選擇Cyclone V系列5CSXFC6D6F31C6N芯片,通過使用Modelsim 10.1d仿真工具對改進及優化后的算法進行了功能仿真和時序仿真。最后使用TimeQuest Timing Analyser對算法進行綜合和時序約束。 為了驗證改進及優化后MASL-AES-MAC整體算法功能的正確性,需要選取測試向量進行驗證。本文選擇的測試向量如表2所示。 表2 算法功能測試向量 首先在整體功能模塊仿真中,輸入測試明文長度為40Byte,一共有3個明文分組128’b6bc1bee22e409f96e93d7e117393172a、128’bae2d8a 571e03ac9c9eb76fac45af8e51和64’b30c81c46a35ce 411。算法功能仿真結果如圖11所示。 圖11 整體功能模塊仿真結果 從圖11可以看出,MAC驗證碼為輸出信號“TextOut”,此時輸出信號“TextOut”為128’bdfa66747de9aa63030ca32611497c827,對比表2可知,仿真結果與理論推導結果一致,結果正確。由圖11還可以看出,第一次128位數據的加密結果輸出需要經過12個時鐘周期。 在硬件實現MASL-AES-MAC算法的相關設計中,用以下4個重要的指標來反映設計的優劣,分別是最高頻率(Fmax)、面積(Area)、吞吐量(ThroughOut)和效率(Efficiency)。其中最高頻率表示硬件設計的時序性能,它的值越大代表設計的時序性能越好。面積代表設計所消耗的資源,硬件設計中應盡可能地減少邏輯資源的消耗。通過最高頻率和面積的值能夠計算出設計的吞吐量和效率。吞吐量和效率的計算公式 (20) (21) 式中,吞吐量表示設計中在單位時間可以處理的數據的位數,單位為比特率(Mbps),效率表示吞吐量和面積的綜合性能指標,數值越大表示設計的優化效果越好。 首先將初始改進并未進行優化處理的算法在Quartus Ⅱ上選擇了5CSXFC6D6F31C6N芯片進行了綜合和添加書序約束文件SDC并進行時序約束。時序分析報告顯示設計的建立裕量和保持裕量分別為10.928 ns、0.267 ns,兩者均為正數,則表示設計滿足約束文件中的時序約束。通過查看此時產生的FmaxSummary文件,顯示最高頻率Fmax為95.89 MHz,如圖12所示。 圖12 Fmax報告圖1 由之前的功能仿真圖9得知第一次加密結果輸出需要經過12個時鐘周期。 將本文改進的基于傳統AES算法的MASL-AES-MAC算法與文獻[6]中傳統的基于TDES算法的MASL-TDES-MAC算法進行對比,對比結果如表3所示。通過對比可知本文的算法設計具有更高的最高頻率Fmax和更低的邏輯資源消耗。 表3 改進算法前后性能對比 通過將MASL-MAC算法改為安全性能更好的MASL-AES-MAC算法之后,切實提高了鐵路信號安全協議在開放性系統中的安全性能。 其次,將改進并優化后的算法同樣在Cyclone V 5CSXFC6D6F31C6N芯片進行了綜合和添加書序約束文件SDC并進行時序約束。時序分析報告顯示設計的建立裕量和保持裕量分別為9.571 ns、0.242 ns,兩者均為正數,表示設計滿足約束文件中的時序約束。通過查看此時產生的FmaxSummary文件,顯示最高頻率Fmax為110.23 MHz,如圖13所示。 圖13 Fmax報告圖2 通過查看設計的整體編譯報告,報告顯示設計在Altera公司的Cyclone V 5CSCFC6D6F31C6N芯片上共占用邏輯資源1595 ALMs,占用芯片總體的4%。如圖14所示。 圖14 改進優化后的MASL-AES-MAC算法綜合報告 最后將優化前后MASL-AES-MAC算法性能進行對比分析,分析結果如表4所示。 表4 改進算法優化前后性能對比 通過對優化算法前后性能的對比得出:優化后的算法不僅獲得了更高的最高頻率,同時還進一步降低了邏輯資源的消耗。 由之前的功能仿真圖得出,本文改進的基于高級加密標準AES算法的MASL-AES-MAC算法,在聯合仿真實驗中對第一次128位數據的加密結果輸出需要經過12個時鐘周期,算法優化前后的最高時鐘頻率分別為95.89,110.23 MHz。經計算,聯合仿真實驗中對優化前后算法在相同條件下分別進行128位數據的加密結果輸出需要經過的時間分別為125.14,108.86 ns。而文獻[6]傳統的基于TDES算法的MASL-TDES-MAC算法中對于第一次64位數據的加密結果輸出需要經過26個時鐘周期,其最高時鐘頻率為72 MHz,經計算第一組數據的加密結果輸出需要經過的時間為361 ns。 通過上述實驗數據對比分析可知,本文提出的基于高級加密標準AES算法的MASL-AES-MAC算法(優化前)比傳統的基于TDES算法的MASL-TDES-MAC算法在實時性方面提高了65.34%;通過改進并優化之后的MASL-AES-MAC算法比優化前(改進后)的MASL-AES-MAC算法在實時性方面提高了13%,比傳統的基于TDES算法的MASL-TDES-MAC算法在實時性方面提高了69.84%。 綜合表3、表4和上述實驗對比分析結果得出,本文先后通過對消息鑒定安全層消息認證碼算法的改進和優化之后,切實提高了鐵路信號安全協議的安全性和實時性。 針對鐵路信號安全協議RSSP-II中MASL層消息認證碼算法的低安全性和低實時性問題,提出了一種基于高級加密標準AES算法的MASL-AES-MAC算法。該算法首先充分利用AES算法的高安全性來保障協議的安全性。其次通過將改進的MASL-AES-MAC算法在FPGA上實現,并利用查找表技術和流水線技術進行優化處理,來獲取更高的最高頻率和更低的邏輯資源消耗,從而使得協議具有更高的實時性,將高安全性和高實時性結合于一體。最后在Quartus Ⅱ和Modelsim中完成了聯合仿真實驗,將改進及優化后的MASL-AES-MAC算法與改進前的MASL-TDES-MAC和改進但并未優化的MASL-AES-MAC算法進行對比,結果表明:無論是最高頻率還是邏輯資源消耗情況都優于原算法,從而提高了高速鐵路通信的安全性和實時性。

4 實驗
4.1 設計開發平臺與驗證工具
4.2 測試向量的選取

4.3 算法功能仿真測試

4.4 實驗評價標準


4.5 改進及優化算法的性能指標分析





5 結語