范偉力,胡楊川,朱 翔
(1.成都三零嘉微電子有限公司,四川 成都 610041;2.保密通信重點(diǎn)實(shí)驗(yàn)室,四川 成都 610041)
當(dāng)前,信息技術(shù)已經(jīng)逐漸被應(yīng)用于社會(huì)各個(gè)領(lǐng)域,深刻影響著人類(lèi)的各項(xiàng)活動(dòng),也給信息安全帶來(lái)了嚴(yán)峻挑戰(zhàn)。安全芯片作為信息系統(tǒng)安全性的基礎(chǔ)保障手段,是確保信息系統(tǒng)安全性的基礎(chǔ)元器件和構(gòu)建安全環(huán)境的重要支撐。正因?yàn)槿绱耍踩酒陨淼陌踩珜?duì)整個(gè)信息系統(tǒng)至關(guān)重要,也一直是相關(guān)研究人員關(guān)注的焦點(diǎn)。目前,針對(duì)安全芯片的各種攻擊方法和手段在研究中不斷被提出和深入發(fā)展,對(duì)安全芯片的威脅越來(lái)越大,因此對(duì)安全芯片防護(hù)技術(shù)的研究任重道遠(yuǎn)[1]。
根據(jù)對(duì)安全芯片攻擊侵入程度的不同,攻擊手段可以分為侵入式攻擊(Invasive Attacks)、非侵入式攻擊(Non-invasive Attacks)和半侵入式攻擊(Semi-Invasive Attacks)3 種[2]。
針對(duì)以上3 種攻擊,常見(jiàn)安全芯片中均設(shè)計(jì)有相應(yīng)的防護(hù)電路,盡可能提高攻擊者的攻擊難度和時(shí)間成本。為提升高安全領(lǐng)域中安全芯片的防護(hù)能力,可在安全芯片中加入自毀電路設(shè)計(jì),在安全芯片離開(kāi)安全環(huán)境處于失控狀態(tài)一定時(shí)間后啟用自毀電路,以物理方式徹底破壞芯片中的關(guān)鍵電路和敏感數(shù)據(jù),從而實(shí)現(xiàn)更高的安全性。
本文提出了一種用于安全芯片的無(wú)線(xiàn)自毀電路,可在安全芯片離開(kāi)安全可控的工作環(huán)境后,自動(dòng)啟動(dòng)安全芯片的物理自毀操作。
圖1 是安全芯片的無(wú)線(xiàn)自毀原理示意圖。安全芯片上集成有無(wú)線(xiàn)自毀電路和片上炸藥。無(wú)線(xiàn)自毀電路的天線(xiàn)集成在芯片封裝管殼上。安全芯片無(wú)線(xiàn)管控端部署在芯片所在的主機(jī)殼內(nèi)或可通過(guò)電磁波覆蓋芯片的鄰近區(qū)域。
正常情況下,安全芯片處于無(wú)線(xiàn)管控端電磁波覆蓋范圍內(nèi),其無(wú)線(xiàn)自毀電路周期性地自動(dòng)和無(wú)線(xiàn)管控端進(jìn)行認(rèn)證。當(dāng)安全芯片離開(kāi)管控區(qū)域后,無(wú)線(xiàn)管控電路因無(wú)法完成認(rèn)證,判定安全芯片已失控并輸出自毀信號(hào)引爆片上炸藥,從而完成安全芯片物理自毀操作。
圖1 安全芯片的無(wú)線(xiàn)自毀原理
安全芯片上的無(wú)線(xiàn)自毀電路和安全芯片無(wú)線(xiàn)管控端之間采用800/900 MHz 射頻信號(hào)通信,無(wú)線(xiàn)信道的物理層和訪(fǎng)問(wèn)控制層參考國(guó)標(biāo)《信息技術(shù)射頻識(shí)別800/900 MHz 空中接口協(xié)議》(GB/T 29768—2013),命令格式為自定義[3]。
圖2 是無(wú)線(xiàn)自毀電路的總體架構(gòu),由控制子電路、調(diào)制/解調(diào)子電路、存儲(chǔ)器、認(rèn)證子電路、隨機(jī)數(shù)子電路、使能狀態(tài)熔絲、時(shí)鐘子電路、上電復(fù)位子電路以及天線(xiàn)等部分組成??刂谱与娐坟?fù)責(zé)控制、調(diào)度其他子電路;調(diào)制/解調(diào)子電路接收射頻信號(hào)完成解調(diào)以及發(fā)送射頻信號(hào)的調(diào)制;存儲(chǔ)器存儲(chǔ)工作需要的配置數(shù)據(jù);認(rèn)證子電路負(fù)責(zé)認(rèn)證數(shù)據(jù)包的解析和封包;隨機(jī)數(shù)子電路在認(rèn)證流程和自毀信號(hào)產(chǎn)生過(guò)程中使用;使能狀態(tài)熔絲用于使能無(wú)線(xiàn)自毀電路;時(shí)鐘子電路和上電復(fù)位子電路產(chǎn)生無(wú)線(xiàn)自毀電路的工作時(shí)鐘和復(fù)位信號(hào)。
圖2 無(wú)線(xiàn)自毀電路總體架構(gòu)
無(wú)線(xiàn)自毀電路的工作流程如圖3 所示。當(dāng)芯片上電后,無(wú)線(xiàn)自毀電路的上電復(fù)位子電路完成全電路的復(fù)位。無(wú)線(xiàn)自毀電路檢查使能狀態(tài)位是否有效,若有效進(jìn)入下一工作流程,且計(jì)時(shí)器開(kāi)始計(jì)時(shí),否則電路停止工作。計(jì)時(shí)器計(jì)滿(mǎn)一定時(shí)間后,無(wú)線(xiàn)自毀電路主動(dòng)發(fā)起和無(wú)線(xiàn)管控端之間的認(rèn)證。若認(rèn)證通過(guò),認(rèn)證失敗計(jì)數(shù)器清零并返回等待計(jì)時(shí)狀態(tài),等待下一次認(rèn)證;若認(rèn)證失敗,認(rèn)證失敗計(jì)數(shù)器加1,并判斷認(rèn)證失敗次數(shù)是否超過(guò)設(shè)定閾值。當(dāng)失敗次數(shù)未超過(guò)設(shè)定閾值,無(wú)線(xiàn)自毀電路返回等待計(jì)時(shí)狀態(tài);否則,輸出自毀信號(hào)。
圖3 無(wú)線(xiàn)自毀電路工作流程
為防止攻擊方關(guān)閉無(wú)線(xiàn)自毀電路使能,使能狀態(tài)位由熔絲實(shí)現(xiàn)。在安全芯片完成密碼資源初裝并放置在正常工作區(qū)域后,再熔斷熔絲激活無(wú)線(xiàn)自毀功能。
按照總體設(shè)計(jì)要求,解調(diào)/調(diào)制子電路應(yīng)支持國(guó)標(biāo)《信息技術(shù)射頻識(shí)別800/900 MHz 空中接口協(xié)議》(GB/T 29768—2013)中規(guī)定的ASK 調(diào)制方式。
解調(diào)/調(diào)制子電路結(jié)構(gòu)如圖4 所示。無(wú)線(xiàn)自毀電路采用反向散射調(diào)制原理返回?cái)?shù)據(jù)到無(wú)線(xiàn)管控端,M1和C1完成調(diào)制功能。MODIN 信號(hào)通過(guò)控制M1的通斷來(lái)控制電容C1是否并聯(lián)至芯片的輸入端。解調(diào)/調(diào)制子電路通過(guò)這種方式改變了芯片的輸入阻抗,達(dá)到反向散射調(diào)制的目的[4]。
C2、C3、C4、C5和D1、D2、D3、D4構(gòu)成的二級(jí)迪克遜電荷泵完成包絡(luò)檢測(cè)功能,R1為電荷泵負(fù)載電阻,檢測(cè)出的包絡(luò)信號(hào)再通過(guò)R2和C6組成的低通濾波器過(guò)濾掉高頻信號(hào)。包絡(luò)信號(hào)經(jīng)過(guò)由C7和M2構(gòu)成的微分器,在包絡(luò)上升時(shí),微分器產(chǎn)生一個(gè)正的階躍,在包絡(luò)下降時(shí)產(chǎn)生負(fù)階躍。經(jīng)過(guò)微分器后的信號(hào)幅度較為穩(wěn)定。這種設(shè)計(jì)不僅使比較器對(duì)信號(hào)強(qiáng)度的變化有很強(qiáng)的適應(yīng)性,而且會(huì)對(duì)不同調(diào)制深度的信號(hào)表現(xiàn)出更好的靈敏度和可靠性。
圖4 調(diào)制/解調(diào)子電路
C0和R0用于調(diào)整天線(xiàn)端口上的阻抗,便于匹配天線(xiàn)。
為滿(mǎn)足國(guó)標(biāo)《信息技術(shù)射頻識(shí)別800/900 MHz空中接口協(xié)議》的物理層定義要求,時(shí)鐘子電路的頻率典型值設(shè)計(jì)為1.28 MHz,且要求頻率偏差小于±10%。
時(shí)鐘子電路結(jié)構(gòu)如圖5 所示。基于功耗和精度的折中考慮,時(shí)鐘子電路采用電流源控制的環(huán)形振蕩器結(jié)構(gòu),通過(guò)調(diào)整電流源的電流大小和溫度系數(shù),達(dá)到降低時(shí)鐘子電路功耗,并提升時(shí)鐘精度的目的。
上電復(fù)位子電路結(jié)構(gòu)如圖6 所示。上電過(guò)程中,隨著電源的升高,節(jié)點(diǎn)A 與節(jié)點(diǎn)B 的電壓隨之升高。節(jié)點(diǎn)B 的電壓VB經(jīng)過(guò)反相器的延遲輸出后,產(chǎn)生節(jié)點(diǎn)D 的電壓VD。VD與電源之間存在壓差,且該壓差也是晶體管MP10的Vgs。當(dāng)該Vgs足夠大時(shí),晶體管MP10導(dǎo)通。電源通過(guò)導(dǎo)通的晶體管MP10為電容C2充電。當(dāng)電容C2上的電壓VE不斷增大時(shí),晶體管MN6開(kāi)始導(dǎo)通,使得輸出電壓VF降低。由反相器反向后,電路的輸出端產(chǎn)生了上電復(fù)位信號(hào)的上升沿。充電結(jié)束后,電容C2通過(guò)MN5放電,調(diào)節(jié)MN5的尺寸,使電容C2放電的速度比充電慢。當(dāng)電容C2上的電壓逐漸降低時(shí),晶體管MN6進(jìn)入截止?fàn)顟B(tài),輸出電壓VF升高,此時(shí)電路的輸出端得到了上電復(fù)位信號(hào)的下降沿。
圖5 時(shí)鐘子電路
圖6 上電復(fù)位子電路
掉電過(guò)程中,隨著VDD 電壓的降低,A 點(diǎn)和B點(diǎn)電壓被拉低,B點(diǎn)較A點(diǎn)之前變低。經(jīng)過(guò)反相器后,C 點(diǎn)較D 點(diǎn)之前變高。當(dāng)D 點(diǎn)變高時(shí),E 點(diǎn)上的電容C2被放電。當(dāng)VDD 達(dá)到地電位時(shí),C 點(diǎn)和D 點(diǎn)被PMOS 鉗位到Vthp電平,E 點(diǎn)電壓被PMOS 鉗位到2Vthp電平。由于MOS 器件的亞閾值導(dǎo)電特性,E 點(diǎn)電壓還將進(jìn)一步降低,直至達(dá)到地電位。
隨機(jī)數(shù)子電路結(jié)構(gòu)如圖7 所示。隨機(jī)數(shù)產(chǎn)生采用振蕩器采樣原理,高頻時(shí)鐘使用已有的1.28 MHz時(shí)鐘,在低頻振蕩器中引入電阻熱噪聲生成帶噪聲的低頻時(shí)鐘[5]。使用低頻時(shí)鐘對(duì)高頻時(shí)鐘進(jìn)行采樣產(chǎn)生隨機(jī)數(shù),低頻時(shí)鐘頻率約30 kb/s,高/低頻時(shí)鐘比約40。
認(rèn)證子電路的認(rèn)證流程如圖8 所示。當(dāng)無(wú)線(xiàn)自毀電路上電復(fù)位完成后,由認(rèn)證子電路發(fā)起認(rèn)證,發(fā)送自身ID和隨機(jī)數(shù)RN給管控設(shè)備。管控設(shè)備用根密鑰RK和無(wú)線(xiàn)自毀電路ID產(chǎn)生對(duì)應(yīng)認(rèn)證密鑰AK,管控設(shè)備使用AK加密RN,并將加密結(jié)果EAK(RN)發(fā)送給無(wú)線(xiàn)自毀電路。無(wú)線(xiàn)自毀電路收到管控設(shè)備發(fā)來(lái)的密文后,使用內(nèi)置的認(rèn)證密鑰AK進(jìn)行解密,得到RN’。無(wú)線(xiàn)自毀電路比較RN和RN’,若二者一致則認(rèn)證通過(guò),否則認(rèn)證失敗。認(rèn)證過(guò)程采用SM7 輕量級(jí)分組算法。
圖7 隨機(jī)數(shù)子電路
圖8 認(rèn)證子電路認(rèn)證流程
圖9 為控制電路結(jié)構(gòu)圖,由有限狀態(tài)機(jī)、命令處理、命令返回、認(rèn)證計(jì)數(shù)和自毀信號(hào)輸出組成。有限狀態(tài)機(jī)實(shí)現(xiàn)電路工作狀態(tài)控制;命令處理模塊完成空中接口命令的解析;命令返回模塊完成空中接口返回?cái)?shù)據(jù)的發(fā)送;認(rèn)證計(jì)數(shù)模塊完成認(rèn)證失敗計(jì)數(shù),其溢出閾值可由用戶(hù)根據(jù)安全策略進(jìn)行配置;自毀信號(hào)輸出模塊用于產(chǎn)生觸發(fā)芯片自毀的控制信號(hào)。
圖9 控制電路
為防止攻擊者切斷自毀信號(hào)線(xiàn)破壞安全芯片的自毀功能,自毀信號(hào)采用9 bit 總線(xiàn)。產(chǎn)生原理如下:由隨機(jī)數(shù)子電路產(chǎn)生8 bit 隨機(jī)數(shù)RNG[7:0]對(duì)其進(jìn)行按位異或運(yùn)算得到結(jié)果^RNG[7:0];當(dāng)未檢測(cè)到安全芯片失控時(shí),輸出9 bit 自毀控制信號(hào)EN_SD[8:0]={^RNG[7:0],RNG[7:0]};當(dāng)檢測(cè)到安全芯片失控時(shí),輸出9 bit 自毀控制信號(hào)EN_SD[8:0]={~(^RNG[7:0]),RNG[7:0]}。自毀引爆電路接收到EN_SD[8:0]后,對(duì)其進(jìn)行按位異或得到結(jié)果SD_RESULT。當(dāng)SD_RESULT=1 時(shí),自毀引爆電路啟動(dòng)。在后端設(shè)計(jì)時(shí),使用底層金屬走線(xiàn)連接EN_SD[8:0]信號(hào),并進(jìn)行亂序處理。
無(wú)線(xiàn)自毀電路采用SMIC 130 nm CMOS 工藝實(shí)現(xiàn),使用華大九天的ALPS 仿真器對(duì)全電路網(wǎng)表進(jìn)行晶體管級(jí)仿真。圖10 是空中接口調(diào)制/解調(diào)數(shù)據(jù)波形,可見(jiàn)一次認(rèn)證流程耗時(shí)約1 ms。
圖11 是自毀信號(hào)輸出波形,波形從上到下依次為自毀信號(hào)總線(xiàn)值和9 根輸出線(xiàn)的波形。當(dāng)連續(xù)認(rèn)證失敗次數(shù)超過(guò)設(shè)定閾值時(shí),自毀信號(hào)輸出值變?yōu)?5C 和0B9,其按位異或結(jié)果均為1,代表自毀信號(hào)有效。
圖10 空中接口調(diào)制/解調(diào)數(shù)據(jù)波形
圖11 自毀信號(hào)輸出波形
無(wú)線(xiàn)自毀電路的版圖采用SMIC 130 nm CMOS工藝實(shí)現(xiàn),版圖面積約為840 μm×900 μm,如圖12 所示。版圖中,模擬部分位于左側(cè)位置,數(shù)字部分位于右側(cè)位置,存儲(chǔ)器位于右上角。左上角和左下角為兩個(gè)天線(xiàn)PAD,右側(cè)從上到下為電源、地、自毀信號(hào)輸出和使能信號(hào),其中自毀信號(hào)采用亂序排布,并使用最底層金屬M(fèi)1輸出。無(wú)線(xiàn)自毀電路采用四層金屬布線(xiàn),建議安全芯片在集成無(wú)線(xiàn)自毀電路時(shí),在其上部覆蓋頂層金屬進(jìn)行保護(hù)。
圖12 無(wú)線(xiàn)自毀電路版圖
本文提出的無(wú)線(xiàn)自毀電路,采用800/900 MHz射頻信號(hào)實(shí)現(xiàn)和無(wú)線(xiàn)管控端之間的通信,無(wú)線(xiàn)信道的物理層和訪(fǎng)問(wèn)控制層參考國(guó)標(biāo)《信息技術(shù)射頻識(shí)別800/900 MHz 空中接口協(xié)議》(GB/T 29768—2013)。無(wú)線(xiàn)自毀電路可在安全芯片離開(kāi)無(wú)線(xiàn)管控端覆蓋的電磁環(huán)境后,自動(dòng)啟動(dòng)安全芯片的物理自毀操作。無(wú)線(xiàn)自毀電路已采用SMIC 130 nm CMOS工藝實(shí)現(xiàn),并可根據(jù)安全芯片的工藝需要進(jìn)行工藝遷移。該電路在安全芯片處于失控情況下可引爆片上炸藥,以物理方式徹底破壞安全芯片中的關(guān)鍵電路和敏感數(shù)據(jù),大大提升了安全芯片的安全性。