本發(fā)明涉及信息安全領(lǐng)域,具體涉及一種橢圓曲線公鑰密碼安全協(xié)處理器的測試方法及系統(tǒng)。
背景技術(shù):
隨著世界互聯(lián)網(wǎng)環(huán)境的逐漸復(fù)雜,網(wǎng)絡(luò)基礎(chǔ)設(shè)施的日益完善,用戶在數(shù)字世界中進(jìn)行的活動越來越頻繁。為了確保信息的機(jī)密性、完整性、可用性,避免國家或個人的信息受到非法獲取、破壞與篡改等形式的威脅,人們提出了使用密碼技術(shù)來保障以電子形式保存或傳送的數(shù)據(jù)。
自從Koblitz和Miller在1985年各自獨立的提出將橢圓曲線應(yīng)用于密碼學(xué)以來,橢圓曲線密碼已經(jīng)成為密碼學(xué)界最熱門的研究領(lǐng)域之一。隨著硬件處理速度和解密手段的提高,常用的1024位的RSA算法面臨著考驗,其加密密鑰已不能充分保證數(shù)據(jù)的安全性,為了提高數(shù)據(jù)的安全性,需要增加密鑰的長度,但這樣會導(dǎo)致算法速度降低。為滿足電子認(rèn)證服務(wù)系統(tǒng)等應(yīng)用需求,國家密碼管理局于2010年12月17日發(fā)布了SM2橢圓曲線公鑰密碼算法,并要求對現(xiàn)有基于RSA算法的電子認(rèn)證系統(tǒng)、密鑰管理系統(tǒng)、應(yīng)用系統(tǒng)進(jìn)行升級改造。
基于橢圓曲線公鑰密碼算法的安全協(xié)處理器可用于多種智能終端(例如智能電表),其對外提供數(shù)字簽名、簽名驗證、數(shù)據(jù)加密和數(shù)據(jù)解密等功能,能夠完整支持SM2等標(biāo)準(zhǔn)。該安全協(xié)處理器作為SPI協(xié)議中的slave端與外部實體進(jìn)行通信。橢圓曲線公鑰密碼安全協(xié)處理器的功能與性能直接關(guān)系著基于其構(gòu)建的整個系統(tǒng)的安全,但是卻沒有一個完整的測試系統(tǒng)和相應(yīng)的測試方法用以評價其性能的優(yōu)劣。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種橢圓曲線公鑰密碼安全協(xié)處理器的測試方法及系統(tǒng),可對橢圓曲線公鑰密碼安全協(xié)處理器的功能與性能進(jìn)行全面的自動化測試。
本發(fā)明的目的是采用下述技術(shù)方案實現(xiàn)的:
一種橢圓曲線公鑰密碼安全協(xié)處理器的測試系統(tǒng),其改進(jìn)之處在于,所述系統(tǒng)包括:上位機(jī)、嵌入式開發(fā)單元和待測處理器;
所述嵌入式開發(fā)單元通過SPI與所述待測處理器建立連接,其中,所述嵌入式開發(fā)單元作為SPI通信的master端,所述待測處理器作為SPI通信的slave端;所述嵌入式開發(fā)單元和待測處理器分別通過串口與所述上位機(jī)進(jìn)行通訊;所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接。
優(yōu)選的,所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接,用于將上位機(jī)生成的測試用例通過NFS服務(wù)發(fā)送至所述嵌入式開發(fā)單元。
優(yōu)選的,所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接,用于將在交叉編譯環(huán)境內(nèi)編寫的自動化測試程序通過NFS服務(wù)裝載至所述嵌入式開發(fā)單元。
優(yōu)選的,所述嵌入式開發(fā)單元通過SPI與所述待測處理器建立連接,用于通過SPI調(diào)用所述嵌入式開發(fā)單元的自動化測試程序和測試用例,生成測試結(jié)果,并通過SPI將所述測試結(jié)果返回至所述嵌入式開發(fā)單元。
進(jìn)一步的,所述測試用例至少包括:數(shù)字簽名測試數(shù)據(jù)、簽名驗證測試數(shù)據(jù)、數(shù)據(jù)加密測試數(shù)據(jù)和數(shù)據(jù)解密測試數(shù)據(jù)。
優(yōu)選的,所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接,還用于將測試結(jié)果通過NFS服務(wù)發(fā)送至所述上位機(jī)。
優(yōu)選的,所述嵌入式開發(fā)單元和待測處理器分別通過串口與所述上位機(jī)進(jìn)行通訊,用于交互所述嵌入式開發(fā)單元和待測處理器與所述上位機(jī)之間的狀態(tài)信息。
一種橢圓曲線公鑰密碼安全協(xié)處理器的測試方法,其改進(jìn)之處在于,所述方法包括:
(1)利用橢圓曲線公鑰密碼軟件生成測試用例并在交叉編譯環(huán)境內(nèi)編寫自動化測試程序;
(2)將所述自動化測試程序裝載至嵌入式開發(fā)單元;
(3)向待測處理器輸入測試用例并運行所述自動化測試程序,生成測試結(jié)果;
(4)將測試結(jié)果通過所述嵌入式開發(fā)單元發(fā)送至上位機(jī)。
優(yōu)選的,所述步驟(3)中,自動化測試程序包括:
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的數(shù)字簽名測試數(shù)據(jù)進(jìn)行處理,輸出簽名信息及數(shù)字簽名并記錄運行時間;
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的簽名驗證測試數(shù)據(jù)進(jìn)行處理,輸出驗證信息并記錄運行時間;
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的數(shù)據(jù)加密測試數(shù)據(jù)進(jìn)行處理,輸出加密后的密文并記錄運行時間;
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的數(shù)據(jù)解密測試數(shù)據(jù)進(jìn)行處理,輸出解密后的明文并記錄運行時間。
進(jìn)一步的,所述數(shù)字簽名測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、用戶的身份標(biāo)識、用戶的私鑰和待簽名消息;所述簽名驗證測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、用戶的身份標(biāo)識、用戶的公鑰、待驗證消息及待驗證信息的數(shù)字簽名;所述數(shù)據(jù)加密測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、解密用戶的公鑰和待加密明文;所述數(shù)據(jù)解密測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、解密用戶的私鑰和待解密密文。
與最接近的現(xiàn)有技術(shù)相比,本發(fā)明具有的有益效果:
本發(fā)明提供的一種橢圓曲線公鑰密碼安全協(xié)處理器的測試方法及系統(tǒng),能夠自動的生成測試所需要的測試用例,在測試程序運行過程中不需要人為干預(yù)就可自動完成數(shù)字簽名、簽名驗證、數(shù)據(jù)加密、數(shù)據(jù)解密等功能的功能測試與性能測試,并將測試結(jié)果自動上傳至上位機(jī),較為全面準(zhǔn)確的給出了待測安全協(xié)處理器的功能與性能指標(biāo),并且大大的提高了測試效率。
附圖說明
圖1是本發(fā)明提供的一種橢圓曲線公鑰密碼安全協(xié)處理器的測試系統(tǒng)結(jié)構(gòu)圖;
圖2是本發(fā)明提供的一種橢圓曲線公鑰密碼安全協(xié)處理器的測試方法流程圖;
圖3是本發(fā)明實施例中測試系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式作進(jìn)一步的詳細(xì)說明。
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種橢圓曲線公鑰密碼安全協(xié)處理器的測試系統(tǒng),如圖1所示,所述系統(tǒng)包括:上位機(jī)、嵌入式開發(fā)單元和待測處理器;
所述嵌入式開發(fā)單元通過SPI與所述待測處理器建立連接,其中,所述嵌入式開發(fā)單元作為SPI通信的master端,所述待測處理器作為SPI通信的slave端;所述嵌入式開發(fā)單元和待測處理器分別通過串口與所述上位機(jī)進(jìn)行通訊;所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接。
其中,需在所述上位機(jī)上搭建交叉編譯環(huán)境、NFS服務(wù)以及串口調(diào)試工具并安裝支持橢圓曲線公鑰密碼算法的軟件,所述上位機(jī)可以為PC、服務(wù)器或虛擬機(jī)等。
具體的,所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接,用于將上位機(jī)生成的測試用例通過NFS服務(wù)發(fā)送至所述嵌入式開發(fā)單元。
其中,所訴測試用例通過所述上位機(jī)安裝的支持橢圓曲線公鑰密碼算法的軟件生成,所述測試用例至少包括:數(shù)字簽名測試數(shù)據(jù)、簽名驗證測試數(shù)據(jù)、數(shù)據(jù)加密測試數(shù)據(jù)和數(shù)據(jù)解密測試數(shù)據(jù)。
所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接,用于將在交叉編譯環(huán)境內(nèi)編寫的自動化測試程序通過NFS服務(wù)裝載至所述嵌入式開發(fā)單元。
所述嵌入式開發(fā)單元通過SPI與所述待測處理器建立連接,用于通過SPI調(diào)用所述嵌入式開發(fā)單元的自動化測試程序和測試用例,生成測試結(jié)果,并通過SPI將所述測試結(jié)果返回至所述嵌入式開發(fā)單元。
所述上位機(jī)通過NFS服務(wù)與所述嵌入式開發(fā)單元建立連接,還用于將測試結(jié)果通過NFS服務(wù)發(fā)送至所述上位機(jī)。
所述嵌入式開發(fā)單元和待測處理器分別通過串口與所述上位機(jī)進(jìn)行通訊,用于交互所述嵌入式開發(fā)單元和待測處理器與所述上位機(jī)之間的狀態(tài)信息。
一種橢圓曲線公鑰密碼安全協(xié)處理器的測試方法,如圖2所示,所述方法包括:
(1)利用橢圓曲線公鑰密碼軟件生成測試用例并在交叉編譯環(huán)境內(nèi)編寫自動化測試程序;
(2)將所述自動化測試程序裝載至嵌入式開發(fā)單元;
(3)向待測處理器輸入測試用例并運行所述自動化測試程序,生成測試結(jié)果;
(4)將測試結(jié)果通過所述嵌入式開發(fā)單元發(fā)送至上位機(jī)。
具體的,所述步驟(3)中,自動化測試程序包括:
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的數(shù)字簽名測試數(shù)據(jù)進(jìn)行處理,輸出簽名信息及數(shù)字簽名并記錄運行時間;
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的簽名驗證測試數(shù)據(jù)進(jìn)行處理,輸出驗證信息并記錄運行時間;
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的數(shù)據(jù)加密測試數(shù)據(jù)進(jìn)行處理,輸出加密后的密文并記錄運行時間;
循環(huán)執(zhí)行100次調(diào)用橢圓曲線公鑰密碼算法對輸入的測試用例的數(shù)據(jù)解密測試數(shù)據(jù)進(jìn)行處理,輸出解密后的明文并記錄運行時間。
其中,所述數(shù)字簽名測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、用戶的身份標(biāo)識、用戶的私鑰和待簽名消息;所述簽名驗證測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、用戶的身份標(biāo)識、用戶的公鑰、待驗證消息及待驗證信息的數(shù)字簽名;所述數(shù)據(jù)加密測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、解密用戶的公鑰和待加密明文;所述數(shù)據(jù)解密測試數(shù)據(jù)包括:橢圓曲線系統(tǒng)參數(shù)、解密用戶的私鑰和待解密密文。
實施例:
如圖3所示,采用PC機(jī)作為上位機(jī)系統(tǒng),上位機(jī)運行的操怍系統(tǒng)版本為Ubuntu 12.04,并在其上搭建了交叉編譯環(huán)境、NFS服務(wù)以及串口調(diào)試工具,通過交叉編譯環(huán)境在PC機(jī)上編寫測試程序并安裝支持橢圓曲線公鑰密碼算法的軟件,通過支持橢圓曲線公鑰密碼算法的軟件生成測試用例。使用基于ARM9的嵌入式開發(fā)板JZ2440作為SPI通信的master端,并在其上運行嵌入式Linux操作系統(tǒng)與測試程序。待測處理器作為SPI通信的slave端。其中,待測處理器采用256bit密鑰長度的SM2橢圓曲線公鑰密碼安全協(xié)處理器。
分別連接基于ARM9的嵌入式Linux開發(fā)板與待測安全協(xié)處理器之間的SPI數(shù)據(jù)線、開發(fā)板與上位機(jī)之間的以太網(wǎng)連接線。此外,還需分別使用串口連接線將上位機(jī)與開發(fā)板、上位機(jī)與待測安全協(xié)處理器連接起來;具體的,使用SPI數(shù)據(jù)線將待測256bit密鑰長度的SM2橢圓曲線公鑰密碼安全協(xié)處理器與基于ARM9的嵌入式Linux開發(fā)板相連,使用以太網(wǎng)連接線連接開發(fā)板與上位機(jī),開發(fā)板與上位機(jī)的靜態(tài)IP地址需設(shè)置在同一子網(wǎng)內(nèi);使用串口連接線將上位機(jī)與開發(fā)板、上位機(jī)與待測安全協(xié)處理器連接起來,上位機(jī)識別到的串口編號分別為COM1與COM2;
開啟上位機(jī),使用SM2橢圓曲線公鑰密碼軟件生成全部的測試用例,測試用例中包括數(shù)字簽名、簽名驗證、數(shù)據(jù)加密、數(shù)據(jù)解密等用例各1個,具體配置為:生成的橢圓曲線系統(tǒng)參數(shù)長度均為256bit;生成的用戶私鑰長度為256bit;生成的用戶公鑰由橫坐標(biāo)與縱坐標(biāo)組成,其長度均為256bit;用戶身份ID長度不超過64字節(jié);簽名消息或明文的長度不超過64字節(jié);
在上位機(jī)上交叉編譯預(yù)先編寫好的測試程序,測試程序中應(yīng)包含上述全部測試用例;
開啟嵌入式開發(fā)板,待嵌入式開發(fā)板啟動完成后通過NFS服務(wù)將上述測試程序裝載至開發(fā)板中;
開啟待測安全協(xié)處理器模塊,等待應(yīng)用程序從閃存中加載至內(nèi)存中;
運行測試程序,測試結(jié)果文件將自動保存至開發(fā)板中;
其中,運行測試程序具體包括:
測試安全協(xié)處理器的數(shù)字簽名功能,如表1所示,通過SPI協(xié)議輸入橢圓曲線系統(tǒng)參數(shù)、用戶的身份標(biāo)識、用戶的私鑰、待簽名消息,輸出應(yīng)為簽名消息及其數(shù)字簽名。該項測試需循環(huán)運行100次并自動記錄其運行時間;
表1輸入的數(shù)字簽名測試數(shù)據(jù)及輸出的測試結(jié)果
測試安全協(xié)處理器的簽名驗證功能,如表2所示,通過SPI協(xié)議輸入橢圓曲線系統(tǒng)參數(shù)、用戶的身份標(biāo)識、用戶的公鑰、待驗證消息及其數(shù)字簽名,輸出應(yīng)為簽名驗證是否通過。該項測試需循環(huán)運行100次并自動記錄其運行時間;
表2輸入的簽名驗證測試數(shù)據(jù)及輸出的測試結(jié)果
測試安全協(xié)處理器的數(shù)據(jù)加密功能,如表3所示,通過SPI協(xié)議輸入橢圓曲線系統(tǒng)參數(shù)、用戶的公鑰、待加密明文,輸出加密后的密文。該項測試需循環(huán)運行100次并自動記錄其運行時間;
表3輸入的數(shù)據(jù)加密測試數(shù)據(jù)及輸出的測試結(jié)果
測試安全協(xié)處理器的數(shù)據(jù)解密功能,如表4所示,通過SPI協(xié)議輸入橢圓曲線系統(tǒng)參數(shù)、用戶的私鑰、待解密密文,輸出解密后的明文。該項測試需循環(huán)運行100次并自動記錄其運行時間;
表4輸入的數(shù)據(jù)解密測試數(shù)據(jù)及輸出的測試結(jié)果
測試程序運行結(jié)束,上傳測試結(jié)果至上位機(jī)。
本發(fā)明利用上位機(jī)、嵌入式開發(fā)板及相關(guān)配套軟件對橢圓曲線公鑰密碼安全協(xié)處理器進(jìn)行測試,并提出了詳細(xì)的測試方案,解決了橢圓曲線公鑰密碼安全協(xié)處理器的功能與性能測試問題。使用本發(fā)明所述的測試系統(tǒng)及其測試方法,能夠自動的生成測試所需要的測試用例,在測試程序運行過程中不需要人為干預(yù)就可自動完成數(shù)字簽名、簽名驗證、數(shù)據(jù)加密、數(shù)據(jù)解密等功能的功能測試與性能測試,并將測試結(jié)果自動上傳至上位機(jī)。所述測試系統(tǒng)及其測試方法較為全面準(zhǔn)確的給出了待測安全協(xié)處理器的功能與性能指標(biāo),并且大大的提高了測試效率。
最后應(yīng)當(dāng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:依然可以對本發(fā)明的具體實施方式進(jìn)行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。