亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

通信裝置和安全模塊的制作方法

文檔序號(hào):7888553閱讀:220來源:國知局
專利名稱:通信裝置和安全模塊的制作方法
技術(shù)領(lǐng)域
這里公開的實(shí)施例涉及通信裝置和安全模塊。
背景技術(shù)
例如移動(dòng)終端之類的終端的規(guī)格和軟件結(jié)構(gòu)被保持秘密。利用完好性得到確保的安全模塊(例如防篡改模塊)可以確保例如真實(shí)的密碼密鑰(cryptographic key)之類的機(jī)密信息的安全性。安全模塊的一個(gè)示例是訂戶身份模塊(SIM)卡。例如,為了與終端通信,外部裝置判定接收到的通信內(nèi)容是否被用完好性得到確保的真實(shí)密碼密鑰加密,從而判定通信內(nèi)容是否是真實(shí)的。相關(guān)技術(shù)在日本早期專利公布No. 2004-129227和日本專利No. 4408601中公開。例如,由于智能電話終端的規(guī)格或軟件結(jié)構(gòu)可被公開給公眾,所以終端中的軟件可被分析并篡改。由于使用軟件的接口也被公開給公眾,所以利用非真實(shí)軟件可以讀取內(nèi)部結(jié)構(gòu)未被篡改的安全模塊中的機(jī)密信息。由于非真實(shí)軟件可發(fā)送利用真實(shí)密碼密鑰加密的偽造通信內(nèi)容到外部裝置,所以外部裝置可能不能判定通信內(nèi)容的真實(shí)性。

發(fā)明內(nèi)容
根據(jù)一個(gè)實(shí)施例,一種通信裝置包括安全模塊;設(shè)在安全模塊外部的第一存儲(chǔ)設(shè)備,存儲(chǔ)用于利用存儲(chǔ)在安全模塊中的密碼密鑰與通信裝置外部的裝置加密通信的程序;設(shè)在安全模塊中的檢測單元,檢測對(duì)程序的篡改;以及設(shè)在安全模塊中的設(shè)定單元,當(dāng)檢測到對(duì)程序的篡改時(shí)禁止加密通信。這種結(jié)構(gòu)可減少對(duì)安全模塊的窺探或者可減少對(duì)安全模塊中的數(shù)據(jù)的篡改。本發(fā)明的額外優(yōu)點(diǎn)和新穎特征部分將在接下來的描述中記載,部分將在本領(lǐng)域的技術(shù)人員考查以下內(nèi)容時(shí)或在通過實(shí)踐本發(fā)明而學(xué)習(xí)時(shí)變得更顯而易見。


圖1A、1B和IC各自示出了示例性通信;圖2示出了示例性的通信裝置;圖3示出了示例性的安全模塊;圖4示出了示例性的通信裝置;圖5示出了示例性的安全模塊;圖6示出了示例性的安全模塊;圖7示出了通信裝置的示例性操作;圖8示出了通信裝置的示例性操作;圖9示出了示例性的掃描程序;圖10示出了示例性的掃描程序;
圖11示出了示例性的掃描程序;圖12示出了示例性的掃描程序;圖13示出了示例性的掃描程序生成/更新處理;圖14示出了示例性的掃描程序生成處理;圖15示出了示例性的掃描程序生成處理;圖16示出了示例性的掃描程序更新處理;
圖17示出了示例性的掃描程序更新處理;圖18示出了示例性的程序修改;圖19示出了示例性的程序修改;圖20示出了示例性的程序修改;圖21示出了示例性的程序修改;圖22示出了示例性的程序修改;圖23示出了示例性的程序修改;圖24示出了示例性的混排(shuffling)處理;圖25A至25C示出了示例性的程序修改;圖26示出了示例性的計(jì)算程序;圖27示出了示例性的認(rèn)證處理;圖28示出了示例性的加密許可處理;圖29示出了示例性的認(rèn)證序列;圖30示出了示例性的認(rèn)證序列;圖31示出了加密通信的示例性序列;圖32示出了加密通信的示例性序列;并且圖33示出了示例性的加密通信。
具體實(shí)施例方式圖IA至IC示出了示例性通信。通信可在通信裝置和中心之間執(zhí)行。圖IA至IC的每一幅中示出的通信裝置101包括安全模塊102。通信裝置101還可包括程序(例如加密通信程序),用于通過使用安全模塊102中的密碼密鑰(例如密碼密鑰K)來執(zhí)行加密通信。在加密通信中,通信內(nèi)容被加密。例如,在加密通信程序中,要發(fā)送的通信內(nèi)容被利用密碼密鑰K加密,或者接收到的通信內(nèi)容被利用密碼密鑰K解密。用于加密的密鑰和用于解密的密鑰可以是相互不同的。利用加密通信程序,通信裝置101通過網(wǎng)絡(luò)110與例如中心103這樣的外部裝置執(zhí)行加密通信。加密通信程序例如可包括書籍定購軟件、電子書定購軟件或者電子貨幣接收軟件。通信裝置101可通過網(wǎng)絡(luò)110耦合到破解者的計(jì)算機(jī)104。安全模塊102可具有保護(hù)內(nèi)部信息免受外部引用的結(jié)構(gòu)。這種結(jié)構(gòu)的ー個(gè)示例是具有防篡改模塊結(jié)構(gòu)(TRM結(jié)構(gòu))的大規(guī)模集成電路(LSI)。這種結(jié)構(gòu)可減少對(duì)安全模塊102的窺探或者減少對(duì)安全模塊102中的數(shù)據(jù)的篡改。安全模塊102可保存真實(shí)的密碼密鑰K。與密碼密鑰K相對(duì)應(yīng)的解密密鑰可以是密碼密鑰K。當(dāng)密碼密鑰K和解密密鑰相互不同吋,安全模塊102可保存解密密鑰。安全模塊102可保存與與其執(zhí)行通信的中心103的密碼密鑰相對(duì)應(yīng)的解密密鑰。安全模塊102可周期性地監(jiān)視例如目標(biāo)程序TP之類的程序是真實(shí)的程序還是經(jīng)篡改的非真實(shí)程序。目標(biāo)程序TP可以是通信裝置101中的加密通信程序。在判定目標(biāo)程序TP是真實(shí)程序時(shí),安全模塊102向目標(biāo)程序TP提供用于對(duì)通信內(nèi)容加密的密碼密鑰K。在判定目標(biāo)程序TP是非真實(shí)程序時(shí),安全模塊102被置于如下狀態(tài)在該狀態(tài)中,通信裝置101中的目標(biāo)程序TP不能利用密碼密鑰K執(zhí)行加密通信。當(dāng)建立了不能利用密碼密鑰K執(zhí)行加密通信的狀態(tài)時(shí),例如,安全模塊102可拒絕從非真實(shí)程序發(fā)出的密碼密鑰K讀取請求或通信內(nèi)容加密請求。例如,安全模塊102的功能可被停止,直到重啟為止。或者,安全模塊102可向通信裝置101發(fā)送停止非真實(shí)程序的請求以終止非真實(shí)程序。中心103可與通信裝置101執(zhí)行加密通信。中心103可保存與中心102中的密碼密鑰K相對(duì)應(yīng)的解密密鑰。例如,當(dāng)安全模塊102中的密碼密鑰K是秘密密鑰時(shí),中心103處的解密密鑰可以是安全模塊102的公鑰。例如,安全模塊102中的密碼密鑰K和中心103處的解密密鑰可由共同的密鑰實(shí)現(xiàn)。中心103可判定接收到的內(nèi)容是否被用密碼密鑰K加密了,來判定通信內(nèi)容是否是真實(shí)的。例如,當(dāng)中心103利用與密碼密鑰K相對(duì)應(yīng)的解密密鑰適當(dāng)?shù)亟饷芰私邮盏降膬?nèi)容時(shí),中心103可判定接收到的內(nèi)容是真實(shí)的通信內(nèi)容。如圖IA中所示,當(dāng)真實(shí)程序在通信裝置101中適當(dāng)?shù)剡\(yùn)行時(shí),安全模塊102可判定目標(biāo)程序TP是真實(shí)程序。安全模塊102可向該真實(shí)程序提供用于對(duì)相應(yīng)的通信內(nèi)容加密的密碼密鑰K。該真實(shí)程序可通過使用真實(shí)的密碼密鑰K來對(duì)通信內(nèi)容進(jìn)行加密并且可將經(jīng)加密的內(nèi)容發(fā)送到中心103。基于通信內(nèi)容是否已被用真實(shí)的密碼密鑰K加密,中心103檢查通信內(nèi)容。例如,當(dāng)中心103利用與密碼密鑰K相對(duì)應(yīng)的解密密鑰適當(dāng)?shù)亟饷芰送ㄐ艃?nèi)容時(shí),中心103可判定接收到的內(nèi)容是真實(shí)的?;诮邮盏降耐ㄐ艃?nèi)容,例如,中心103處的用戶可向通信裝置101的用戶發(fā)送書籍或者可為該書籍收取費(fèi)用。如圖IB中所示,真實(shí)程序可被從破解者的計(jì)算機(jī)104發(fā)送到通信裝置101的非真實(shí)程序所覆蓋。非真實(shí)程序例如可以是通過篡改書籍銷售軟件而產(chǎn)生的程序。非真實(shí)程序可偽造在通信裝置101的用戶購買時(shí)輸入的遞送地址,并且因此,用戶購買的書籍可被竊取。如圖IC中所示,當(dāng)非真實(shí)程序在通信裝置101中運(yùn)行時(shí),安全模塊102可判定目標(biāo)程序TP是非真實(shí)程序。在判定目標(biāo)程序TP是非真實(shí)程序時(shí),安全模塊102可被置于如下狀態(tài)在該狀態(tài)中,通信裝置101中的目標(biāo)程序TP不能利用密碼密鑰K執(zhí)行加密通信。從而,非真實(shí)程序可不能利用真實(shí)的密碼密鑰K來對(duì)偽造的通信內(nèi)容加密。雖然真實(shí)程序利用真實(shí)的密碼密鑰K對(duì)通信內(nèi)容加密,但非真實(shí)程序不可利用真實(shí)的密碼密鑰K對(duì)偽造的通信內(nèi)容加密。結(jié)果,中心103不會(huì)錯(cuò)誤地將偽造的通信內(nèi)容識(shí)別為從真實(shí)程序發(fā)送來的通信內(nèi)容,通信的完好性可得到確保。圖2示出了示例性的通信裝置。圖2示出了通信裝置101的硬件配置。通信裝置101包括處理器201、只讀存儲(chǔ)器(ROM) 202、隨機(jī)訪問存儲(chǔ)器(RAM) 203和硬盤驅(qū)動(dòng)器(HDD) 204。通信裝置101還包括接口 205、顯示器206和安全模塊102。通信裝置101的元件可通過總線200互連。處理器201可控制整個(gè)通信裝置101。ROM 202可存儲(chǔ)程序,例如引導(dǎo)程序。RAM203可用作處理器201的工作區(qū)域。在處理器201的控制下,HDD 204可控制向內(nèi)置的硬盤寫入數(shù)據(jù)/從內(nèi)置的硬盤讀取數(shù)據(jù)。接ロ 205可耦合到網(wǎng)絡(luò)110,例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或因特網(wǎng),并且可通過網(wǎng)絡(luò)Iio耦合到另ー裝置。接ロ 205作為網(wǎng)絡(luò)110與內(nèi)部元件之間的接ロ,以控制來自外部裝置的數(shù)據(jù)的輸入/輸出。接ロ 205例如可包括調(diào)制解調(diào)器和LAN適配器。 顯示器206例如顯示光標(biāo)、圖標(biāo)、工具箱、文檔、圖像或功能性信息的數(shù)據(jù)等等。顯示器206的示例可包括陰極射線管(CRT)顯示器、TFT (薄膜晶體管)液晶顯示器和等離子顯示器。安全模塊102從HDD 204中讀取目標(biāo)程序TP并且生成或更新用于掃描目標(biāo)程序TP以檢測篡改的掃描程序。安全模塊102將目標(biāo)程序TP和掃描程序加載到RAM 203中,執(zhí)行加密或解密,或者生成隨機(jī)數(shù)。安全模塊102可以安全的方式保存密碼密鑰K或用戶標(biāo)識(shí)ィ目息。安全模塊102也可保存真實(shí)的密碼密鑰K或用戶標(biāo)識(shí)信息,并且通信裝置101可執(zhí)行加密或解密或生成隨機(jī)數(shù)。安全模塊102根據(jù)來自通信裝置101的請求而輸出密碼密鑰K或用戶標(biāo)識(shí)信息。安全模塊102可設(shè)置在通信裝置101內(nèi)部或外部。圖3示出了示例性的安全模塊。圖3中所示的安全模塊可以是圖2中所示的安全模塊102。安全模塊102包括處理器301、接ロ 302、密碼電路303、RAM 304, ROM 305、閃存306以及隨機(jī)數(shù)生成電路307。處理器301控制安全模塊102或執(zhí)行計(jì)算。接ロ 302通過總線300耦合到通信裝置101中的元件以與外部裝置通信。密碼電路303對(duì)數(shù)據(jù)或程序加密或者對(duì)經(jīng)加密的數(shù)據(jù)或經(jīng)加密的程序解密。RAM 304可以是用作處理器301的工作區(qū)域的主存儲(chǔ)器。ROM 305可以是存儲(chǔ)程序和數(shù)據(jù)的非易失性存儲(chǔ)器。ROM 305可存儲(chǔ)真實(shí)密碼密鑰K或用戶標(biāo)識(shí)信息。閃存306可以是非易失性存儲(chǔ)器,其中存儲(chǔ)的數(shù)據(jù)或存儲(chǔ)的程序可被改寫。隨機(jī)數(shù)生成電路307生成隨機(jī)數(shù)。例如,通過將安全模塊102結(jié)合到單芯片LSI中,如圖3中所示,不可從外部篡改安全模塊102。例如,安全模塊102可具有TRM結(jié)構(gòu)。TRM結(jié)構(gòu)物理地或邏輯地保護(hù)半導(dǎo)體芯片(例如安全模塊102)免遭內(nèi)部分析和篡改。例如,一粘性很高且強(qiáng)力的涂層可被施加到安全模塊102內(nèi)的一部分。利用這種結(jié)構(gòu),當(dāng)安全模塊102被移除時(shí),安全模塊102的內(nèi)部電路可破損。也可提供虛假導(dǎo)線。圖4示出了示例性的通信裝置。圖4中所示的通信裝置101包括處理器201、R0M202, RAM 203, HDD 204、接ロ 205、顯示器206和安全模塊102。在圖4中,與圖2中所示的元件基本相同或相似的元件被用相同的標(biāo)號(hào)表示,并且對(duì)其的描述被省略或減少。圖4中所示的安全模塊102包括用于執(zhí)行加密或解密或生成隨機(jī)數(shù)的LSI 401和用于以安全方式保存密碼密鑰K或用戶標(biāo)識(shí)信息的SM卡402。LSI 401從SM卡402中讀取密碼密鑰K并且適當(dāng)?shù)貙?duì)密碼密鑰K加密或解密。圖5示出了示例性的安全模塊。圖5中所示的安全模塊可以是圖4中所示的安全模塊102。圖5中所示的安全模塊102包括LSI 401和SM卡402。LSI 401包括處理器301、接口 302、密碼電路303、RAM 304、ROM 305、閃存306和隨機(jī)數(shù)生成電路307。SM卡402以安全方式保存密碼密鑰K和用戶標(biāo)識(shí)信息。在安全模塊102中,LSI 401和SM卡402經(jīng)由接口 302互連以執(zhí)行通信。在圖5中,與圖3中所示的元件基本相同或相似的元件被用相同的標(biāo)號(hào)表不,并且對(duì)其的描述被省略或減少。當(dāng)安全模塊102是包括多個(gè)芯片并且被用樹脂加固的單個(gè)模塊時(shí),如圖5中所示,第三方對(duì)安全模塊102的篡改可被減少。圖6示出了示例性的安全模塊。安全模塊102包括檢測單元601、設(shè)定單元602、存儲(chǔ)單元603、生成單元604、修改單元605、判定單元606、獲得單元607、密碼單元608以及 輸出單元609。檢測單元601檢測對(duì)程序的篡改。該程序可被保存在通信裝置101的存儲(chǔ)設(shè)備中。該程序可使用安全模塊102中保存的密碼密鑰K來與通信裝置101外部的裝置(例如中心103)執(zhí)行加密通信。例如,該程序可包括目標(biāo)程序TP。例如,掃描程序可在通信裝置101中對(duì)存儲(chǔ)在通信裝置101的存儲(chǔ)設(shè)備的特定存儲(chǔ)區(qū)域中的程序運(yùn)行掃描程序。檢測單元601基于存儲(chǔ)單元603中存儲(chǔ)的代碼和通信裝置101執(zhí)行的掃描程序運(yùn)行的結(jié)果,來檢測對(duì)該特定存儲(chǔ)區(qū)域中存儲(chǔ)的程序的篡改。該特定存儲(chǔ)區(qū)域可以是RAM 203中的包括目標(biāo)程序TP的掃描目標(biāo)區(qū)域,例如可以是掃描目標(biāo)區(qū)域230。掃描程序可以是用于檢測對(duì)目標(biāo)程序TP的篡改的程序,例如可以是掃描程序SP。掃描程序可在通信裝置101內(nèi)運(yùn)行。該代碼可以是目標(biāo)程序TP的程序代碼并且掃描程序運(yùn)行的結(jié)果可以是對(duì)目標(biāo)程序TP的程序代碼的給定計(jì)算結(jié)果。該給定計(jì)算例如包括四則運(yùn)算、邏輯運(yùn)算、校驗(yàn)和計(jì)算或使用散列函數(shù)的散列值計(jì)算。檢測單元601檢測對(duì)目標(biāo)程序TP的基于破解的篡改。例如,檢測單元601基于掃描程序?qū)νㄐ叛b置101中的存儲(chǔ)設(shè)備中的特定存儲(chǔ)區(qū)域中存儲(chǔ)的程序和存儲(chǔ)單元603中存儲(chǔ)的代碼的運(yùn)行結(jié)果,來檢測對(duì)特定存儲(chǔ)區(qū)域中存儲(chǔ)的程序的篡改。掃描程序可在安全模塊102內(nèi)運(yùn)行。檢測單元601檢測對(duì)目標(biāo)程序TP的基于破解的篡改。由于檢測單元601在完好性得到確保的安全模塊102中運(yùn)行掃描程序,所以可以減少對(duì)掃描程序的破解。檢測單元601可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)操作。設(shè)定單元602將安全模塊102置于程序不可利用密碼密鑰K執(zhí)行加密通信的狀態(tài)中。例如,當(dāng)檢測單元601檢測到對(duì)程序的篡改時(shí),設(shè)定單元602可停止密碼單元608、輸出單元609或所有功能。設(shè)定單元602還可設(shè)定安全模塊102,以使其不響應(yīng)從被檢測到篡改的目標(biāo)程序TP發(fā)出的密碼密鑰K讀取請求或通信內(nèi)容加密請求。從而,被檢測到篡改的目標(biāo)程序TP不可利用密碼密鑰K執(zhí)行加密通信。例如,判定單元606可判定將自身偽裝為通信裝置101的破解者計(jì)算機(jī)104正與安全模塊102通信。設(shè)定單元602可停止密碼單元608、輸出單元609或所有功能。設(shè)定單元602可執(zhí)行設(shè)定以使得安全模塊102不可與破解者的計(jì)算機(jī)104通信。設(shè)定單元602可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)操作。存儲(chǔ)單元603存儲(chǔ)程序特有的代碼。程序特有的代碼可包括目標(biāo)程序TP的程序代碼或者對(duì)程序代碼的特定計(jì)算的結(jié)果。特定計(jì)算例如可包括四則運(yùn)算、邏輯運(yùn)算、校驗(yàn)和計(jì)算或使用散列函數(shù)的散列值計(jì)算。例如,存儲(chǔ)單元603可保存通信裝置101中的RAM 203中的或安全模塊102中的RAM 304中的目標(biāo)程序TP。存儲(chǔ)單元603可存儲(chǔ)安全模塊102中的RAM 304中保存的目標(biāo)程序TP特有的代碼。存儲(chǔ)單元603可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)操作。生成単元604生成用于執(zhí)行掃描處理以生成程序特有的代碼的掃描程序。生成單元604隨機(jī)地更新用于生成與特有代碼實(shí)質(zhì)上相同或相似的代碼的掃描程序。掃描程序可獲得目標(biāo)程序TP的程序代碼或者可輸出對(duì)所獲得的程序代碼的特定計(jì)算的結(jié)果。例如,生成単元604生成用于在通信裝置101處執(zhí)行掃描處理的掃描程序并且生成用于檢測對(duì)目標(biāo)程序TP的篡改的代碼,該代碼是目標(biāo)程序TP所特有的。安全模塊102中的生成単元604生成用于訪問通信裝置101的存儲(chǔ)設(shè)備的掃描程序。結(jié)果,可以減少破解者對(duì)掃描程序的破解。例如,生成單元604可周期性地或不定期地更新掃描程序。生成單元604可減少破解者對(duì)掃描程序的破解。生成単元604可通過執(zhí)行“模糊處理”(obfuscation)、“掃描目標(biāo)區(qū)域的改變”、“掃描目標(biāo)地址的順序的改變”、“掃描計(jì)算結(jié)果的添加”或“掃描程序的地址的添加”來更新掃描程序。由于對(duì)掃描程序的更新,減少了破解者對(duì)掃描程序的解譯或篡改。生成單元604可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)操作。修改単元605利用具有實(shí)質(zhì)上相同的功能并且具有不同的解密系統(tǒng)的程序來覆蓋程序。例如,修改単元605通過執(zhí)行模糊處理、加密或混排來修改目標(biāo)程序TP。結(jié)果,可以減少破解者對(duì)目標(biāo)程序TP的解譯。修改單元605可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)或者在修改単元605經(jīng)由接ロ 302被控制時(shí)操作。判定単元606測量從向通信裝置101中的處理器201輸出程序運(yùn)行請求時(shí)起到從處理器201獲得響應(yīng)為止的時(shí)間量。判定単元606判定測量到的時(shí)間量是否大于或等干與通信裝置101中的處理器203和安全模塊102之間的物理距離相對(duì)應(yīng)的允許時(shí)間量。例如,當(dāng)對(duì)于運(yùn)行目標(biāo)程序的請求被輸出到通信裝置101中的處理器201時(shí),設(shè)置在安全模塊102中的定時(shí)器開始時(shí)間測量。安全模塊102測量到獲得響應(yīng)為止的時(shí)間量,并且還判定測量到的時(shí)間量是否大于或等于允許時(shí)間量。將自身偽裝為通信裝置101的破解者計(jì)算機(jī)104可與安全模塊102通信。定時(shí)器測量到的時(shí)間量可變得大于基于通信裝置101中的處理器301與安全模塊102之間的物理距離估計(jì)的時(shí)間量。從而,基于測量到的時(shí)間量,判定単元606判定是否破解者在假扮通信裝置101的合法用戶。 判定單元606可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)或者在判定單元606經(jīng)由接口 302被控制時(shí)操作。獲得單元607在發(fā)送數(shù)據(jù)之前獲得程序要發(fā)送到外部裝置的數(shù)據(jù)。獲得單元607從程序獲得對(duì)密碼密鑰K的輸出請求。例如,獲得單元607經(jīng)由接口 302獲得對(duì)密碼密鑰K的輸出請求和要從目標(biāo)程序TP發(fā)送到中心103的通信內(nèi)容。獲得單元607獲得要加密的通信內(nèi)容。獲得單元607可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)或者在獲得單元607經(jīng)由接口 302被控制時(shí)操作。密碼單元608使用密碼密鑰K來對(duì)由獲得單元607獲得的通信內(nèi)容加密。密碼密鑰K例如可以是安全模塊102的秘密密鑰或者是與中心103共同的共同密鑰。密碼單元608可在不輸出密碼密鑰K的情況下對(duì)通信內(nèi)容加密。密碼單元608可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)操作。輸出單元609將密碼密鑰K輸出到程序。例如,當(dāng)獲得單元607獲得對(duì)輸出密碼密鑰K的請求時(shí),輸出單元609將密碼密鑰K輸出到目標(biāo)程序TP。輸出單元609可在處理器301運(yùn)行圖3中所示的諸如ROM 305、RAM 304或閃存306之類的存儲(chǔ)設(shè)備中存儲(chǔ)的程序時(shí)或者在輸出單元609經(jīng)由接口 302被控制時(shí)操作。安全模塊102對(duì)經(jīng)獲得單元607和輸出單元609處理的數(shù)據(jù)加密??梢詼p少破解者對(duì)安全模塊102和通信裝置101中的處理器301之間的通信信道上的數(shù)據(jù)的破解。安全模塊102經(jīng)由具有或不具有硬件掃描功能接口耦合到通信裝置101以檢查通信裝置101中的目標(biāo)程序TP的真實(shí)性。安全模塊102可經(jīng)由沒有硬件掃描功能的接口例如USB接口耦合到通信裝置101。安全模塊102可經(jīng)由USB接口向USB兼容軟件(例如驅(qū)動(dòng)器)發(fā)出對(duì)掃描存儲(chǔ)器中的掃描目標(biāo)區(qū)域的請求。通過該掃描,可以檢查目標(biāo)程序TP的真實(shí)性。該USB兼容軟件可被破解。例如,通信裝置101中的軟件可被覆蓋并且指示未覆蓋的結(jié)果可被發(fā)回。結(jié)果,掃描可能未被有效地執(zhí)行。圖7示出了通信裝置的示例性操作。例如,安全模塊102被編碼并存儲(chǔ)在HDD 204中的目標(biāo)程序,例如經(jīng)編碼的目標(biāo)程序E (TP)。安全模塊102中的密碼電路303將經(jīng)編碼的目標(biāo)程序E解密成目標(biāo)程序TP。安全模塊102將經(jīng)解密的目標(biāo)程序TP寫出到RAM 203中的掃描目標(biāo)區(qū)域230中。目標(biāo)程序TP可被保存在安全模塊102中。當(dāng)存儲(chǔ)在HDD 204中的目標(biāo)程序TP未被加密時(shí),安全模塊102可在不對(duì)目標(biāo)程序TP解密的情況下將目標(biāo)程序TP寫出到RAM 203中的掃描目標(biāo)區(qū)域230中。安全模塊102可通過使用修改程序PP來修改目標(biāo)程序TP。例如,目標(biāo)程序TP可被修改為具有與目標(biāo)程序TP基本相同的功能并且具有與目標(biāo)程序TP基本不同的處理操作或過程。作為目標(biāo)程序TP的一部分的經(jīng)修改的程序片段可被保存在安全模塊102中。當(dāng)安全模塊102中的程序片段未被引用時(shí),在通信裝置101中不可運(yùn)行目標(biāo)程序TP。通過該修改,計(jì)算程序可被寫入到目標(biāo)程序TP。安全模塊102可周期性地或不定期地運(yùn)行用于隨機(jī)且自動(dòng)地生成/更新掃描程序SP的生成程序GP。例如,可以隨機(jī)地自動(dòng)生成具有掃描目標(biāo)程序TP的功能并且執(zhí)行每次不同的處理操作的掃描程序SP。
例如,可以按幾毫秒到若干分鐘的間隔周期性地自動(dòng)生成掃描程序SP,或者可以按隨機(jī)間隔不定期地自動(dòng)生成掃描程序SP。該間隔可被設(shè)定得短于破解者進(jìn)行篡改要花費(fèi)的時(shí)間量。生成程序GP可以隨機(jī)地改變例如掃描目標(biāo)區(qū)域230、掃描目標(biāo)地址的順序、掃描計(jì)算、用于將掃描計(jì)算結(jié)果返回給安全模塊102的計(jì)算處理、掃描程序SP的代碼或者在通信裝置101的存儲(chǔ)器中的位置。由于對(duì)掃描程序SP的隨機(jī)且自動(dòng)的生成/更新處理,即由生成程序GP執(zhí)行的處理,是在安全模塊102內(nèi)運(yùn)行的,所以可以減少對(duì)生成處理的分析。當(dāng)生成程序GP生成或更新掃描程序SP吋,安全模塊102中的最新掃描程序SP可掃描目標(biāo)程序TP,從而更新掃描結(jié)果Rl。掃描結(jié)果Rl可被存儲(chǔ)在RAM 304或閃存306中。掃描結(jié)果Rl可以是與目標(biāo)程序TP相對(duì)應(yīng)的特有代碼。處理器201請求驅(qū)動(dòng)器231將掃描程序SP加載到RAM 203中的非掃描目標(biāo)區(qū)域中。驅(qū)動(dòng)器231把從安全模塊102發(fā)送來的掃描程序SP存儲(chǔ)在RAM 203中的非掃描目標(biāo) 區(qū)域中。存儲(chǔ)在RAM 203中的掃描程序SP對(duì)掃描目標(biāo)區(qū)域230中的目標(biāo)程序TP進(jìn)行掃描,從而獲得掃描結(jié)果R2。掃描結(jié)果R2經(jīng)由驅(qū)動(dòng)器231被報(bào)告給安全模塊102。安全模塊102接收從驅(qū)動(dòng)器231發(fā)送來的掃描結(jié)果R2。在接收到掃描結(jié)果R2吋,認(rèn)證程序AP將安全模塊102中保存的掃描結(jié)果Rl與接收到的掃描結(jié)果R2相比較。當(dāng)掃描結(jié)果相互匹配吋,目標(biāo)程序TP可能未被篡改。當(dāng)目標(biāo)程序TP被覆蓋時(shí),安全模塊102例如向處理器201發(fā)出停止目標(biāo)程序TP的運(yùn)行的指令。處理器201可基于該指令而停止目標(biāo)程序TP。當(dāng)在一定時(shí)間段中都未從驅(qū)動(dòng)器231接收到掃描結(jié)果R2時(shí),安全模塊102可向處理器201發(fā)出停止目標(biāo)程序TP的運(yùn)行的指令。安全模塊102可反復(fù)地執(zhí)行上述處理,直到目標(biāo)程序TP的操作被停止為止。由于掃描程序SP被安全模塊102操作周期性地或不定期地隨機(jī)生成/更新,所以可以保護(hù)通信裝置101中的可改寫存儲(chǔ)器空間中存儲(chǔ)的掃描程序免遭破解。利用虛假掃描程序在一定量的時(shí)間中可以分析井覆蓋掃描程序SP。由于安全模塊102周期性地或不定期地隨機(jī)修改掃描程序SP,所以利用虛假掃描程序來分析掃描程序或覆蓋它的時(shí)間量可能是不足的。安全模塊102可經(jīng)由具有硬件掃描功能的接ロ例如DMA(直接存儲(chǔ)器訪問)接ロ耦合到通信裝置101。圖8示出了通信裝置的示例性操作。安全模塊102獲得存儲(chǔ)在HDD204中的經(jīng)加密的程序E(TP)。安全模塊102中的密碼電路303將經(jīng)編碼的目標(biāo)程序E解密成目標(biāo)程序TP0安全模塊102將經(jīng)解密的目標(biāo)程序TP寫在RAM 203中的掃描目標(biāo)區(qū)域230中。目標(biāo)程序TP可被保存在安全模塊102中。安全模塊102可周期性地或不定期地運(yùn)行用于自動(dòng)地隨機(jī)生成/更新掃描程序SP的生成程序GP。例如,可以隨機(jī)地自動(dòng)生成具有掃描目標(biāo)程序TP的功能并且具有不同的處理操作的掃描程序SP。例如,可以按幾毫秒到若干分鐘的間隔周期性地自動(dòng)生成生成程序GP,或者可以按隨機(jī)間隔不定期地生成生成程序GP。該間隔可被設(shè)定得短于破解者進(jìn)行篡改要花費(fèi)的時(shí)間量。生成程序GP可以隨機(jī)地改變例如掃描目標(biāo)區(qū)域230、掃描目標(biāo)地址的順序、掃描計(jì)算、用于將掃描計(jì)算結(jié)果返回給安全模塊102的計(jì)算處理、掃描程序SP的代碼或者在通信裝置101中的存儲(chǔ)器中的位置。由于對(duì)掃描程序SP的隨機(jī)且自動(dòng)的生成/更新處理,即由生成程序GP執(zhí)行的處理,是在安全模塊102內(nèi)運(yùn)行的,所以可以減少對(duì)生成的處理的窺探和分析。當(dāng)生成程序GP生成或更新掃描程序SP時(shí),安全模塊102使用最新的掃描程序SP來掃描目標(biāo)程序TP,從而更新掃描結(jié)果R1。掃描結(jié)果Rl可被存儲(chǔ)在RAM 304或閃存306中。掃描結(jié)果Rl可以是與目標(biāo)程序TP相對(duì)應(yīng)的特有代碼。
利用DMA,安全模塊102中的掃描程序SP訪問掃描目標(biāo)區(qū)域230并且掃描目標(biāo)程序TP,從而獲得掃描結(jié)果R2。掃描結(jié)果R2可被保存在安全模塊102中。認(rèn)證程序AP將保存在安全模塊102中的掃描結(jié)果Rl與掃描結(jié)果R2相比較。當(dāng)掃描結(jié)果相互匹配時(shí),目標(biāo)程序TP可能未被篡改。當(dāng)目標(biāo)程序TP被覆蓋時(shí),安全模塊102例如向處理器201發(fā)出停止目標(biāo)程序TP的運(yùn)行的通知。處理器201可基于該通知而停止目標(biāo)程序TP。安全模塊102可反復(fù)地執(zhí)行上述處理,直到目標(biāo)程序TP的操作被停止為止。由于是在不使用通信裝置101中的處理器201或任何驅(qū)動(dòng)器的情況下提供掃描程序SP的,所以可以保護(hù)掃描程序SP以防止通過對(duì)驅(qū)動(dòng)器的破解來對(duì)其進(jìn)行篡改。圖9至12示出了示例性的掃描程序。在圖9至12中,位置號(hào)“XX”和“xxxx”表示與掃描目標(biāo)區(qū)域相關(guān)聯(lián)的邏輯地址。圖9中所示的掃描程序SP掃描目標(biāo)程序TP。例如,值“1”、“2”、“3”、“4”、“5”可分別被存儲(chǔ)在存儲(chǔ)器位置11、12、13、14、15。在地址I至5,存儲(chǔ)器位置11至15處的內(nèi)容分別被寫入到存儲(chǔ)器位置1001至1005。在地址6,寫入的值被相加,并且在地址7,加法結(jié)果例如“15”被寫入到存儲(chǔ)器位置1010。在地址8,執(zhí)行向存儲(chǔ)器位置1010處的內(nèi)容“15”加上“+80”的計(jì)算,并且使結(jié)果值經(jīng)歷計(jì)算“*5”,從而獲得(15+80) X5 = 475。在地址9,地址8處的計(jì)算結(jié)果“475”被寫入到存儲(chǔ)器位置1011,并且在地址10,存儲(chǔ)器位置1011處的內(nèi)容“475”被報(bào)告給安全模塊102。安全模塊102保存初步掃描的掃描結(jié)果。當(dāng)初步掃描的掃描結(jié)果和掃描目標(biāo)區(qū)域230中的目標(biāo)程序TP的掃描結(jié)果基本相互匹配時(shí),目標(biāo)程序TP可能未被篡改。當(dāng)初步掃描的掃描結(jié)果和掃描目標(biāo)區(qū)域230中的目標(biāo)程序TP的掃描結(jié)果相互不匹配時(shí),目標(biāo)程序TP可能已被篡改。在此情況下,可發(fā)出停止目標(biāo)程序TP的指令。在圖10中所示的掃描程序SP中,要從其讀取圖9中所示的掃描程序SP中的地址I至5處的值的掃描目標(biāo)地址被從存儲(chǔ)器位置11至15改變到存儲(chǔ)器位置21至25。由于存儲(chǔ)器位置21至25處的值被讀取,所以要報(bào)告給安全模塊102的掃描結(jié)果可不同于圖9中所示的掃描結(jié)果。在圖11中所示的掃描程序SP中,圖9中所示的掃描程序SP的掃描目標(biāo)地址的順序被改變并且依賴于掃描目標(biāo)地址的順序的改變的計(jì)算被改變。例如,地址I至5處的掃描目標(biāo)地址的順序被改變。此外,地址6的計(jì)算可被隨機(jī)覆蓋。報(bào)告給安全模塊102的掃描結(jié)果可不同于圖9中所示的掃描結(jié)果。由于圖11中所示的掃描程序SP未被保存在特定的存儲(chǔ)區(qū)域中,所以圖12中所示的掃描程序SP不可運(yùn)行掃描。安全模塊102指定保存掃描程序SP的地址。例如,在地址I至5,保存掃描程序SP的地址(例如掃描程序SP的開頭地址)可被加到從其讀取值的掃描目標(biāo)地 址的值。當(dāng)安全模塊102保存的圖12中所示的掃描程序SP的掃描結(jié)果Rl和掃描目標(biāo)區(qū)域230中的目標(biāo)程序TP的掃描結(jié)果R2基本相互匹配吋,掃描程序SP被加載在預(yù)定的位置,從而目標(biāo)程序TP可能不曾被篡改。當(dāng)掃描結(jié)果相互不匹配吋,目標(biāo)程序TP被停止,因?yàn)閽呙璩绦騍P可能被保存在了另外的位置。當(dāng)存儲(chǔ)掃描程序SP的存儲(chǔ)器位置不同時(shí),掃描結(jié)果不同??梢詼p少用于分析被寫入在不同的存儲(chǔ)器位置的掃描程序SP的操作的破解。圖13示出了示例性的掃描程序生成/更新處理。安全模塊102中的處理器301運(yùn)行生成程序GP,從而生成/更新掃描程序SP。安全模塊102等待直到一定量的時(shí)間過去。例如,該一定量時(shí)間的測量是由寫入到RAM 203中的掃描目標(biāo)區(qū)域230的目標(biāo)程序TP的運(yùn)行的開始而觸發(fā)的。該一定量的時(shí)間例如可以是幾毫秒到若干分鐘??梢栽趲缀撩氲饺舾煞昼姷姆秶须S機(jī)設(shè)定該一定量的時(shí)間。當(dāng)該一定量的時(shí)間過去時(shí),在操作S1302中,安全模塊102判定是否生成了掃描程序SP。當(dāng)沒有生成掃描程序SP時(shí),處理前進(jìn)到操作S1303,在該操作中安全模塊102例如如圖14或15中所示生成掃描程序。隨后,在操作S1304中,安全模塊102將所生成的掃描程序SP寫入到RAM 203中的非掃描目標(biāo)區(qū)域。在操作S1305中,安全模塊102通過使用所生成的掃描程序SP來掃描目標(biāo)程序TPo掃描結(jié)果可被保存在安全模塊102中,例如保存在RAM304或閃存306中。處理隨后返回到操作S1301。當(dāng)掃描程序SP已被生成時(shí),處理前進(jìn)到操作S1306,在該操作中安全模塊102隨機(jī)地判定是要更新掃描程序SP還是要生成另ー掃描程序SP。當(dāng)在操作S1307中判定要生成另ー掃描程序SP時(shí),處理前進(jìn)到操作S1303。當(dāng)在操作S1307中判定要更新掃描程序SP時(shí),處理前進(jìn)到操作S1308,在該操作中例如可運(yùn)行圖16和17中所示的掃描程序更新處理。在操作S1304中,經(jīng)更新的掃描程序SP可被寫入到RAM 203中的非掃描目標(biāo)區(qū)域。在操作S1305中,安全模塊102通過使用經(jīng)更新的掃描程序SP來掃描目標(biāo)程序TP0掃描結(jié)果可被保存在安全模塊102中,例如保存在RAM304或閃存306中。處理隨后返回到操作S1301。例如,在目標(biāo)程序TP結(jié)束吋,目標(biāo)程序TP被從掃描目標(biāo)區(qū)域230中刪除并且安全模塊102結(jié)束掃描程序生成/更新。圖14示出了示例性的掃描程序生成處理。圖14中所示的掃描程序生成處理可對(duì)應(yīng)于圖13中所示的掃描程序生成處理,例如操作S1303。在操作S1401中,安全模塊102在安全模塊102外的RAM 203中設(shè)定掃描目標(biāo)區(qū)域230[As,Ae]和寫入目的地區(qū)域[Bs,Be]。掃描目標(biāo)區(qū)域230[As,Ae]的大小可以與目標(biāo)程序TP的大小或目標(biāo)程序TP的一部分的大小基本相同。
當(dāng)掃描目標(biāo)區(qū)域230[As,Ae]的大小和目標(biāo)程序TP的一部分的大小基本相同時(shí),每次掃描程序被生成時(shí),掃描目標(biāo)區(qū)域230 [As,Ae]被設(shè)定在一不同的范圍中。例如,每次掃描程序被生成時(shí),掃描目標(biāo)區(qū)域230 [As,Ae]可被移位。在操作S1402中,安全模塊102在安全模塊102中的RAM 304或閃存306中,例如安全模塊內(nèi)區(qū)域,設(shè)定大于掃描目標(biāo)區(qū)域230的存儲(chǔ)器區(qū)域[Ms,Me]。在操作S1403中,安全模塊102設(shè)定各種變量的初始值。i可以是具有初始值I的變量。Ai可以是掃描目標(biāo)區(qū)域230中的任意地址并且其初始值可以是第一地址As。Bi可以是寫入目的地區(qū)域中的任意地址并且其初始值可以是第一地址Bs。Mi可以是安全模塊內(nèi)區(qū)域中的任意地址并且其初始值可以是第一地址Ms。Yi可以是在掃描程序SP中使用的地址并且初始值可以是Bi。在操作S1404中,安全模塊102向 安全模塊內(nèi)區(qū)域中的存儲(chǔ)器位置Mi寫入用于讀取存儲(chǔ)器位置Ai處的內(nèi)容并將該內(nèi)容寫入到存儲(chǔ)器位置Bi的掃描指令。在操作S1405中,安全模塊102判定是否滿足Ai > Ae。Ae可以是掃描目標(biāo)區(qū)域230中的最末地址。當(dāng)不滿足Ai > Ae時(shí),在操作S1406中遞增i,并且處理返回到操作S1404。當(dāng)滿足Ai > Ae時(shí),處理前進(jìn)到例如圖15中所示的操作S1501。圖15示出了示例性的掃描程序生成處理。圖15中所示的掃描程序生成處理可對(duì)應(yīng)于圖13中所示的掃描程序生成處理,例如操作S1303。例如,在圖14中所示的操作S1405之后,在操作S1501中遞增安全模塊內(nèi)區(qū)域中的存儲(chǔ)器位置Mi。隨后,在操作S1502中,判定是否滿足Mi > Me-2。當(dāng)不滿足Mi > Me-2時(shí),在操作S1503中將變量j的初始值設(shè)定為I (即j = I)。在操作S1504中,隨機(jī)地設(shè)定計(jì)算方法Zj。該計(jì)算方法例如可包括四則運(yùn)算、邏輯運(yùn)算、校驗(yàn)和計(jì)算或使用散列函數(shù)的散列值計(jì)算。使用計(jì)算方法Zj的計(jì)算可被稱為“Zj計(jì)算”。在操作S1505中,安全模塊102遞增j。在操作S1506中,安全模塊102判定是否滿足j = y,其中y可以是地址Yi的數(shù)目,例如安全模塊內(nèi)區(qū)域中的存儲(chǔ)器位置Mi的數(shù)目。當(dāng)在操作S1506中不滿足j = y時(shí),處理返回到操作S1504。當(dāng)在操作S1506中滿足j = y時(shí),處理前進(jìn)到操作S1507,在該操作中安全模塊102向存儲(chǔ)器位置Mi寫入掃描指令Z(Mi),用于對(duì)存儲(chǔ)器位置Yl處的內(nèi)容和存儲(chǔ)器位置Y2處的內(nèi)容執(zhí)行Zl計(jì)算、對(duì)Zl計(jì)算的結(jié)果和存儲(chǔ)器位置Y3處的內(nèi)容執(zhí)行Z2計(jì)算,……,并且對(duì)Z(y-2)計(jì)算的結(jié)果和存儲(chǔ)器位置Yy處的內(nèi)容執(zhí)行Z(y-l)計(jì)算。在操作S1508中,安全模塊102遞增Mi。在操作S1509中,安全模塊102向存儲(chǔ)器位置Mi寫入用于將掃描指令Z(Mi-I)的計(jì)算結(jié)果寫入到存儲(chǔ)器位置Bi+Ι的掃描指令。然后處理返回到操作S1501。當(dāng)在操作S1502中滿足Mi > Me-2時(shí),處理前進(jìn)到操作S1510,在該操作中安全模塊102向存儲(chǔ)器位置Mi寫入用于將存儲(chǔ)器位置Bi+Ι處的內(nèi)容報(bào)告給安全模塊102的掃描指令。然后處理前進(jìn)到圖13中的操作S1304。在掃描程序生成處理中,例如,在操作S1303中,掃描程序SP可被周期性地或不定期地隨機(jī)生成。圖16示出了示例性的掃描程序更新處理。圖16中所示的掃描程序更新處理可對(duì)應(yīng)于圖13中所示的操作S1308。在操作S1601中,安全模塊102隨機(jī)設(shè)定更新內(nèi)容。更新內(nèi)容例如可包括“模糊處理”、“掃描目標(biāo)區(qū)域的改變”、“掃描目標(biāo)地址的順序的改變”、“掃描計(jì)算結(jié)果的添加”、“掃描程序SP的地址的添加”或者“什么也不做”。掃描程序更新處理可包括上述六種更新內(nèi)容中的至少ー種。如圖16中所示,在操作S1602中,安全模塊102判定更新內(nèi)容是否指示“模糊處理”。模糊處理使指令或指令組復(fù)雜化。例如,某個(gè)程序代碼可被覆蓋以具有基本相同的功能并且具有基本不同的處理操作的程序代碼。單個(gè)指令,例如“X = 1+Y”可被更新為“X =10-9+2Y-Y”。例如,“ X = 1+Y” 和“Z = X+50” 可被更新為 “X = 26+Y” 和“Z = X+25”。經(jīng)更新的指令可以是具有與更新前指令基本相同的功能并且具有與更新前指令不同的程序代碼的指令。生成程序GP的程序代碼在每次其被更新時(shí)被變更。 當(dāng)在操作S1602中判定更新內(nèi)容指示“模糊處理”時(shí),處理前進(jìn)到操作S1603,在該操作中安全模塊102指定目標(biāo)程序TP要模糊處理的范圍。在操作S1604中,指定的范圍中包括的指令被模糊處理。然后處理返回到操作S1601。當(dāng)在操作S1602中判定更新內(nèi)容不指示“模糊處理”時(shí),處理前進(jìn)到操作S1605,在該操作中安全模塊102判定更新內(nèi)容是否指示“掃描目標(biāo)區(qū)域的改變”。在掃描目標(biāo)區(qū)域的改變中,掃描程序SP指定的掃描目標(biāo)地址可被改變成掃描目標(biāo)區(qū)域中的另ー不同地址。例如,當(dāng)圖9中所示的掃描程序SP被更新到圖10中所示的掃描程序SP時(shí),掃描目標(biāo)區(qū)域可被改變。當(dāng)在操作S1605中判定更新內(nèi)容指示“掃描目標(biāo)區(qū)域的改變”時(shí),處理前進(jìn)到操作S1606,在該操作中安全模塊102指定目標(biāo)程序TP中要改變的掃描范圍區(qū)域的范圍。在操作S1607中,改變指定的范圍中的地址。然后處理返回到操作S1601。在掃描目標(biāo)區(qū)域的改變中,雖然生成程序GP要訪問的地址被改變,但掃描程序SP的功能未被改變。由于掃描目標(biāo)區(qū)域230被改變并且掃描結(jié)果被更新,所以安全性級(jí)別可得到提聞。當(dāng)在操作S1605中判定更新內(nèi)容不指示“掃描目標(biāo)區(qū)域的改變”時(shí),處理前進(jìn)到操作S1608,在該操作中安全模塊102判定更新內(nèi)容是否指示“掃描目標(biāo)地址的順序的改變”。在掃描目標(biāo)地址的順序的改變中,掃描程序SP中包括的地址處的代碼被交換。例如,當(dāng)圖9中所示的掃描程序SP被更新到圖11中所示的掃描程序SP時(shí),掃描目標(biāo)地址的順序可被改變。雖然運(yùn)行的順序可被改變,但交換前的掃描結(jié)果和交換后的掃描結(jié)果可能不相同,也可能不是不相同的。當(dāng)在操作S1608中判定更新內(nèi)容指示“掃描目標(biāo)地址的順序的改變”時(shí),處理前進(jìn)到操作S1609,在該操作中安全模塊102指定目標(biāo)程序TP中要改變順序的掃描目標(biāo)地址的范圍。在操作S1610中,安全模塊102交換指定范圍中的地址處的代碼。然后處理返回到操作S1601。當(dāng)在操作S1608中判定更新內(nèi)容不指示“掃描目標(biāo)地址的順序的改變”時(shí),處理前進(jìn)到圖17中所示的操作S1701。圖17示出了示例性的掃描程序更新處理。圖17中所示的掃描程序更新處理可對(duì)應(yīng)于圖13中所示的操作S1308。在操作S1701中,安全模塊102可隨機(jī)地判定是在操作S1601中判定的更新內(nèi)容是否指示“掃描計(jì)算結(jié)果的添加”。當(dāng)更新內(nèi)容指示“掃描計(jì)算結(jié)果的添加”時(shí),處理前進(jìn)到操作S1702,在該操作中安全模塊102指定目標(biāo)程序TP中的計(jì)算目標(biāo)地址。在操作S1703中,安全模塊102可隨機(jī)地確定計(jì)算方法。計(jì)算方法例如可以是對(duì)于計(jì)算目標(biāo)地址處的數(shù)據(jù)的四則運(yùn)算或邏輯運(yùn)算、數(shù)據(jù)的校驗(yàn)和計(jì)算或者使用散列函數(shù)的散列值計(jì)算。在操作S1704中,安全模塊102向要更新的生成程序GP添加用于利用計(jì)算目標(biāo)地址處的數(shù)據(jù)和在操作S1703中確定的計(jì)算方法來執(zhí)行計(jì)算的掃描指令。在操作S1705中,安全模塊102向要更新的生成程序GP添加把根據(jù)添加的掃描指令的計(jì)算的結(jié)果報(bào)告給安全模塊102的掃描指令。然后處理返回到操作S1601。當(dāng)在操作S1701中判定更新內(nèi)容不指示“掃描計(jì)算結(jié)果的添加”時(shí),處理前進(jìn)到操作S1706,在該操作中安全模塊102判定更新內(nèi)容是否指示“掃描程序SP的地址的添加”。在掃描程序SP的地址的添加中,可以獲得依從于掃描程序SP被寫入的地址的掃描結(jié)果,該地址被用于掃描程序SP的指令。例如,當(dāng)圖11中所示的掃描程序SP被更新到圖12中所示的掃描程序SP時(shí),掃描程序SP的地址可被添加。當(dāng)在操作S1706中判定更新內(nèi)容指示“掃描程序SP的地址的添加”時(shí),處理前進(jìn)到操作S1707,在該操作中安全模塊102在目標(biāo)程序TP中指定如下地址掃描程序SP的地址將被加到該地址。在操作S1708中,掃描程序SP的地址的值被加到指定地址處的數(shù)據(jù),如圖12中的地址I至5中所示。然后處理返回到操作S1601。當(dāng)在操作S1706中判定更新內(nèi)容不指示“掃描程序SP的地址的添加”時(shí),處理前進(jìn)到操作S1709,在該操作中安全模塊102判定是否要結(jié)束生成程序GP的更新。例如,當(dāng)更新內(nèi)容指示“什么也不做”時(shí),如果未執(zhí)行更新則不可結(jié)束更新。然后處理返回到操作S1601。當(dāng)更新被執(zhí)行了一次或一定次數(shù)時(shí),更新可被結(jié)束。處理返回到圖13中所示的操作 S1304。由于更新是在具有防篡改結(jié)構(gòu)的安全模塊102內(nèi)運(yùn)行的,所以掃描程序SP的生成/更新可以安全的方式執(zhí)行??梢詼p少通過破解實(shí)現(xiàn)的掃描功能禁止,并且可以增強(qiáng)USB連接的安全性。如圖7中所示,由安全模塊102中的處理器301運(yùn)行的修改程序PP可修改目標(biāo)程序TP。圖18示出了示例性的程序修改。程序可以是各個(gè)地址的指令的集合。例如,目標(biāo)程序TP可包括各個(gè)地址的五個(gè)指令。例如,目標(biāo)程序TP可包括分割的程序Pl至P5,其可被分配為地址adrl至adr5的順序。HDD 204按運(yùn)行的順序?qū)⒌刂穉drl至adr5存儲(chǔ)為邏輯地址。修改程序PP可改變目標(biāo)程序TP (例如分割程序Pl至P5)中的位置的順序(例如可交換地址)。在圖18中,地址adrl被分配給分割程序P1,地址adr2被分配給分割程序P4,地址adr3被分配給分割程序P2,地址adr4被分配給分割程序P3,并且地址adr5被分配給分割程序P5。在分割程序P1、P4和P3之后可添加對(duì)安全模塊102的讀取指令。指示改變后的地址的關(guān)系的程序片段被保存在安全模塊102中。例如,程序片段pa可以是在運(yùn)行分割程序Pl之后引用的“Goto”語句以引起跳到地址adr3。例如,程序片段pb可以是在運(yùn)行分割程序P3之后引用的“Goto”語句以引起跳到地址adr2。例如,程序片段pc可以是在運(yùn)行分割程序P4之后引用的“Goto”語句以引起跳到地址adr5??稍诜峙淦陂g添加程序片段pa至pc。分配前的掃描結(jié)果Rl和分配后的掃描結(jié)果Rl可以相互不同。圖19至22示出了示例性的程序修改。修改程序PP可修改目標(biāo)程序TP。在圖19中,HDD 204中的目標(biāo)程序TP中的與地址3和5相對(duì)應(yīng)的指令組的地址被改變成地址7和9。另外,目標(biāo)程序TP中的與地址6和7相對(duì)應(yīng)的指令組的地址被改變成地址15和16。與地址I至2相對(duì)應(yīng)的指令組的地址未被改變。在修改之前,與地址3相對(duì)應(yīng)的指令“Z = X+Y”是接著與地址2相對(duì)應(yīng)的指令“Y=X+8”運(yùn)行的。由于與地址3相對(duì)應(yīng)的指令“Z = X+Y”的地址已被改變成地址7,所以與地址3相對(duì)應(yīng)的指令被指示“Goto 7”的程序片段(例如跳躍指令)所覆蓋。安全模塊102在一表格中保存地址3和程序片段“Goto V’的組合。在修改之前,與地址6相對(duì)應(yīng)的指令“Z = 5+Z”是接著與地址5相對(duì)應(yīng)的指令“Z=Z+1”運(yùn)行的。由干與地址5相對(duì)應(yīng)的指令“Z = Z+1”的地址已被改變成地址9并且與地址6相對(duì)應(yīng)的指令已被改變成地址15,所以與地址10相對(duì)應(yīng)的指令被程序片段“Goto 15” (例如跳躍指令)所覆蓋。安全模塊102在表格中保存地址10和程序片段“Goto 15”的組合。在將目標(biāo)程序TP寫入到掃描目標(biāo)區(qū)域230之前,安全模塊102利用對(duì)安全模塊102的讀取指令來覆蓋程序片段。當(dāng)運(yùn)行被加載在掃描目標(biāo)區(qū)域230中的經(jīng)修改的目標(biāo)程序TP時(shí),基干與地址3相對(duì)應(yīng)的讀取指令來引用安全模塊102中的表格并且指定與地址3相對(duì)應(yīng)的程序片段“Goto7”。安全模塊102將“Goto 7”報(bào)告給處理器201并且處理器201運(yùn)行經(jīng)修改的目標(biāo)程序TP中的地址7處的指令。由于目標(biāo)程序TP中包括的指令組被混排,同時(shí)指令組的關(guān)系被保持,所以對(duì)目標(biāo)程序TP的解譯可變得更困難。在圖20中,目標(biāo)程序TP中包括的指令可被作為程序片段插入。在圖20中,HDD 204中的目標(biāo)程序TP中的與地址4和5相對(duì)應(yīng)的指令組的地址被改變成地址8和9。目標(biāo)程序TP中的與地址6和7相對(duì)應(yīng)的指令組的地址被改變成地址15和16。與地址I至3相對(duì)應(yīng)的指令組的地址未被改變。在修改之前,與地址3相對(duì)應(yīng)的指令“Z = X+Y”是接著與地址2相對(duì)應(yīng)的指令“Y =X+8”運(yùn)行的。由于與地址4相對(duì)應(yīng)的指令的地址已被改變成地址8,所以Goto語句“Goto8”被生成。安全模塊102保存地址3、地址3處的指令“Z = X+Y”和Goto語句“Goto 8”的組合。作為復(fù)雜化的程序片段的結(jié)果,可以增強(qiáng)安全性。圖21示出了指令的示例性加密。在圖21中,目標(biāo)程序TP中包括的指令組可被加密。安全模塊102利用密碼密鑰Kl至K4來對(duì)修改前目標(biāo)程序TP中的與地址4至7相對(duì)應(yīng)的指令組加密。在每個(gè)被加密的指令之前插入對(duì)安全模塊102的讀取指令和解密指令。地址被向下移動(dòng)與插入的指令的數(shù)目相對(duì)應(yīng)的量。例如,與地址4相對(duì)應(yīng)的指令“Y = Y+1”被用密碼密鑰Kl加密并且經(jīng)加密的指令被寫入到地址6。對(duì)安全模塊102的讀取指令被插入在空地址4處并且解密指令被插入在地址5處。安全模塊102在表格中保存用來對(duì)經(jīng)修改的目標(biāo)程序TP中的被加密指令加密的密鑰和對(duì)被加密指令插入的讀取指令的地址的組合。例如,用來對(duì)寫入在地址6處的被加密指令El (Y = Y+1)加密的密碼密鑰Kl和基于被加密指令El (Y = Y+1)的生成而插入的讀取指令的地址4被保存在該表格中。安全模塊102將該表格保存在RAM 304或閃存306中并且將經(jīng)修改的目標(biāo)程序TP寫入到掃描目標(biāo)區(qū)域。當(dāng)運(yùn)行經(jīng)修改的目標(biāo)程序TP時(shí),基于插入的讀取指令讀取密碼密鑰K并且基于解密指令對(duì)經(jīng)加密的指令進(jìn)行解密。隨后,執(zhí)行經(jīng)解密的指令。例如,安全模塊102基于與地址4相對(duì)應(yīng)的讀取指令來引用表格以將密碼密鑰Kl提供給處理器201。處理器201基于密碼密鑰Kl和 與地址5相對(duì)應(yīng)的解密指令來對(duì)被加密指令El (Y=Y+1)解密,并將經(jīng)加密的指令“Y = Y+1”寫入到地址6。寫入到地址6的指令“Y = Y+1”可被運(yùn)行。即使當(dāng)掃描目標(biāo)程序被部分加密時(shí),也從安全模塊102獲得解密密鑰并且繼續(xù)該處理。圖22示出了指令的示例性加密。圖22中所示的指令可被包括在目標(biāo)程序TP中。在圖22中,安全模塊102利用對(duì)安全模塊102的讀取指令來替換修改前的目標(biāo)程序TP中的與地址4至7相對(duì)應(yīng)的指令組。例如,與地址4相對(duì)應(yīng)的指令“Y = Y+1 ”被用讀取指令替換。用于寫入從安全模塊102讀取的地址4處的指令“Y = Y+1”的指令被插入在下一地址5處。安全模塊102在表格中保存被替換的指令及其地址的組合。例如,安全模塊102在表格中保存被替換的指令“Y = Y+1”及其地址4的組合。安全模塊102將該表格保存在RAM 304或閃存306中并將經(jīng)修改的目標(biāo)程序TP寫入到掃描目標(biāo)區(qū)域230。當(dāng)經(jīng)修改的目標(biāo)程序TP被運(yùn)行時(shí),處理器201基于替換了原始指令的讀取指令來讀取被替換的指令(即原始指令)并且運(yùn)行被替換的指令。例如,處理器201基于地址4處的讀取指令從安全模塊102中讀取指令“Y = Y+1”,并且運(yùn)行讀取的指令 “Y = Y+1”。圖23示出了示例性的程序修改。目標(biāo)程序TP可被修改。在操作S2301中,安全模塊102從HDD 204中讀取經(jīng)加密的目標(biāo)程序E (TP)。在操作S2302中,安全模塊102對(duì)經(jīng)加密的目標(biāo)程序E (TP)解密。例如,當(dāng)目標(biāo)程序TP未被加密時(shí),從HDD 204讀取的目標(biāo)程序TP可不被解密。在操作S2303中,計(jì)算程序被寫入到目標(biāo)程序TP。在操作S2304中,安全模塊102確定對(duì)目標(biāo)程序TP的修改方法。修改方法可包括“模糊處理”、“加密”、“混排”或“什么也不做”。加密可對(duì)應(yīng)于圖21中所示的加密?;炫趴蓪?duì)應(yīng)于圖20或21中所示的混排。在操作S2305中,安全模塊102判定修改方法是否是“模糊處理”。當(dāng)修改方法是“模糊處理”時(shí),處理前進(jìn)到操作S2306,在該操作中安全模塊102指定目標(biāo)程序TP中要被模糊處理的范圍。在操作S2307中,安全模塊102對(duì)指定范圍中的指令進(jìn)行模糊處理。然后處理返回到操作S2304。當(dāng)修改方法不是“模糊處理”時(shí),處理前進(jìn)到操作S2308,在該操作中安全模塊102判定修改方法是否是“加密”。當(dāng)修改方法是“加密”時(shí),處理前進(jìn)到操作S2309,在該操作中安全模塊102指定目標(biāo)程序TP中要被加密的范圍。在操作S2310中,安全模塊102對(duì)指定范圍中的指令進(jìn)行加密。例如,如圖21中所示,安全模塊102在表格中存儲(chǔ)要被加密的指令的地址和用來對(duì)該地址處的被加密指令加密的解密密鑰的組合。然后處理返回到操作S2304。當(dāng)修改方法不是“加密”時(shí),處理前進(jìn)到操作S2311,在該操作中安全模塊102判定修改方法是否是“混排”。當(dāng)修改方法是“混排”時(shí),處理前進(jìn)到操作S2312,在該操作中安全模塊102執(zhí)行例如如圖19中所示的混排。然后處理返回到操作S2304。當(dāng)修改方法不是“混排”時(shí),處理前進(jìn)到操作S2313,在該操作中安全模塊102判定是否結(jié)束修改。例如,當(dāng)修改方法被設(shè)定成“什么也不做”并且沒有執(zhí)行修改時(shí),不結(jié)束修改。然后處理返回到操作S2304。 當(dāng)修改被執(zhí)行了至少一次或一定次數(shù)吋,修改被結(jié)束。經(jīng)修改的目標(biāo)程序TP被寫入到RAM 203中的掃描目標(biāo)區(qū)域230。圖24示出了混排處理的示例性的ー個(gè)示例。圖24中所示的混排處理可對(duì)應(yīng)于圖23中所示的操作S2312。例如,可執(zhí)行圖19中所示的混排。在操作S2401中,安全模塊102在安全模塊102中保留一區(qū)域。在操作S2402中,安全模塊102將目標(biāo)程序TP分割成多個(gè)指令組。在操作S2403中,安全模塊102將指令組中的第一指令組設(shè)定為目標(biāo)指令組。在操作S2404中,安全模塊102判定是否存在目標(biāo)指令組后的任何指令組。當(dāng)存在隨后的指令組時(shí),處理前進(jìn)到操作S2405,在該操作中安全模塊102隨機(jī)地生成程序片段,例如Goto語句。例如,安全模塊102為目標(biāo)指令組保留一區(qū)域。在操作S2406中,安全模塊102將程序片段的地址設(shè)定成目標(biāo)指令組的最末地址的下一地址。在操作S2407中,安全模塊102向表格中添加程序片段及其寫入目的地地址的組合。在操作S2408中,安全模塊102將程序片段的讀取指令寫入到目標(biāo)程序TP的分配給程序片段的地址。在操作S2409中,安全模塊102設(shè)定程序片段所指示的地址處(例如程序片段“Goto 8”所指示的地址8處)的隨后指令組為目標(biāo)指令組。然后處理返回到操作 S2404。當(dāng)在操作S2404中判定不存在目標(biāo)指令組后的指令組時(shí),混排處理結(jié)束。然后處理返回到操作S2304。由于修改了目標(biāo)程序TP,所以可以減少對(duì)目標(biāo)程序TP的破解。當(dāng)讀取經(jīng)加密的目標(biāo)程序TP時(shí),可以為修改處理改變修改方法。當(dāng)掃描程序SP周期性地或不定期地對(duì)掃描目標(biāo)區(qū)域230進(jìn)行掃描時(shí),修改程序PP在掃描程序SP被更新之前將數(shù)據(jù)和代碼寫入到掃描目標(biāo)區(qū)域230。在更新之前,經(jīng)修改的掃描程序SP對(duì)掃描目標(biāo)區(qū)域230進(jìn)行掃描,并且檢查掃描程序SP是否適當(dāng)?shù)夭僮?。圖25A至25C示出了示例性的程序修改。目標(biāo)程序TP可被修改。在圖25A中,目標(biāo)程序TP中與地址I至4相對(duì)應(yīng)的指令被模糊處理并且NOP (無操作指令)被添加到地址5至7。在圖25B中,與地址I至4相對(duì)應(yīng)的指令不被改變,并且指令被添加到地址5至7。在圖25C中,與地址I至4相對(duì)應(yīng)的指令不被改變,并且指令被添加到地址5至7。圖25A中所示的處理的結(jié)果、圖25B中所示的處理的結(jié)果和圖25C中所示的處理的結(jié)果基本相同。在圖25A至25C中的每一幅的左側(cè)所示的目標(biāo)程序TP被掃描之后,圖25A至25C中的每一幅的右側(cè)所示的目標(biāo)程序TP被修改,并且經(jīng)修改的目標(biāo)程序TP在掃描程序SP更新之前被掃描。結(jié)果,可以檢查掃描程序SP的適當(dāng)操作。圖26示出了示例性的計(jì)算程序。圖26中所示的計(jì)算程序可被包括在目標(biāo)程序TP中。計(jì)算程序確定特定計(jì)算的結(jié)果。安全模塊102可基于計(jì)算程序的計(jì)算結(jié)果來判定目標(biāo)程序TP的真實(shí)性。例如,計(jì)算程序可在存儲(chǔ)器位置2處存儲(chǔ)通過將存儲(chǔ)器位置I處的值乘以第一秘密數(shù)“yyy”而獲得的值,并且可在存儲(chǔ)器位置3處存儲(chǔ)通過將存儲(chǔ)器位置2處的值乘以第二秘密數(shù)“ ZZZ ”而獲得的值。安全模塊102將所生成的值“X”存儲(chǔ)在存儲(chǔ)器位置I處。安全模塊102基于值“X”通過計(jì)算程序確定真實(shí)值“Xans”。目標(biāo)程序TP讀取存儲(chǔ)器位置I處的“X”;在存儲(chǔ)器位置2處存儲(chǔ)通過將“X”乘以第一秘密數(shù)“yyy”而獲得的值“Y”,并且在存儲(chǔ)器 位置3處存儲(chǔ)通過將存儲(chǔ)器位置2處的值“Y”乘以第二秘密數(shù)“zzz”而獲得的值“Xcul”。例如,安全模塊102周期性地引用存儲(chǔ)器位置3處的值以讀取存儲(chǔ)器位置3處的值“Xcul ”并將值“Xcul ”與真實(shí)值“Xans”相比較。當(dāng)Xcul和Xans在“X”被存儲(chǔ)在存儲(chǔ)器位置I處后的一定量的時(shí)間內(nèi)相互匹配時(shí),安全模塊102判定目標(biāo)程序TP是真實(shí)程序。當(dāng)Xcul和Xans在該一定時(shí)間段內(nèi)不相互匹配時(shí),安全模塊102判定目標(biāo)程序TP是非真實(shí)程序。圖27示出了示例性的認(rèn)證處理。安全模塊102可執(zhí)行圖27中所示的認(rèn)證處理。在操作S2701中,安全模塊102開始時(shí)間測量。在操作S2702中,安全模塊102將所生成的值“X”存儲(chǔ)在特定的第一存儲(chǔ)器位置處。在操作S2703中,計(jì)算程序從所生成的值“X”確定真實(shí)值“Xans”。在操作S2704中,安全模塊102讀取第二存儲(chǔ)器位置處的值。在操作S2705中,安全模塊102判定所讀取的值是否匹配Xans。當(dāng)讀取的值匹配Xans時(shí),處理前進(jìn)到操作S2706,在該操作中安全模塊102判定目標(biāo)程序TP是真實(shí)程序,然后認(rèn)證處理結(jié)束。當(dāng)讀取的值不匹配Xans時(shí),處理前進(jìn)到操作S2707,在該操作中安全模塊102判定從操作S2701中的時(shí)間測量開始是否已過去了一定量的時(shí)間。當(dāng)一定量的時(shí)間尚未過去時(shí),處理返回到操作S2704。當(dāng)一定量的時(shí)間已過去時(shí),處理前進(jìn)到操作S2708,在該操作中安全模塊102判定目標(biāo)程序TP是非真實(shí)程序。然后,認(rèn)證處理可結(jié)束。認(rèn)證處理的細(xì)節(jié),例如計(jì)算程序,在每次其被運(yùn)行時(shí)可被改變。每次經(jīng)加密的目標(biāo)程序TP被讀取時(shí),目標(biāo)程序TP中的計(jì)算程序可被改變。從而,可以減少破解者的破解處理,例如對(duì)計(jì)算程序的分析和假扮。圖28示出了示例性的加密許可處理。安全模塊102可執(zhí)行圖28中所示的加密許可。在操作S2801中,安全模塊102判定目標(biāo)程序TP是被篡改。當(dāng)目標(biāo)程序TP未被篡改時(shí),處理前進(jìn)到操作S2802,在該操作中安全模塊102判定是否從目標(biāo)程序TP接收到了處理請求。當(dāng)從目標(biāo)程序TP接收到處理請求時(shí),處理前進(jìn)到操作S2803,在該操作中安全模塊102基于從目標(biāo)程序TP接收的處理請求執(zhí)行處理,然后處理返回到操作S2801。當(dāng)在操作S2802中未接收到處理請求時(shí),處理返回到操作S2801。當(dāng)在操作S2801中判定目標(biāo)程序TP被篡改時(shí),處理前進(jìn)到操作S2804,在該操作中安全模塊102可進(jìn)入差錯(cuò)模式,然后認(rèn)證許可處理可結(jié)束。在差錯(cuò)模式中,當(dāng)目標(biāo)程序TP未被重啟時(shí),安全模塊102可拒絕來自目標(biāo)程序TP的請求。圖29和30示出了示例性的認(rèn)證序列。在圖29和30中,通信裝置101和中心103可相互驗(yàn)證其與之通信的裝置是否是真實(shí)裝置。圖29示出了通信裝置與中心之間的示例性相互認(rèn)證。安全模塊102保存中心103的公鑰和安全模塊102的秘密密鑰。中心103保存安全模塊102的公鑰和中心103的秘密密鑰。安全模塊102和中心103可保存共同密鑰。在圖29中的操作S2901中,目標(biāo)程序TP向中心103發(fā)送認(rèn)證請求,該認(rèn)證請求包括所生成的通信裝置隨機(jī)數(shù)和用戶信息。在接收到認(rèn)證請求后,在操作S2902中,中心103使用其秘密密鑰來對(duì)在中心103處生成的中心隨機(jī)數(shù)、在中心103處生成的會(huì)話密鑰(例如臨時(shí)密鑰)和接收到的認(rèn)證請求中包括的通信裝置隨機(jī)數(shù)進(jìn)行加密。在操作S2903中,中心103將經(jīng)加密的中心隨機(jī)數(shù)、 經(jīng)加密的會(huì)話密鑰和經(jīng)加密的通信裝置隨機(jī)數(shù)發(fā)送到目標(biāo)程序TP。在接收到經(jīng)加密的中心隨機(jī)數(shù)、經(jīng)加密的會(huì)話密鑰和經(jīng)加密的通信裝置隨機(jī)數(shù)后,在操作S2904中,目標(biāo)程序TP向安全模塊102發(fā)送包括經(jīng)加密的中心隨機(jī)數(shù)、經(jīng)加密的會(huì)話密鑰和經(jīng)加密的通信裝置隨機(jī)數(shù)的解密請求。在接收到該解密請求后,在操作S2905中,安全模塊102從目標(biāo)程序TP獲得程序認(rèn)證信息。在操作S2906中,安全模塊102基于所獲得的程序認(rèn)證信息來驗(yàn)證目標(biāo)程序TP的真實(shí)性。在操作S2907中,安全模塊102使用中心103的公鑰來對(duì)中心隨機(jī)數(shù)、會(huì)話密鑰和通信裝置隨機(jī)數(shù)解密。安全模塊102保存經(jīng)解密的會(huì)話密鑰。在操作S2908中,安全模塊102使用安全模塊102的秘密密鑰來對(duì)經(jīng)解密的中心隨機(jī)數(shù)重新加密。在操作S2909中,安全模塊102將經(jīng)解密的通信裝置隨機(jī)數(shù)和經(jīng)重新加密的中心隨機(jī)數(shù)發(fā)送給目標(biāo)程序TP。在接收到經(jīng)解密的通信裝置隨機(jī)數(shù)和經(jīng)重新加密的中心隨機(jī)數(shù)后,目標(biāo)程序TP判定接收到的由安全模塊102解密的通信裝置隨機(jī)數(shù)和在操作S2901中發(fā)送的通信裝置隨機(jī)數(shù)是否相互匹配。當(dāng)通信裝置隨機(jī)數(shù)相互匹配時(shí),處理前進(jìn)到操作S2910,在該操作中目標(biāo)程序TP判定其耦合到真實(shí)的中心103。在操作S2911中,目標(biāo)程序TP將經(jīng)重新加密的中心隨機(jī)數(shù)發(fā)送給中心103。在操作S2912中,中心103對(duì)接收到的經(jīng)重新加密的中心隨機(jī)數(shù)進(jìn)行解密。然后中心103判定經(jīng)解密的中心隨機(jī)數(shù)和在操作S2903中發(fā)送的中心隨機(jī)數(shù)是否相互匹配。當(dāng)中心隨機(jī)數(shù)相互匹配時(shí),處理前進(jìn)到操作S2913,在該操作中中心103驗(yàn)證了其耦合到真實(shí)的目標(biāo)程序TP。然后,處理前進(jìn)到圖30中的操作S3001。圖30示出了示例性的相互認(rèn)證。該相互認(rèn)證可在通信裝置101與中心103之間執(zhí)行。如圖30中所示,在操作S3001中,驗(yàn)證了目標(biāo)程序TP的中心103使用會(huì)話密鑰對(duì)連接確認(rèn)加密。在操作S3002中,中心103將經(jīng)加密的連接確認(rèn)發(fā)送到目標(biāo)程序TP。在接收到經(jīng)加密的連接確認(rèn)后,在操作S3003中,目標(biāo)程序TP向安全模塊102發(fā)送包括經(jīng)加密的連接確認(rèn)的解密請求。在接收到解密請求后,在操作S3004中,安全模塊102從目標(biāo)程序TP獲得程序認(rèn)證信息。在操作S3005中,安全模塊102基于所獲得的程序認(rèn)證信息來驗(yàn)證目標(biāo)程序TP的真實(shí)性。在操作S3006中,安全模塊102使用中心103的會(huì)話密鑰來對(duì)來自解密請求的連接確認(rèn)解密。在操作S3007中,安全模塊102將經(jīng)解密的連接確認(rèn)發(fā)送到目標(biāo)程序TP。在接收到連接確認(rèn)后,在操作S3008中,目標(biāo)程序TP判定與中心103的相互連接完成并且進(jìn)入目標(biāo)程序TP等待來自用戶的輸入的狀態(tài)。
由于通信裝置101和中心103在相互認(rèn)證期間發(fā)送各自的隨機(jī)數(shù),所以可以減少重放攻擊。當(dāng)相互認(rèn)證被執(zhí)行多次時(shí),一系列加密的信號(hào)基于所發(fā)送的隨機(jī)數(shù)而變化。此布置減少了破解者通過發(fā)送相同的一系列信號(hào)到中心103來假扮通信裝置101的合法用戶。生成隨機(jī)數(shù)的功能也可以是安全的。在通信裝置101和中心103相互驗(yàn)證了其與之通信的裝置是真實(shí)裝置后,通信裝置101基于目標(biāo)程序TP發(fā)送/接收數(shù)據(jù)。圖31示出了示例性相互認(rèn)證。該相互認(rèn)證可在通信裝置101與中心103之間執(zhí)行。在圖31中,通信裝置101和中心103與彼此執(zhí)行加密通信。例如,用戶可向目標(biāo)程序TP輸入包括要購買的書籍和遞送地址的購買信息。如圖31中所示,在操作S3101中,目標(biāo)程序TP接收用戶輸入的購買信息并向安全模塊102發(fā)送對(duì)購買信息的加密請求。在接收到加密請求后,在操作S3102中,安全模塊102從目標(biāo)程序TP獲得程序認(rèn)證信息。在操作S3103中,安全模塊102基于所獲得的程序認(rèn)證信息來驗(yàn)證目標(biāo)程序TP的真實(shí)性。在操作S3104中,接收到了購買信息的安全模塊102使用安全模塊102的會(huì)話密鑰來對(duì)購買信息加密。在操作S3105中,安全模塊102將經(jīng)加密的購買信息發(fā)送到目標(biāo)程序TP。在接收到經(jīng)加密的購買信息后,在操作S3106中,目標(biāo)程序TP將經(jīng)加密的購買信息發(fā)送到中心103。在接收到經(jīng)加密的購買信息后,在操作S3107中,中心103使用中心103的會(huì)話密鑰來對(duì)購買信息解密。在操作S3108中,中心103基于經(jīng)解密的購買信息來銷售相應(yīng)的商品O由于安全模塊102在檢查目標(biāo)程序TP是否是真實(shí)程序之后對(duì)購買信息加密,所以減少了向中心103發(fā)送偽造的購買信息。圖32示出了示例性的相互認(rèn)證。該相互認(rèn)證可在通信裝置101與中心103之間執(zhí)行。在圖32中,通信裝置101和中心103可與彼此執(zhí)行程序代碼的加密通信。例如,用戶可向目標(biāo)程序TP輸入所需軟件服務(wù)的服務(wù)標(biāo)識(shí)號(hào)。如圖32中所示,在操作S3201中,目標(biāo)程序TP從用戶接收服務(wù)標(biāo)識(shí)信息,然后向安全模塊102發(fā)送對(duì)服務(wù)標(biāo)識(shí)信息的加密請求。在接收到加密請求后,在操作S3202中,安全模塊102從目標(biāo)程序TP獲得程序認(rèn)證信息。在操作S3203中,安全模塊102基于所獲得的程序認(rèn)證信息來驗(yàn)證目標(biāo)程序TP的真實(shí)性。在操作S3204中,接收到了服務(wù)標(biāo)識(shí)號(hào)的安全模塊102使用安全模塊102的會(huì)話密鑰來對(duì)服務(wù)標(biāo)識(shí)號(hào)加密。在操作S3205中,安全模塊102將經(jīng)加密的服務(wù)標(biāo)識(shí)號(hào)發(fā)送到目標(biāo)程序TP。在接收到經(jīng)加密的服務(wù)標(biāo)識(shí)號(hào)后,在操作S3206中,目標(biāo)程序TP將經(jīng)加密的服務(wù)標(biāo)識(shí)號(hào)發(fā)送到中心103。在接收到經(jīng)加密的服務(wù)標(biāo)識(shí)號(hào)后,在操作S3207中,中心103使用中心103的會(huì)話密鑰來對(duì)服務(wù)標(biāo)識(shí)號(hào)解密。中心103使用中心103的會(huì)話密鑰來對(duì)經(jīng)解密的服務(wù)標(biāo)識(shí)號(hào)和與該服務(wù)標(biāo)識(shí)號(hào)相對(duì)應(yīng)的程序代碼進(jìn)行加密。在操作S3208中,中心103將經(jīng)加密的服務(wù)標(biāo)識(shí)號(hào)和程序代碼發(fā)送到目標(biāo)程序TP。然后,處理前進(jìn)到圖33中所示的操作S3301。圖33示出了加密通信的示例性序列。在圖33中,通信裝置101和中心103可與彼此執(zhí)行程序代碼的加密通信。在操作S3301中,目標(biāo)程序TP向安全模塊102發(fā)送包括接、收到的經(jīng)加密的服務(wù)標(biāo)識(shí)號(hào)和程序代碼的解密請求。在接收到該解密請求后,在操作S3302中,安全模塊102從目標(biāo)程序TP獲得程序認(rèn)證信息。在操作S3303中,安全模塊102基于所獲得的程序認(rèn)證信息來驗(yàn)證目標(biāo)程序TP的真實(shí)性。在操作S3304中,接收到了經(jīng)加密的服務(wù)標(biāo)識(shí)號(hào)和程序代碼的安全模塊102使用安全模塊102的會(huì)話密鑰來對(duì)服務(wù)標(biāo)識(shí)號(hào)和程序代碼解密。在操作S3305中,安全模塊102使用隨機(jī)生成的密鑰來對(duì)經(jīng)解密的程序代碼重新加密。在操作S3306中,安全模塊102將服務(wù)標(biāo)識(shí)號(hào)和經(jīng)重新加密的程序代碼發(fā)送到目標(biāo)程序TP。在操作S3307中,安全模塊102將隨機(jī)生成的密碼密鑰和服務(wù)標(biāo)識(shí)號(hào)相互關(guān)聯(lián)地存儲(chǔ)。在操作S3308中,目標(biāo)程序TP將接收到的服務(wù)標(biāo)識(shí)號(hào)和經(jīng)重新加密的程序代碼相互關(guān)聯(lián)地存儲(chǔ)。由于安全模塊102在檢查目標(biāo)程序TP是否是真實(shí)程序之后對(duì)服務(wù)標(biāo)識(shí)信息加密,所以減少了向中心103發(fā)送偽造的服務(wù)標(biāo)識(shí)號(hào)。由于安全模塊102對(duì)從中心103發(fā)送來的程序代碼重新加密以用安全的方式管理用于程序代碼的解密密鑰,所以減少了對(duì)程序代碼的篡改。由于完好性得到確保的安全模塊102中的掃描程序SP檢測篡改,所以減少了對(duì)掃描程序SP的破解。當(dāng)通信裝置101中的掃描程序SP檢測篡改時(shí),安全模塊102隨機(jī)地更新通信裝置101中的掃描程序SP??梢詼p少破解者對(duì)掃描程序SP的破解。安全模塊102可通過執(zhí)行“模糊處理”、“掃描目標(biāo)區(qū)域的改變”、“掃描目標(biāo)地址的順序的改變”、“掃描計(jì)算結(jié)果的添加”或者“掃描程序的地址的添加”來更新掃描程序SP??梢詼p少破解者對(duì)掃描程序SP的解譯或篡改。由于安全模塊102修改目標(biāo)程序TP,所以可以減少破解者對(duì)目標(biāo)程序TP的破解。例如,安全模塊102可通過執(zhí)行模糊處理、加密或混排來修改目標(biāo)程序TP。作為修改的結(jié)果,可以減少破解者對(duì)目標(biāo)程序TP的解譯或篡改。當(dāng)檢測到篡改時(shí),安全模塊102可停止密碼單元608、輸出單元609或所有功能。由于對(duì)從被檢測到篡改的目標(biāo)程序TP發(fā)出的密碼密鑰K讀取請求和通信內(nèi)容加密請求不執(zhí)行處理,所以被檢測到篡改的目標(biāo)程序TP不利用密碼密鑰K執(zhí)行加密通信?;谙蛲ㄐ叛b置101輸出請求和獲得對(duì)該請求的響應(yīng)之間的時(shí)間間隔,安全模塊102估計(jì)安全模塊102與響應(yīng)發(fā)送源之間的物理距離。安全模塊102判定破解者的計(jì)算機(jī)104正假扮通信裝置101的合法用戶。由于安全模塊102對(duì)從通信裝置101中的目標(biāo)程序TP接收或要發(fā)送到通信裝置101中的目標(biāo)程序TP的數(shù)據(jù)進(jìn)行加密,所以可以減少對(duì)安全模塊102與通信裝置101中的處理器301之間的通信信道上的數(shù)據(jù)的破解。
現(xiàn)在已經(jīng)根據(jù)上述優(yōu)點(diǎn)描述了本發(fā)明的示例性實(shí)施例。將會(huì)明白,這些示例只是在例示本發(fā)明。許多變化和修改對(duì)于本領(lǐng)域的技術(shù)人員是顯而易見的。
權(quán)利要求
1.一種通信裝置,包括 安全模塊; 設(shè)在所述安全模塊外部的第一存儲(chǔ)設(shè)備,存儲(chǔ)用于利用存儲(chǔ)在所述安全模塊中的密碼密鑰與所述通信裝置外部的裝置加密通信的程序; 設(shè)在所述安全模塊中的檢測單元,檢測對(duì)所述程序的篡改;以及 設(shè)在所述安全模塊中的設(shè)定單元,當(dāng)檢測到對(duì)所述程序的篡改時(shí)禁止所述加密通信。
2.根據(jù)權(quán)利要求I所述的通信裝置,還包括 設(shè)在所述安全模塊中的第二存儲(chǔ)設(shè)備,存儲(chǔ)與所述程序相對(duì)應(yīng)的第一代碼;以及 生成單元,生成用于生成所述第一代碼的第一掃描程序并且通過更新所述第一掃描程序來生成第二掃描程序, 其中,所述檢測單元基于所述第一掃描程序和所述第一代碼的運(yùn)行結(jié)果來檢測對(duì)所述程序的篡改。
3.根據(jù)權(quán)利要求2所述的通信裝置,其中,所述生成單元對(duì)所述第一掃描程序的指令進(jìn)行模糊處理。
4.根據(jù)權(quán)利要求2所述的通信裝置,其中,所述生成單元改變所述第一掃描程序指定的掃描目標(biāo)地址。
5.根據(jù)權(quán)利要求2所述的通信裝置,其中,所述生成單元改變所述第一掃描程序中的相應(yīng)指令指定的掃描目標(biāo)地址的順序。
6.根據(jù)權(quán)利要求2所述的通信裝置,其中,所述生成單元基于所述第一掃描程序中的指令指定的數(shù)據(jù)改變計(jì)算指令的內(nèi)容,將根據(jù)改變后的計(jì)算指令的計(jì)算的結(jié)果存儲(chǔ)在所述第一存儲(chǔ)設(shè)備中并且添加用于將所述計(jì)算的結(jié)果返回給所述安全模塊的指令。
7.根據(jù)權(quán)利要求2所述的通信裝置,其中,所述生成單元將所述第一掃描程序中的指令改變成依賴于所述第一掃描程序在所述通信裝置中的存儲(chǔ)地址的指令。
8.根據(jù)權(quán)利要求2所述的通信裝置,其中,所述生成單元生成與所述第一代碼實(shí)質(zhì)上相同的第二代碼,并且生成包括與所述第一掃描程序的描述不同的描述的第三掃描程序作為所述第二掃描程序。
9.根據(jù)權(quán)利要求2所述的通信裝置,其中,所述生成單元生成包括與所述第一掃描程序的描述不同的描述以及與所述第一掃描程序的功能實(shí)質(zhì)上相同的功能的第三掃描程序作為所述第二掃描程序,并且覆蓋所述第二存儲(chǔ)設(shè)備中與所述第二掃描程序相對(duì)應(yīng)的第二代碼。
10.根據(jù)權(quán)利要求I所述的通信裝置,還包括 修改單元,將所述程序修改成具有不同的描述并且具有實(shí)質(zhì)上相同的功能的程序代碼并將與所述程序代碼相對(duì)應(yīng)的代碼寫入在所述第一存儲(chǔ)設(shè)備中, 其中,所述檢測單元基于所述程序代碼中的計(jì)算的結(jié)果的有效性來檢測對(duì)所述程序代碼的篡改。
11.根據(jù)權(quán)利要求10所述的通信裝置,其中,所述修改單元對(duì)所述程序的指令進(jìn)行模糊處理。
12.根據(jù)權(quán)利要求10所述的通信裝置,其中,所述修改單元對(duì)所述程序的指令進(jìn)行混排;在所述第二存儲(chǔ)設(shè)備中存儲(chǔ)指定如下組合的表格指定跳躍目的地指令的地址的跳躍指令和該跳躍指令的地址的組合;將所述跳躍指令的內(nèi)容改變成對(duì)所述表格的讀取指令;并且將所述讀取指令寫入在所述第一存儲(chǔ)設(shè)備中。
13.根據(jù)權(quán)利要求10所述的通信裝置,其中,所述修改單元對(duì)所述程序的指令進(jìn)行混排;在所述第二存儲(chǔ)設(shè)備中存儲(chǔ)指定如下組合的表格指定跳躍目的地指令的地址的跳躍指令、跳躍源指令和該跳躍源指令的地址的組合;將所述跳躍源指令的內(nèi)容改變成對(duì)所述表格的讀取指令;并且將所述讀取指令寫入在所述第一存儲(chǔ)設(shè)備中。
14.根據(jù)權(quán)利要求10所述的通信裝置,其中,所述修改單元將所述程序的任意指令替換為由對(duì)該任意指令加密產(chǎn)生的經(jīng)加密指令、對(duì)所述安全模塊的讀取指令以及用于對(duì)所述經(jīng)加密指令解密的解密指令;在所述第二存儲(chǔ)設(shè)備中存儲(chǔ)指定所述讀取指令的地址和用于對(duì)所述經(jīng)加密指令解密的解密指令的組合的表格;并且將被替換的程序?qū)懭朐谒龅谝淮鎯?chǔ)設(shè)備中。
15.根據(jù)權(quán)利要求10所述的通信裝置,其中,所述修改單元將所述程序的任意指令替換為對(duì)所述安全模塊的讀取指令;在所述第二存儲(chǔ)設(shè)備中存儲(chǔ)指定所述讀取指令的地址和所述任意指令的組合的表格;并且將被替換的程序?qū)懭朐谒龅谝淮鎯?chǔ)設(shè)備中。
16.根據(jù)權(quán)利要求I所述的通信裝置,還包括 判定單元,當(dāng)所述檢測單元未檢測到對(duì)所述程序的篡改時(shí),該判定單元判定從向所述通信裝置中的處理器輸出請求到從所述處理器獲得響應(yīng)的時(shí)間量是否長于或等于一定時(shí)間量。
17.根據(jù)權(quán)利要求I所述的通信裝置,還包括 獲得單元,獲得要從所述程序發(fā)送到所述外部裝置的數(shù)據(jù),所述獲得發(fā)生在所述數(shù)據(jù)的發(fā)送之前;以及 密碼單元,通過使用所述密碼密鑰對(duì)所述數(shù)據(jù)加密, 其中,所述設(shè)定單元禁止所述密碼單元。
18.根據(jù)權(quán)利要求I所述的通信裝置,其中,所述安全模塊還包括 獲得單元,獲得來自所述程序的對(duì)輸出所述密碼密鑰的請求;以及 輸出單元,在所述獲得單元獲得所述請求時(shí)將所述密碼密鑰輸出到所述程序, 其中,所述設(shè)定單元禁止所述輸出單元。
19.根據(jù)權(quán)利要求I所述的通信裝置,其中,所述密碼密鑰是所述安全模塊的秘密密鑰,該秘密密鑰對(duì)應(yīng)于所述外部裝置的公鑰。
20.一種設(shè)在通信裝置中的安全模塊,具有不能被從外部引用的數(shù)據(jù),該安全模塊包括 檢測單元,檢測對(duì)用于利用所述安全模塊中的密碼密鑰與所述通信裝置外部的裝置執(zhí)行加密通信的程序的篡改,所述程序被保存在設(shè)在所述通信裝置中、所述安全模塊外部的存儲(chǔ)設(shè)備中;以及 設(shè)定單元,當(dāng)所述檢測單元檢測到對(duì)所述程序的篡改時(shí),所述設(shè)定單元將所述安全模塊置于所述程序不能利用所述密碼密鑰執(zhí)行所述加密通信的狀態(tài)中。
全文摘要
本發(fā)明提供了通信裝置和安全模塊。一種通信裝置包括安全模塊;設(shè)在安全模塊外部的第一存儲(chǔ)設(shè)備,存儲(chǔ)用于利用存儲(chǔ)在安全模塊中的密碼密鑰與通信裝置外部的裝置加密通信的程序;設(shè)在安全模塊中的檢測單元,檢測對(duì)程序的篡改;以及設(shè)在安全模塊中的設(shè)定單元,當(dāng)檢測到對(duì)程序的篡改時(shí)禁止加密通信。
文檔編號(hào)H04L9/32GK102630085SQ20121002326
公開日2012年8月8日 申請日期2012年1月20日 優(yōu)先權(quán)日2011年2月8日
發(fā)明者小檜山清之 申請人:富士通株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1