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

用于數(shù)據(jù)處理的方法和裝置與流程

文檔序號(hào):12007055閱讀:272來源:國知局
用于數(shù)據(jù)處理的方法和裝置與流程
本發(fā)明涉及:一種用于處理數(shù)據(jù)的方法,該方法包括針對(duì)不正確的實(shí)施行為的保護(hù);一種用于執(zhí)行第一方法的第一計(jì)算機(jī)程序;一種用于提供指令碼的方法;一種用于生成計(jì)算機(jī)程序的編譯產(chǎn)品;以及還涉及一種電路,該電路設(shè)置用于在應(yīng)用針對(duì)不正確的實(shí)施行為的保護(hù)的情況下處理數(shù)據(jù)。

背景技術(shù):
DE19834486A1公開了一種保證安全地執(zhí)行指令的方法,在該方法中,將位于程序運(yùn)行的預(yù)先給定的位置處的簽名寄存器的內(nèi)容與包含在程序的指令中的預(yù)先給定的值相比較。Namjoo(“VLSI處理器運(yùn)行的同時(shí)測(cè)試技術(shù)”,IEEE測(cè)試會(huì)議,1982,461-468)公開了一種用于識(shí)別處理器所處理的程序的運(yùn)行中的錯(cuò)誤的方法,在該方法中,對(duì)與處理器的處理步驟的運(yùn)行的或類型的變化相關(guān)的路徑簽名(“pathsignature”)進(jìn)行分析。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明改進(jìn)了處理器對(duì)主動(dòng)攻擊的抵抗能力。本發(fā)明基于以下想法:一種被執(zhí)行以滿足預(yù)先給定的函數(shù)的方法,倘若該方法沒有按照預(yù)計(jì)那般執(zhí)行,則添加至少一個(gè)額外的步驟。按照可能的方式,該額外的步驟在此本身并不為滿足方法的函數(shù)做出任何貢獻(xiàn)。在將該方法作為計(jì)算機(jī)程序在計(jì)算機(jī)中實(shí)施的情況下,例如,利用該方法的每個(gè)步驟對(duì)寄存器進(jìn)行更新并且在執(zhí)行額外的步驟時(shí)將寄存器的實(shí)際值與按預(yù)計(jì)地執(zhí)行方法的情況下所期望得到的值進(jìn)行比較。下面在不同方面闡述本發(fā)明。描述了本發(fā)明的實(shí)施方式。只要說明書中沒有另行指出,那么本發(fā)明的不同的實(shí)施方式的特征是可以相互組合的在一方面,本發(fā)明包括用于在處理器中處理程序的指令的工作序列的方法。每個(gè)指令由所分配的指令碼(也稱操作碼或短操作碼)來代表。例如,通過匯編語言或機(jī)器語言來表達(dá)指令并且通過字節(jié)碼來代表。在一種實(shí)施方式中,將在處理工作序列時(shí)所執(zhí)行的操作分配給一個(gè)指令。在一種實(shí)施方式中,將被實(shí)施用來執(zhí)行操作的多個(gè)指令分配給操作。在一種實(shí)施方式中,指令碼包括一個(gè)或多個(gè)能依次地由處理器處理的實(shí)施步驟。該方法包括計(jì)算實(shí)際簽名值。實(shí)際簽名值被分配給代表工作序列的指令的指令碼的實(shí)施步驟的當(dāng)前實(shí)施步驟。當(dāng)前實(shí)施步驟將當(dāng)前指令定義為一個(gè)指令,該指令的指令碼包括當(dāng)前實(shí)施步驟。該方法還包括:根據(jù)地址值計(jì)算額定簽名值。該額定簽名值被分配給當(dāng)前實(shí)施步驟。根據(jù)地址值計(jì)算額定簽名值意味著,地址值會(huì)影響額定簽名值。例如,額定簽名值相應(yīng)于地址值。例如,額定簽名值相應(yīng)于二進(jìn)制數(shù),該二進(jìn)制數(shù)的位置相應(yīng)于每個(gè)被挑選出來的地址位置。額定簽名值的計(jì)算可能要額外地考慮一個(gè)或多個(gè)其它的相關(guān)性。在一種實(shí)施方式中,借助額定簽名函數(shù)通過映射(Abbildung)地址值來計(jì)算額定簽名值。在這個(gè)實(shí)施方式中,該方法將額定簽名函數(shù)應(yīng)用于例如被分配給當(dāng)前指令的地址,從而計(jì)算被分配給當(dāng)前指令的額定簽名的值。由此那些地址確定存儲(chǔ)了代表指令的代碼的額定簽名的值。該方法的一個(gè)實(shí)施方式包括:如果實(shí)際簽名值與額定簽名值不一致,則放棄至少一個(gè)等待直接實(shí)施的和/或間接實(shí)施的實(shí)施步驟。倘若要使等待直接實(shí)施的實(shí)施步驟得到實(shí)施的話,那么在此期間在不實(shí)施其它實(shí)施步驟的情況下,在當(dāng)前實(shí)施步驟之后進(jìn)行該實(shí)施步驟。倘若要是等待間接實(shí)施的實(shí)施步驟得到實(shí)施的話,那么最早在實(shí)施完當(dāng)前實(shí)施步驟之后,然后在實(shí)施完等待直接實(shí)施的實(shí)施步驟之后再進(jìn)行該實(shí)施步驟。該方法的一種實(shí)施方式包括:只要滿足了預(yù)先給定的條件便執(zhí)行等待直接實(shí)施的實(shí)施步驟。該預(yù)先給定的條件例如在實(shí)際簽名值與被分配給當(dāng)前實(shí)施步驟的額定簽名值相一致的情況下成立。該方法的一種實(shí)施方式包括:將實(shí)際簽名值與額定簽名值相互比較,從而確定是否滿足預(yù)先給定的條件。在一種實(shí)施方式中以隱含的方式實(shí)現(xiàn)了比較,為此,如果未滿足預(yù)先給定的條件,那么根據(jù)實(shí)際簽名值對(duì)存儲(chǔ)寄存器進(jìn)行訪問,尤其是直接的訪問將導(dǎo)致運(yùn)行中止和/或運(yùn)行中斷。在該方法的一種實(shí)施方式中,當(dāng)前實(shí)施步驟本身構(gòu)成等待實(shí)施的實(shí)施步驟。在另一種實(shí)施方式中,直接跟在當(dāng)前實(shí)施步驟之后的實(shí)施步驟構(gòu)成了等待實(shí)施的實(shí)施步驟。在一種實(shí)施方式中,一個(gè)或多個(gè)指令的實(shí)施步驟例如在一個(gè)所謂的相位管(Phasenpipeline)中被布置成能連續(xù)地處理的實(shí)施步驟,并且由此在一定程度上被排成一行。假如在一種實(shí)施方式中在相位管中存在當(dāng)前實(shí)施步驟,那么由此例如,直接跟在相位管中的當(dāng)前實(shí)施步驟之后的實(shí)施步驟構(gòu)成等待實(shí)施的實(shí)施步驟。在一種實(shí)施方式中,從當(dāng)前實(shí)施步驟開始,根據(jù)預(yù)先給定的規(guī)則所確定的實(shí)施步驟構(gòu)成了等待實(shí)施的實(shí)施步驟。在一種實(shí)施方式中,根據(jù)簽名變化值計(jì)算實(shí)際簽名值。該簽名變化值可以是固定地預(yù)先給定的。根據(jù)簽名變化值計(jì)算實(shí)際簽名值意味著,簽名變化值會(huì)影響實(shí)際簽名值。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括:如果實(shí)際簽名值與額定簽名值不一致,則設(shè)置據(jù)此中斷或中止工作序列的處理的信號(hào)。該信號(hào)在本發(fā)明的一個(gè)實(shí)施方式中的作用在于:在不將處理器置于不受限制的狀態(tài)下盡可能迅速地中斷工作序列的處理。尤其是在本發(fā)明的一個(gè)實(shí)施方式中,信號(hào)使得工作序列的處理被中斷。例如,程序運(yùn)行包括直接在實(shí)施當(dāng)前指令之后跳躍到一個(gè)使得處理器回到預(yù)先給定的初始狀態(tài)中的子程序中。一種實(shí)施方式包括:如果滿足預(yù)先給定的條件,則設(shè)置據(jù)此繼續(xù)進(jìn)行工作序列的處理的信號(hào)。在根據(jù)本發(fā)明的方法的一個(gè)實(shí)施方式中,與代表指令的指令碼的實(shí)施步驟的數(shù)量無關(guān)地,為每個(gè)指令僅僅計(jì)算一個(gè)實(shí)際簽名值。在一種實(shí)施方式中,對(duì)于與代表指令的指令碼的實(shí)施步驟的數(shù)量無關(guān)的指令而言,僅僅將實(shí)際簽名值與額定簽名值進(jìn)行一次比較。在一種實(shí)施方式中,該方法具有至少一個(gè)簽名實(shí)施步驟。如果當(dāng)前實(shí)施步驟被評(píng)定為簽名實(shí)施步驟,則僅僅將實(shí)際簽名值與額定簽名值相互比較。一種實(shí)施方式包括一次檢驗(yàn),尤其是一次預(yù)檢,檢驗(yàn)當(dāng)前實(shí)施步驟是否被評(píng)定為簽名實(shí)施步驟。在一種實(shí)施方式中,根據(jù)本發(fā)明的方法包括將被分配給工作序列的指令的指令碼存儲(chǔ)在存儲(chǔ)器中,尤其是存儲(chǔ)在程序存儲(chǔ)器中。在一種實(shí)施方式中,代表當(dāng)前指令的指令碼已被和/或正被寫入到位于具有地址值的地址處的存儲(chǔ)器中。在一種實(shí)施方式中,代表當(dāng)前指令的指令碼已被和/或正被存儲(chǔ)在位于具有地址值的地址處的存儲(chǔ)器中。在根據(jù)本發(fā)明的方法的一個(gè)實(shí)施方式中,直接為實(shí)體存儲(chǔ)器(也稱“物理存儲(chǔ)器”)寫地址。實(shí)體存儲(chǔ)器的地址與已被和/或正被存儲(chǔ)的當(dāng)前實(shí)施步驟或當(dāng)前指令的指令碼在實(shí)體存儲(chǔ)器中的位置相符。在根據(jù)本發(fā)明的方法的一個(gè)實(shí)施方式中,使用了邏輯存儲(chǔ)器(也稱“虛擬存儲(chǔ)器”)。例如,分配函數(shù)將邏輯存儲(chǔ)器的地址映射到實(shí)體存儲(chǔ)器的地址上。在根據(jù)本發(fā)明的方法的一種實(shí)施方式中,在實(shí)施指令時(shí)計(jì)算實(shí)際簽名值。在一種實(shí)施方式中,代表了指令的代碼確定出實(shí)際簽名值。例如,該方法將實(shí)際簽名函數(shù)應(yīng)用于當(dāng)前指令,從而計(jì)算從屬于當(dāng)前指令的指令簽名的值。在一種實(shí)施方式中,通過指令所觸發(fā)的控制信號(hào)確定了實(shí)際簽名值的值。在一種實(shí)施方式中,借助實(shí)際簽名函數(shù)通過映射計(jì)算實(shí)際簽名值。在一種實(shí)施方式中,實(shí)際簽名函數(shù)考慮到了已經(jīng)計(jì)算出的實(shí)際簽名值。例如,在應(yīng)用工作序列簽名函數(shù)的情況下增量地和/或遞歸地計(jì)算實(shí)際簽名值。已經(jīng)計(jì)算出的實(shí)際簽名值、尤其是上一次計(jì)算出的實(shí)際簽名值將被投入到例如實(shí)際簽名值的計(jì)算中。在一種實(shí)施方式中,工作序列具有子工作序列(Unterarbeitssequenz)。在這種實(shí)施方式中,該方法包括一個(gè)或多個(gè)以下步驟:-從實(shí)際簽名寄存器中讀取實(shí)際簽名值;-在第一簽名值存儲(chǔ)器地址處寫入實(shí)際簽名值;-處理子工作序列;以及-在第一簽名值存儲(chǔ)器地址處讀取值并且將所讀出的值寫入到實(shí)際簽名寄存器中。在這個(gè)實(shí)施方式中,實(shí)際簽名寄存器在處理完子工作序列之后具有實(shí)際簽名值,該實(shí)際簽名值與子工作序列的處理相互關(guān)聯(lián)。在一種實(shí)施方式中,將子工作序列簽名變化值分配給子工作序列。根據(jù)子工作序列簽名變化值計(jì)算實(shí)際簽名值。在一種實(shí)施方式中,被分配給子工作序列的第一指令的實(shí)際簽名值僅僅取決于子工作序列簽名變化值。在這種實(shí)施方式中,實(shí)際簽名值在處理完子工作序列之后與其它的工作序列部分無關(guān)。在一種實(shí)施方式中,被分配給子工作序列的第一指令的實(shí)際簽名值既取決于子工作序列簽名變化值,又取決于被分配給上一次實(shí)施的指令的實(shí)際簽名值。在這種實(shí)施方式中,可以如此選擇子工作序列簽名變化值,使得能在子工作序列的地址的基礎(chǔ)上計(jì)算要調(diào)用的工作序列的實(shí)際簽名值。一種根據(jù)本發(fā)明的方法的實(shí)施方式包括以下步驟:-以如下方式改變以信號(hào)傳遞第一運(yùn)行模式的模式信號(hào),使得模式信號(hào)以信號(hào)傳遞第二運(yùn)行模式;-處理該子工作序列;以及-以如下方式改變以信號(hào)傳遞第二運(yùn)行模式的模式信號(hào),使得模式信號(hào)以信號(hào)傳遞第一運(yùn)行模式。這種實(shí)施方式的一個(gè)變型尤其包括以下額外的步驟:-當(dāng)以如下方式改變以信號(hào)傳遞第一運(yùn)行模式的模式信號(hào),使得模式信號(hào)以信號(hào)傳遞第二運(yùn)行模式時(shí),則將實(shí)際簽名值寫入第二簽名值存儲(chǔ)器地址處;以及-當(dāng)以如下方式改變以信號(hào)傳遞第二運(yùn)行模式的模式信號(hào),使得模式信號(hào)以信號(hào)傳遞第一運(yùn)行模式時(shí),則在第二簽名值存儲(chǔ)器地址處讀取該值并且將所讀出的值寫入到實(shí)際簽名寄存器中。在一種實(shí)施方式中,或僅當(dāng)以信號(hào)傳遞第一運(yùn)行模式時(shí),或僅當(dāng)以信號(hào)傳遞第二運(yùn)行模式時(shí),才實(shí)現(xiàn)實(shí)際簽名值的計(jì)算。在這種實(shí)施方式中,程序運(yùn)行可以在受保護(hù)的狀態(tài)和不受保護(hù)的狀態(tài)之間來回切換,例如,從第一運(yùn)行模式切換到第二運(yùn)行模式中以及重新返回到第一運(yùn)行模式中。在一種實(shí)施方式中,或僅當(dāng)以信號(hào)傳遞第一運(yùn)行模式時(shí),或僅當(dāng)以信號(hào)傳遞第二運(yùn)行模式時(shí),才實(shí)現(xiàn)實(shí)際簽名值的計(jì)算。在這個(gè)實(shí)施方式中,如果實(shí)際上并未計(jì)算實(shí)際簽名值,則程序運(yùn)行從受保護(hù)的狀態(tài)到不受保護(hù)的狀態(tài)的切換是能確定的。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括:將代表預(yù)先給定的路徑的路徑信號(hào)值寫入到指令碼的簽名區(qū)域中。一種實(shí)施方式包括:將代表簽名變化的簽名變化值寫入到簽名區(qū)域中。一種實(shí)施方式包括:在與預(yù)先給定的地址值相應(yīng)的地址處寫入代表當(dāng)前指令或直接在當(dāng)前指令之前的指令的指令碼。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“實(shí)際簽名更新激活”(InstructionStreamSignatureActivate)操作的簽名操作ISSA。在執(zhí)行完簽名操作ISSA之后,按照根據(jù)本發(fā)明的方法將持續(xù)地更新實(shí)際簽名值。一種實(shí)施方式使用寄存器作為模式寄存器并且以如下方式設(shè)置其值,即,該值代表持續(xù)的簽名更新。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“設(shè)置簽名變化值”(InstructionStreamSignatureWrite)操作的簽名操作ISSW。在這個(gè)操作中,將實(shí)際簽名寄存器設(shè)置為簽名變化值。在一種實(shí)施方式中,在被分配給簽名操作ISSW的簽名指令的指令碼的簽名區(qū)域中存儲(chǔ)該簽名變化值。在實(shí)施完這個(gè)簽名指令之后實(shí)施的這種指令的實(shí)際簽名值與在實(shí)施完這個(gè)簽名指令之前實(shí)施的那些指令的實(shí)際簽名值無關(guān)聯(lián)。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“開始受保護(hù)的工作序列”(InstructionStreamSignatureInitialisation)操作的簽名操作ISSI。簽名操作ISSI將簽名操作ISSA與簽名操作ISSW相互結(jié)合。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“簽名檢驗(yàn)”(InstructionStreamSignatureCheck)操作的簽名操作ISSC。操作“簽名檢驗(yàn)”是一個(gè)比較操作,該操作將額定簽名值與實(shí)際簽名值相互比較。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“停止更新實(shí)際簽名”(InstructionStreamSignatureDeactivate)操作的簽名操作ISSD。在實(shí)施完簽名操作ISSD之后將不再計(jì)算被分配給后續(xù)的實(shí)施步驟的實(shí)際簽名值。一種實(shí)施方式使用寄存器作為模式寄存器并且將模式寄存器設(shè)置為代表簽名檢驗(yàn)停止的值。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“結(jié)束受保護(hù)的子工作序列”(InstructionStreamSignatureExit)操作的簽名操作ISSE?!敖Y(jié)束受保護(hù)的子工作序列”的操作將簽名操作ISSC與簽名操作ISSD相互結(jié)合。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“更新具有預(yù)先給定的值的實(shí)際簽名”(InstructionStreamSignatureUpdate)操作的簽名操作ISSU。在執(zhí)行這個(gè)操作時(shí),利用簽名變化值來更新實(shí)際簽名寄存器。與簽名操作ISSW不同,不是絕對(duì)地,而是相對(duì)地實(shí)現(xiàn)這種更新。在執(zhí)行完簽名操作ISSU之后,實(shí)際簽名值由此既取決于在執(zhí)行簽名操作ISSU之前剛剛計(jì)算的實(shí)際簽名值,又取決于簽名變化值。在一種實(shí)施方式中,將簽名變化值存儲(chǔ)在指令碼的簽名區(qū)域中,該指令碼代表了被分配給簽名操作ISSU的簽名指令。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“簽名驗(yàn)證和更新”(InstructionStreamSignatureCheckandUpdate)操作的簽名操作ISSCU。“簽名檢驗(yàn)和更新”操作將簽名操作ISSC與簽名操作ISSU相互結(jié)合。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“根據(jù)預(yù)先給定的數(shù)值更新實(shí)際簽名”(InstructionStreamSignatureUpdateConditional)操作的簽名操作ISSUC。在這個(gè)實(shí)施方式中,預(yù)先給出了第一實(shí)施路徑,其中,工作序列的運(yùn)行可以在分支處與預(yù)先規(guī)定發(fā)生偏差,以便經(jīng)過第二實(shí)施路徑。例如,當(dāng)在與預(yù)先規(guī)定發(fā)生偏差的情況下第二路徑從分支處開始經(jīng)過部分工作序列時(shí),該預(yù)先規(guī)定使得在不跳躍到部分工作序列中的情況下分支處的預(yù)先給定的第一實(shí)施路徑足夠使用。如果在將被分配給跳躍指令的簽名值納入考慮范圍的情況下,運(yùn)行與預(yù)先規(guī)定相符,以及如果在將被分配給跳躍指令的簽名值以及被分配給部分工作序列的簽名變化值納入考慮范圍的情況下,運(yùn)行與預(yù)先規(guī)定不相符,則根據(jù)分支處的工作序列的運(yùn)行實(shí)現(xiàn)實(shí)際簽名寄存器的更新。假設(shè)適當(dāng)?shù)仡A(yù)先給出了簽名變化值的話,那么一旦工作序列的運(yùn)行與預(yù)先給定的運(yùn)行不符的話,那么在處理完與實(shí)際的簽名值的相符的部分工作序列之后,實(shí)際的簽名值則被用于使得運(yùn)行與預(yù)先規(guī)定相符的情況。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“初始化具有當(dāng)前地址的實(shí)際簽名寄存器”(InstructionStreamSignatureWriteCurrentAddress)操作的簽名操作ISSWCA。在執(zhí)行“初始化具有當(dāng)前地址的實(shí)際簽名”操作時(shí),將實(shí)際簽名寄存器設(shè)置為與一個(gè)或多個(gè)指令碼的地址相關(guān)的值,該指令碼代表被分配給簽名操作ISSWCA的簽名指令。在一種實(shí)施方式中,例如,將實(shí)際簽名值設(shè)置為與用于指令碼的額定簽名值相符的值,該指令碼代表被分配給簽名操作ISSWCA的簽名指令。根據(jù)本發(fā)明的方法的一種實(shí)施方式包括執(zhí)行“初始化具有地址的實(shí)際簽名寄存器”(InstructionStreamSignatureWriteAddress)操作的簽名操作ISSWA。在執(zhí)行“初始化具有地址的實(shí)際簽名寄存器”操作時(shí),將實(shí)際簽名寄存器設(shè)置為與地址相關(guān)的值。在一種實(shí)施方式中例如將實(shí)際簽名寄存器設(shè)置為與用于更新指令的跳躍目標(biāo)的額定簽名值相符的值。在一種實(shí)施方式中,該方法具有至少一個(gè)簽名實(shí)施步驟。實(shí)際簽名值和額定簽名值僅在當(dāng)前實(shí)施步驟被評(píng)定為簽名實(shí)施步驟時(shí)才被相互比較。每個(gè)包含簽名實(shí)施步驟的指令均被稱為簽名指令。在根據(jù)本發(fā)明的方法的一種實(shí)施方式中,間接的跳躍指令包括至少一個(gè)簽名實(shí)施步驟。在一個(gè)實(shí)施方式中,尤其是每個(gè)間接的跳躍指令均包括一個(gè)簽名實(shí)施步驟。在根據(jù)本發(fā)明的方法的一種實(shí)施方式中,源于子工作序列的回跳指令包括至少一個(gè)簽名實(shí)施步驟。在根據(jù)本發(fā)明的方法的一種實(shí)施方式中,存在用于執(zhí)行一個(gè)或多個(gè)簽名操作的顯式的指令。在一方面,本發(fā)明包括設(shè)置用于執(zhí)行根據(jù)本發(fā)明的方法的計(jì)算機(jī)程序。該計(jì)算機(jī)程序在一種實(shí)施方式中設(shè)置用于在多個(gè)處理器中分散地執(zhí)行根據(jù)本發(fā)明的方法。在一方面,本發(fā)明包括一種用于提供代表計(jì)算機(jī)程序的工作序列的一個(gè)或多個(gè)指令的指令碼的方法(編譯方法)。每個(gè)代表了指令的指令碼均包括至少一個(gè)能由處理器實(shí)施的實(shí)施步驟。在一種實(shí)施方式中,代表各一個(gè)指令的指令碼包括多個(gè)能依次地由處理器實(shí)施的實(shí)施步驟。根據(jù)本發(fā)明的編譯方法設(shè)計(jì)用于在至少一個(gè)處理器(編譯處理器)中執(zhí)行。該編譯方法包括將代表了工作序列的程序文本(源代碼、源文本、源程序)轉(zhuǎn)換、尤其是翻譯成代表了工作序列的指令的指令碼。概念編譯能理解成一個(gè)或多個(gè)以下措施:將由計(jì)算機(jī)高級(jí)語言構(gòu)成的程序文本或程序文本部分描述和/或翻譯成目標(biāo)語言、尤其是機(jī)器語言,提供代表了被翻譯的程序文本的指令的指令碼,將程序文本的部分彼此之間和/或與其它計(jì)算機(jī)程序部分相互地結(jié)合或聯(lián)系起來。程序文本例如被書寫成計(jì)算機(jī)高級(jí)語言,諸如,Java或C++。根據(jù)本發(fā)明的編譯方法還包括定義(Definieren)指令碼中的被分配給工作序列的插入實(shí)施步驟(Einsatzausfürungsschritt)。在一種實(shí)施方式中,該編譯方法包括將簽名變化值分派給該插入實(shí)施步驟。在一種實(shí)施方式中,在對(duì)設(shè)置用于按照根據(jù)本發(fā)明的方法工作的計(jì)算機(jī)程序進(jìn)行編譯的同時(shí),實(shí)現(xiàn)插入與根據(jù)本發(fā)明的方法的步驟之一相關(guān)的數(shù)據(jù)區(qū)和/或程序指令的步驟。在一種實(shí)施方式中,該編譯方法隱含地通過以下方式定義插入實(shí)施步驟,例如,將工作序列的指令之一定義為插入指令,據(jù)此在應(yīng)用預(yù)先給定的規(guī)則的情況下,代表了指令的指令碼的實(shí)施步驟之一構(gòu)成了插入實(shí)施步驟。例如,預(yù)先給定的規(guī)則指出:指令碼的第一個(gè)實(shí)施步驟構(gòu)成插入實(shí)施步驟,或預(yù)先給定的規(guī)則例如指出:指令碼的最后一個(gè)實(shí)施步驟構(gòu)成插入實(shí)施步驟。在一方面,本發(fā)明包括一種編譯產(chǎn)品,該編譯產(chǎn)品設(shè)置用于在對(duì)代表工作序列的程序文本進(jìn)行編譯的情況下生成根據(jù)本發(fā)明的計(jì)算機(jī)程序,以便提供代表工作序列的指令碼。編譯產(chǎn)品的一種實(shí)施方式設(shè)置用于,定義被分配給工作序列的插入實(shí)施步驟并且將簽名變化值分派給該插入實(shí)施步驟。根據(jù)本發(fā)明的編譯產(chǎn)品的一種實(shí)施方式設(shè)置用于,根據(jù)預(yù)先給定的額定簽名值計(jì)算簽名變化值。在本發(fā)明的一種實(shí)施方式中,該編譯產(chǎn)品應(yīng)用了Reed-Solomon算法,以便計(jì)算簽名變化值。根據(jù)本發(fā)明的編譯產(chǎn)品的一種實(shí)施方式設(shè)置用于,在對(duì)程序運(yùn)行路徑進(jìn)行追溯的情況下計(jì)算簽名變化值。在此,程序運(yùn)行路徑例如以插入實(shí)施步驟為開始并且例如以在被分配給簽名指令或簽名實(shí)施步驟的地址處被寫入到存儲(chǔ)器中的實(shí)施步驟的指令碼為結(jié)束。在編譯產(chǎn)品的一種實(shí)施方式中,從被分配給簽名指令或簽名實(shí)施步驟的地址出發(fā),在逆轉(zhuǎn)地應(yīng)用映射函數(shù)的情況下計(jì)算簽名變化值,根據(jù)預(yù)先給定的規(guī)則在運(yùn)行程序時(shí)應(yīng)用該映射函數(shù)。在一方面,本發(fā)明包括一種電路,該電路具有實(shí)際簽名寄存器,該實(shí)際簽名寄存器設(shè)置用于接收實(shí)際簽名值。該電路在一種實(shí)施方式中至少部分地設(shè)計(jì)為集成的。根據(jù)本發(fā)明的電路的一種實(shí)施方式具有額定簽名寄存器,該額定簽名寄存器設(shè)置用于接收額定簽名值。在一種實(shí)施方式中,該電路具有比較裝置,該比較裝置設(shè)置用于,將實(shí)際簽名寄存器中的值與額定簽名值相互比較,以及如果實(shí)際簽名寄存器中的值與額定簽名值相互一致,則設(shè)置相同信號(hào),并且如果實(shí)際簽名寄存器中的值與額定簽名值不相一致,則設(shè)置不同信號(hào)。附圖說明下面根據(jù)附圖說明本發(fā)明的實(shí)施例,圖中示出:圖1示出了示例性的計(jì)算機(jī)的示意圖,該計(jì)算機(jī)設(shè)置用于,執(zhí)行根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例;圖2示出了圖1中的實(shí)施例的一個(gè)部分的示意圖;圖3示出了根據(jù)本發(fā)明的方法的第一個(gè)實(shí)施例的示意圖;圖4示出了根據(jù)本發(fā)明的方法的第二個(gè)實(shí)施例的示意圖;圖5示出了根據(jù)本發(fā)明的方法的第三個(gè)實(shí)施例的示意圖;以及圖6示出了通過指令碼代表工作序列的一個(gè)部分的示意圖。具體實(shí)施方式根據(jù)本發(fā)明的裝置的實(shí)施例具有計(jì)算機(jī)。該計(jì)算機(jī)包括處理器2和存儲(chǔ)器(Memories)4。處理器2包括:高速緩沖存儲(chǔ)器14;設(shè)置用于對(duì)指令碼進(jìn)行解碼的指令解碼器(instructiondecoder)15;寄存器(registerfile寄存器堆)16;算術(shù)邏輯單元(ALU)11;以及微處理器單元和存儲(chǔ)器管理單元(MPU/MMU)12。高速緩沖存儲(chǔ)器14借助存儲(chǔ)器總線7與存儲(chǔ)器4相連接,以用于對(duì)存儲(chǔ)器4進(jìn)行寫入訪問和讀取訪問。高速緩沖存儲(chǔ)器14一方面借助指令總線21與指令解碼器15以這種方式相連接,使得存儲(chǔ)在高速緩沖存儲(chǔ)器14中的指令碼被指令解碼器15所讀取;另一方面該高速緩沖存儲(chǔ)器14借助寄存器總線22與寄存器16相連接,以用于對(duì)高速緩沖存儲(chǔ)器14進(jìn)行寫入訪問和讀取訪問。算術(shù)邏輯單元(ALU)11借助第一ALU總線17與寄存器16相連接從而進(jìn)行寫入訪問和讀取訪問。另外,算術(shù)邏輯單元(ALU)11借助第二ALU總線18與微處理器和存儲(chǔ)器管理單元12相連接,以便從算術(shù)邏輯單元(ALU)11側(cè)進(jìn)行寫入訪問。微處理器單元和存儲(chǔ)器管理單元12自身又借助寫入總線19與高速緩沖存儲(chǔ)器14相連接,以便從微處理器單元和存儲(chǔ)器管理單元12側(cè)進(jìn)行寫入訪問。指令解碼器15借助控制總線26與寄存器16相連接,使得在寄存器16處指令解碼器15能接收控制信號(hào)。指令解碼器15借助控制總線21與算術(shù)邏輯單元11以這種方式相連接,使得算術(shù)邏輯單元能接收指令解碼器15的控制信號(hào)。指令解碼器15(圖2)包括:傳統(tǒng)的解碼裝置(Decoder)151;映射裝置152;以及具有實(shí)際簽名寄存器154的簽名裝置(CodeSignatureFunction代碼簽名函數(shù))153。指令解碼器15還包括功能電路156以及檢驗(yàn)裝置155,該檢驗(yàn)裝置與簽名寄存器154和功能電路156相連接。解碼裝置151設(shè)置用于,從高速緩沖存儲(chǔ)器14中讀出被分配給計(jì)算機(jī)程序的工作序列的指令i1,i2,…,in(圖6)的指令碼(n表示實(shí)施例的工作序列的指令的數(shù)量)。解碼裝置151還設(shè)置用于,為每個(gè)指令計(jì)算一個(gè)或在可能的情況下多個(gè)控制信號(hào)s1.1,s1.2,...,s1.m,s2.1,s2.2,...,s2.m',...,sn.1,sn.2,...,sn.m”(m,m’,m”表示指令碼所包括的控制信號(hào)的數(shù)量,該指令碼代表了實(shí)施例的工作序列的各個(gè)指令)并且將其輸出至映射裝置152??梢詫⒖刂菩盘?hào)s1.1,s1.2,...,s1.m;s2.1,s2.2,...,s2.m'分配給各個(gè)指令i1或i2的一個(gè)或多個(gè)實(shí)施步驟。映射裝置152設(shè)置用于,讀取由解碼裝置151輸出的控制信號(hào)s1.1,s1.2,...,s1.m,s2.1,s2.2,...,s2.m',...,sn.1,sn.2,...,sn.m”,并且為每個(gè)指令i1,i2,...,in根據(jù)被分配給指令的映射規(guī)定CI將各個(gè)指令的控制信號(hào)s1.2,...,s1.m;s2.1,s2.2,...,s2.m';...,sn.1,sn.2,...,sn.m”映射成被分配給指令ix=i1,i2,...,in的指令簽名值CI(i1),CI(i2),...,CI(in)。在該實(shí)施例的一個(gè)變型(未示出)中,映射裝置152設(shè)置用于,根據(jù)被分配給實(shí)施步驟的映射規(guī)則CI'將被分配給各個(gè)單獨(dú)的實(shí)施步驟的控制信號(hào)s1.2,...,s1.m,s2.1,s2.2,...,s2.m',...,sn.1,sn.2,...,sn.m”映射成被分配給各個(gè)實(shí)施步驟的實(shí)施步驟簽名值CI'(i1.1),CI'(i1.2),...,CI'(in.m")。另外,映射裝置152設(shè)置用于,將各個(gè)指令簽名值CI(i1),CI(i2),...,CI(in)發(fā)出至簽名裝置153。簽名裝置153包括實(shí)際簽名寄存器154并且設(shè)置用于,在應(yīng)用工作序列簽名函數(shù)M(ISSx-1,CI(ix))的情況下為每個(gè)指令簽名值CI(ix)計(jì)算被分配給指令ix的實(shí)際簽名值ISSx,并且將該實(shí)際簽名值ISSx寫入到實(shí)際簽名寄存器154中。工作序列簽名函數(shù)M(ISSx-1,CI(ix))將指令簽名值CI(ix)以及前一次計(jì)算的、由工作序列簽名函數(shù)M(ISSx-1,CI(ix))從實(shí)際簽名寄存器154中讀出的實(shí)際簽名值ISSx-1納入到考慮范圍以內(nèi)。功能電路156設(shè)置用于,根據(jù)預(yù)先給定的規(guī)定Ca計(jì)算額定簽名值Ca(VAx)。檢驗(yàn)裝置155設(shè)置用于,將簽名寄存器154中的值(實(shí)際簽名值)與由功能電路156輸出的值(額定簽名值)相互比較并且根據(jù)比較結(jié)果輸出報(bào)警信號(hào)。根據(jù)本發(fā)明的方法的第一個(gè)實(shí)施例:根據(jù)第一個(gè)實(shí)施例的方法是以根據(jù)本發(fā)明的、設(shè)置用于在根據(jù)本發(fā)明的裝置的實(shí)施例的計(jì)算機(jī)上運(yùn)行的計(jì)算機(jī)程序的實(shí)施例的指令(圖3)的工作序列為基礎(chǔ)的。工作序列設(shè)置用于,通過依次地(“線性地”)處理工作序列的指令i1,i2,...,i6的方法來在計(jì)算機(jī)的處理器2和/或多個(gè)處理器中進(jìn)行處理。根據(jù)本發(fā)明尤其是要針對(duì)可能無法察覺地和/或成功地進(jìn)行的、不被允許的對(duì)工作序列的干預(yù)來對(duì)工作序列進(jìn)行保護(hù)。分別通過代碼來代表指令,該代碼具有32個(gè)比特,其中,例如,代表了操作的所謂的操作碼具有16比特,并且另外的16比特代表操作的自變量(Argument)。工作序列具有第一簽名指令I(lǐng)SSI,該第一簽名指令執(zhí)行第一簽名操作“開始受保護(hù)的工作序列”(InstructionStreamSignatureInitialisation)。第一簽名指令I(lǐng)SSI還包括自變量SIG,該自變量包括第一簽名變化值mISSI和路徑信號(hào)值f,然而該路徑信號(hào)值在第一個(gè)實(shí)施例中沒有任何意義。第一簽名變化值mISSI由15比特長(zhǎng)的代碼來表示并且路徑信號(hào)值f由1比特長(zhǎng)的代碼來表示(圖6)。在存儲(chǔ)器4中將第一簽名指令I(lǐng)SSI存儲(chǔ)于地址VA1。工作序列還具有第二簽名指令I(lǐng)SSCU,該第二簽名指令執(zhí)行第二簽名操作“檢驗(yàn)和更新簽名”(InstructionStreamSignatureCheckandUpdate)。第二簽名指令I(lǐng)SSCU還包括自變量SIG,該自變量包括第二簽名變化值mISSCU和路徑信號(hào)值f。第二簽名變化值mISSCU由15比特長(zhǎng)的代碼來代表。在存儲(chǔ)器4中將第二簽名指令I(lǐng)SSCU存儲(chǔ)于地址VA2,以便緊接著工作序列的第三指令i3且在工作序列的第四指令i4之前執(zhí)行該第二簽名指令。工作序列還具有第三簽名指令I(lǐng)SSE,該第三簽名指令實(shí)施第三簽名操作“結(jié)束受保護(hù)的工作序列”(InstructionStreamSignatureExit)。與第一簽名指令I(lǐng)SSI和第二簽名指令I(lǐng)SSCU不同,第三簽名指令I(lǐng)SSE沒有自變量SIG。在存儲(chǔ)器4中將第三簽名指令I(lǐng)SSE存儲(chǔ)于地址VA3,以便緊接著工作序列的第六指令i6執(zhí)行該第三簽名指令。在第一實(shí)施例中,分別僅僅通過簽名指令I(lǐng)SSI,ISSCU或ISSE來實(shí)施這三個(gè)簽名操作。在該實(shí)施例的一個(gè)變型中,分別不僅通過一個(gè)指令、而且通過指令序列來實(shí)施簽名操作。這個(gè)變型的一個(gè)實(shí)例是,通過例如在多個(gè)寄存器中依次地寫入不同的值或在那里讀取這些值來實(shí)施簽名操作。下面將描述的是第一個(gè)實(shí)施例的工作序列的運(yùn)行。首先利用第一簽名指令I(lǐng)SSI實(shí)施第一簽名操作“開始受保護(hù)的工作序列”。在這個(gè)操作中,解碼裝置151讀取第一簽名指令I(lǐng)SSI的自變量SIG并且在實(shí)際簽名寄存器154中寫入簽名變化值mISSI。該實(shí)施例的一種變型額外地使用了預(yù)先給定的寄存器作為模式寄存器并且以如下方式設(shè)置其值,即該值代表了簽名檢驗(yàn)的激活并且由此代表了簽名檢驗(yàn)的應(yīng)用。然后,處理器2對(duì)工作序列的第一批三個(gè)指令i1,i2,i3進(jìn)行處理。對(duì)于每個(gè)指令而言,簽名裝置153同時(shí)在應(yīng)用工作序列簽名函數(shù)M(ISSx-1,CI(ix))的情況下計(jì)算各一個(gè)被分配給指令i1,i2和i3的實(shí)際簽名值ISS1,ISS2或ISS3。工作序列簽名函數(shù)M(ISSx-1,CI(ix))在此分別將指令簽名值CI(i1),CI(i2)或CI(i3)以及分別上一次計(jì)算的實(shí)際簽名值ISSISSI,ISS1或ISS2納入到考慮范圍內(nèi)。然后利用第二簽名指令I(lǐng)SSCU實(shí)施第二簽名操作“檢驗(yàn)和更新簽名”。第二簽名操作將在地址VA2處分配給簽名指令的實(shí)際簽名值ISSISSCU與基于地址VA2而計(jì)算的額定簽名值Ca(VA2)相互比較。如果實(shí)際簽名值ISSISSCU與額定簽名值Ca(VA2)相一致的話,那么處理器2繼續(xù)對(duì)工作序列進(jìn)行處理。如果實(shí)際簽名值ISSISSCU反之與額定簽名值Ca(VA2)不符的話,則設(shè)置錯(cuò)誤信號(hào)。在該實(shí)施例的一個(gè)變型中,錯(cuò)誤信號(hào)被存儲(chǔ)在寄存器中。在該實(shí)施例的另一個(gè)變型中,處理器2將中斷工作序列的運(yùn)行。在將實(shí)施第二簽名指令I(lǐng)SSCU之前剛剛計(jì)算的實(shí)際簽名值ISS3以及實(shí)際簽名值ISSVA2上的簽名變化值mISSCU納入到考慮范圍內(nèi)的情況下,第二簽名操作“檢驗(yàn)和更新簽名”進(jìn)一步對(duì)實(shí)際簽名寄存器154進(jìn)行更新。如果處理器2繼續(xù)推進(jìn)工作序列運(yùn)行的話,那么處理器2將對(duì)工作序列的下一批三個(gè)指令i4,i5,i6進(jìn)行處理。對(duì)于每個(gè)指令而言,簽名裝置153同時(shí)在應(yīng)用工作序列簽名函數(shù)M(ISSx-1,CI(ix))的情況下計(jì)算被分配給指令i4,i5和i6的實(shí)際簽名值ISS4,ISS5或ISS6。在此,工作序列簽名函數(shù)M(ISSx-1,CI(ix))分別將指令簽名值CI(i4),CI(i5)或CI(i6)以及分別上一次所計(jì)算的實(shí)際簽名值ISSVA2,ISS4或ISS5納入到考慮范圍內(nèi)。第三簽名操作“結(jié)束受保護(hù)的工作序列”借助比較裝置155將在地址VA3處被分配給簽名指令I(lǐng)SSE且被寫入到實(shí)際簽名值寄存器154中的實(shí)際簽名值ISSISSE與基于地址VA3由功能電路156所計(jì)算的額定簽名值Ca(VA3)相比較。如果實(shí)際簽名值ISSISSE與額定簽名值Ca(VA3)相一致的話,那么處理器2將在安全模式下按計(jì)劃地結(jié)束運(yùn)行。如果與此相反地,實(shí)際簽名值ISSISSE與額定簽名值Ca(VA3)不一致的話,則設(shè)置錯(cuò)誤信號(hào),該錯(cuò)誤信號(hào)由檢驗(yàn)裝置155作為例如報(bào)警信號(hào)輸出。在一個(gè)變型中,在寄存器中存儲(chǔ)該信號(hào)。在該實(shí)施例的另一個(gè)變型中,處理器2將中斷工作序列的運(yùn)行。根據(jù)本發(fā)明的方法的第二個(gè)實(shí)施例:如第一個(gè)實(shí)施例的方法的情況那樣,根據(jù)第二個(gè)實(shí)施例的方法是以根據(jù)本發(fā)明的、設(shè)置用于在根據(jù)本發(fā)明的裝置的實(shí)施例的計(jì)算機(jī)上運(yùn)行的計(jì)算機(jī)程序的第二個(gè)實(shí)施例的指令i1,i2,...,i6(圖4)的工作序列為基礎(chǔ)的。通過處理工作序列的指令i1,i2,...,i6來在計(jì)算機(jī)的一個(gè)處理器2和/或多個(gè)處理器中處理該工作序列i1,i2,...,i6。第二個(gè)實(shí)施例的計(jì)算機(jī)程序與第一個(gè)實(shí)施例的計(jì)算機(jī)程序的區(qū)別在于視情況而定的跳躍指令JCOND。由于視情況而定的跳躍指令JCOND,計(jì)算機(jī)程序包括具有指令的第一工作序列i1,i2,i3,i4,i5,i6和具有指令的第二工作序列i1,i2,i5,i6。是否執(zhí)行第二工作序列取決于視情況而定的跳躍指令并且由此取決于視情況而定的跳躍指令的條件的滿足。具體地,第二個(gè)實(shí)施例的計(jì)算機(jī)程序具有第一簽名指令I(lǐng)SSI,該第一簽名指令與第一個(gè)實(shí)施例的第一簽名指令I(lǐng)SSI相同并且設(shè)計(jì)用于在第一指令i1之前實(shí)施。計(jì)算機(jī)程序具有第二簽名指令JCOND,該第二簽名指令實(shí)施第二簽名操作“根據(jù)預(yù)先給定的值更新實(shí)際簽名”(InstructionStreamSignatureUpdateConditional,縮寫ISSUC)。另外,第二簽名指令JCOND包括自變量SIG,該自變量包括第一簽名變化值mjcond和路徑信號(hào)值f。通過15比特長(zhǎng)的代碼來代表第二簽名變化值mjcond并且通過1比特長(zhǎng)的代碼代表路徑信號(hào)值f。路徑信號(hào)值f以信號(hào)通知,是否在處理第一工作序列的情況下或在處理第二工作序列的情況下將簽名變化值mjcond納入到考慮范圍內(nèi)。在地址VA2處將第二簽名指令JCOND存儲(chǔ)在存儲(chǔ)器4中,緊接著第一工作序列中的第二指令i2,但在第一工作序列的第三指令i3之前以及在第二工作序列的第三指令i5之前存儲(chǔ)該第二簽名指令。計(jì)算機(jī)程序具有指令i5,該指令既作為第五指令被布置在第一工作序列中,又作為第三指令被布置在第二工作序列中。指令i5設(shè)計(jì)用于直接在第一工作序列中的第四指令i4之后執(zhí)行。另外,第二工作序列中的第五指令i5設(shè)計(jì)用于直接在第二簽名指令JCOND之后執(zhí)行。計(jì)算機(jī)程序另外具有第三簽名指令I(lǐng)SSE,該第三簽名指令執(zhí)行第三簽名操作“結(jié)束受保護(hù)的工作序列”(InstructionStreamSignatureExit)。第三簽名指令I(lǐng)SSE與第一簽名指令I(lǐng)SSI和第二簽名指令JCOND的區(qū)別在于沒有自變量SIG。在地址VA4處將第三簽名指令I(lǐng)SSE存儲(chǔ)在存儲(chǔ)器4中,緊接著第一工作序列的第六指令i6或第二工作序列的第四指令i6執(zhí)行該第三簽名指令。下面將描述第二個(gè)實(shí)施例的第一和第二工作序列的運(yùn)行。如第一個(gè)實(shí)施例中那樣,首先利用第一簽名指令I(lǐng)SSI實(shí)施第一簽名操作“開始受保護(hù)的工作序列”。然后,處理器2對(duì)工作序列的第一批兩個(gè)指令i1,i2進(jìn)行處理。對(duì)于每個(gè)指令而言,簽名裝置153同時(shí)在應(yīng)用工作序列簽名函數(shù)M(ISSx-1,CI(ix))的情況下計(jì)算各一個(gè)被分配給指令i1和i2的實(shí)際簽名值ISS1或ISS2。工作序列簽名函數(shù)M(ISSx-1,CI(ix))在此分別將指令簽名值CI(i1)或CI(i2)以及分別上一次計(jì)算的實(shí)際簽名值ISSISSI或ISS1納入到考慮范圍內(nèi)。然后利用第二簽名指令JCOND執(zhí)行第二簽名操作“根據(jù)預(yù)先給定的值更新實(shí)際簽名”。第二簽名操作包括讀取簽名變化值mjcond以及路徑信號(hào)值f。在當(dāng)前的第二個(gè)實(shí)施例中,路徑信號(hào)值f可能等于零。第二簽名操作還包括讀取在此未詳細(xì)示出的跳躍信號(hào),該跳躍信號(hào)決定是否應(yīng)該繼續(xù)處理第一工作序列或第二工作序列。在當(dāng)前的第二實(shí)施例中,跳躍信號(hào)可能為零,如果不應(yīng)實(shí)施跳躍的話,則對(duì)第一工作序列進(jìn)行處理,并且跳躍信號(hào)可能為1,如果應(yīng)該實(shí)施跳躍的話,則對(duì)第二工作序列進(jìn)行處理。在對(duì)第一工作序列進(jìn)行處理的情況下,在將工作序列簽名函數(shù)M(ISS2,CI(jcond))應(yīng)用在實(shí)際簽名值ISSVA2上且在將第二簽名指令JCOND的指令簽名值CI(jcond)納入到考慮范圍內(nèi)的情況下實(shí)現(xiàn)實(shí)際簽名寄存器的更新。然后,處理器2對(duì)第一工作序列的指令i3,i4,i5和i6進(jìn)行處理。對(duì)于每個(gè)指令而言,簽名裝置153同時(shí)在應(yīng)用工作序列簽名函數(shù)M(ISSx-1,CI(ix))的情況下計(jì)算被分配給指令i3,i4,i5和i6的實(shí)際簽名值ISS3,ISS4,ISS5或ISS6。在此,工作序列簽名函數(shù)M(ISSx-1,CI(ix))分別將指令簽名值CI(i3),CI(i4),CI(i5)或CI(i6)以及分別上一次所計(jì)算的實(shí)際簽名值ISSVA2,ISS3,ISS4或ISS5納入到考慮范圍內(nèi)。在對(duì)第二工作序列進(jìn)行處理的情況下,在實(shí)施第二簽名指令JCOND時(shí),將實(shí)際簽名寄存器154更新為實(shí)際簽名值ISSVA2。正如處理第一工作序列的情況那樣,在將上一次所計(jì)算的實(shí)際簽名值ISS2納入到考慮范圍內(nèi)的情況下實(shí)現(xiàn)該更新。在處理第二工作序列的情況下,在進(jìn)行更新時(shí)然而也還額外地考慮到了第二簽名變化值mjcond。然后,處理器2直接處理第二工作序列的指令i5和i6。對(duì)于每個(gè)指令i5,i6而言,簽名裝置153同時(shí)在應(yīng)用工作序列簽名函數(shù)M(ISSx-1,CI(ix))的情況下計(jì)算了被分配給指令i5和i6的實(shí)際簽名值ISS5或ISS6。工作序列簽名函數(shù)M(ISSx-1,CI(ix))在此分別將指令簽名值CI(i5)或CI(i6)以及分別上一次計(jì)算的實(shí)際簽名值ISSVA2或ISS5納入到考慮范圍內(nèi)。如第二工作序列的情況那樣,在第一工作序列的情況下,第三簽名操作“結(jié)束受保護(hù)的工作序列”將在地址VA4處被分配給簽名指令的實(shí)際簽名值ISSISSE與基于地址VA4所計(jì)算的額定簽名值Ca(VA4)相比較。如果實(shí)際簽名值ISSISSE與額定簽名值Ca(VA4)相一致的話,那么處理器2將在安全模式中按計(jì)劃地結(jié)束運(yùn)行。如果與此相反地,實(shí)際簽名值ISSISSE與額定簽名值Ca(VA4)不一致的話,則設(shè)置錯(cuò)誤信號(hào)。在一個(gè)變型中將該信號(hào)存儲(chǔ)在寄存器中。在該實(shí)施例的另一個(gè)變型中,處理器2中斷工作序列的運(yùn)行。根據(jù)本發(fā)明的方法的第三個(gè)實(shí)施例:正如第一個(gè)實(shí)施例的方法和第二個(gè)實(shí)施例的方法的情況那樣,根據(jù)第三個(gè)實(shí)施例的方法是以根據(jù)本發(fā)明的、設(shè)置用于在根據(jù)本發(fā)明的裝置的實(shí)施例的計(jì)算機(jī)上運(yùn)行的計(jì)算機(jī)程序的第三個(gè)實(shí)施例的指令(圖5)的工作序列為基礎(chǔ)的。通過處理工作序列的指令i1,...,i11,...,i12,...,i2,...來在計(jì)算機(jī)的一個(gè)處理器2和/或多個(gè)處理器中處理該工作序列。第三實(shí)施例的計(jì)算機(jī)程序具有主程序和子程序。子程序能由主程序調(diào)用。與此相應(yīng)地,工作序列包括具有指令i1,...,i2,...的主程序以及具有指令i11,...,i12,...的子程序。具體地,第三個(gè)實(shí)施例的計(jì)算機(jī)程序具有第一簽名指令I(lǐng)SSI,該第一簽名指令與第一實(shí)施例的第一簽名指令I(lǐng)SSI相同并且設(shè)計(jì)用于在第一指令i1之前執(zhí)行。計(jì)算機(jī)程序還具有第六簽名指令I(lǐng)SSE,該第六簽名指令執(zhí)行第六簽名操作“結(jié)束受保護(hù)的工作序列”(InstructionStreamSignatureExit)。在地址VA7處將第六簽名指令I(lǐng)SSE存儲(chǔ)在存儲(chǔ)器4中,緊接著該工作序列的主要部分的上一個(gè)指令執(zhí)行該第六簽名指令。在工作序列的主程序中,計(jì)算機(jī)程序還具有第二簽名指令CALL(調(diào)用),在工作序列的主要部分的第二指令i2之前,將第二簽名指令存儲(chǔ)在地址VA6處。直接跟隨指令CALL,工作序列具有第三簽名指令I(lǐng)SSU(利用預(yù)先給定的值更新工作序列寄存器)。在第三個(gè)實(shí)施例中,第三簽名指令I(lǐng)SSU將進(jìn)入點(diǎn)(Einsprungpunkt)標(biāo)記在計(jì)算機(jī)程序的子程序中。在第三簽名指令I(lǐng)SSU之后緊跟著的是工作序列的子部分的指令i11。計(jì)算機(jī)程序還具有第四簽名指令I(lǐng)SSC(簽名檢驗(yàn)),將該第四簽名指令存儲(chǔ)在工作序列的子程序的另一個(gè)指令i12之前。計(jì)算機(jī)程序具有第五簽名指令I(lǐng)SSret(簽名返回),該第五簽名指令設(shè)計(jì)用于在工作序列的子程序的最后一個(gè)命令之后執(zhí)行。在工作序列的運(yùn)行中,在地址VA6處第二指令i2緊跟著指令I(lǐng)SSret。下面將描述第三個(gè)實(shí)施例的計(jì)算機(jī)程序的運(yùn)行。如第一個(gè)實(shí)施例中那樣,首先實(shí)施第一簽名指令I(lǐng)SSI并且然后處理器2對(duì)工作序列的第一指令i1,...進(jìn)行處理,并且簽名裝置15同時(shí)計(jì)算了所分配的簽名值ISS1,ISS...。然后實(shí)施第二簽名指令CALL。調(diào)用操作包括:將簽名指令的地址VA6作為回跳地址存儲(chǔ)在寄存器16的地址鏈接寄存器中。另外,調(diào)用操作包括:計(jì)算調(diào)用操作的簽名值ISSCALL。然后將實(shí)際簽名寄存器的值ISSCALL寫入到簽名鏈接寄存器中。然后,執(zhí)行操作“初始化具有地址的實(shí)際簽名寄存器”(InstructionStreamSignatureWriteAddress,縮寫:ISSWA),也就是說,基于地址VA3計(jì)算簽名值Ca(VA3)并且寫入到實(shí)際簽名寄存器中。然后,在第三簽名指令I(lǐng)SSU的地址VA3處跳入到子程序中。子程序的運(yùn)行包括:從第三簽名指令I(lǐng)SSU中提取出簽名區(qū)域的簽名變化值mISSU;以及讀取實(shí)際簽名值ISSISSU。隨后在考慮了簽名變化值mISSU的情況下將實(shí)際簽名寄存器更新為實(shí)際簽名值ISSVA3。由此,在更新了實(shí)際簽名寄存器的情況下對(duì)子程序的指令i11,...進(jìn)行處理。在此可以像例如在地址VA4處設(shè)有第四簽名指令那樣地實(shí)現(xiàn)檢驗(yàn)。位于地址VA5處的第五簽名指令I(lǐng)SSret(簽名返回)包括:更新實(shí)際簽名寄存器154。然后,將更新的實(shí)際簽名值ISSISSret與用于第五簽名指令I(lǐng)SSret的地址VA5的額定簽名值ca(VA5)相互比較。如果實(shí)際簽名值ISSISSret與額定簽名值ca(VA5)不一致的話,則設(shè)置錯(cuò)誤信號(hào)。如果實(shí)際簽名值ISSISSret與額定簽名值ca(VA5)一致的話,那么就將寄存器16中的簽名鏈接寄存器的值ISSCALL寫入到實(shí)際簽名寄存器154中,該實(shí)際簽名寄存器從地址鏈接寄存器中讀取地址VA6并且在地址VA6處執(zhí)行到第二指令i2處的主程序中的回跳。從地址VA6處的第二指令i2開始,處理器2繼續(xù)推進(jìn)工作序列的運(yùn)行并且在計(jì)算分別所分配的簽名值的情況下對(duì)工作序列的后續(xù)的指令進(jìn)行處理。最后,利用第六簽名指令I(lǐng)SSE,正如已經(jīng)借助第一和第二實(shí)施例所描述地那樣,執(zhí)行最終簽名檢驗(yàn)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1