欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種智能卡安全防護電路和方法

文檔序號:6341285閱讀:297來源:國知局
專利名稱:一種智能卡安全防護電路和方法
技術領域
本發(fā)明主要應用于以智能卡為代表的安全微控制器芯片設計領域,可有效提高對抗外部干擾攻擊,增強芯片工作的穩(wěn)定性和可靠性。
背景技術
近年來以智能卡為代表的安全微控制器在社會生活中得到廣泛應用。智能卡作為系統(tǒng)安全與關鍵數(shù)據(jù)的載體,常常用于身份認證,交通,電信,金融支付等領域。由于利益驅(qū)使,智能卡面臨的各種攻擊手段越來越多祥,其中干擾注入攻擊為一種常見的攻擊手段,如對智能卡進行電源干擾,光干擾,脈沖干擾等,通過干擾的引入使得智能卡中的中央處理單元(CPU)的運行發(fā)生異常,出現(xiàn)所謂的跑飛現(xiàn)象,導致CPU偏離正常的程序運行,例如,沒有通過認證的應用流程,直接進行存儲數(shù)據(jù)改寫,卡片存儲的記錄發(fā)生錯誤改變。此外,智能卡的工作環(huán)境不穩(wěn)定或操作不規(guī)范(帶電插拔等)也會造成CPU 運行發(fā)生異常。對此類問題的防護,一般的做法是使用各種傳感器對芯片的工作環(huán)境進行檢測, 包括電壓檢測,溫度檢測,毛刺檢測,光檢測等,一旦發(fā)現(xiàn)異常,則使芯片處于復位狀態(tài),以防止芯片再進行誤操作,但這些傳感器的響應時間、檢測精度和范圍都存在問題,防護效果不是特別理想。尤其是這些傳感器一般都是由模擬電路實現(xiàn),占用芯片面積大,從物理版圖上可以分辨出明顯的電路結構,攻擊者可通過FIB等手段旁路這些傳感器,從而導致安全防護失效。本發(fā)明提出的安全防護方法采用數(shù)字技術實現(xiàn),相比模擬傳感器的方法,實現(xiàn)成本低,防護響應快,不受加工エ藝限制,檢測信號與其它邏輯電路進行混合布線,攻擊者很難通過FIB等手段進行旁路,可大大提高安全防護的有效性。本發(fā)明提出的對CPU運行次序進行監(jiān)測的方法具備分吋,分布的特點,可以降低因干擾或工作環(huán)境不穩(wěn)定產(chǎn)生的監(jiān)測漏檢,能較好地抵御干擾攻擊。

發(fā)明內(nèi)容
本發(fā)明提出ー種智能卡安全防護方法,其特征是取出本條指令的代碼和程序指針 PC (簡稱PC指針)以及上條指令的代碼和PC指針(1)(運行第一條指令時不取出上條指令的代碼和PC指針);實時對CPU的運行是否符合運行次序規(guī)則進行檢查O),對檢查輸出的信號進行監(jiān)測,監(jiān)測方法具備分吋,分布的特點,即由兩個或兩個以上監(jiān)測電路((3), (4),…(5)))對CPU的運行是否符合運行次序規(guī)則進行監(jiān)測,輸出兩個或兩個以上包括高低兩種邏輯電平的監(jiān)測信號,一旦發(fā)生異常,這些監(jiān)測信號在不同時刻觸發(fā)智能卡芯片進入異常處理(6),防止程序跑飛,保證程序按正確次序執(zhí)行,在智能卡芯片受到外部攻擊時進行有效的安全防護。CPU運行次序符合下列三種情況之一,監(jiān)測電路輸出有效邏輯電平的指示信號表示CPU運行符合次序規(guī)則,運行次序正確,否則輸出無效邏輯電平的指示信號表示運行次序錯誤a. PC指示的為CPU運行的首地址;b.上一條運行指令為跳轉(zhuǎn)指令,當前PC寄存器中的內(nèi)容為上條跳轉(zhuǎn)指令的跳轉(zhuǎn)目的地址;C.上一條運行指令為非跳轉(zhuǎn)指令,當前PC寄存器中的內(nèi)容為上條指令對應的PC 指針寄存器內(nèi)容加η,η為上一條指令對應的字節(jié)數(shù);在本發(fā)明中監(jiān)測采用分吋,分布的方式進行,即由多個監(jiān)測電路輸出兩個或兩個以上指示信號,一旦發(fā)生運行次序異常,這些指示信號在不同時刻觸發(fā)智能卡芯片進入異常處理,監(jiān)測電路輸出的指示信號需要包括高低兩種邏輯電平,以防止在某ー時刻由于干擾誘發(fā)的指示信號錯誤。本發(fā)明還公開了上述方法的ー種實現(xiàn)電路,如圖3所示,該電路包括當前指令碼寄存器(20)、跳轉(zhuǎn)目的地址寄存器(16)、PC寄存器(14)、PC_PR0寄存器(22)、加法器(24)、 比較器(15)、比較器(17)、比較器06)、比較器(21)、監(jiān)測電路1(38)以及監(jiān)測電路(39); 其特征為比較器(15)比較當前的PC寄存器(14)的內(nèi)容是否為CPU運行的首地址,首地址比較器(15)的輸出信號作為監(jiān)測電路的輸入;比較器06)比較PC寄存器(14)中的當前程序指針值是否等于PC_PR0寄存器 (22)中的值與上一條指令碼的指令字節(jié)數(shù)之和;比較器01)比較當前指令碼寄存器OO)中的指令碼是否為跳轉(zhuǎn)指令碼;比較器(17)比較PC寄存器(14)中的當前程序指針與跳轉(zhuǎn)目的地址寄存器中的跳轉(zhuǎn)目的地址是否相等;比較器(1 的輸出信號FIRST_ADDR,比較器Q6)的輸出信號CHECK_ADDR,比較器01)的輸出信號JUMP_CODE_INDCT及其反向輸出信號SEQ_C0DE_INDCT,比較器(17)的輸出信號ADDR_EQ,作為監(jiān)測電路1(38)和監(jiān)測電路2 (39)的輸入信號;監(jiān)控電路1 (38)的輸出指示信號P0S_JUDGE ;監(jiān)控電路2(39)的輸出經(jīng)過延時電路((36)(37))進行1個時鐘的延時后輸出 NEG_JUDGE_DLY作為指示信號;監(jiān)測電路1(38)輸出的信號為高電平,且監(jiān)測電路2(39)輸出的信號為低電平吋, 表示CPU的運行符合運行次序規(guī)則,未發(fā)生可產(chǎn)生錯誤的異常跳變;如果發(fā)生運行次序異常,指示信號P0S_JUDGE與NEG_JUDGE_DLY在不同時刻觸發(fā)智能卡芯片進入異常處理;


圖1本發(fā)明所公開的方法總體框2CPU運行次序規(guī)則檢查說明框3本發(fā)明的ー種具體實現(xiàn)電路
具體實施例方式下面結合附圖,詳細說明該方法及其具體實施方案。
圖1為本發(fā)明的總體框圖,首先取出本條指令代碼和程序指針PC(簡稱PC指針) 以及上條指令的代碼和PC指針(1)(運行第一條指令時不取出上條指令的代碼和PC指針);實時對CPU的運行是否符合運行次序規(guī)則進行檢查O),對檢查輸出的信號進行監(jiān)測, 監(jiān)測方法具備分吋,分布的特點,即由兩個或兩個以上監(jiān)測電路((3),(4),... (5)))對CPU 的運行是否符合運行次序規(guī)則進行監(jiān)測,輸出兩個或兩個以上包括高低兩種邏輯電平的監(jiān)測信號,一旦發(fā)生異常,這些監(jiān)測信號在不同時刻觸發(fā)智能卡芯片進入異常處理(6),防止程序跑飛,保證程序按正確次序執(zhí)行,在智能卡芯片受到外部攻擊時進行有效的安全防護。CPU運行次序規(guī)則檢查如圖2所示,當CPU的運行次序符合下面的三條規(guī)則中的一條,即說明CPU的運行次序正確,監(jiān)測電路輸出有效的指示信號a. PC指示的為CPU運行的首地址;b.上一條運行指令為跳轉(zhuǎn)指令,當前PC寄存器中的內(nèi)容為上條跳轉(zhuǎn)指令的跳轉(zhuǎn)目的地址;c.上一條運行指令為非跳轉(zhuǎn)指令,當前PC寄存器中的內(nèi)容為上條指令對應的PC 指針寄存器內(nèi)容加η,η為上一條指令對應的字節(jié)數(shù);該方法實施的具體步驟如下a.取CPU指令及當前程序指針;b.取上條指令指針以及對應指令;c.對CPU的運行是否符合運行次序進行監(jiān)測;d.如果監(jiān)測結果異常則進入異常處理程序;該防護方法具備分時與分布的特點;對CPU的運行是否符合運行次序進行監(jiān)測的具體步驟如下a.判斷當前CPU指令地址是否為首地址,如果當前CPU指令地址為首地址,則CPU 正常運行;否則轉(zhuǎn)b;b.判斷當前CPU指令是否為跳轉(zhuǎn)指令,如果當前CPU指令不是跳轉(zhuǎn)指令,轉(zhuǎn)c ;如果當前CPU指令為跳轉(zhuǎn)指令,并且當前程序指針與上條指令的跳轉(zhuǎn)地址相等,則CPU正常運行;如果當前指令為跳轉(zhuǎn)指令,并且當前CPU程序指針與上條指令的跳轉(zhuǎn)地址不相等,則 CPU運行異常,轉(zhuǎn)d;C.判斷當前CPU程序指針是否等于上條指令指針值與上條指令長度之和,如果相等,則CPU正常運行,否則CPU運行異常,轉(zhuǎn)d ;d.選擇觸發(fā)芯片進入異常處理程序,防止程序跑偏,保證程序按正確次序執(zhí)行,在智能卡芯片受到外部攻擊時進行有效的安全防護。監(jiān)測電路的個數(shù)為兩個或兩個以上(至少為2個),主要用來對規(guī)則檢查的產(chǎn)生的輸出信號進行監(jiān)測,電路分布在芯片的不同位置,且不同位置的監(jiān)測電路輸出的指示信號包含高低兩種邏輯電平,即具備分布的特征。當出現(xiàn)監(jiān)測電路輸出的指示信號不符合預期吋,不同的監(jiān)測電路輸出的指示信號在不同的時刻觸發(fā)智能卡芯片進入異常處理,停止對程序的錯誤執(zhí)行,即具備分時的特征。圖3為本發(fā)明提出智能卡安全防護方法的一個實現(xiàn)電路。如圖3所示,PC寄存器(14)存儲當前PC指針,PC_PR0寄存器じ2)存儲上一條指令的 PC 指針。(19),(27),(32),(34),(35)為與門,(28), (33)為或門,(23), (29), (30), (31)為反向器。(15),(17),(21),(26)為比較器。監(jiān)測電路1包括或門(28)、與門(27)、與門(19);監(jiān)測電路2包括反向器(29)、(30)、(31),與門(32) (34) (35)和或門(33)。比較器(1 比較當前的程序指針是否為CPU運行的首地址,比較器(1 的輸出信號作為或門08)的輸入;比較器06)比較PC寄存器(14)中的當前程序指針值是否與PC_PR0寄存器じ2) 中的值與上一條指令碼的指令字節(jié)數(shù)之和相等;比較器01)比較當前指令碼寄存器OO)中的指令碼是否為跳轉(zhuǎn)指令碼,比較器 (21)的輸出信號經(jīng)反向器03)后與比較器06)的輸出信號經(jīng)與門07)后作為或門08) 的輸入;比較器(17)比較PC寄存器(14)中的當前程序指針與跳轉(zhuǎn)目的地址寄存器(16) 中的跳轉(zhuǎn)目的地址是否相等,比較器(17)的輸出信號與比較器01)的輸出信號經(jīng)與門 (19)后作為或門(28)的輸入。在比較器(15)、與門(19)、以及與門07)的輸出中有一個為有效高電平時,則或門08)的輸出為有效高電平,表示CPU的運行符合運行次序規(guī)則,未發(fā)生可產(chǎn)生錯誤的異常跳變;當監(jiān)測電路1的輸出為有效高電平時,檢測電路2的輸出為有效低電平,并通過延時電路D觸發(fā)器(36)對檢測電路2的輸出信號進行延吋,延時后的檢測電路2的輸出信號如果為有效低電平,則CPU運行符合運行次序規(guī)則;反之,說明CPU發(fā)生了可產(chǎn)生錯誤的異常跳變,CPU將中斷運行程序,進入異常處理狀態(tài)。電路在工作吋,比較器01)比較當前指令碼寄存器OO)中的指令碼是否為跳轉(zhuǎn)指令碼,如果為跳轉(zhuǎn)指令碼則比較器01)的輸出信號JUMP_CODE_INDCT為有效電平(假設高電平為有效電平),此時如果PC寄存器(14)中的當前指針與跳轉(zhuǎn)目的地址寄存器(16) 中的跳轉(zhuǎn)目的地址相等,比較器(17)的輸出信號ADDR_EQ為有效電平(假設高電平為有效電平);如果比較指令碼寄存器OO)中的指令碼不是跳轉(zhuǎn)指令碼,此時如果PC寄存器(14) 中的當前PC指針等于PC_PR0寄存器02)中的值與上一條指令碼的指令字節(jié)數(shù)η之和, 比較器06)的輸出信號CHECK_ADDR為有效電平(假設高電平為有效電平);如果PC寄存器(14)中的內(nèi)容為CPU上電復位后的首地址,則比較器(15)的輸出信號FIRST_ADDR為有效電平(假設高電平為有效電平)。在比較器的(1 的輸出、與門(19)的輸出以及與門07)的輸出中有ー個為高電平吋,則或門08)的輸出P0S_JUDGE為高電平,表示CPU的運行符合運行次序規(guī)則,未發(fā)生可產(chǎn)生錯誤的異常跳變。監(jiān)測電路1(38)輸出的指示信號 P0S_JUDGE的有效電平為高電平。如果CPU運行符合運行次序規(guī)則,通過監(jiān)測電路2 (39)輸出的指示電平NEG_JUDGE 的有效電平為低電平。通過延時電路D觸發(fā)器(36)對NEG_JUDGE延時1個時鐘周期,在下 ー時鐘周期判斷NEG_JUDGE是否為低電平,如果是,則CPU運行符合運行次序規(guī)則;反之,說明CPU發(fā)生了可產(chǎn)生錯誤的異常跳變,CPU將中斷運行程序,進入異常處理狀態(tài)。最常見的異常處理為全芯片復位。分時的實現(xiàn)方式除這里所列舉的D觸發(fā)器延時ー個時鐘周期的方式外,也可以采用其它延時電路(RS觸發(fā)器,延時電路)進行延時,延時的時間可以是以時鐘周期為單位的ー個或多個時鐘,或者是固定時間。本領域的技術人員可以依據(jù)上面提供的方法設計相應電路方便實現(xiàn)。 除上述監(jiān)測電路外,監(jiān)測電路還可以對中間信號JUMP_CODE_INDCT,ADDR_EQ, CHECK_ADDR, FIRST_ADDR其它邏輯等效組合進行監(jiān)測,判斷其是否正確。本領域的技術人員可以依據(jù)上面提供的方法設計相應電路方便實現(xiàn)。
權利要求
1.一種智能卡安全防護方法,對CPU的運行是否符合運行次序進行監(jiān)測,其特征在于步驟如下a.取CPU指令及當前程序指針;b.取上條指令指針以及對應指令;c.對CPU的運行是否符合運行次序進行監(jiān)測;d.如果監(jiān)測結果異常則進入異常處理程序;
2.如權利要求1所述的一種智能卡安全防護方法,其特征在于對CPU的運行是否符合運行次序進行監(jiān)測的具體步驟如下a.判斷當前CPU指令地址是否為首地址,如果當前CPU指令地址為首地址,則CPU正常運行;否則轉(zhuǎn)b ;b.判斷當前CPU指令是否為跳轉(zhuǎn)指令,如果當前CPU指令不是跳轉(zhuǎn)指令,轉(zhuǎn)c;如果當前CPU指令為跳轉(zhuǎn)指令,并且當前程序指針與上條指令的跳轉(zhuǎn)地址相等,則CPU正常運行; 如果當前指令為跳轉(zhuǎn)指令,并且當前CPU程序指針與上條指令的跳轉(zhuǎn)地址不相等,則CPU運行異常,轉(zhuǎn)d ;c.判斷當前CPU程序指針是否等于上條指令指針值與上條指令字節(jié)數(shù)之和,如果相等,則CPU正常運行,否則CPU運行異常,轉(zhuǎn)d ;d.芯片進入異常處理程序,防止程序跑偏,保證程序按正確次序執(zhí)行,在智能卡芯片受到外部攻擊時進行有效的安全防護。
3.如權利要求1所述的一種智能卡安全防護方法,其特征在于該方法具備分布的特點,即該方法使用的監(jiān)測電路個數(shù)為兩個或兩個以上。
4.如權利要求1所述的一種智能卡安全防護方法,其特征在于該方法具備分時的特征,即如發(fā)生運行次序異常,多個監(jiān)測電路輸出的指示信號在不同時刻觸發(fā)智能卡芯片進入異常處理。
5.如權利要求1所述的一種智能卡安全防護方法,其特征在于該方法使用的監(jiān)測電路輸出的指示信號包括高低兩種邏輯電平,以抵抗在某一時刻由于干擾導致的指示信號錯誤。
6.一種智能卡安全防護電路,包括當前指令碼寄存器(20)、跳轉(zhuǎn)目的地址寄存器(16)、PC寄存器(14)、PC_PR0寄存器(22)、加法器(24)、比較器(15)、比較器(17)、比較器 (26)、比較器(21)、監(jiān)測電路1(38)以及監(jiān)測電路(39);其特征為比較器(15)比較當前的PC寄存器(14)的內(nèi)容是否為CPU運行的首地址,首地址比較器(15)的輸出信號作為監(jiān)測電路的輸入;比較器06)比較PC寄存器(14)中的當前程序指針值是否等于PC_PR0寄存器02) 中的值與上一條指令碼的指令字節(jié)數(shù)之和;比較器比較當前指令碼寄存器OO)中的指令碼是否為跳轉(zhuǎn)指令碼; 比較器(17)比較PC寄存器(14)中的當前程序指針與跳轉(zhuǎn)目的地址寄存器中(16)的跳轉(zhuǎn)目的地址是否相等;比較器(15)的輸出信號FIRST_ADDR,順序地址比較器Q6)的輸出信號CHECK_ADDR, 比較器的輸出信號JUMP_CODE_INDCT及其反向輸出信號SEQ_CODE_INDCT,比較器(17)的輸出信號ADDR_EQ,作為監(jiān)測電路1(38)和監(jiān)測電路2(39)的輸入信號;監(jiān)控電路1 (38)的輸出指示信號P0S_JUDGE ;監(jiān)控電路2 (39)的輸出經(jīng)過延時電路(36)、延時電路(37))進行時鐘延時后輸出NEG_ JUDGE_DLY作為指示信號;監(jiān)測電路1(38)輸出的信號為高電平,且監(jiān)測電路2(39)輸出的信號為低電平時,表示 CPU的運行符合運行次序規(guī)則,未發(fā)生可產(chǎn)生錯誤的異常跳變;如果發(fā)生運行次序異常,指示信號P0S_JUDGE與NEG_JUDGE_DLY在不同時刻觸發(fā)智能卡芯片進入異常處理。
7.如權利要求6所述的一種智能卡安全防護電路,其特征在于通過分布在芯片不同位置上的多個監(jiān)測電路對CPU的運行是否符合運行次序進行監(jiān)測。
8.如權利要求6所述的一種智能卡安全防護電路,其特征在于如發(fā)生運行次序異常, 指示信號P0S_JUDGE與NEG_JUDGE_DLY在不同時刻觸發(fā)智能卡芯片進入異常處理。
9.如權利要求6所述的一種智能卡安全防護電路,其特征在于監(jiān)測電路1(38)輸出的指示信號為高電平,監(jiān)測電路2 (39)輸出的指示信號為低電平,即指示信號包括高低兩種邏輯電平,以抵抗在某一時刻由于干擾導致的指示信號錯誤。
10.如權利要求6所述的一種智能卡安全防護電路,監(jiān)測電路除上述電路外,還能對中間信號 JUMP_CODE_INDCT,ADDR_EQ, CHECK_ADDR, FIRST_ADDR 其它邏輯等效組合進行監(jiān)測, 判斷其是否正確。
全文摘要
本發(fā)明公開了一種智能卡安全防護方法,該方法采用分時、分布的方式對CPU進行實時運行次序規(guī)則監(jiān)測,檢測CPU的運行是否符合運行次序規(guī)則,一旦檢測到程序運行次序有誤,將終止錯誤程序運行,觸發(fā)芯片進行異常處理,保證程序按照正確的運行順序執(zhí)行,防止程序跑飛,在智能卡芯片受到外部攻擊或運行環(huán)境不穩(wěn)定時提供有效的安全防護。本發(fā)明同時公開了實現(xiàn)上述方法的一種電路,包括當前指令碼寄存器(20)、跳轉(zhuǎn)目的地址寄存器(16)、PC寄存器(14)、PC_PRO寄存器(22)、加法器(24)、比較器(15)、比較器(17)、比較器(26)、比較器(21)、監(jiān)測電路1(38)以及監(jiān)測電路(39);該電路采用監(jiān)測電路1和監(jiān)測電路2對CPU運行次序的監(jiān)測,如發(fā)生運行異常,將在不同時刻觸發(fā)智能卡芯片進入異常處理,防止芯片發(fā)生異常。
文檔編號G06F21/00GK102567774SQ20101062229
公開日2012年7月11日 申請日期2010年12月27日 優(yōu)先權日2010年12月27日
發(fā)明者葉茵 申請人:北京中電華大電子設計有限責任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
根河市| 松阳县| 揭东县| 灵台县| 孝昌县| 巴林左旗| 翁牛特旗| 金华市| 涟源市| 离岛区| 西乌珠穆沁旗| 盐亭县| 油尖旺区| SHOW| 乌什县| 收藏| 博兴县| 蕉岭县| 平和县| 嫩江县| 中卫市| 永仁县| 防城港市| 韶山市| 集贤县| 长沙县| 贵阳市| 竹北市| 镇宁| 策勒县| 德保县| 沙洋县| 儋州市| 彭泽县| 通化市| 涞源县| 云霄县| 柳河县| 青神县| 威信县| 岚皋县|