本發(fā)明涉及集成電路可測試設(shè)計(DFT)領(lǐng)域,尤指一種掃描鏈測試裝置及實現(xiàn)方法。
背景技術(shù):
隨著集成電路設(shè)計的規(guī)模越來越大,同時工藝的尺寸越來越小,不斷提升的集成度也提高了生產(chǎn)測試成本和難度,掃描鏈測試方法作為可測試設(shè)計(DFT)中一種重要手段,廣泛用于提高芯片質(zhì)量和成品率。根據(jù)掃描鏈測試原理,可以完成對內(nèi)部電路的正確性測試時,但也帶來了安全性隱患。由于掃描鏈電路將集成電路內(nèi)部所有寄存器都串聯(lián)到一起,通過移位的方法,掃描鏈輸入端可以將任意的數(shù)值輸送到電路任意一個寄存器,這些輸入數(shù)據(jù)在內(nèi)部電路完成測試邏輯功能后的響應(yīng)數(shù)據(jù),可以通過掃描鏈的移位操作到輸出引腳被外部監(jiān)測。這樣情況下的集成電路,特別是金融安全類芯片,用于測試的掃描鏈電路就成為被外部探測內(nèi)部敏感信息的安全漏洞。
目前其他已有的方案中,第一類是針對集成電路中掃描鏈的工作模式進行控制,保證外部探測無法使能掃描鏈進入測試模式,從而讓掃描數(shù)據(jù)不被讀寫和探測;第二類是針對集成電路內(nèi)部電路劃分安全敏感電路和非安全敏感電路,安全敏感電路部分不進行掃描鏈測試,從而防止被外部探測。
現(xiàn)有其他技術(shù)中,通過對掃描鏈測試模式進行控制的方法,并未對掃描鏈中最安全敏感的數(shù)據(jù)進行保護,如果通過FIB(聚焦離子束,F(xiàn)ocused Ionbeam)等方式可以跳過其測試模式的防護時,仍然將數(shù)據(jù)原始狀態(tài)全部暴露到外部。同時,由于目前掃描鏈測試多在第三方工廠,掃描鏈測試模式方式需要與第三方共享,所以掃描鏈測試模式方式的保護方式仍然處于非安全狀態(tài)。而對集成電路內(nèi)部進行安全劃分的方式,會導致了未劃分到掃描鏈上的電路沒有進行生產(chǎn)測試的功能分析,也存在進入掃描鏈的電路處于完全不受保護的狀態(tài)。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種掃描鏈測試裝置及實現(xiàn)方法,可以有效地提高電路安全性能、加固電路內(nèi)部數(shù)據(jù)被探測的難度。
為了達到本發(fā)明目的,本發(fā)明提供了一種掃描鏈測試裝置,包括掃描鏈邏輯電路,還包括輸入解密模塊和輸出加密模塊,其中
所述輸入解密模塊用于對輸入的加密數(shù)據(jù)進行解密,將解密后的數(shù)據(jù)輸入至所述掃描鏈邏輯電路;
所述輸出加密模塊用于對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
可選地,所述掃描鏈測試裝置還包括輸入動態(tài)密鑰模塊和輸出動態(tài)密鑰模塊,其中
所述輸入動態(tài)密鑰模塊與輸入解密模塊相連,用于生成動態(tài)變化的第一動態(tài)密鑰,將生成的所述第一動態(tài)密鑰輸入至所述輸入解密模塊,以使所述輸入解密模塊使用所述第一動態(tài)密鑰對所述加密數(shù)據(jù)進行解密;
所述輸出動態(tài)密鑰模塊與輸出加密模塊相連,用于生成動態(tài)變化的第二動態(tài)密鑰,將生成的所述第二動態(tài)密鑰輸入至所述輸出加密模塊,以使所述輸出加密模塊使用所述第二動態(tài)密鑰對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
可選地,所述輸入解密模塊進一步用于采用對端口重映射進行逆運算和對異或進行逆運算的方式對輸入的加密數(shù)據(jù)進行解密;
所述輸出加密模塊進一步用于采用異或和端口重映射的方式對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
可選地,所述輸入解密模塊進一步用于在一個時鐘周期內(nèi)完成解密過程;
所述輸出加密模塊進一步用于在一個時鐘周期內(nèi)完成加密過程。
可選地,所述輸入動態(tài)密鑰模塊和輸出動態(tài)密鑰模塊均包括:
兩組寄存器和相應(yīng)的組合電路,用于根據(jù)所述掃描鏈測試電路的復(fù)位信號使能寄存器內(nèi)部初值后,時鐘信號不斷觸發(fā)實現(xiàn)兩組不整齊的亂序輸出;
異或電路,用于將所述兩組不整齊的亂序輸出進行異或處理并相應(yīng)地輸出第一動態(tài)密鑰或第二動態(tài)密鑰。
本發(fā)明還提供了一種掃描鏈測試的實現(xiàn)方法,包括:
對輸入的加密數(shù)據(jù)進行解密;
將解密后的數(shù)據(jù)輸入至掃描鏈邏輯電路進行測試;
對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
可選地,所述實現(xiàn)方法還包括:生成動態(tài)變化的第一動態(tài)密鑰;
所述對輸入的加密數(shù)據(jù)進行解密包括:使用所述第一動態(tài)密鑰對所述加密數(shù)據(jù)進行解密;
所述實現(xiàn)方法還包括:生成動態(tài)變化的第二動態(tài)密鑰;
所述對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出包括:使用所述第二動態(tài)密鑰對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
可選地,所述對輸入的加密數(shù)據(jù)進行解密包括:采用對端口重映射進行逆運算和對異或進行逆運算的方式對輸入的加密數(shù)據(jù)進行解密;
所述對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出包括:采用異或和端口重映射的方式對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
可選地,所述對輸入的加密數(shù)據(jù)進行解密的步驟中,在一個時鐘周期內(nèi)完成解密過程;
所述對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出的步驟中,在一個時鐘周期內(nèi)完成加密過程。
可選地,所述生成動態(tài)變化的第一動態(tài)密鑰包括:根據(jù)所述掃描鏈測試電路的復(fù)位信號使能內(nèi)部初值后,觸發(fā)時鐘信號得到兩組不整齊的亂序輸出,作為第一亂序輸出,將所述第一亂序輸出進行異或處理得到動態(tài)變化的第一動態(tài)密鑰;
所述生成動態(tài)變化的第二動態(tài)密鑰包括:根據(jù)所述掃描鏈測試電路的復(fù)位信號使能內(nèi)部初值后,觸發(fā)時鐘信號得到兩組不整齊的亂序輸出,作為第二亂序輸出,將所述第二亂序輸出進行異或處理得到動態(tài)變化的第二動態(tài)密鑰。
本發(fā)明實施例通過對掃描鏈測試電路輸入和輸出的數(shù)據(jù)進行解密/加密,實現(xiàn)掃描鏈測試功能正確的同時,也保證了芯片內(nèi)部數(shù)據(jù)的安全。而且,本發(fā)明實施例能更全面的把集成電路所有內(nèi)部數(shù)據(jù)都加入安全保護內(nèi),具有更廣泛的測試覆蓋能力和安全覆蓋能力。
進一步地,本發(fā)明實施例通過采用動態(tài)密鑰方式,增加了破解難度;采用但不限于兩組寄存器和組合邏輯來輸出動態(tài)變化的密鑰,從而加強了加密算法對輸入全0攻擊和復(fù)位攻擊的防護。
進一步地,本發(fā)明實施例的加解密采用但不限于端口重映射和異或的方式,在增加邏輯較少的情況下,實現(xiàn)對原始數(shù)據(jù)進行加解密,達到數(shù)據(jù)加擾和防探測功能。另外,加解密一個時鐘周期內(nèi)完成,可以減少前后時鐘周期的數(shù)據(jù)疊加而帶來的后期調(diào)試難度。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖說明
附圖用來提供對本發(fā)明技術(shù)方案的進一步理解,并且構(gòu)成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
圖1為本發(fā)明實施例的掃描鏈測試裝置示意圖;
圖2為本發(fā)明實施例的掃描鏈測試的實現(xiàn)方法的流程圖;
圖3為本發(fā)明應(yīng)用實例的掃描鏈測試裝置應(yīng)用框圖;
圖4為本發(fā)明應(yīng)用實例的掃描鏈測試裝置的組成示意圖;
圖5為本發(fā)明應(yīng)用實例的輸入解密模塊示意圖;
圖6為本發(fā)明應(yīng)用實例的輸入動態(tài)密鑰模塊示意圖;
圖7為本發(fā)明應(yīng)用實例的輸出動態(tài)密鑰模塊示意圖;
圖8為本發(fā)明應(yīng)用實例的輸出加密模塊示意圖;
圖9為本發(fā)明應(yīng)用實例的掃描鏈測試裝置仿真結(jié)果。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實施例提供一種掃描鏈測試裝置及實現(xiàn)方法,針對集成電路可測試設(shè)計(DFT)中掃描鏈測試,本裝置可以有效地提高電路安全性能、加固電路內(nèi)部數(shù)據(jù)被探測的難度。所述裝置可以保證掃描鏈數(shù)據(jù)高效地進行功能測試前提下,在掃描鏈的輸入端和輸出端加解密,以實現(xiàn)集成電路掃描鏈測試過程中隔離內(nèi)部電路真實數(shù)據(jù),同時達到從外部端口觀測點不能探測到電路內(nèi)部數(shù)據(jù)的效果。
如圖1所述,本發(fā)明實施例的掃描鏈測試裝置包括:掃描鏈邏輯電路11、輸入解密模塊12和輸出加密模塊13,其中
所述掃描鏈邏輯電路11用于進行掃描鏈測試;
所述輸入解密模塊12用于對輸入的加密數(shù)據(jù)進行解密,將解密后的數(shù)據(jù)輸入至所述掃描鏈邏輯電路;
所述輸出加密模塊13用于對所述掃描鏈邏輯電路11的輸出數(shù)據(jù)進行加密并輸出。
本發(fā)明實施例通過對掃描鏈測試電路輸入和輸出的數(shù)據(jù)進行解密/加密,實現(xiàn)掃描鏈測試功能正確的同時,也保證了芯片內(nèi)部數(shù)據(jù)的安全。而且,本發(fā)明實施例能更全面的把集成電路所有內(nèi)部數(shù)據(jù)都加入安全保護內(nèi),具有更廣泛的測試覆蓋能力和安全覆蓋能力。
其中,所述掃描鏈邏輯電路11實現(xiàn)傳統(tǒng)的掃描鏈測試功能,包括:將解密后的數(shù)據(jù)移位到內(nèi)部寄存器的輸入端,將內(nèi)部寄存器的響應(yīng)數(shù)據(jù)移位到輸出,捕獲所述響應(yīng)數(shù)據(jù),并將所述響應(yīng)數(shù)據(jù)輸出至所述輸出加密模塊13。
可選地,所述掃描鏈測試裝置還包括輸入動態(tài)密鑰模塊14和輸出動態(tài)密鑰模塊15,其中
所述輸入動態(tài)密鑰模塊14與輸入解密模塊相連12,用于生成動態(tài)變化的第一動態(tài)密鑰,將生成的所述第一動態(tài)密鑰輸入至所述輸入解密模塊12,以使所述輸入解密模塊12使用所述第一動態(tài)密鑰對所述加密數(shù)據(jù)進行解密;
所述輸出動態(tài)密鑰模塊15與輸出加密模塊13相連,用于生成動態(tài)變化的第二動態(tài)密鑰,將生成的所述第二動態(tài)密鑰輸入至所述輸出加密模塊13,以使所述輸出加密模塊13使用所述第二動態(tài)密鑰對所述掃描鏈邏輯電路11的輸出數(shù)據(jù)進行加密并輸出。
本發(fā)明實施例通過采用動態(tài)密鑰方式,增加了破解難度。
可選地,所述輸入解密模塊12進一步用于采用對端口重映射進行逆運算和對異或進行逆運算的方式對輸入的加密數(shù)據(jù)進行解密;
所述輸出加密模塊13進一步用于采用異或和端口重映射的方式對所述掃描鏈邏輯電路11的輸出數(shù)據(jù)進行加密并輸出。
本發(fā)明實施例的加解密可采用端口重映射和異或的方式,在增加邏輯較少的情況下,實現(xiàn)對原始數(shù)據(jù)進行加解密,達到數(shù)據(jù)加擾和防探測功能。
需要說明的是,加解密可采用端口重映射和異或的方式僅是本發(fā)明實施例的一種實現(xiàn)方式,本發(fā)明不限于此,可以采用其他加解密的實現(xiàn)方式。
可選地,所述輸入解密模塊12進一步用于在一個時鐘周期內(nèi)完成解密過程;
所述輸出加密模塊13進一步用于在一個時鐘周期內(nèi)完成加密過程。
本發(fā)明實施例的加解密一個時鐘周期內(nèi)完成,可以減少前后時鐘周期的數(shù)據(jù)疊加而帶來的后期調(diào)試難度。
可選地,所述輸入動態(tài)密鑰模塊14和輸出動態(tài)密鑰模塊15均包括:
兩組寄存器和相應(yīng)的組合電路,用于根據(jù)所述掃描鏈測試電路11的復(fù)位信號使能寄存器內(nèi)部初值后,時鐘信號不斷觸發(fā),實現(xiàn)兩組不整齊的亂序輸出;
異或電路,用于將所述兩組不整齊的亂序輸出進行異或處理并相應(yīng)地輸出第一動態(tài)密鑰或第二動態(tài)密鑰。
本發(fā)明實施例采用兩組寄存器和組合邏輯來輸出動態(tài)變化的密鑰,從而加強了加密算法對輸入全0攻擊和復(fù)位攻擊的防護。
需要說明的是,生成動態(tài)變化的密鑰有多種方式,采用采用兩組寄存器和組合邏輯的方式僅是本發(fā)明實施例的一種實現(xiàn)方式,本發(fā)明不限于此,可以采用其他方式生成動態(tài)密鑰。
如圖2所示,本發(fā)明實施例的掃描鏈測試的實現(xiàn)方法,包括:
步驟201,對輸入的加密數(shù)據(jù)進行解密;
步驟202,將解密后的數(shù)據(jù)輸入至掃描鏈邏輯電路進行測試;
步驟203,對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
本發(fā)明實施例通過對掃描鏈測試電路輸入和輸出的數(shù)據(jù)進行解密/加密,實現(xiàn)掃描鏈測試功能正確的同時,也保證了芯片內(nèi)部數(shù)據(jù)的安全。而且,本發(fā)明實施例能更全面的把集成電路所有內(nèi)部數(shù)據(jù)都加入安全保護內(nèi),具有更廣泛的測試覆蓋能力和安全覆蓋能力。
其中,步驟202可包括:將解密后的數(shù)據(jù)移位到掃描鏈邏輯電路的內(nèi)部寄存器的輸入端,將所述內(nèi)部寄存器的響應(yīng)數(shù)據(jù)移位到輸出,捕獲所述響應(yīng)數(shù)據(jù)并輸出。
可選地,所述實現(xiàn)方法還包括:生成動態(tài)變化的第一動態(tài)密鑰;
所述對輸入的加密數(shù)據(jù)進行解密包括:使用所述第一動態(tài)密鑰對所述加密數(shù)據(jù)進行解密;
所述實現(xiàn)方法還包括:生成動態(tài)變化的第二動態(tài)密鑰;
所述對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出包括:使用所述第二動態(tài)密鑰對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
本發(fā)明實施例通過采用動態(tài)密鑰方式,增加了破解難度。
可選地,所述對輸入的加密數(shù)據(jù)進行解密包括:采用對端口重映射進行逆運算和對異或進行逆運算的方式對輸入的加密數(shù)據(jù)進行解密;
所述對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出包括:采用異或和端口重映射的方式對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出。
本發(fā)明實施例的加解密可采用端口重映射和異或的方式,在增加邏輯較少的情況下,實現(xiàn)對原始數(shù)據(jù)進行加解密,達到數(shù)據(jù)加擾和防探測功能。
需要說明的是,加解密可采用端口重映射和異或的方式僅是本發(fā)明實施例的一種實現(xiàn)方式,本發(fā)明不限于此,可以采用其他加解密的實現(xiàn)方式。
可選地,所述對輸入的加密數(shù)據(jù)進行解密的步驟中,在一個時鐘周期內(nèi)完成解密過程;
所述對所述掃描鏈邏輯電路的輸出數(shù)據(jù)進行加密并輸出的步驟中,在一個時鐘周期內(nèi)完成加密過程。
本發(fā)明實施例的加解密一個時鐘周期內(nèi)完成,可以減少前后時鐘周期的數(shù)據(jù)疊加而帶來的后期調(diào)試難度。
可選地,所述生成動態(tài)變化的第一動態(tài)密鑰包括:根據(jù)所述掃描鏈測試電路的復(fù)位信號使能內(nèi)部初值后,觸發(fā)時鐘信號得到兩組不整齊的亂序輸出,作為第一亂序輸出,將所述第一亂序輸出進行異或處理得到動態(tài)變化的第一動態(tài)密鑰;
所述生成動態(tài)變化的第二動態(tài)密鑰包括:根據(jù)所述掃描鏈測試電路的復(fù)位信號使能內(nèi)部初值后,觸發(fā)時鐘信號得到兩組不整齊的亂序輸出,作為第二亂序輸出,將所述第二亂序輸出進行異或處理得到動態(tài)變化的第二動態(tài)密鑰。
本發(fā)明實施例通過將兩組不整齊的亂序輸出進行異或得到動態(tài)變化的密鑰,從而加強了加密算法對輸入全0攻擊和復(fù)位攻擊的防護。
需要說明的是,生成動態(tài)變化的密鑰有多種方式,采用采用兩組寄存器和組合邏輯的方式僅是本發(fā)明實施例的一種實現(xiàn)方式,本發(fā)明不限于此,可以采用其他方式生成動態(tài)密鑰。
如圖3所示,為本發(fā)明應(yīng)用實例的掃描鏈測試裝置應(yīng)用框圖,其中,芯片部分為本發(fā)明實施例的掃描鏈測試裝置,芯片的集成電路在第三方測試機臺上進行DFT掃描鏈形式的生產(chǎn)測試,第三方測試機臺通過其數(shù)據(jù)輸入通道將測試數(shù)據(jù)傳送到芯片的輸入引腳,由于第三方測試機臺輸入的數(shù)據(jù)是芯片設(shè)計方以加密形式提供,在芯片得到輸入數(shù)據(jù)后,首先經(jīng)過本發(fā)明實施例的輸入數(shù)據(jù)解密模塊,解密后的明文形式的真實數(shù)據(jù)在芯片內(nèi)部進行掃描鏈測試。在掃描鏈測試后,芯片將響應(yīng)數(shù)據(jù)輸出時,通過本發(fā)明實施例的輸出數(shù)據(jù)加密模塊,將掃描鏈測試結(jié)果加密后再通過輸出引腳,傳遞到第三方測試機臺的數(shù)據(jù)檢測通道,并與期望的輸出數(shù)據(jù)進行對比是否一致。本發(fā)明實施例的掃描鏈測試裝置,為掃描鏈數(shù)據(jù)提供了安全機制,實現(xiàn)在芯片內(nèi)部明文形式進行測試,在芯片外部均以密文形式的保護功能。
如圖4所示,為本發(fā)明應(yīng)用實例的掃描鏈測試裝置的組成示意圖,該裝置包括五個部分,分別是輸入動態(tài)密鑰模塊、輸入解密模塊、掃描鏈邏輯電路、輸出動態(tài)密鑰模塊、輸出加密模塊。本應(yīng)用實例中以掃描鏈測試電路為五組測試數(shù)據(jù)輸入和五組測試數(shù)據(jù)輸出為例,其中裝置輸入信號包括測試控制信號scan_clk、scan_rst、scan_mode、scan_en、scan_comp和測試數(shù)據(jù)輸入信號si[0]、si[1]、si[2]、si[3]、si[4],裝置輸出信號包括so[0]、so[1]、so[2]、so[3]、so[4]。
輸入信號介紹:
scan_clk是掃描鏈測試電路的時鐘信號,用于驅(qū)動掃描鏈測試電路中寄存器等時序類器件。
scan_rst是掃描鏈測試電路的復(fù)位信號,用于復(fù)位掃描鏈測試電路中寄存器等時序類器件。
scan_mode是掃描鏈測試電路的模式選擇信號,用于將集成電路狀態(tài)切換到掃描鏈測試模式。
scan_en是掃描鏈測試電路的測試數(shù)據(jù)選擇信號,用于設(shè)置掃描鏈上器件對測試數(shù)據(jù)和功能數(shù)據(jù)之間的選擇。
si[0]是掃描鏈測試電路的數(shù)據(jù)輸入端口,第一路數(shù)據(jù)的輸入端口。
si[1]是掃描鏈測試電路的數(shù)據(jù)輸入端口,第二路數(shù)據(jù)的輸入端口。
si[2]是掃描鏈測試電路的數(shù)據(jù)輸入端口,第三路數(shù)據(jù)的輸入端口。
si[3]是掃描鏈測試電路的數(shù)據(jù)輸入端口,第四路數(shù)據(jù)的輸入端口。
si[4]是掃描鏈測試電路的數(shù)據(jù)輸入端口,第五路數(shù)據(jù)的輸入端口。
輸出信號介紹:
so[0]是掃描鏈測試電路的數(shù)據(jù)輸出端口,第一路數(shù)據(jù)的輸出端口。
so[1]是掃描鏈測試電路的數(shù)據(jù)輸出端口,第二路數(shù)據(jù)的輸出端口。
so[2]是掃描鏈測試電路的數(shù)據(jù)輸出端口,第三路數(shù)據(jù)的輸出端口。
so[3]是掃描鏈測試電路的數(shù)據(jù)輸出端口,第四路數(shù)據(jù)的輸出端口。
so[4]是掃描鏈測試電路的數(shù)據(jù)輸出端口,第五路數(shù)據(jù)的輸出端口。
掃描鏈邏輯電路用于實現(xiàn)傳統(tǒng)的掃描鏈測試功能,在外部信號scan_mode和scan_en控制下,可以在功能模式和測試模式之間切換。在測試模式下工作時,基于掃描原理實現(xiàn)對內(nèi)部寄存器串聯(lián)成鏈,實現(xiàn)移位功能和捕獲功能。移位功能階段是將輸入數(shù)據(jù)移位到內(nèi)部寄存器的輸入端和內(nèi)部寄存器的響應(yīng)數(shù)據(jù)移位到輸出,捕獲階段是將輸入數(shù)據(jù)移位到內(nèi)部寄存器的輸入端后觸發(fā)一次捕獲操作從而得到響應(yīng)數(shù)據(jù)。
輸入解密模塊是本裝置的安全防護部分,用于實現(xiàn)對輸入的加密數(shù)據(jù)進行解密,將解密后的真實數(shù)據(jù)輸送到后續(xù)掃描鏈邏輯電路中進行掃描鏈的工作。由于芯片設(shè)計方將測試數(shù)據(jù)加密后,才交予第三方測試方,所以測試機臺通過引腳輸入的數(shù)據(jù)都是加密的,不能直接用于掃描鏈邏輯中。通過輸入解密模塊來實現(xiàn)密文到明文數(shù)據(jù)的轉(zhuǎn)換,既保證了掃描鏈正確工作,也對交予第三方的數(shù)據(jù)采用了加密形式的安全保護。
輸入解密模塊的具體實現(xiàn)電路,和芯片方提供給第三方測試數(shù)據(jù)的加密算法是對應(yīng)關(guān)系,實現(xiàn)對其加密算法的一個解密過程。由于考慮掃描鏈測試后期需要調(diào)試,加解密算法在一個時鐘周期內(nèi)完成,以減少前后時鐘周期的數(shù)據(jù)疊加而帶來的調(diào)試難度。本發(fā)明應(yīng)用實例中,以芯片設(shè)計方采用異或和端口重映射的加密算法為例,所以輸入解密電路的硬件邏輯為先對端口重映射進行逆運算,再對異或逆運算的方式。如圖5所示。
輸入動態(tài)密鑰模塊,實現(xiàn)本裝置的輸入解密模塊中密鑰的動態(tài)化。如圖6所示,輸入動態(tài)密鑰模塊輸出輸入解密模塊中使用到的動態(tài)密鑰,原理是采用兩組寄存器和相應(yīng)組合電路分別實現(xiàn)不整齊的亂序輸出,兩組亂序輸出再做異或操作,來保證亂序輸出的周期更長,這樣實現(xiàn)密鑰在測試過程中動態(tài)變化,輸入動態(tài)密鑰來防止外界輸入全0時的探測攻擊。
輸出動態(tài)密鑰模塊,實現(xiàn)本裝置的輸出加密模塊中密鑰的動態(tài)化。如圖7所示,本模塊跟輸入動態(tài)密鑰模塊結(jié)構(gòu)類似,但寄存器的初始值不一樣,動態(tài)輸出的密鑰也完全不一樣。原理也是采用兩組寄存器和相應(yīng)組合電路分別實現(xiàn)不整齊的亂序輸出,兩組亂序輸出再做異或操作,來保證亂序輸出的周期更長,這樣實現(xiàn)密鑰在測試過程中動態(tài)變化。由于內(nèi)部寄存器初始態(tài)大多數(shù)為0的情況,外界的復(fù)位攻擊對固定密鑰下可以很容易破解,而采用上述更安全的動態(tài)密鑰,將避免復(fù)位攻擊的漏洞。
輸出加密模塊也是本裝置的安全防護部分,用于實現(xiàn)對輸出數(shù)據(jù)先進行加密,然后才通過引腳輸出。由于從掃描鏈邏輯電路中傳送過來的數(shù)據(jù),都是內(nèi)部真實數(shù)據(jù),如果直接輸出到外部引腳,那么真實數(shù)據(jù)有可能被外部探測。通過輸出加密模塊將明文形式的真實數(shù)據(jù)加密,再輸出到芯片引腳,這樣隔離了內(nèi)部真實數(shù)據(jù)和外部測試機,從而提升了芯片數(shù)據(jù)的安全性。
輸出加密模塊的具體實現(xiàn)電路,和芯片方提供給第三方響應(yīng)數(shù)據(jù)的加密算法是對應(yīng)關(guān)系,都是實現(xiàn)相同加密算法的過程,前者對芯片測試時實測響應(yīng)數(shù)據(jù)的加密,后者是對芯片設(shè)計方期望響應(yīng)數(shù)據(jù)的加密,同時輸出到測試機臺進行對比對錯。輸出加密模塊同樣考慮掃描鏈測試后期需要調(diào)試,加解密算法在一個時鐘周期內(nèi)完成,以減少前后時鐘周期的數(shù)據(jù)疊加而帶來的調(diào)試難度。本發(fā)明的應(yīng)用中采用異或和端口重映射的加密算法,所以輸出加密電路的硬件邏輯為先進行異或運算,再采用端口重映射運算的方式,結(jié)果連接到輸出引腳。如圖8所示。
下面針對圖3~圖8說明本應(yīng)用實例中掃描鏈測試過程:
1、芯片設(shè)計方對掃描鏈電路硬件電路確定后,將掃描鏈測試電路的測試數(shù)據(jù)和預(yù)期響應(yīng)數(shù)據(jù),在確定輸入密鑰和輸出密鑰初始值后,利用動態(tài)密鑰原理,分別采用端口重映射和異或的加密上述兩組測試數(shù)據(jù)方式后,將兩套測試數(shù)據(jù)提供第三方測試機臺。
2、第三方測試機臺將掃描鏈控制信號連接到掃描鏈測試的芯片,使能測試模式信號scan_mode,提供測試時鐘scan_clk、測試復(fù)位scan_rst、測試數(shù)據(jù)控制信號scan_en。
3、在掃描鏈控制信號有效時,輸入密鑰模塊每個scan_clk會動態(tài)變化一次密鑰,動態(tài)密鑰和加密的測試數(shù)據(jù)不斷傳遞到輸入解密模塊,該模塊對密文測試數(shù)據(jù)進行端口重映射和異或方式下解密。
4、經(jīng)過輸入解密模塊后的測試數(shù)據(jù),已經(jīng)是傳遞到芯片內(nèi)部的真實測試數(shù)據(jù),進入掃描鏈邏輯電路。
5、掃描鏈邏輯電路會完成輸入測試數(shù)據(jù)的移位階段,觸發(fā)捕獲階段以便進行捕獲測試的響應(yīng)數(shù)據(jù),進而將響應(yīng)數(shù)據(jù)再依次移位并傳送到輸出加密模塊。
6、輸出密鑰模塊也是每個scan_clk會動態(tài)變化一次密鑰,動態(tài)輸出加密模塊得到密鑰和掃描鏈的真實響應(yīng)數(shù)據(jù),進行端口重映射和異或加密后,通過輸出引腳到第三方測試機臺。第三方測試機臺根據(jù)芯片輸出加密后的實測響應(yīng)數(shù)據(jù)和芯片設(shè)計方提供加密后的預(yù)期響應(yīng)數(shù)據(jù),進行對比,如果所有數(shù)據(jù)均一致,表示該芯片生產(chǎn)測試無缺陷,后則表示所測試芯片有生產(chǎn)缺陷。
本發(fā)明應(yīng)用實例通過Verilog語言在芯片設(shè)計中實現(xiàn)所述功能,通過仿真得到如圖9所示結(jié)果,在掃描鏈控制信號scan_clk、scan_rst、scan_mode、scan_en正確提供輸入的情況下,外部輸入的加密數(shù)據(jù)si[0]、si[1]、si[2]、si[3]、si[4],進過輸入解密模塊后將真實數(shù)據(jù)si_p[0]、si_p[1]、si_p[2]、si_p[3]、si_p[4]進入掃描鏈測試邏輯,掃描響應(yīng)結(jié)果so_p[0]、so_p[1]、so_p[2]、so_p[3]、so_p[4]數(shù)據(jù)通過輸出加密模塊后得到so[0]、so[1]、so[2]、so[3]、so[4],輸出到外部引腳。
所述裝置可以保證不影響原有傳統(tǒng)的掃描鏈測試邏輯的正常工作,并且在輸入解密模塊和輸出加密模塊的安全保證下,實現(xiàn)芯片內(nèi)部真實數(shù)據(jù)和外部加密數(shù)據(jù)的隔離,避免芯片內(nèi)部數(shù)據(jù)被第三方探測。從圖9可以看出當復(fù)位攻擊內(nèi)部連續(xù)多個初始值為0的寄存器時,動態(tài)密鑰將連續(xù)0序列的真實數(shù)據(jù)加密成變化的數(shù)據(jù),有效地應(yīng)對復(fù)位攻擊,避免內(nèi)部寄存器真實數(shù)據(jù)泄露的危險。另外所述安全掃描鏈測試電路規(guī)模增加不大,電路時序影響較小,應(yīng)用場景要求小,在芯片實際測試中功能正確。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明實施例的模塊或步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明實施例不限制于任何特定的硬件和軟件結(jié)合。
雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準。