王晨旭,閆 濤,宮月紅,羅 敏,曾 瑯,張德明,徐天亮
(1.哈爾濱工業(yè)大學(威海) 信息科學與工程學院,山東 威海 264209;2.山東交通學院 航運學院,山東 威海 264200;3.北京航空航天大學 集成電路科學與工程學院,北京 100191)
隨著物聯(lián)網(wǎng)(Internet of things, IoT)和傳感器網(wǎng)絡技術的快速發(fā)展,物聯(lián)網(wǎng)嵌入式設備的集成度越來越高,對整體功耗的限制也越發(fā)嚴格。由于物聯(lián)網(wǎng)通信中大量信息不斷且頻繁地傳輸,通信安全問題愈發(fā)受到人們的重視[1]。目前市場上的嵌入式設備主要使用輕量級密碼算法(Lightweight cipher algorithm,LWCA)電路對傳輸信息進行加密。而隨著半導體工藝的快速發(fā)展和功耗攻擊技術的進步,傳統(tǒng)的防護方法如加入掩碼或提升算法復雜度[2-3]、使用防護基本單元[4-5]等方法均會帶來面積和功耗上的巨大損耗,已經(jīng)不能滿足愈發(fā)嚴格的功耗和安全要求,市場上迫切需要一種兼具低功耗和高安全性的電路解決方案。針對當前現(xiàn)狀和存在的問題,本文提出了一種MTJ/CMOS混合結構查找表電路,該結構通過與感測放大器邏輯(Sense amplifier based logic,SABL)元件配合可以實現(xiàn)完整的PRESENT-80加密算法電路。本文使用Cadence軟件對設計電路進行仿真并提取電路的功耗信息進行了功耗分析攻擊以研究其抗攻擊性能。在研究過程中還使用相同的工藝庫搭建了傳統(tǒng)的CMOS單軌和SABL雙軌結構的PRESENT-80電路來實現(xiàn)對比分析,通過一些評估參數(shù)的計算來對實驗結果進行進一步的量化分析,探究該電路是否具備低功耗特性。
MTJ由于其良好的電學特性而在研究界引起了廣泛的關注,它是由兩個鐵磁(FM,例如CoFeB)層組成的納米結構,鐵磁層之間由氧化物阻擋層(例如,MgO)隔開,如圖1(a)所示[6]。鐵磁層分為參考層和自由層,參考層的磁化方向是固定的,而自由層的磁化方向可以在平行(P)和反平行(AP)方向之間切換,其過程如圖1(b)所示。通過研究發(fā)現(xiàn),當MTJ的鐵磁層處于反平行狀態(tài)時的電阻值(RAP)要明顯大于處于平行狀態(tài)的電阻值(RP),衡量這種電阻特性的參數(shù)稱為隧道磁阻(RTM)。RTM的具體定義為(RAP-RP)/RP[7]。
本文中進行電路設計和仿真使用是基于開源網(wǎng)站Spinmodel library上提供的STT PMA MTJ仿真模型[8],其各項特性參數(shù)見表1。
表1 MTJ模型的各項參數(shù)Tab.1 MTJ model parameters
SABL是一種經(jīng)典的抗DPA邏輯結構,該結構由交叉耦合的反相器和差分下拉網(wǎng)絡(Differential pull down network,DPDN)組成[9-10]。SABL通用門電路和AND-NAND門電路如圖2所示。整個電路由時鐘信號clk驅(qū)動,當時鐘電平為“0”時,兩個輸出信號端子都被預充為高電平;當時鐘電平為“1”時,兩個信號端子之一會根據(jù)輸入的不同情況被置為低電平。恒定導通的晶體管M1通過用作亞閾值電流的路徑來防止浮置節(jié)點,并保證所有內(nèi)部節(jié)點都有放電通路[11-12]。
圖2 SABL與非門示意圖Fig.2 NAND gate diagram of SABL
PRESENT是一種輕量級分組加密算法,明文輸入為64 bit,密鑰長度為80 bit或者128 bit,密文輸出為64 bit。其加密過程包括31個常規(guī)循環(huán)和僅由密鑰混合步驟組成的最終循環(huán)[13],該算法的加密過程如圖3所示。
圖3 PRESENT加密過程Fig.3 PRESENT encryption process
圖中每輪循環(huán)過程需要經(jīng)歷S盒變換、P置換、輪密鑰加變換3種數(shù)據(jù)處理過程,且在最后一輪迭代完成后還需要再與輪密鑰進行一次異或運算才能得到最終的密文。PRESENT被廣泛應用于低功耗電池供電的嵌入式設備中以進行加解密操作。
對SABL邏輯所述的交叉耦合反相器結構進行改進,得到的電路結構如圖4所示,改進后電路的兩輸出端各加入了一個反向器。在時鐘為“0”時輸出信號將被置為“0”,這意味著在邏輯組件級聯(lián)的計算階段,下一級組件的DPDN中的NMOS晶體管不會被GND意外地導通。同時,邏輯功能和差分輸出不會受到影響,這種信號傳輸機制稱為多米諾機制[14]。
圖4 改進后的交叉耦合反相器結構Fig.4 Improved cross-coupled inverter structure
S-box電路是對被加密數(shù)據(jù)進行非線性變換的基本單元。每個S-box電路有4位輸入和4位輸出,其對應關系見表2。
表2 PRESENT-80 S-box輸入輸出關系Tab.2 Input and output relationship of PRESENT-80 S-box
本文提出了一種基于MTJ/CMOS的LUT(look up table)電路結構,在該結構的設計中使用了多米諾機制,從而避免在與其他組件進行級聯(lián)時信號邏輯發(fā)生錯誤。基于該結構設計的互補四輸入的LUT電路如圖5所示,該電路在工作開始之前,需要預先通過寫入電路在MTJ中寫入指定的數(shù)據(jù)。在電路工作時,會通過輸入選擇信號來定位到LUT中相應MTJ中存儲的數(shù)據(jù),并通過圖4所示的多米諾機制的交叉耦合反相器將數(shù)據(jù)讀取出來。與傳統(tǒng)的SRAM等存儲電路相比,將MTJ作為存儲單元主要有兩大優(yōu)勢。首先,使用傳統(tǒng)方式實現(xiàn)S-box電路得到的電路會比較復雜,靜態(tài)功耗大。而MTJ在工作時的靜態(tài)電流幾乎為零,因此使用MTJ進行設計能夠大大降低了電路的功耗。其次,MTJ是性能良好的非易失器件,在掉電的情況下其存儲的信息也能長時間的保存,這樣的特性恰恰與S-box電路相契合,因為非線性變換的輸入與輸出關系是固定的,數(shù)據(jù)寫入后就不需要再被改寫或者頻繁刷新。如果使用SRAM一類的傳統(tǒng)存儲單元設計電路,則每次給電路通電時都必須刷新數(shù)據(jù)從而帶來額外的功耗。
圖5 基于MTJ/CMOS的查找表電路Fig.5 Look-up table circuit based on MTJ/CMOS
Kumar等[15]提出了一種使用基于混合MTJ/CMOS內(nèi)存中邏輯LUT的電路實現(xiàn)PRESENT-80 S-box電路的方法,PRESENT-80 S-box電路由4個的LUT電路組成,如圖6所示,表3中顯示了每個LUT中以MTJ編寫的內(nèi)容,該方法適用于低功耗硬件設計[15-17]。然而,文獻[15]中只實現(xiàn)了一輪加密過程,沒有對密鑰更新和電路級聯(lián)問題給出明確的解決方案。針對這一問題,本文提出的電路結構可以與滿足多米諾機制的標準SABL邏輯單元實現(xiàn)級聯(lián),很好的解決了這一問題,進而可以實現(xiàn)完整的加密電路設計。對于加密算法而言,滿足此級聯(lián)連接非常重要,因為由于整個算法中需要多次加密,數(shù)據(jù)會參照時鐘進行頻繁的迭代,因此S-box與其他邏輯單元之間的級聯(lián)連接是必須的。
表3 查找表電路中各MTJ存儲數(shù)據(jù)Tab.3 MTJ stored data in look-up table circuit
圖6 PRESENT-80雙軌S-box電路框圖Fig.6 Block diagram of PRESENT-80 dual-rail S-box circuit
參考文獻[15]中的結構用本文提出的查找表電路設計了S-box電路?;赟MIC 40 nm CMOS工藝和MTJ仿真模型在Cadence Spectre模擬器中對S-box電路進行功能仿真。在仿真過程中,從選擇信號端輸入由0x0到0xF的多米諾機制激勵,最終獲得的仿真結果如圖7所示。分析圖像可以看出當時鐘為“0”時,所有信號均被驅(qū)動為“0”。相反,當時鐘為“1”時,信號代表的邏輯值對應關系與表2完全一致,證明所設計的電路功能是完全正確的。
圖7 MTJ/CMOS S-box電路仿真結果Fig.7 MTJ/CMOS S-box circuit simulation results
圖8顯示了PRESENT-80的一輪加密過程,可以看出除了密鑰輸入部分和S-box(S15~S0)之外,算法的實現(xiàn)還需要大量異或門。標準PRESENT-80算法中的密鑰每輪都會迭代更新,如果使用MTJ/CMOS結構電路實現(xiàn)這些異或門,則會帶來額外的能量損失同時提高被功耗攻擊的風險。因此最終選擇使用滿足多米諾機制SABL異或門來完成該部分的邏輯實現(xiàn)。
圖8 一輪PRESENT-80加密過程框圖Fig.8 Block diagram of a round of PRESENT-80 encryption process
同樣用Cadence Spectre模擬器來模擬PRESENT-80電路的完整工作過程。在仿真過程中為了節(jié)省仿真資源,算法中除去關鍵的輪加密部分電路外的執(zhí)行其他數(shù)據(jù)處理任務的電路使用硬件描述語言建立功能模型的方式代替。在仿真中,原始的明文設置為0x0044003300220011,原始密鑰設置為x0123456789ABCDEF0123。圖9顯示了32輪加密過程中部分密文輸出信號的仿真波形。經(jīng)過檢查該結果與相同輸入情況下標準算法的處理結果完全一致,由此可以證明本文設計的電路可以正確實現(xiàn)PRESENT-80加密算法電路的功能。
圖9 32輪加密過程中部分密文信號的波形Fig.9 Waveform of part of ciphertext signal during 32 rounds of encryption
要驗證本文所設計的電路結構是否具備良好的抗攻擊特性,需要對電路進行功耗攻擊分析測試。學者Kocher[18]最早提出了差分功耗攻擊(Differential power analysis,DPA)的概念。DPA攻擊利用了電路中由晶體管功耗變化引起的功耗波動來分析加密電路信息。通過跟蹤這些波動并分析電路特定部分的功耗就可以獲得加密信息(例如密鑰),同時不會影響設備的任何物理特性[19]。本文選取了一種改進型的差分功耗攻擊模型,即相關性功耗分析攻擊(Correlation power attack, CPA)模型[20],該模型在使用中需要選擇合適的攻擊點測量得到功耗信息矩陣,與假設功耗矩陣進行對比得到它們之間的相關系數(shù),相關系數(shù)最高的便是密鑰值。基于10 000條功耗跡對傳統(tǒng)CMOS單軌PRESENT-80電路進行CPA攻擊,設定的攻擊目標為首輪加密的64 bit密鑰,其真實值為0x0123456789ABCDEF。攻擊過程分16組,每組攻擊4 bit,攻擊的結果如圖10所示,其中左側為攻擊每組密鑰的相關系數(shù)曲線,右側為攻擊第47~44位密鑰過程中相關系數(shù)與功耗跡條數(shù)的關系曲線,其中深色曲線為真實密鑰的相關系數(shù)曲線。結果顯示,真實密鑰被成功破解,且確保攻擊成功所需要的功耗跡條數(shù)在1 000條左右。
圖10 PRESENT-80單軌電路CPA攻擊結果Fig.10 CPA attack results of PRESENT-80 single-rail circuit
使用相同的攻擊模型對本文中所設計的密碼算法電路進行CPA攻擊,其攻擊結果如圖11所示,攻擊得到的首輪密鑰值為0xD1009B00D6009100,攻擊未成功,同時可以看出真實密鑰的相關性一直被很好的隱藏與各猜測密鑰之中且隨著功耗跡數(shù)目的增加相關性變化趨于穩(wěn)定。對比上述結果,可以證明本文中設計的電路結構具有良好的抗攻擊性能。
圖11 MTJ/CMOS PRESENT-80電路CPA攻擊結果Fig.11 CPA attack results of MTJ/CMOS PRESENT-80 circuit
為了便于對邏輯單元的抗功耗攻擊性能進行量化分析,需要統(tǒng)一的衡量指標。目前普遍使用的評估標準主要有如下幾種[5]:
1)歸一化功耗差(Normalized energy deviation,NED)。
(1)
式中,Emax、Emin分別為電路在電路單個周期內(nèi)的功耗的最高值和最低值,定義如下:
2)歸一化標準差(Normalized standard deviation,NSD)。
(2)
3)歸一化電流差(Normalized current deviation,NCD)。
(3)
式中,Cmax、Cmin分別為每個參考周期的峰值電流的最高值和最低值。
圖12 不同電路的工作電流仿真結果Fig.12 Simulation results of power supply current of different circuits
表4 PRESENT-80的CMOS、SABL和MTJ/CMOS電路的評估指標Tab.4 Evaluation indicators of CMOS, SABL, and MTJ/CMOS circuits for PRESENT-80
1)本文提出的混合MTJ/CMOS結構的LUT電路能夠正確實現(xiàn)密碼算法中S-box的功能,并且可以與符合多米諾級聯(lián)機制的SABL電路進行級聯(lián)電路設計。
2)混合MTJ/CMOS結構LUT電路具有良好的電路級防護性能,使用其設計的密碼算法電路能夠抵御10 000條功耗跡的CPA攻擊。
3)在同等工藝條件下,使用混合MTJ/CMOS結構設計的密碼電路相較于傳統(tǒng)的SABL結構電路功耗會有顯著的降低。