国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      便攜式數(shù)據(jù)載體的控制程序執(zhí)行的制作方法

      文檔序號:6431620閱讀:145來源:國知局
      專利名稱:便攜式數(shù)據(jù)載體的控制程序執(zhí)行的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明一般涉及便攜式數(shù)據(jù)載體的程序執(zhí)行的技術(shù)領(lǐng)域,該數(shù)據(jù)載體包括具有至少一個(gè)程序的程序存儲器和用于執(zhí)行該程序的處理器內(nèi)核。這類便攜式數(shù)據(jù)載體具體為各種形式的芯片卡或芯片模塊。具體說,本發(fā)明涉及為了檢測干擾或攻擊以及初始化合適錯(cuò)誤處理的控制程序執(zhí)行。
      背景技術(shù)
      在攻擊便攜式數(shù)據(jù)載體的許多技術(shù)中,由外部影響擾亂正常程序運(yùn)行。這類干擾可特別由電壓脈沖、熱或冷的效果、電或磁場、電磁波或粒子輻射引起。例如,可能通過在該便攜式數(shù)據(jù)載體的暴露的半導(dǎo)體芯片上的閃光來操縱處理器內(nèi)核中的寄存器內(nèi)容。程序計(jì)數(shù)器可潛在地被這樣的光攻擊修改,使得該便攜式數(shù)據(jù)載體從輸入/輸出緩沖器發(fā)射與其中存儲的程序相反的秘密數(shù)據(jù)。
      根據(jù)歐洲專利申請EP 1056012A2可得知一種用于控制車輛中門鎖電動機(jī)的裝置,其中控制處理器一個(gè)接一個(gè)地執(zhí)行多個(gè)子程序,在每一子程序之后計(jì)數(shù)器減1。在執(zhí)行子程序之后,檢查該計(jì)數(shù)器狀態(tài)是否對應(yīng)于子程序的數(shù)目。
      然而,該公知裝置僅涉及固定安裝在車輛上的系統(tǒng)。并不考慮尤其在便攜式數(shù)據(jù)載體中的更一般的用途。而且,該裝置中僅提供所有子程序的嚴(yán)格連續(xù)的順序。所以從EP 1056012A2得知的教導(dǎo)不適于其中任意跳過單個(gè)子程序的更復(fù)雜應(yīng)用。

      發(fā)明內(nèi)容
      因此本發(fā)明要解決的技術(shù)問題是至少部分避免現(xiàn)有技術(shù)的問題,并創(chuàng)建一種便攜式數(shù)據(jù)載體的控制程序執(zhí)行的方法以及一種便攜式數(shù)據(jù)載體,其提供可靠保護(hù)使程序計(jì)數(shù)器的值免受操縱,并適于在執(zhí)行復(fù)雜程序中使用。在優(yōu)選實(shí)施例中將實(shí)現(xiàn)具有低花費(fèi)的高保護(hù)。
      根據(jù)本發(fā)明,由具有權(quán)利要求1的特征的方法和具有權(quán)利要求10的特征的便攜式數(shù)據(jù)載體全部或部分解決該技術(shù)問題。從屬權(quán)利要求涉及本發(fā)明的優(yōu)選實(shí)施例。
      本發(fā)明源自控制由程序執(zhí)行期間隨之變化的狀態(tài)計(jì)數(shù)器運(yùn)行的校正程序的基本概念。該程序具有多個(gè)控制部件,其處理在每一情況下都引起該狀態(tài)計(jì)數(shù)器的改變。所述控制部件不需要與子程序或程序模塊一致。在該程序的至少一個(gè)測試點(diǎn),將該狀態(tài)計(jì)數(shù)器的讀數(shù)與一個(gè)或多個(gè)容許值作比較,并在有差別的情況下進(jìn)行合適的錯(cuò)誤處理。
      根據(jù)本發(fā)明,至少提供包括至少一個(gè)跳轉(zhuǎn)指令的程序的可能性,通過該跳轉(zhuǎn)指令,跳過一個(gè)或多個(gè)控制部件并因此不再執(zhí)行。在該情況下,結(jié)合該跳轉(zhuǎn)指令的執(zhí)行改變該狀態(tài)計(jì)數(shù)器的讀數(shù),如同已執(zhí)行了所跳過的控制部件一樣。然后在隨后及時(shí)地獨(dú)立于跳轉(zhuǎn)指令的執(zhí)行來測試該狀態(tài)計(jì)數(shù)器的值。因此可相當(dāng)大地增加將執(zhí)行程序的配置的靈活性,而不必作出對安全性的限制。
      該狀態(tài)計(jì)數(shù)器可配置為便攜式數(shù)據(jù)載體的處理器內(nèi)核中的寄存器或工作存儲器中的存儲區(qū)域。在本發(fā)明的優(yōu)選實(shí)施例中,該狀態(tài)計(jì)數(shù)器配置為差別狀態(tài)計(jì)數(shù)器,其中的值由根據(jù)稱為基本計(jì)數(shù)器和有效計(jì)數(shù)器的硬件實(shí)現(xiàn)的兩個(gè)計(jì)數(shù)器之間的差值產(chǎn)生。因此在前進(jìn)程序運(yùn)行期間,防止該狀態(tài)計(jì)數(shù)器恒定地呈現(xiàn)同一順序的值。所以差別狀態(tài)計(jì)數(shù)器的使用使得所使用的方法更難被辨認(rèn),并增加了其安全性?;居?jì)數(shù)器最好定期初始化,因?yàn)槠浔辉O(shè)置為有效計(jì)數(shù)器的相應(yīng)讀數(shù)。
      原則上,將執(zhí)行的程序結(jié)構(gòu)不受到任何限制。在特別設(shè)想為芯片卡或芯片模塊的優(yōu)選配置中,該程序的基本結(jié)構(gòu)為一個(gè)循環(huán),然而包括開始部件、多個(gè)控制部件和動作部件。
      優(yōu)選的,該開始部件引起外部命令的讀入,該控制部件涉及該命令的處理,并在動作部件中發(fā)出響應(yīng)。在該情況下,測試點(diǎn)或當(dāng)存在多個(gè)測試點(diǎn)時(shí)的多個(gè)測試點(diǎn)之一最好位于最后的控制部件和該動作部件之間,從而僅當(dāng)狀態(tài)計(jì)數(shù)器的測試還沒有導(dǎo)致任何干擾程序執(zhí)行的表示時(shí)才發(fā)出該響應(yīng)。本發(fā)明的優(yōu)選實(shí)施例的總特征與所述程序結(jié)構(gòu)無關(guān),在于在該便攜式數(shù)據(jù)載體的每一面向外部動作之前提供一個(gè)測試點(diǎn)。
      該程序最好包括一個(gè)接一個(gè)執(zhí)行的一個(gè)或多個(gè)模塊,所述模塊的每一個(gè)依次包括至少一個(gè)控制部件。在一些實(shí)施例中,每一模塊包括正好一個(gè)控制部件和可選地包括測試,測試將執(zhí)行還是跳過隨后的模塊。在其他實(shí)施例中,模塊中的至少一些包括多個(gè)控制部件。
      如果將至少一個(gè)模塊配置為具有至少一個(gè)模塊內(nèi)部測試點(diǎn)的控制模塊,則進(jìn)一步提高監(jiān)視程度??烧{(diào)查自程序執(zhí)行開始以來或自所述循環(huán)當(dāng)前執(zhí)行開始以來的狀態(tài)計(jì)數(shù)器的值是否與該模塊內(nèi)部測試點(diǎn)的一個(gè)或多個(gè)預(yù)定值一致,或可測試自該模塊執(zhí)行開始以來的狀態(tài)計(jì)數(shù)器的改變。在第二種情況下,最好在該模塊中的狀態(tài)計(jì)數(shù)器的第一次改變之前,將該狀態(tài)計(jì)數(shù)器的讀數(shù)或與其關(guān)聯(lián)的值,例如有效計(jì)數(shù)器的狀態(tài)緩存在局部基本計(jì)數(shù)器中。
      可類似地在模塊或部件內(nèi)的其他配置中引入局部計(jì)數(shù)器,該計(jì)數(shù)器獨(dú)立于全局狀態(tài)計(jì)數(shù)器地監(jiān)視該模塊或部件內(nèi)運(yùn)行的校正程序運(yùn)行。可結(jié)合全局狀態(tài)計(jì)數(shù)器根據(jù)上述技術(shù)配置該局部計(jì)數(shù)器,可以具體構(gòu)造為差別局部計(jì)數(shù)器。
      通過其可跳過控制部件的每一跳轉(zhuǎn)指令最好與對應(yīng)命令配對,以改變狀態(tài)計(jì)數(shù)器。然而,本發(fā)明也提供其中單個(gè)跳轉(zhuǎn)指令不伴隨狀態(tài)計(jì)數(shù)器改變的配置。在該情況下,通常在該一個(gè)或多個(gè)測試點(diǎn)定義多個(gè)容許計(jì)數(shù)器狀態(tài)。但是,因?yàn)樵摐y量降低了監(jiān)視精度,所以最好僅用于所述局部狀態(tài)計(jì)數(shù)器。
      根據(jù)本發(fā)明的便攜式數(shù)據(jù)載體最好構(gòu)造為芯片卡或芯片模塊。在優(yōu)選配置中,其具有與上述對應(yīng)的特征和/或在從屬方法權(quán)利要求中提及的特征。


      根據(jù)以下對多個(gè)實(shí)施例和替換實(shí)施例的具體描述,本發(fā)明的其他特點(diǎn)、優(yōu)點(diǎn)和目的將更清楚。參考附圖,其中圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的便攜式數(shù)據(jù)載體的功能單元的方框圖;圖2是圖1的實(shí)施例中運(yùn)行的程序的流程圖;圖3是圖2的配置變更的流程圖;圖4是根據(jù)圖2的另一個(gè)配置變更的控制模塊中運(yùn)行的程序的流程圖;和圖5是在包括多個(gè)控制子部件的部件中運(yùn)行的程序的流程圖。
      具體實(shí)施例方式
      在本實(shí)施例中將圖1中示出的便攜式數(shù)據(jù)載體10構(gòu)建為芯片卡。其具有與環(huán)境進(jìn)行不接觸或接觸的數(shù)據(jù)交換的接口12、具有程序計(jì)數(shù)器16的處理器內(nèi)核14和存儲器18。通常處理器內(nèi)核14、存儲器18和接口12的組件集成在單一的半導(dǎo)體芯片中。
      存儲器18具有多個(gè)用不同存儲器技術(shù)配置的區(qū)域。在圖1的實(shí)施例中,存在配置為例如掩模編程ROM的只讀存儲器20、以FLASH技術(shù)配置的非易失性讀寫存儲器22和配置為RAM(隨機(jī)存取存儲器)的易失性讀寫存儲器24。按照概念,該存儲器18包括位于區(qū)域20和22中的程序存儲器26以及位于區(qū)域22和24中的工作存儲器28。
      程序存儲器26包括多個(gè)程序,其中一個(gè)如圖1所示并標(biāo)以附圖標(biāo)記30。多個(gè)計(jì)數(shù)器32的存儲位置保留在工作存儲器28中,具體地說,這些計(jì)數(shù)器是圖2實(shí)施例中的狀態(tài)計(jì)數(shù)器ZZ、圖3實(shí)施例中的有效計(jì)數(shù)器AZ和基本計(jì)數(shù)器BZ、圖4修改中的狀態(tài)計(jì)數(shù)器ZZ和局部基本計(jì)數(shù)器LBZ、圖5修改中的狀態(tài)計(jì)數(shù)器ZZ和局部計(jì)數(shù)器LZ。在替換配置中,這些計(jì)數(shù)器也能全部或部分配置為處理器內(nèi)核14的寄存器而不在工作存儲器28中,或存儲在圖1中未示出的便攜式數(shù)據(jù)載體10的其他單元中。
      在本實(shí)施例中,可由引導(dǎo)到該半導(dǎo)體芯片的閃光影響該處理器內(nèi)核14的程序計(jì)數(shù)器16。盡管如此,為了排除由此產(chǎn)生的對處理器內(nèi)核中管理的數(shù)據(jù)的潛在攻擊,根據(jù)圖2的程序運(yùn)行中的狀態(tài)計(jì)數(shù)器ZZ作為與程序計(jì)數(shù)器16無關(guān)的控制機(jī)制,在程序運(yùn)行期間隨之變化,并在每種情況下測試是否與執(zhí)行針對外部的動作之前的預(yù)定計(jì)數(shù)器狀態(tài)一致。
      在圖2的實(shí)施例中,程序30具有無限循環(huán)的結(jié)構(gòu),該結(jié)構(gòu)包括開始部件34,多個(gè)控制部件36.1、36.2、…、36.N,此后全部用36.x標(biāo)明,測試點(diǎn)38和動作部件40。將由便攜式數(shù)據(jù)載體10處理的命令例如在開始部件34中通過接口12讀入。該控制部件36.x涉及一個(gè)接一個(gè)執(zhí)行的命令的處理階段,其中例如首先測試命令的有效性,接著進(jìn)行許可測試,然后進(jìn)行命令的可執(zhí)行測試,例如測試是否存在請求數(shù)據(jù),最后執(zhí)行該命令,例如將請求數(shù)據(jù)寫入輸出緩沖器。在本實(shí)施例中,在動作部件40將通過接口12發(fā)送響應(yīng),作為結(jié)果,表明命令的執(zhí)行成功還是執(zhí)行失敗。
      在通過以上例子引證的單獨(dú)控制部件36.x的功能中可能發(fā)生錯(cuò)誤情況,使得在程序運(yùn)行中執(zhí)行隨后的控制部件36.x多余。例如如果因缺少許可而不能執(zhí)行命令,則后面的處理步驟都是多余的。所以存在退出跳轉(zhuǎn)測試42.1、42.2等,以下全部用42.x標(biāo)明,其中檢查以規(guī)定次序跟隨的控制部件36.x將被執(zhí)行還是跳過。每一退出跳轉(zhuǎn)測試42.x是一種測試退出跳轉(zhuǎn)標(biāo)記值的條件跳轉(zhuǎn)指令。由各在前控制部件36.x依次設(shè)置該退出跳轉(zhuǎn)標(biāo)記,以表明應(yīng)發(fā)生退出跳轉(zhuǎn)。當(dāng)然,僅當(dāng)該退出跳轉(zhuǎn)標(biāo)記值可在控制部件36.x中改變時(shí),退出跳轉(zhuǎn)測試42.x′才需要與該控制部件36.x關(guān)聯(lián)。
      為了獨(dú)立于程序計(jì)數(shù)器16的狀態(tài)來檢查程序運(yùn)行,并因此能識別光攻擊,使用狀態(tài)計(jì)數(shù)器ZZ。由初始化指令44結(jié)合開始部件34的執(zhí)行而將該狀態(tài)計(jì)數(shù)器ZZ設(shè)置為初始值。在圖2的實(shí)施例中,該值為零。每一控制部件36.x也包括其中改變了狀態(tài)計(jì)數(shù)器ZZ的指令46.x,即在本實(shí)施例中增加一個(gè)單位。僅當(dāng)各部件36.x執(zhí)行的操作已完成時(shí),才在每一控制部件36.x內(nèi)執(zhí)行該指令46.x。該指令46.x最好是每一情況下每一控制部件36.x的最后命令。
      因此總的來說,假設(shè)沒有跳轉(zhuǎn)發(fā)生,狀態(tài)計(jì)數(shù)器ZZ在程序運(yùn)行期間包括與執(zhí)行的控制部件36.x的數(shù)量對應(yīng)的值。以圖2的示例順序,由值N標(biāo)明該數(shù)量。所以在測試點(diǎn)38發(fā)生測試48,其中確定該狀態(tài)計(jì)數(shù)器ZZ的讀數(shù)是否具有單一容許值N。如果是這種情況,則執(zhí)行動作部件40。如果該狀態(tài)計(jì)數(shù)器ZZ具有不同值,則程序執(zhí)行分支到錯(cuò)誤處理程序50。
      該便攜式數(shù)據(jù)載體10的全面復(fù)位或甚至隨著錯(cuò)誤的反復(fù)發(fā)生而出現(xiàn)的例如該便攜式數(shù)據(jù)載體10的阻塞可作為錯(cuò)誤處理50發(fā)生。也可通過接口12發(fā)送合適的錯(cuò)誤消息。在任何情況下,該錯(cuò)誤處理50應(yīng)保證已為輸出而潛在提供的該便攜式數(shù)據(jù)載體10的數(shù)據(jù)沒有經(jīng)由接口12傳遞到外部。
      根據(jù)前述順序,如果退出跳轉(zhuǎn)測試42.x之一已引起越過一個(gè)或多個(gè)控制部件36.6的跳轉(zhuǎn),則該狀態(tài)計(jì)數(shù)器ZZ將不具有容許值N。為了確保校正程序即使在該情況下仍工作,只要由于退出跳轉(zhuǎn)測試42.x而跳過控制部件36.x,就執(zhí)行對應(yīng)校正指令52.1、52.2,以下統(tǒng)稱52.x。在任何校正指令52.x中都改變狀態(tài)計(jì)數(shù)器ZZ,如同已執(zhí)行了該跳過的控制部件36.x。在當(dāng)前情況下,在每一校正指令52.x中,將狀態(tài)計(jì)數(shù)器ZZ增加所跳過的部件36.x的數(shù)目。所以即使在循環(huán)執(zhí)行期間已發(fā)生退出跳轉(zhuǎn),但到達(dá)測試點(diǎn)38時(shí),狀態(tài)計(jì)數(shù)器ZZ仍具有單一容許值N。
      在本實(shí)施例中,狀態(tài)計(jì)數(shù)器ZZ被初始化為值0,并在處理每一控制部件期間增加一個(gè)單位。在替換配置中,提供了其他初始值和/或用于改變該狀態(tài)計(jì)數(shù)器的其他方法。例如,在指令44中,狀態(tài)計(jì)數(shù)器ZZ可被初始化為值1或N或另一值。如果在退出跳轉(zhuǎn)測試42.x之后跳過控制部件36.x,則該狀態(tài)計(jì)數(shù)器ZZ也可能繼續(xù)無校正地計(jì)數(shù),而不是將值N減少所跳過部件36.x的數(shù)目。所述校正指令52.1、52.2然后為N=1和N=2等。在指令46.x中可執(zhí)行任何數(shù)學(xué)運(yùn)算,例如減去一單位或逐位移動或旋轉(zhuǎn)。因此在這些情況下必須改變測試48中的容許值。
      圖3示出了圖2的順序的進(jìn)一步變更。在工作存儲器28中,該狀態(tài)計(jì)數(shù)器ZZ在這里不直接實(shí)現(xiàn)為計(jì)數(shù)器32,而是在工作存儲器28中提供了兩個(gè)計(jì)數(shù)器32,即有效計(jì)數(shù)器AZ和基本計(jì)數(shù)器BZ。該狀態(tài)計(jì)數(shù)器ZZ作為差別計(jì)數(shù)器的配置避免了這種情況,即程序計(jì)數(shù)器16的每一狀態(tài)都對應(yīng)于工作存儲器28中計(jì)數(shù)器32的固定和總是相同的值。
      圖3所示的順序開始于初始化步驟54,其中該有效計(jì)數(shù)器AZ被設(shè)置為開始值,在本實(shí)施例中為值0。在該初始化步驟54之后,圖3中圖示的程序結(jié)構(gòu)與圖2中的相同,因此圖3和圖2中使用相同的附圖標(biāo)記。不同之處在于在指令44中,基本計(jì)數(shù)器BZ被設(shè)置為有效計(jì)數(shù)器AZ的相應(yīng)狀態(tài)。所以基本計(jì)數(shù)器BZ的狀態(tài)是任何循環(huán)中的“零標(biāo)記”,有效計(jì)數(shù)器AZ從該狀態(tài)開始計(jì)數(shù)。
      根據(jù)圖3,在指令46.x和52.x中按照與圖2中的狀態(tài)計(jì)數(shù)器ZZ相同的方式改變有效計(jì)數(shù)器AZ。最后,在測試48中將有效計(jì)數(shù)器AZ和基本計(jì)數(shù)器BZ之間的差別與容許值N作比較。在測試48的實(shí)際編程中最好避免與始終不變值N作比較,因?yàn)槔绯跏加?jì)算中間結(jié)果BZ+N,然后將該中間結(jié)果與有效計(jì)數(shù)器AZ的值作比較。
      有效計(jì)數(shù)器AZ從循環(huán)的一次執(zhí)行轉(zhuǎn)到下一次執(zhí)行時(shí)不復(fù)位,而是僅在指令44中再次建立由基本計(jì)數(shù)器BZ定義的“零標(biāo)記”。計(jì)數(shù)器AZ和BZ的值因此在每個(gè)循環(huán)執(zhí)行之間都發(fā)生改變,從而很難辨認(rèn)出圖3的方法。在圖3的方法的更改中,可在測試48后任意復(fù)位有效計(jì)數(shù)器AZ的值。也可不時(shí)地交換工作存儲器28中分別形成有效計(jì)數(shù)器AZ和基本計(jì)數(shù)器BZ的計(jì)數(shù)器32的角色。
      圖2和圖3通過例子示出了結(jié)合兩個(gè)控制部件36.1和36.2的模塊56和兩個(gè)分配的跳轉(zhuǎn)測試42.1和42.2。圖4以另一種變形示出了圖2的模塊56,其包括在模塊56執(zhí)行期間,對狀態(tài)計(jì)數(shù)器ZZ中改變的附加局部檢查。根據(jù)圖4,為此目的,在該模塊執(zhí)行的開始,將狀態(tài)計(jì)數(shù)器ZZ的讀數(shù)保存在局部基本計(jì)數(shù)器LBZ中。
      在控制部件36.1和36.2以及對應(yīng)跳轉(zhuǎn)測試42.1和42.2的處理之后,程序執(zhí)行到達(dá)模塊內(nèi)部測試點(diǎn)60。在測試62檢查,狀態(tài)計(jì)數(shù)器ZZ在模塊開始時(shí)保存的值LBZ的改變是否對應(yīng)于同時(shí)執(zhí)行的控制部件36.x的數(shù)目M。在本例中,M為值2。如果在狀態(tài)計(jì)數(shù)器ZZ′內(nèi)的模塊內(nèi)部改變具有該容許值,則繼續(xù)程序執(zhí)行,否則執(zhí)行用于錯(cuò)誤處理64的模塊內(nèi)部例程。
      圖4的具有差別狀態(tài)計(jì)數(shù)器的配置變更也可用于根據(jù)圖3的方法。在該情況下,在步驟58,有效計(jì)數(shù)器AZ的值或差值A(chǔ)Z-BZ存儲在局部基本計(jì)數(shù)器LBZ中,并且在測試62中形成該值或該差值與局部基本計(jì)數(shù)器LBZ的值之間的差值。
      盡管在檢查圖4的模塊內(nèi)部改變期間全局狀態(tài)計(jì)數(shù)器ZZ會增加,但也有可能在模塊56或控制部件36.x中引入另一個(gè)局部狀態(tài)計(jì)數(shù)器。圖5示出了該配置變更的示例順序,其中由局部狀態(tài)計(jì)數(shù)器LZ再一次保護(hù)圖2的控制部件36.x。
      根據(jù)圖5,在步驟66該局部狀態(tài)計(jì)數(shù)器LZ被初始化為值0。接著執(zhí)行多個(gè)、在本例中為三個(gè),控制子部件68.1、68.2、68.3,統(tǒng)稱為68.x。在相應(yīng)指令70.x中的每一個(gè)控制子部件68.x中遞增該局部計(jì)數(shù)器LZ。第二控制子部件68.2包括條件退出跳轉(zhuǎn),圖5中由虛線箭頭示出,通過它跳過遞增步驟70.2和第三子部件68.3。
      在處理了最后一個(gè)控制子部件68.3之后,程序執(zhí)行到達(dá)局部測試點(diǎn)72。為了進(jìn)行檢查執(zhí)行測試74,其中將局部計(jì)數(shù)器LZ的狀態(tài)與容許值1和3作比較。如果與這些值中的一個(gè)一致,則用指令46.x繼續(xù)該程序執(zhí)行以改變?nèi)譅顟B(tài)計(jì)數(shù)器ZZ,否則發(fā)生錯(cuò)誤處理76。
      已結(jié)合狀態(tài)計(jì)數(shù)器ZZ描述的以上變更也可能用于實(shí)現(xiàn)圖5的局部計(jì)數(shù)器LZ。具體說,該局部計(jì)數(shù)器LZ也可形成為差別計(jì)數(shù)器。如果結(jié)合圖3的配置使用圖5的方法,則只需改變配置46.x。
      圖5圖示了計(jì)數(shù)器與多個(gè)容許值之間的比較,這在沒有對應(yīng)校正指令52.x就提供不同程序運(yùn)行路徑時(shí)是很必要的。在本發(fā)明的一些實(shí)施例中,也可對于全局狀態(tài)計(jì)數(shù)器ZZ使用這類與多個(gè)容許值的比較。然而,該配置降低了控制的可靠性并因此僅優(yōu)選用于局部狀態(tài)計(jì)數(shù)器LZ。相反,第二控制子部件68.2中的退出跳轉(zhuǎn)也可通過合適的校正指令按照另一個(gè)變形運(yùn)行。在該情況下,僅局部計(jì)數(shù)器LZ的單一狀態(tài),即計(jì)數(shù)器狀態(tài)3,在測試74中是容許的。
      權(quán)利要求
      1.一種用于便攜式數(shù)據(jù)載體(10)控制程序執(zhí)行的方法,該便攜式數(shù)據(jù)載體(10)包括程序存儲器(26)、處理器內(nèi)核(14)和至少一個(gè)狀態(tài)計(jì)數(shù)器(ZZ),其中該程序存儲器(26)包括可由該處理器內(nèi)核(14)執(zhí)行并具有多個(gè)控制部件(36.x)的至少一個(gè)程序(30),并且其中-在每一控制部件(36.x)執(zhí)行期間,為了反映相應(yīng)控制部件(36.x)的處理,改變所述狀態(tài)計(jì)數(shù)器(ZZ)的讀數(shù),-在其結(jié)果是跳過一個(gè)或多個(gè)控制部件(36.x)的跳轉(zhuǎn)指令(42.x)執(zhí)行期間,改變所述狀態(tài)計(jì)數(shù)器(ZZ)的讀數(shù),如同已執(zhí)行所跳過的控制部件(36.x)一樣,和-在至少一個(gè)測試點(diǎn)(38,60,72),將所述狀態(tài)計(jì)數(shù)器(ZZ)的讀數(shù)與至少一個(gè)容許值作比較,其中如果一致,則繼續(xù)該程序執(zhí)行,并在有差別的情況下發(fā)生錯(cuò)誤處理(50,64,76)。
      2.根據(jù)權(quán)利要求1的方法,其特征在于,所述狀態(tài)計(jì)數(shù)器(ZZ)配置為差別狀態(tài)計(jì)數(shù)器,其中該計(jì)數(shù)器值對應(yīng)于有效計(jì)數(shù)器(AZ)和基本計(jì)數(shù)器(BZ)的值之間的差值。
      3.根據(jù)權(quán)利要求1或2的方法,其特征在于,所述程序(30)配置為包括開始部件(34)、所述多個(gè)控制部件(36.x)和動作部件(40)的循環(huán),所述測試點(diǎn)(38)或測試點(diǎn)之一位于該最后控制部件(36.N)和動作部件(40)之間。
      4.根據(jù)權(quán)利要求2和3中任一項(xiàng)的方法,其特征在于,在執(zhí)行所述控制部件(36.x)之前,將所述基本計(jì)數(shù)器(BZ)設(shè)置為所述有效計(jì)數(shù)器(AZ)的相應(yīng)值。
      5.根據(jù)權(quán)利要求1至4中任一項(xiàng)的方法,其特征在于,所述程序(30)包括至少一個(gè)模塊(56),該至少一個(gè)模塊(56)包含一個(gè)或多個(gè)控制部件(36.x)。
      6.根據(jù)權(quán)利要求5的方法,其特征在于,所述模塊(56)是控制模塊,其中在測試點(diǎn)(60)將該模塊(56)內(nèi)的狀態(tài)計(jì)數(shù)器(ZZ)的改變與至少一個(gè)容許值作比較。
      7.根據(jù)權(quán)利要求6的方法,其特征在于,在所述控制模塊(56)中的狀態(tài)計(jì)數(shù)器(ZZ)的相應(yīng)第一次改變之前,將該狀態(tài)計(jì)數(shù)器(ZZ)的讀數(shù)或與其關(guān)聯(lián)的值緩存入局部基本計(jì)數(shù)器(LBZ)中。
      8.根據(jù)權(quán)利要求1至7中任一項(xiàng)的方法,其特征在于,所述控制部件(36.x)的至少一個(gè)包括多個(gè)控制子部件(68.x),在執(zhí)行每一控制子部件(68.x)期間改變局部計(jì)數(shù)器(LZ)的值,以反映相應(yīng)控制子部件(68.x)的處理,并且在至少一個(gè)測試點(diǎn)(72),將該局部計(jì)數(shù)器(LZ)的值與至少一個(gè)容許值作比較。
      9.根據(jù)權(quán)利要求1至8中任一項(xiàng)的方法,其特征在于,使用該方法以抵御光攻擊,其中由光的影響來操縱所述處理器內(nèi)核(14)的程序計(jì)數(shù)器(16)的值。
      10.一種便攜式數(shù)據(jù)載體(10),具體為芯片卡或芯片模塊,包括程序存儲器(26)、處理器內(nèi)核(14)和至少一個(gè)狀態(tài)計(jì)數(shù)器(ZZ),該程序存儲器(26)包括可由該處理器內(nèi)核(14)執(zhí)行并具有多個(gè)控制部件(36.x)的至少一個(gè)程序(30),該程序存儲器(26)包括使該處理器內(nèi)核(14)執(zhí)行根據(jù)權(quán)利要求1至9中任一項(xiàng)所述方法的命令。
      全文摘要
      本發(fā)明涉及一種用于便攜式數(shù)據(jù)載體控制程序執(zhí)行的方法,其中在所執(zhí)行程序(30)的每一控制部件(36.x)執(zhí)行期間,為了顯示所述各控制部件(36.x)的處理,改變狀態(tài)計(jì)數(shù)器(ZZ)的狀態(tài)。當(dāng)執(zhí)行使一個(gè)或多個(gè)控制部件(36.x)被跳過的跳轉(zhuǎn)指令(42.x)時(shí),改變該狀態(tài)計(jì)數(shù)器(ZZ)的狀態(tài),如同執(zhí)行了所跳轉(zhuǎn)的控制部件(36.x)一樣,并且在至少一個(gè)測試點(diǎn)(38),將該狀態(tài)計(jì)數(shù)器(ZZ)的狀態(tài)與至少一個(gè)容許值作比較。便攜式數(shù)據(jù)載體具有對應(yīng)特征。本發(fā)明也提供可靠保護(hù)使該便攜式數(shù)據(jù)載體免受操縱,并適于在執(zhí)行復(fù)雜程序中使用。
      文檔編號G06F21/52GK1636186SQ02822771
      公開日2005年7月6日 申請日期2002年10月29日 優(yōu)先權(quán)日2001年11月16日
      發(fā)明者迪特爾·韋斯 申請人:德國捷德有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1