專利名稱:面向密碼設(shè)備的能量泄露采集方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種面向密碼設(shè)備的能量泄露采集方法及系統(tǒng),屬于信息安全技術(shù)領(lǐng)域。
背景技術(shù):
信息安全的實(shí)質(zhì)就是要保護(hù)信息系統(tǒng)或信息網(wǎng)絡(luò)中的信息資源免受各種類型的威脅、干擾和破壞,即保證信息的安全性。根據(jù)國際標(biāo)準(zhǔn)化組織的定義,信息安全性的含義主要是指信息的完整性、可用性、保密性和可靠性?,F(xiàn)代信息安全的基礎(chǔ)是密碼學(xué),而密碼算法則是構(gòu)建現(xiàn)代信息安全大廈的基石。根據(jù)Kirchhoff原理,密碼算法的安全性僅取決于密鑰而和加密算法本身無關(guān), 因此保護(hù)密碼系統(tǒng)的密鑰不被非法獲取成為信息安全的關(guān)鍵。側(cè)信道密碼分析利用密碼系統(tǒng)運(yùn)行時(shí)所泄露的額外信息,可以快速有效地分析推導(dǎo)出密碼系統(tǒng)中的秘密參數(shù),或者大大減小破解密碼參數(shù)所需的搜索空間。近幾年來,利用執(zhí)行時(shí)間、能量消耗、電磁輻射等側(cè)信息泄露的側(cè)信道分析方法都有了長足的發(fā)展。其中,能量分析攻擊主要利用了密碼設(shè)備的能量消耗中泄露的秘密信息。密碼芯片進(jìn)行密碼運(yùn)算時(shí),其能量消耗密切依賴于該密碼算法的密鑰、明文等敏感參數(shù)及正在進(jìn)行的密碼運(yùn)算,因此對密碼芯片執(zhí)行密碼算法時(shí)的能量消耗曲線進(jìn)行采集和分析,即可從中找到這種依賴關(guān)系,從而恢復(fù)密碼芯片中的密鑰。 能量分析攻擊是典型的側(cè)信道密碼分析方法,已經(jīng)對嵌入式密碼設(shè)備的物理安全性造成了嚴(yán)重威脅。能量泄露采集是實(shí)施能量分析攻擊的重要先決條件,本發(fā)明即面向密碼設(shè)備的能量泄露采集方法及系統(tǒng),旨在解決能量分析時(shí)能量泄露采集過程中的關(guān)鍵技術(shù)。密碼分析是一門研究在不知道通常解密所需要的秘密信息的情況下對加密的信息進(jìn)行解密的學(xué)問。對現(xiàn)代密碼學(xué)而言,密碼分析的核心就是破解出密鑰。針對特定的密碼系統(tǒng)或密碼設(shè)備,側(cè)信道分析可以利用該系統(tǒng)或設(shè)備的側(cè)信息泄露,恢復(fù)出密碼設(shè)備的密鑰等秘密參數(shù)。在側(cè)信道領(lǐng)域中,能量分析攻擊是最簡單有效地并可以對密碼設(shè)備造成巨大殺傷力的一種攻擊方式。能量分析攻擊對密碼實(shí)現(xiàn)的實(shí)際安全性造成了嚴(yán)重威脅,所以對密碼算法實(shí)現(xiàn)的物理安全性進(jìn)行評估,尤其是設(shè)計(jì)階段的物理安全性評估,已經(jīng)成為當(dāng)前國內(nèi)外密碼工程實(shí)踐中一項(xiàng)非常迫切的內(nèi)在需求。美國聯(lián)邦政府近期發(fā)布的密碼模塊評估標(biāo)準(zhǔn)FIPS 140-3DR中也明確提出了密碼模塊對非入侵式攻擊的防御能力的評估,從一個(gè)側(cè)面也說明了側(cè)信道分析領(lǐng)域在密碼模塊安全中的重要角色。為了評估密碼算法實(shí)現(xiàn)的物理安全性,尤其是密碼算法實(shí)現(xiàn)抵抗側(cè)信道分析攻擊的能力,需要一套對于密碼設(shè)備進(jìn)行側(cè)信道攻擊分析檢測的系統(tǒng)。而對密碼設(shè)備進(jìn)行能量分析攻擊檢測的第一步就是快速有效地獲取密碼設(shè)備在執(zhí)行密碼算法時(shí)的能量消耗曲線, 即采樣。由于能量消耗信息通常伴隨較大部分的噪聲,通常情況下,能量分析攻擊都需要利用較多的采樣數(shù)據(jù)來降低噪聲。如何更好地將數(shù)據(jù)中不依賴于密碼安全參數(shù)的部分對分析的影響減至最少,往往是能量分析成功與否的關(guān)鍵。這就對快速有效地采集密碼系統(tǒng)或設(shè)備執(zhí)行密碼算法時(shí)的側(cè)信道泄露數(shù)據(jù)曲線提出了較為苛刻的要求。
發(fā)明內(nèi)容
本發(fā)明提出了一種面向密碼設(shè)備的能量泄露采集方法,并基于此方法實(shí)現(xiàn)了一種通用的能量泄露采集系統(tǒng)。該系統(tǒng)接口和協(xié)議設(shè)計(jì)完善,具有良好的擴(kuò)展性和可配置性,可支持多種類型的目標(biāo)密碼設(shè)備,為側(cè)信道密碼分析領(lǐng)域中的能量分析提供了直接的基礎(chǔ)系統(tǒng)支撐,將成為密碼芯片檢測的一個(gè)強(qiáng)有力的支撐工具。本發(fā)明的技術(shù)方案為一種面向密碼設(shè)備的能量泄露采集方法,其步驟為I)采樣客戶端解析輸入的命令信息,生成采樣命令序列并將其發(fā)送給采樣服務(wù)器;2)采樣服務(wù)器對收到的所述采樣命令序列進(jìn)行解析;如果解析出的命令為目標(biāo)設(shè)備上密碼芯片的控制命令,則將其轉(zhuǎn)換為該密碼芯片能夠識別的控制信息發(fā)送給該密碼芯片;如果解析出的命令為示波器的控制命令,則將其轉(zhuǎn)換為該示波器能夠識別的控制信息發(fā)送給該示波器;3)所述密碼芯片執(zhí)行收到的控制信息并生成觸發(fā)信號;然后將執(zhí)行結(jié)果發(fā)送給采樣服務(wù)器,將所述觸發(fā)信號發(fā)送給所述示波器;4)所述示波器執(zhí)行收到的控制信息,并根據(jù)收到的所述觸發(fā)信號對所述密碼芯片進(jìn)行能量跡信息采集;5)所述示波器將采集的能量跡發(fā)送給采樣服務(wù)器,采樣服務(wù)器將收到的能量跡和所述執(zhí)行結(jié)果發(fā)送給采樣客戶端。進(jìn)一步的,所述目標(biāo)設(shè)備上設(shè)有一能耗測量電路,所述示波器上設(shè)有差分探頭;所述示波器通過所述差分探頭采集所述能耗測量電路探測的能量。進(jìn)一步的,所述采樣服務(wù)器與所述采樣客戶端通過網(wǎng)絡(luò)或數(shù)據(jù)線連接;所述目標(biāo)設(shè)備與所述采樣服務(wù)器通過串口或USB接口連接。進(jìn)一步的,所述輸入的命令信息中包括對所述采樣服務(wù)器的采樣配置命令、對所述示波器的采樣配置命令,對所述目標(biāo)設(shè)備的采樣配置命令。一種面向密碼設(shè)備的能量泄露采集系統(tǒng),其特征在于包括目標(biāo)設(shè)備,采樣客戶端, 采樣服務(wù)器,示波器;所述采樣服務(wù)器通過數(shù)據(jù)線分別與所述目標(biāo)設(shè)備、所述示波器連接, 所述采樣服務(wù)器通過網(wǎng)絡(luò)或數(shù)據(jù)線與所述采樣客戶端連接;所述目標(biāo)設(shè)備包括一密碼芯片,分別與所述密碼芯片連接的觸發(fā)電路和能耗測量電路,所述示波器上設(shè)有探頭,用于采集所述目標(biāo)設(shè)備的能量跡;其中所述采樣客戶端用于將輸入的命令生成命令序列,并將其發(fā)送給所述采樣服務(wù)器;所述采樣服務(wù)器用于解析所述采樣客戶端發(fā)送的命令,如果解析出的命令為目標(biāo)設(shè)備上密碼芯片的控制命令,則將其轉(zhuǎn)換為該密碼芯片能夠識別的控制信息發(fā)送給該密碼芯片;如果解析出的命令為示波器的控制命令,則將其轉(zhuǎn)換為該示波器能夠識別的控制信息發(fā)送給該示波器;以及將收到的所述執(zhí)行結(jié)果和能量跡發(fā)送給所述采樣客戶端;所述目標(biāo)設(shè)備包括芯片控制模塊和算法庫;所述芯片控制模塊用于解析由采樣服務(wù)器發(fā)送的命令,執(zhí)行相應(yīng)的操作并將執(zhí)行結(jié)果發(fā)送給所述采樣服務(wù)器,以及將所述觸發(fā)電路產(chǎn)生的觸發(fā)信號發(fā)送給所述示波器;所述算法庫包括若干密碼算法;所述示波器用于解析并執(zhí)行采樣服務(wù)器發(fā)送的示波器命令,執(zhí)行命令后回發(fā)命令響應(yīng)給采樣服務(wù)器,以及根據(jù)收到的所述觸發(fā)信號對所述目標(biāo)設(shè)備進(jìn)行能量跡信息的采集并將采集的能量跡發(fā)送給所述采樣服務(wù)器。進(jìn)一步的,所述采樣客戶端通過命令行解釋器接收輸入的命令。進(jìn)一步的,所述輸入的命令信息中包括對所述采樣服務(wù)器的采樣配置命令、對所述示波器的采樣配置命令,對所述目標(biāo)設(shè)備的采樣配置命令。進(jìn)一步的,所述采樣服務(wù)器的配置信息包括監(jiān)聽端口號、串口號、串口通訊波特率、連接示波器的連接名稱和設(shè)備代號。進(jìn)一步的,所述目標(biāo)設(shè)備包括一支持變長參數(shù)設(shè)置的命令控制協(xié)議,用于接收輸入的命令控制協(xié)議,控制目標(biāo)密碼設(shè)備完成密碼運(yùn)算,傳遞參數(shù)。進(jìn)一步的,所述示波器采用字符模式或字節(jié)模式將采集的能量跡發(fā)送給所述采樣服務(wù)器。下面首先介紹一下本發(fā)明的總體架構(gòu),然后介紹其功能特性。首先介紹本發(fā)明的總體架構(gòu)。本發(fā)明主要由目標(biāo)設(shè)備、采樣服務(wù)器、采樣客戶端以及示波器四個(gè)部分構(gòu)成??傮w架構(gòu)及連接方式如圖I所示。目標(biāo)設(shè)備通過串口和采樣服務(wù)器連接,示波器通過差分探頭連接目標(biāo)設(shè)備測量接口并采集能量泄露信息,同時(shí)示波器通過一組普通探頭連接目標(biāo)設(shè)備的觸發(fā)接口并捕捉觸發(fā)信號,示波器與采樣服務(wù)器通過TCP/ IP網(wǎng)絡(luò)連接,采樣客戶端與采樣服務(wù)器通過TCP/IP網(wǎng)絡(luò)連接。下面將詳細(xì)介紹這四個(gè)主要構(gòu)成部分。I)目標(biāo)設(shè)備目標(biāo)設(shè)備即需要對其進(jìn)行采樣的一個(gè)嵌入式密碼芯片及其最小工作電路。本發(fā)明中涉及的目標(biāo)設(shè)備必須與采樣服務(wù)器連接,一般采用串口或USB。目標(biāo)設(shè)備可以是多種基于完全不同類型密碼芯片的嵌入式設(shè)備,本發(fā)明以一個(gè)自主研制的PowerSuite為例,說明本采樣系統(tǒng)中目標(biāo)設(shè)備的作用。以PowerSuite為例,其硬件部分的基本組件包括STC89C58RD+微處理器,基于 SP3232EE串口控制芯片的串行通信接口,專用的觸發(fā)控制電路和經(jīng)過濾波優(yōu)化的能耗測量電路部分。軟件部分主要包括3個(gè)基本模塊密碼芯片串行口通信協(xié)議(即通信模塊用于與采樣服務(wù)器之間進(jìn)行數(shù)據(jù)傳輸)、密碼芯片支持的核心算法庫和密碼芯片控制模塊。2)示波器本系統(tǒng)選用了一款可編程數(shù)字示波器。示波器上的軟件部分主要是為了方便快速采樣而設(shè)定的參數(shù)及連接配置,主要包括3個(gè)基本模塊連接模塊,示波器基本參數(shù)配置模塊,大規(guī)模數(shù)據(jù)編碼傳輸模塊,用于與采樣服務(wù)器之間進(jìn)行數(shù)據(jù)傳輸。3)采樣服務(wù)器采樣服務(wù)器為一個(gè)具有串口(或USB)、連接至局域網(wǎng)的PC。串口(或USB)連接目標(biāo)設(shè)備,通過網(wǎng)絡(luò)連接示波器和采樣客戶端。其軟件部分主要包括5個(gè)模塊基于XML的配置管理模塊,與客戶端連接及協(xié)議模塊,命令解析模塊,密碼芯片控制模塊,示波器控制模塊。4)采樣客戶端
采樣客戶端是一個(gè)連接至局域網(wǎng)的PC,通過網(wǎng)絡(luò)連接至采樣服務(wù)器。其軟件部分主要包括5個(gè)模塊命令行參數(shù)解釋模塊,基于XML的配置管理模塊,實(shí)驗(yàn)命令序列生成模塊,服務(wù)器連接及協(xié)議模塊,能量跡格式化存儲模塊。本發(fā)明充分考慮了能量分析攻擊的實(shí)際場景,可以進(jìn)行靈活多樣的配置以適應(yīng)不同的要求,其基本功能特性主要包含以下幾點(diǎn)I)支持遠(yuǎn)程采樣在密碼芯片、示波器以及采樣服務(wù)器都正確配置、連接和運(yùn)行的基礎(chǔ)上,可以方便地將采樣客戶端布署在任何聯(lián)網(wǎng)的主機(jī)上。用戶只需配置好客戶端的命令行采樣參數(shù),即可完成采樣任務(wù)。該架構(gòu)的客戶端可以方便的移植到多平臺上,以滿足不同平臺下對能量分析數(shù)據(jù)采集的需求。2)支持命令行和XML方式配置命令行方式可以方便的分發(fā)到具有網(wǎng)絡(luò)配置的遠(yuǎn)程主機(jī)上,便于遠(yuǎn)程利用采樣系統(tǒng)進(jìn)行采樣,獲取數(shù)據(jù),再進(jìn)行本地離線分析和處理。3)支持多種數(shù)據(jù)格式采樣系統(tǒng)采集得到的能量跡數(shù)據(jù)均可進(jìn)行多種格式的保存,以滿足不同的數(shù)據(jù)分析和處理需求。如ASCII碼字符方式可讀性較強(qiáng),在進(jìn)行數(shù)據(jù)量小的運(yùn)算時(shí)較為方便。 Binary方式可讀性差,但是便于快速傳輸和存儲,也減少了輸入輸出過程中數(shù)據(jù)轉(zhuǎn)換的開銷。4)采樣條件靈活結(jié)合能量分析攻擊對采樣數(shù)據(jù)的要求,該系統(tǒng)可以對采樣參數(shù)進(jìn)行方便快速的設(shè)置。例如,設(shè)置密碼算法的各種參數(shù),明文、密鑰、掩碼等,每種參數(shù)的設(shè)置均支持多種模式, 如隨機(jī)生成,文件讀取等,可以進(jìn)行選擇明文攻擊等。同時(shí),采樣還支持對特定密碼算法執(zhí)行的特定時(shí)間片段進(jìn)行采樣,例如對AES算法第一輪或列混淆操作進(jìn)行采樣等。5)快速支持多種目標(biāo)密碼設(shè)備只要實(shí)現(xiàn)了目標(biāo)密碼設(shè)備控制協(xié)議的具備串行通信接口(或?qū)崿F(xiàn)了目標(biāo)密碼設(shè)備控制協(xié)議的具備USB通信接口)的密碼設(shè)備,均可快速集成進(jìn)本系統(tǒng)。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為本發(fā)明涉及面向密碼設(shè)備的能量泄露采集方法及系統(tǒng),使用該采集系統(tǒng)可以自動化地批量采集嵌入式微處理在運(yùn)行某種特定密碼算法時(shí)的能量消耗數(shù)據(jù)。利用本發(fā)明獲得的數(shù)據(jù)可用于對該密碼算法進(jìn)行能量分析攻擊實(shí)驗(yàn),有助于快速、準(zhǔn)確、有效地評估該密碼算法在嵌入式微處理的物理實(shí)現(xiàn)上所具有的抗能量分析攻擊的能力。
圖I系統(tǒng)總體架構(gòu)圖;圖2板卡硬件結(jié)構(gòu)圖;圖3目標(biāo)設(shè)備內(nèi)部狀態(tài)轉(zhuǎn)換簡圖;圖4軟件體系結(jié)構(gòu)圖。
具體實(shí)施例方式
7
同時(shí),命令行方式可以作為工具軟件模塊快速集成進(jìn)其他復(fù)雜的能量分析系統(tǒng)中。同時(shí),對于經(jīng)常執(zhí)行和設(shè)定的固定參數(shù),可通過XML文件進(jìn)行方便的配置。下面結(jié)合附圖對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)描述。首先介紹系統(tǒng)具體架構(gòu)以及系統(tǒng)各部分連接方式,然后分別對各個(gè)部分的詳細(xì)功能展開描述,最后介紹整個(gè)系統(tǒng)的工作流程。系統(tǒng)總體由目標(biāo)設(shè)備、采樣服務(wù)器、采樣客戶端以及示波器四個(gè)部分構(gòu)成??傮w架構(gòu)及連接方式如圖I所示。目標(biāo)設(shè)備通過串口和采樣服務(wù)器連接,示波器通過差分探頭采集目標(biāo)設(shè)備的能量泄露信息,同時(shí)示波器通過一組普通探頭采集目標(biāo)設(shè)備的觸發(fā)信號,示波器與采樣服務(wù)器通過TCP/IP網(wǎng)絡(luò)連接,采樣客戶端與采樣服務(wù)器通過TCP/IP網(wǎng)絡(luò)連接。詳細(xì)功能本小節(jié)將詳細(xì)介紹系統(tǒng)各部分的設(shè)計(jì)思想和功能描述。I)目標(biāo)設(shè)備目標(biāo)設(shè)備的要求為具有串口(或USB)的可運(yùn)行密碼算法的嵌入式芯片。本發(fā)明選取一款C51架構(gòu)的STC89C58RD+微處理器作為目標(biāo)嵌入式處理器。很多Smart Card相關(guān)設(shè)備都是基于此架構(gòu),其8位處理器的處理能力既能滿足功能要求,又大大簡化了設(shè)計(jì)和制作成本,目前在產(chǎn)業(yè)界應(yīng)用十分廣泛。學(xué)術(shù)界也廣泛采用51架構(gòu)的微處理器作為標(biāo)準(zhǔn)算法的抗能量分析攻擊研究的benchmark,因此采用該款芯片作為目標(biāo)設(shè)備得到的分析結(jié)果具有較好的說服力。以該處理器為核心設(shè)計(jì)的硬件電路板卡的基本組件包括STC89C58RD+微處理器,基于SP3232EE串口控制芯片的串行通信接口,觸發(fā)和能耗測量電路部分,如圖2所示。該目標(biāo)設(shè)備上運(yùn)行的軟件部分主要包括以下3個(gè)模塊■串口驅(qū)動及協(xié)議模塊串口驅(qū)動正確驅(qū)動串口,并配置合適的參數(shù)使其正常工作。串口驅(qū)動之上是一個(gè)支持變長參數(shù)設(shè)置的命令控制協(xié)議,用于控制目標(biāo)密碼設(shè)備完成密碼運(yùn)算,傳遞參數(shù)等。■芯片控制模塊解析由串口驅(qū)動及協(xié)議模塊送達(dá)的采樣服務(wù)器發(fā)送的命令(以字節(jié)形式編碼), 執(zhí)行相應(yīng)的操作,例如選擇密碼算法,設(shè)置明文及密鑰等算法參數(shù),設(shè)置觸發(fā)時(shí)間及位置, 以及查詢密碼芯片狀態(tài)等。通常在執(zhí)行命令后,將命令執(zhí)行的結(jié)果按照協(xié)議組裝成包并交給串口驅(qū)動發(fā)回給上位機(jī)(即服務(wù)器)。同時(shí)根據(jù)芯片控制命令,產(chǎn)生觸發(fā)信號至芯片的相應(yīng)管腳。密碼芯片內(nèi)部運(yùn)行狀態(tài)轉(zhuǎn)換如圖3所示?!鏊惴◣炷壳氨景l(fā)明支持標(biāo)準(zhǔn)的AES 128、DES、3DES、RSA 1024/2048、Ext流密碼等基本算法。算法庫可以從被芯片控制模塊調(diào)用并與之進(jìn)行參數(shù)交互,運(yùn)行特定的密碼算法等。算法庫支持增刪密碼算法。2)示波器本發(fā)明需使用一個(gè)可編程數(shù)字示波器,在網(wǎng)絡(luò)連接配置完成的情況下,可以將示波器采集的數(shù)據(jù)進(jìn)行本地或遠(yuǎn)程存儲。示波器的具體操作方法,需要經(jīng)過軟件編程接口實(shí)現(xiàn)。該示波器上運(yùn)行的軟件部分主要包括以下3個(gè)模塊
■示波器連接模塊基于TCP/IP網(wǎng)絡(luò),連接示波器?!鍪静ㄆ髋渲媚K存儲和配置一些示波器基本參數(shù),解析并執(zhí)行采樣服務(wù)器發(fā)送的示波器命令,執(zhí)行命令后回發(fā)命令響應(yīng)給采樣服務(wù)器。支持的配置項(xiàng)主要涵蓋示波器基本采樣設(shè)置,例如示波器各個(gè)通道的配置,采樣觸發(fā)配置,存儲深度以及采樣頻率等?!鰯?shù)據(jù)傳輸模塊本模塊可被設(shè)置為兩種模式字符模式和字節(jié)模式。字符模式可讀性好,但是數(shù)據(jù)量大,網(wǎng)絡(luò)傳輸開銷較大。字節(jié)模式不可讀,但是數(shù)據(jù)量小,網(wǎng)絡(luò)傳輸開銷較小。字節(jié)模式可以選擇編碼精度,數(shù)據(jù)可以編碼為I個(gè)字節(jié)或者2個(gè)字節(jié)。目前采用的是2個(gè)字節(jié)的二進(jìn)制形式。3)采樣服務(wù)器采樣服務(wù)器應(yīng)該選取一臺具有串口(或USB等其他接口)且網(wǎng)絡(luò)良好的主機(jī),通過串口(或USB等其他接口)連接目標(biāo)設(shè)備,通過網(wǎng)絡(luò)連接客戶端及示波器。采樣服務(wù)器與采用客戶端交互緊密,以軟件形式開發(fā)和部署,其主要軟件架構(gòu)如圖4所示。在采樣服務(wù)器上部署的軟件程序,主要包括以下幾個(gè)模塊■ XML配置管理模塊基于XML文件的參數(shù)配置管理模塊,可動態(tài)支持采樣服務(wù)器自身的配置(如監(jiān)聽端口號、串口號、串口通訊波特率、連接示波器的連接名稱和設(shè)備代號等)?!鼍W(wǎng)絡(luò)連接模塊本模塊基于TCP/IP Socket監(jiān)聽某端口(默認(rèn)8888端口,可通過XML配置模塊進(jìn)行修改)。本模塊負(fù)責(zé)與客戶端建立穩(wěn)定連接,接收客戶端發(fā)送的命令包,將命令包轉(zhuǎn)發(fā)至命令解析模塊,并從命令解析模塊接收相應(yīng)的狀態(tài)和數(shù)據(jù)響應(yīng)包,同時(shí)回發(fā)至采樣客戶端。 當(dāng)多個(gè)客戶端同時(shí)連接采樣服務(wù)器時(shí),本模塊需要對多客戶端請求進(jìn)行排隊(duì),按照隊(duì)列的處理方式處理請求。■命令解析模塊解析客戶端的請求并處理??蛻舳苏埱蠓譃槿齻€(gè)對象密碼芯片、示波器以及服務(wù)器自身。解析不同的命令,并發(fā)送至相應(yīng)的處理模塊(服務(wù)器自身的命令直接在本模塊中處理),收集各個(gè)模塊的響應(yīng)包,在響應(yīng)包中添加服務(wù)器響應(yīng)包頭,然后將其送至網(wǎng)絡(luò)連接模塊。■密碼芯片控制模塊主要從命令解析模塊接收針對密碼芯片的命令。ASCII編碼的字符形式命令,解碼并轉(zhuǎn)化為密碼芯片支持的基于字節(jié)的可配置參數(shù)傳遞協(xié)議流,并通過串口驅(qū)動程序發(fā)送至密碼芯片。同時(shí),獲取密碼芯片回發(fā)的字節(jié)協(xié)議流,解析后重新以ASCII編碼的字符形式組裝為響應(yīng)包?!鍪静ㄆ骺刂颇K主要從命令解析模塊接受針對示波器的控制或配置命令。將需要配置的示波器選項(xiàng)和參數(shù),重新編碼為示波器可讀的命令,發(fā)送至示波器進(jìn)行執(zhí)行。示波器執(zhí)行完同時(shí)將命令執(zhí)行結(jié)果返回給采樣服務(wù)器。
4)采樣客戶端■ XML配置管理模塊基于XML文件的參數(shù)配置管理模塊,可動態(tài)支持程序中的所有可配置屬性。包括采樣的所有配置(如需要進(jìn)行采樣的目標(biāo)算法、明文數(shù)量、重復(fù)次數(shù)、示波器平均次數(shù)、觸發(fā)點(diǎn)的選擇、明文長度、密文長度、密鑰長度、掩碼長度(若有的話)、明文生成方式、明文文件路徑(若明文來源為文件)、密鑰來源、密鑰文件路徑(若密鑰來源為文件)、掩碼來源 (若有的話)、掩碼文件路徑(若掩碼來源為文件)、Trace文件格式和保存路徑),連接配置(如采樣服務(wù)器的IP地址和端口)以及示波器配置(如各個(gè)通道的開閉、偏移量以及測量范圍,示波器的存儲深度、采樣率、平均數(shù)目以及差值,觸發(fā)源、觸發(fā)模式以及觸發(fā)電平, 能量跡采集通道,能量跡數(shù)據(jù)的存儲以及傳送)。■網(wǎng)絡(luò)連接模塊基于TCP/IP協(xié)議的Socket編程規(guī)范,從配置管理模塊得到服務(wù)器的IP和端口號,建立連接請求。可以與采樣服務(wù)器建立穩(wěn)定的數(shù)據(jù)連接,然后主動向服務(wù)器發(fā)送命令請求包,同時(shí)接受服務(wù)器返回的狀態(tài)及結(jié)果數(shù)據(jù)包。網(wǎng)絡(luò)連接模塊通常需要先與采樣服務(wù)器建立穩(wěn)定連接,然后對目標(biāo)密碼設(shè)備和示波器進(jìn)行合理有效的配置,然后開始采樣。每一次數(shù)據(jù)采集都需要經(jīng)過設(shè)置密碼參數(shù),啟動密碼芯片和示波器觸發(fā)控制,觸發(fā)條件滿足判斷,數(shù)據(jù)傳輸,清除示波器觸發(fā)條件和密碼芯片密碼參數(shù)等操作,該模塊與其他模塊配合緊密,共同完成采樣任務(wù)?!雒钚薪忉屍鹘邮苡脩魪拿钚休斎氲膮?shù),可以定制一些有關(guān)采樣的參數(shù)(如明文數(shù)量、明文生成方式、明文長度、密鑰來源、密鑰文件路徑(若密鑰來源為文件)、密鑰長度、掩碼長度(若有的話)、掩碼來源(若有的話)、掩碼文件路徑(若掩碼來源為文件)、密文長度、觸發(fā)信號的選擇、重復(fù)次數(shù)、示波器平均次數(shù)、執(zhí)行算法、能量跡保存格式和路徑)。該參數(shù)將覆蓋掉XML配置文件中相同的項(xiàng)目,若某些參數(shù)沒有在命令行中進(jìn)行設(shè)置,程序則會讀取 XML文件中的配置?!霾蓸用钚蛄猩赡K采樣命令序列生成模塊是一個(gè)核心模塊。對能量跡進(jìn)行采樣是一個(gè)完整的過程, 需要根據(jù)命令行解釋器和XML配置表示的采樣需求,需要執(zhí)行一系列操作,然后將每一個(gè)操作轉(zhuǎn)換為相應(yīng)密碼芯片命令及示波器命令序列,使得密碼芯片、示波器、采樣服務(wù)器、采樣客戶端四部分能夠以同步方式完成采樣,并正確保存采樣數(shù)據(jù)。該模塊從命令行解析模塊和XML配置模塊接受輸入,然后將產(chǎn)生的命令序列發(fā)送給網(wǎng)絡(luò)模塊,并將數(shù)據(jù)請求命令的結(jié)果轉(zhuǎn)發(fā)給能量跡記錄模塊。整個(gè)采樣過程就是該模塊不斷調(diào)用其他模塊,完成命令序列的順序執(zhí)行的過程。該模塊主要負(fù)責(zé)對不同采樣需求生成相應(yīng)正確的采樣命令序列。例如采集一條AES算法的能量跡,需要生成如下一個(gè)系列的命令序列。配置示波器Channell為信號通道,Channe13為觸發(fā)通道,配置觸發(fā)條件,對每一對明文、密鑰配置的加密運(yùn)算采樣I次,不進(jìn)行平均化處理,明文長度、密鑰長度、密文長度都為16,明文、密鑰均來自文件,Trace文件格式為MULTILINE(每一行存儲一個(gè)采樣點(diǎn)的數(shù)據(jù))。
上述配置信息中,示波器信號通道可在XML配置模塊中由用戶自行修改,其它配置信息用戶可通過在采樣客戶端輸入命令進(jìn)行修改。用戶在客戶端輸入以下命令SCAClient. exe-rl-plainLength 16-keyLength 16-cipherLength 16-plain FILE-plainfile D:/plain, txt-key FILE-keyfile D:/key.txt-Trace MULTILINE-root D;/root用戶按下回車后,命令行解釋器隨即開始對用戶輸入的命令進(jìn)行解析處理,并將與采樣相關(guān)的配置信息發(fā)送給采樣命令序列生成模塊,如本例中的_rl,-plainLength 16, -keyLength 16, -cipherLength 16, -plain FILE, -plainfile D:/plain.txt, -key FILE以及-keyfile D:/key. txt.對于用戶沒有配置的采樣信息如存儲深度和采樣頻率, 采樣命令生成模塊接收來自XML配置模塊的默認(rèn)配置。然后,采樣命令生成模塊將接收到的配置信息進(jìn)行處理并生成命令序列,然后將這些命令序列發(fā)送給網(wǎng)絡(luò)模塊?!瞿芰扣E記錄模塊主要從網(wǎng)絡(luò)連接模塊接收二進(jìn)制形式的能量跡數(shù)據(jù),將其轉(zhuǎn)化為采樣配置中指定的文件格式,按照參數(shù)指定的路徑保存成文件。本模塊支持多種文件格式,按照文件個(gè)數(shù)分,有一條能量跡一個(gè)文件,以及一次采集的多條能量跡均存在一個(gè)文件里;按照文件編碼分,有保存能量跡中點(diǎn)的二進(jìn)制形式,以及保存為ASCII碼的可讀形式。不同的文件格式用途不同,可以根據(jù)采樣需求靈活設(shè)置。工作流程在系統(tǒng)正確連接,并確定了實(shí)驗(yàn)方案后,就可以開始進(jìn)行能量跡的采樣,這一過程中,系統(tǒng)內(nèi)部會進(jìn)行下列工作(如說明書附圖4中箭頭所示)I、用戶在客戶端輸入命令信息,客戶端的命令行解析器對命令信息進(jìn)行解析,并利用相應(yīng)的命令對XML配置模塊、能量跡記錄模塊進(jìn)行設(shè)置,同時(shí)利用采樣命令序列生成模塊生成采樣命令序列;2、在I中生成的采樣命令序列通過采樣客戶端的網(wǎng)絡(luò)連接模塊發(fā)送給服務(wù)器端的網(wǎng)絡(luò)連接模塊;3、服務(wù)器端利用命令解析和組裝模塊對接收到的采樣命令序列進(jìn)行解析和處理。并將解析到的命令發(fā)送給相應(yīng)的處理模塊(服務(wù)器自身的命令直接在本模塊中進(jìn)行處理)密碼芯片控制模塊、示波器控制模塊。在不同的模塊中進(jìn)行后續(xù)的處理。4、密碼芯片控制模塊和示波器控制模塊接收到命令后,會進(jìn)行以下處理A、密碼芯片控制模塊接收到命令后,將其解碼并轉(zhuǎn)化為密碼芯片支持的基于字節(jié)的可配置參數(shù)傳遞協(xié)議流,并通過串口驅(qū)動程序發(fā)送給密碼芯片;B、示波器控制模塊接收到命令后,將其解碼為示波器可識別的命令并調(diào)用 Agilent IO Library相應(yīng)的API對示波器的選項(xiàng)和參數(shù)進(jìn)行配置。5、這一步驟中由密碼芯片和示波器兩部分分別執(zhí)行相應(yīng)的處理工作A、密碼芯片通過串口驅(qū)動及協(xié)議模塊接收來自服務(wù)器端的控制信息后,執(zhí)行相應(yīng)的命令,并將命令執(zhí)行的結(jié)果按照協(xié)議組裝成包并交由串口驅(qū)動發(fā)回給服務(wù)器的密碼芯片控制1吳塊;B、在密碼芯片執(zhí)行相應(yīng)命令的過程中,會產(chǎn)生相應(yīng)的觸發(fā)信號,同時(shí)會泄漏能量跡信息。示波器就可以按照已有的配置對能量跡進(jìn)行采樣。然后通過數(shù)據(jù)傳輸模塊和示波器連接模塊將能量跡信息傳送給服務(wù)器端的示波器控制模塊。6、服務(wù)器端將接收到的能量跡信息和密碼芯片執(zhí)行結(jié)果利用命令解析和組裝模塊在信息數(shù)據(jù)包中添加服務(wù)器響應(yīng)包頭,然后通過網(wǎng)絡(luò)連接模塊將其發(fā)送至采樣客戶端。7、采樣客戶端利用能量跡記錄模塊將接收到的能量跡數(shù)據(jù)轉(zhuǎn)化為采樣配置中指定的文件格式,并按照參數(shù)指定的路徑保存。當(dāng)采樣客戶端接收到密碼芯片執(zhí)行結(jié)果時(shí),表明密碼芯片中一次算法執(zhí)行已經(jīng)結(jié)束,執(zhí)行結(jié)果在終端界面打印出來。
權(quán)利要求
1.一種面向密碼設(shè)備的能量泄露采集方法,其步驟為1)采樣客戶端解析輸入的命令信息,生成采樣命令序列并將其發(fā)送給采樣服務(wù)器;2)采樣服務(wù)器對收到的所述采樣命令序列進(jìn)行解析;如果解析出的命令為目標(biāo)設(shè)備上密碼芯片的控制命令,則將其轉(zhuǎn)換為該密碼芯片能夠識別的控制信息發(fā)送給該密碼芯片;如果解析出的命令為示波器的控制命令,則將其轉(zhuǎn)換為該示波器能夠識別的控制信息發(fā)送給該示波器;3)所述密碼芯片執(zhí)行收到的控制信息并生成觸發(fā)信號;然后將執(zhí)行結(jié)果發(fā)送給采樣服務(wù)器,將所述觸發(fā)信號發(fā)送給所述示波器;4)所述示波器執(zhí)行收到的控制信息,并根據(jù)收到的所述觸發(fā)信號對所述密碼芯片進(jìn)行能量跡信息采集;5)所述示波器將采集的能量跡發(fā)送給采樣服務(wù)器,采樣服務(wù)器將收到的能量跡和所述執(zhí)行結(jié)果發(fā)送給采樣客戶端。
2.如權(quán)利要求I所述的方法,其特征在于所述目標(biāo)設(shè)備上設(shè)有一能耗測量電路,所述示波器上設(shè)有差分探頭;所述示波器通過所述差分探頭采集所述能耗測量電路探測的能量。
3.如權(quán)利要求I所述的方法,其特征在于所述采樣服務(wù)器與所述采樣客戶端通過網(wǎng)絡(luò)或數(shù)據(jù)線連接;所述目標(biāo)設(shè)備與所述采樣服務(wù)器通過串口或USB接口連接。
4.如權(quán)利要求I或2或3所述的方法,其特征在于所述輸入的命令信息中包括對所述采樣服務(wù)器的采樣配置命令、對所述示波器的采樣配置命令,對所述目標(biāo)設(shè)備的采樣配置命令。
5.一種面向密碼設(shè)備的能量泄露采集系統(tǒng),其特征在于包括目標(biāo)設(shè)備,采樣客戶端,采樣服務(wù)器,示波器;所述采樣服務(wù)器通過數(shù)據(jù)線分別與所述目標(biāo)設(shè)備、所述示波器連接,所述采樣服務(wù)器通過網(wǎng)絡(luò)或數(shù)據(jù)線與所述采樣客戶端連接;所述目標(biāo)設(shè)備包括一密碼芯片, 分別與所述密碼芯片連接的觸發(fā)電路和能耗測量電路,所述示波器上設(shè)有探頭,用于采集所述目標(biāo)設(shè)備的能量跡;其中所述采樣客戶端用于將輸入的命令生成命令序列,并將其發(fā)送給所述采樣服務(wù)器;所述采樣服務(wù)器用于解析所述采樣客戶端發(fā)送的命令,如果解析出的命令為目標(biāo)設(shè)備上密碼芯片的控制命令,則將其轉(zhuǎn)換為該密碼芯片能夠識別的控制信息發(fā)送給該密碼芯片;如果解析出的命令為示波器的控制命令,則將其轉(zhuǎn)換為該示波器能夠識別的控制信息發(fā)送給該示波器;以及將收到的所述執(zhí)行結(jié)果和能量跡發(fā)送給所述采樣客戶端;所述目標(biāo)設(shè)備包括芯片控制模塊和算法庫;所述芯片控制模塊用于解析由采樣服務(wù)器發(fā)送的命令,執(zhí)行相應(yīng)的操作并將執(zhí)行結(jié)果發(fā)送給所述采樣服務(wù)器,以及將所述觸發(fā)電路產(chǎn)生的觸發(fā)信號發(fā)送給所述示波器;所述算法庫包括若干密碼算法;所述示波器用于解析并執(zhí)行采樣服務(wù)器發(fā)送的示波器命令,執(zhí)行命令后回發(fā)命令響應(yīng)給采樣服務(wù)器,以及根據(jù)收到的所述觸發(fā)信號對所述目標(biāo)設(shè)備進(jìn)行能量跡信息的采集并將采集的能量跡發(fā)送給所述采樣服務(wù)器。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于所述采樣客戶端通過命令行解釋器接收輸入的命令。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于所述輸入的命令信息中包括對所述采樣服務(wù)器的采樣配置命令、對所述示波器的采樣配置命令,對所述目標(biāo)設(shè)備的采樣配置命令。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于所述采樣服務(wù)器的配置信息包括監(jiān)聽端口號、串口號、串口通訊波特率、連接示波器的連接名稱和設(shè)備代號。
9.如權(quán)利要求5所述的系統(tǒng),其特征在于所述目標(biāo)設(shè)備包括一支持變長參數(shù)設(shè)置的命令控制協(xié)議,用于接收輸入的命令控制協(xié)議,控制目標(biāo)密碼設(shè)備完成密碼運(yùn)算,傳遞參數(shù)。
10.如權(quán)利要求5所述的系統(tǒng),其特征在于所述示波器采用字符模式或字節(jié)模式將采集的能量跡發(fā)送給所述采樣服務(wù)器。
全文摘要
本發(fā)明公開了一種面向密碼設(shè)備的能量泄露采集方法及系統(tǒng),屬于信息安全技術(shù)領(lǐng)域。本方法1)采樣客戶端解析輸入的命令信息,生成采樣命令序列并將其發(fā)送給采樣服務(wù)器;2)采樣服務(wù)器對采樣命令序列進(jìn)行解析并發(fā)送示波器或密碼芯片;3)密碼芯片執(zhí)行收到的控制信息并生成觸發(fā)信號;然后將執(zhí)行結(jié)果發(fā)送給采樣服務(wù)器,將所述觸發(fā)信號發(fā)送給示波器;4)示波器執(zhí)行收到的控制信息,并根據(jù)觸發(fā)信號對密碼芯片進(jìn)行能量跡信息采集;5)示波器將采集的能量跡經(jīng)采樣服務(wù)器發(fā)送給采樣客戶端。本系統(tǒng)包括目標(biāo)設(shè)備,采樣客戶端,采樣服務(wù)器,示波器。本發(fā)明有助于快速、準(zhǔn)確、有效地評估密碼算法在嵌入式微處理的物理實(shí)現(xiàn)上所具有的抗能量分析攻擊能力。
文檔編號H04L9/06GK102546150SQ20121002685
公開日2012年7月4日 申請日期2012年2月7日 優(yōu)先權(quán)日2012年2月7日
發(fā)明者劉繼業(yè), 周永彬, 曹雨晨, 楊樹果 申請人:中國科學(xué)院軟件研究所