中文字幕无码日韩视频无码三区

用于提供指令碼的方法

文(wen)檔序號(hao):9396667閱(yue)讀:583來源:國知局
用于提供指令碼的方法
【專利說明】用于提供指令碼的方法
[0001]本申請是基于2013年5月22日所提交的申請號為201310193999.1、發明名稱為“用于數據處理的方法和裝置”的發明的分案申請。
技術領域
[0002]本發明涉及:一種用于處理數據的方法,該方法包括針對不正確的實施行為的保護;一種用于執行第一方法的第一計算機程序;一種用于提供指令碼的方法;一種用于生成計算機程序的編譯產品;以及還涉及一種電路,該電路設置用于在應用針對不正確的實施行為的保護的情況下處理數據。
【背景技術】
[0003]DE 198 34 486A1公開了一種保證安全地執行指令的方法,在該方法中,將位于程序運行的預先給定的位置處的簽名寄存器的內容與包含在程序的指令中的預先給定的值相比較。
[0004]Namjoo ( “VLSI處理器運行的同時測試技術”,IEEE測試會議,1982,461-468)公開了一種用于識別處理器所處理的程序的運行中的錯誤的方法,在該方法中,對與處理器的處理步驟的運行的或類型的變化相關的路徑簽名(“path signature”)進行分析。

【發明內容】

[0005]本發明改進了處理器對主動攻擊的抵抗能力。
[0006]本發明基于以下想法:一種被執行以滿足預先給定的函數的方法,倘若該方法沒有按照預計那般執行,則添加至少一個額外的步驟。按照可能的方式,該額外的步驟在此本身并不為滿足方法的函數做出任何貢獻。在將該方法作為計算機程序在計算機中實施的情況下,例如,利用該方法的每個步驟對寄存器進行更新并且在執行額外的步驟時將寄存器的實際值與按預計地執行方法的情況下所期望得到的值進行比較。
[0007]下面在不同方面闡述本發明。描述了本發明的實施方式。只要說明書中沒有另行指出,那么本發明的不同的實施方式的特征是可以相互組合的。
[0008]在一方面,本發明包括用于在處理器中處理程序的指令的工作序列的方法。每個指令由所分配的指令碼(也稱操作碼或短操作碼)來代表。例如,通過匯編語言或機器語言來表達指令并且通過字節碼來代表。在一種實施方式中,將在處理工作序列時所執行的操作分配給一個指令。在一種實施方式中,將被實施用來執行操作的多個指令分配給操作。在一種實施方式中,指令碼包括一個或多個能依次地由處理器處理的實施步驟。該方法包括計算實際簽名值。實際簽名值被分配給代表工作序列的指令的指令碼的實施步驟的當前實施步驟。當前實施步驟將當前指令定義為一個指令,該指令的指令碼包括當前實施步驟。該方法還包括:根據地址值計算額定簽名值。該額定簽名值被分配給當前實施步驟。
[0009]根據地址值計算額定簽名值意味著,地址值會影響額定簽名值。例如,額定簽名值相應于地址值。例如,額定簽名值相應于二進制數,該二進制數的位置相應于每個被挑選出來的地址位置。額定簽名值的計算可能要額外地考慮一個或多個其它的相關性。
[0010]在一種實施方式中,借助額定簽名函數通過映射(Abbildung)地址值來計算額定簽名值。在這個實施方式中,該方法將額定簽名函數應用于例如被分配給當前指令的地址,從而計算被分配給當前指令的額定簽名的值。由此那些地址確定存儲了代表指令的代碼的額定簽名的值。
[0011]該方法的一個實施方式包括:如果實際簽名值與額定簽名值不一致,則放棄至少一個等待直接實施的和/或間接實施的實施步驟。倘若要使等待直接實施的實施步驟得到實施的話,那么在此期間在不實施其它實施步驟的情況下,在當前實施步驟之后進行該實施步驟。倘若要是等待間接實施的實施步驟得到實施的話,那么最早在實施完當前實施步驟之后,然后在實施完等待直接實施的實施步驟之后再進行該實施步驟。
[0012]該方法的一種實施方式包括:只要滿足了預先給定的條件便執行等待直接實施的實施步驟。該預先給定的條件例如在實際簽名值與被分配給當前實施步驟的額定簽名值相一致的情況下成立。
[0013]該方法的一種實施方式包括:將實際簽名值與額定簽名值相互比較,從而確定是否滿足預先給定的條件。在一種實施方式中以隱含的方式實現了比較,為此,如果未滿足預先給定的條件,那么根據實際簽名值對存儲寄存器進行訪問,尤其是直接的訪問將導致運行中止和/或運行中斷。
[0014]在該方法的一種實施方式中,當前實施步驟本身構成等待實施的實施步驟。在另一種實施方式中,直接跟在當前實施步驟之后的實施步驟構成了等待實施的實施步驟。在一種實施方式中,一個或多個指令的實施步驟例如在一個所謂的相位管(Phasenpipeline)中被布置成能連續地處理的實施步驟,并且由此在一定程度上被排成一行。假如在一種實施方式中在相位管中存在當前實施步驟,那么由此例如,直接跟在相位管中的當前實施步驟之后的實施步驟構成等待實施的實施步驟。在一種實施方式中,從當前實施步驟開始,根據預先給定的規則所確定的實施步驟構成了等待實施的實施步驟。
[0015]在一種實施方式中,根據簽名變化值計算實際簽名值。該簽名變化值可以是固定地預先給定的。根據簽名變化值計算實際簽名值意味著,簽名變化值會影響實際簽名值。
[0016]根據本發明的方法的一種實施方式包括:如果實際簽名值與額定簽名值不一致,則設置據此中斷或中止工作序列的處理的信號。該信號在本發明的一個實施方式中的作用在于:在不將處理器置于不受限制的狀態下盡可能迅速地中斷工作序列的處理。尤其是在本發明的一個實施方式中,信號使得工作序列的處理被中斷。例如,程序運行包括直接在實施當前指令之后跳躍到一個使得處理器回到預先給定的初始狀態中的子程序中。一種實施方式包括:如果滿足預先給定的條件,則設置據此繼續進行工作序列的處理的信號。
[0017]在根據本發明的方法的一個實施方式中,與代表指令的指令碼的實施步驟的數量無關地,為每個指令僅僅計算一個實際簽名值。在一種實施方式中,對于與代表指令的指令碼的實施步驟的數量無關的指令而言,僅僅將實際簽名值與額定簽名值進行一次比較。
[0018]在一種實施方式中,該方法具有至少一個簽名實施步驟。如果當前實施步驟被評定為簽名實施步驟,則僅僅將實際簽名值與額定簽名值相互比較。一種實施方式包括一次檢驗,尤其是一次預檢,檢驗當前實施步驟是否被評定為簽名實施步驟。
[0019]在一種實施方式中,根據本發明的方法包括將被分配給工作序列的指令的指令碼存儲在存儲器中,尤其是存儲在程序存儲器中。在一種實施方式中,代表當前指令的指令碼已被和/或正被寫入到位于具有地址值的地址處的存儲器中。在一種實施方式中,代表當前指令的指令碼已被和/或正被存儲在位于具有地址值的地址處的存儲器中。在根據本發明的方法的一個實施方式中,直接為實體存儲器(也稱“物理存儲器”)寫地址。實體存儲器的地址與已被和/或正被存儲的當前實施步驟或當前指令的指令碼在實體存儲器中的位置相符。在根據本發明的方法的一個實施方式中,使用了邏輯存儲器(也稱“虛擬存儲器”)。例如,分配函數將邏輯存儲器的地址映射到實體存儲器的地址上。
[0020]在根據本發明的方法的一種實施方式中,在實施指令時計算實際簽名值。在一種實施方式中,代表了指令的代碼確定出實際簽名值。例如,該方法將實際簽名函數應用于當前指令,從而計算從屬于當前指令的指令簽名的值。在一種實施方式中,通過指令所觸發的控制信號確定了實際簽名值的值。
[0021]在一種實施方式中,借助實際簽名函數通過映射計算實際簽名值。在一種實施方式中,實際簽名函數考慮到了已經計算出的實際簽名值。例如,在應用工作序列簽名函數的情況下增量地和/或遞歸地計算實際簽名值。已經計算出的實際簽名值、尤其是上一次計算出的實際簽名值將被投入到例如實際簽名值的計算中。
[0022]在一種實施方式中,工作序列具有子工作序列(Unterarbeitssequenz)。在這種實施方式中,該方法包括一個或多個以下步驟:
[0023]-從實際簽名寄存器中讀取實際簽名值;
[0024]-在第一簽名值存儲器地址處寫入實際簽名值;
[0025]-處理子工作序列;以及
[0026]-在第一簽名值存儲器地址處讀取值并且將所讀出的值寫入到實際簽名寄存器中。
[0027]在這個實施方式中,實際簽名寄存器在處理完子工作序列之后具有實際簽名值,該實際簽名值與子工作序列的處理相互關聯。
[0028]在一種實施方式中,將子工作序列簽名變化值分配給子工作序列。根據子工作序列簽名變化值計算實際簽名值。在一種實施方式中,被分配給子工作序列的第一指令的實際簽名值僅僅取決于子工作序列簽名變化值。在這種實施方式中,實際簽名值在處理完子工作序列之后與其它的工作序列部分無關。
[0029]在一種實施方式中,被分配給子工作序列的第一指令的實際簽名值既取決于子工作序列簽名變化值,又取決于被分配給上一次實施的指令的實際簽名值。在這種實施方式中,可以如此選擇子工作序列簽名變化值,使得能在子工作序列的地
當前第1頁1 2 3 4 5 
網友(you)詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1