魏學(xué)亮 楊明順 馮 丹,2 劉景寧,2 吳 兵 肖仁智 童 薇,2
1(武漢光電國家研究中心(華中科技大學(xué)) 武漢 430074) 2(華中科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 武漢 430074)
近年來,新型非易失存儲器(non-volatile memory, NVM),例如自旋轉(zhuǎn)移矩磁阻式隨機存取存儲器(spin-torque transfer RAM, STT-RAM)[1]、相變存儲器(phase change memory, PCM)[2]、電阻式隨機存取存儲器(resistive RAM, ReRAM)[3],受到來自學(xué)術(shù)界和工業(yè)界越來越多的關(guān)注.相比傳統(tǒng)存儲設(shè)備,例如機械硬盤(hard disk drive, HDD)和固態(tài)硬盤(solid state drive, SSD),NVM具有訪問延遲低、字節(jié)可尋址的優(yōu)點.相比傳統(tǒng)DRAM內(nèi)存,NVM具有存儲密度高、靜態(tài)功耗低、非易失的優(yōu)點.這些優(yōu)點使得NVM可以被放置在內(nèi)存總線上作為持久性內(nèi)存(persistent memory, PM)使用.PM允許應(yīng)用直接通過訪存指令,而不用經(jīng)過傳統(tǒng)存儲棧訪問持久化數(shù)據(jù),從而減少持久化數(shù)據(jù)訪問開銷.
目前使用NVM構(gòu)建高效安全的PM系統(tǒng)依然面臨諸多挑戰(zhàn).首先,PM系統(tǒng)需要保證數(shù)據(jù)的安全性.現(xiàn)有研究工作表明,內(nèi)存系統(tǒng)容易遭受惡意攻擊影響[4-5],例如總線監(jiān)聽、內(nèi)存竊取、重放攻擊.攻擊者可以通過未授權(quán)讀寫操作獲取或篡改內(nèi)存中重要數(shù)據(jù).為防止攻擊者獲取內(nèi)存中的數(shù)據(jù),需要對數(shù)據(jù)進(jìn)行加密.一種被廣泛使用的加密技術(shù)為計數(shù)器模式加密(counter-mode encryption)[6-9].該加密技術(shù)為每個數(shù)據(jù)塊維護(hù)1個加密計數(shù)器,用于計算加密所需的一次性填充數(shù)據(jù)(one-time pad, OTP).為防止攻擊者篡改內(nèi)存中數(shù)據(jù),需要對數(shù)據(jù)進(jìn)行完整性保護(hù).常用的完整性保護(hù)技術(shù)包括在加密計數(shù)器上建立的完整性檢測樹[5,10],以及根據(jù)數(shù)據(jù)塊和計數(shù)器生成的消息鑒別碼(message authentication code, MAC)[5].
其次,PM系統(tǒng)需要解決NVM寫性能和耐久性較差的問題.近期研究工作表明,NVM的寫延遲約為讀延遲的3~8倍[11],并且耐久性僅為107~108次寫操作[12].為了減少寫延遲并提升壽命,位級寫縮減技術(shù)[13-14]被廣泛應(yīng)用于未加密NVM,以減少數(shù)據(jù)寫入NVM時造成的位翻轉(zhuǎn)(即0變1或1變0).然而,由于加密算法的雪崩效應(yīng)[6,8,11,15],這些位級寫縮減技術(shù)不適用于加密NVM.因此,近期研究工作提出選擇重加密策略[6,8],以優(yōu)化加密NVM的寫操作.這類策略將數(shù)據(jù)塊劃分為細(xì)粒度的數(shù)據(jù)片,并為每個數(shù)據(jù)片維護(hù)局部計數(shù)器,用于在數(shù)據(jù)寫回NVM時僅重新加密并寫入被修改的數(shù)據(jù)片.
為解決使用NVM構(gòu)建PM系統(tǒng)的各種挑戰(zhàn),多種元數(shù)據(jù)被引入到PM系統(tǒng)中,例如加密計數(shù)器、完整性檢測樹、MAC、局部計數(shù)器.如果將這些元數(shù)據(jù)獨立存放在NVM中不同區(qū)域,則會顯著增加NVM訪問開銷.例如,從NVM讀取1個數(shù)據(jù)塊時,不僅需要讀取加密計數(shù)器和局部計數(shù)器對數(shù)據(jù)塊解密,還需要讀取完整性檢測樹和MAC進(jìn)行完整性驗證.為加速元數(shù)據(jù)的訪問,許多研究工作在處理器中添加片上元數(shù)據(jù)緩存[7,11].然而,元數(shù)據(jù)緩存只能緩存小部分元數(shù)據(jù).當(dāng)緩存不命中時,依然需要從NVM中讀取元數(shù)據(jù),從而造成額外的NVM訪問開銷.因此,近期研究工作提出各類元數(shù)據(jù)管理方法[7,10,16-17],以減小元數(shù)據(jù)訪問造成的開銷.
然而,我們發(fā)現(xiàn)現(xiàn)有的元數(shù)據(jù)管理方法僅考慮部分元數(shù)據(jù),依然存在較大的元數(shù)據(jù)訪問開銷.例如,MorphCtr[7]未針對寫性能和耐久性相關(guān)元數(shù)據(jù)進(jìn)行優(yōu)化,使得數(shù)據(jù)塊訪問依然需要在關(guān)鍵路徑上等待這些元數(shù)據(jù)的讀取.具體地,當(dāng)其與選擇重加密策略Nacre[8]協(xié)同工作時,我們通過實驗觀察到17.3%的性能開銷和59.6%的額外NVM訪問,并且額外訪問中68.4%為對寫性能和耐久性相關(guān)元數(shù)據(jù)的訪問.此外,我們通過實驗還發(fā)現(xiàn),對于不同應(yīng)用,數(shù)據(jù)塊中不同字節(jié)存在不同修改頻率,并且修改頻率存在一定規(guī)律.然而,現(xiàn)有的選擇重加密策略采用的靜態(tài)數(shù)據(jù)分片策略無法充分利用這些規(guī)律,從而在數(shù)據(jù)塊寫入NVM時造成額外的位翻轉(zhuǎn).
為解決上述問題,本文提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法(coordinated metadata man-agement for secure PM, COTANA).為減少元數(shù)據(jù)訪問開銷,COTANA將相同數(shù)據(jù)塊的寫性能和耐久性相關(guān)的元數(shù)據(jù)與加密計數(shù)器整合在相同元數(shù)據(jù)塊中,使得元數(shù)據(jù)緩存未命中時僅需1次額外的NVM訪問就可以獲取加解密所需的全部元數(shù)據(jù).COTANA基于上述元數(shù)據(jù)塊建立完整性檢測樹,并利用完整性檢測樹優(yōu)化策略[7,10]減小存儲開銷,從而增加元數(shù)據(jù)緩存命中率,進(jìn)而減少額外的NVM訪問.此外,COTANA采用ECC(error-correcting code)內(nèi)存架構(gòu)組織PM,并將MAC存放在ECC芯片中,使MAC訪問可以與數(shù)據(jù)塊訪問并行執(zhí)行,從而避免MAC訪問造成的延遲.為減少寫開銷并提升NVM壽命,我們根據(jù)數(shù)據(jù)塊中字節(jié)修改頻率的規(guī)律設(shè)計一種聚集分片方法.COTANA采用動態(tài)數(shù)據(jù)分片策略,從聚集分片方法和現(xiàn)有的連續(xù)分片方法中動態(tài)地選擇造成位翻轉(zhuǎn)最少的方法,從而減少位翻轉(zhuǎn).
本文的主要貢獻(xiàn)有3個方面:
1) 觀察發(fā)現(xiàn)真實應(yīng)用所修改的數(shù)據(jù)塊中,不同字節(jié)有著不同修改頻率,且修改頻率存在規(guī)律.根據(jù)此規(guī)律提出一種聚集分片方法,以減少位翻轉(zhuǎn).
2) 提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法COTANA,通過精心組織各類元數(shù)據(jù)減少元數(shù)據(jù)訪問開銷,通過動態(tài)數(shù)據(jù)分片策略減少寫開銷并提升NVM壽命.
3) 在Gem5[18]上對COTANA進(jìn)行實驗測試.測試結(jié)果顯示,與采用最新的元數(shù)據(jù)管理方法[7]和選擇重加密策略[8]的系統(tǒng)相比,COTANA最多能提升13.7%的性能,并減少21.3%的位翻轉(zhuǎn).
過去幾十年以來,DRAM一直是計算機系統(tǒng)內(nèi)存的首選.然而,近期DRAM的發(fā)展面臨工藝尺寸難以進(jìn)一步縮小的難題[19].因此,NVM獲得來自學(xué)術(shù)界和工業(yè)界越來越多的關(guān)注.表1列舉了DRAM和典型NVM器件的主要特征對比.NVM有著非易失性以及接近DRAM的讀延遲,但是寫延遲遠(yuǎn)高于讀延遲,并且寫耐久性遠(yuǎn)低于DRAM.因此,NVM可以放置在內(nèi)存總線上作為PM使用,但是需要解決NVM寫延遲高和耐久性差的問題.
Table 1 Comparison of Characteristics Between DRAM and NVM Devices[20]
內(nèi)存系統(tǒng)容易遭受多種惡意攻擊的威脅,導(dǎo)致重要數(shù)據(jù)被攻擊者獲取或篡改[4-5,21].此外,相比易失的DRAM,PM在系統(tǒng)斷電后依然能長時間保存數(shù)據(jù),使得PM系統(tǒng)面臨著更為嚴(yán)峻的安全問題.
本文基于圖1所示的威脅模型研究PM系統(tǒng)的安全問題.該模型已在許多研究工作中被廣泛使用[7-11,16,21-23].在該模型中,處理器為可信計算基(trusted computing base, TCB),即所有處理器片上組件(例如核心內(nèi)的寄存器、緩存、內(nèi)存控制器)均位于安全區(qū)域,無法被攻擊者竊取或篡改.而所有的處理器片外資源均位于非安全區(qū)域.攻擊者可以監(jiān)聽或篡改內(nèi)存總線上傳輸?shù)臄?shù)據(jù),也可以讀取或修改PM中的數(shù)據(jù).本文不考慮推測執(zhí)行攻擊[24]、側(cè)信道攻擊[25]等攻擊方式.這些攻擊方式可以通過現(xiàn)有研究工作提出的方法[24-25]進(jìn)行防御,并且這些研究工作與本文是正交的.
Fig. 1 Threat model圖1 威脅模型
為防止攻擊者從內(nèi)存總線或PM竊取數(shù)據(jù),處理器需要在向PM發(fā)送數(shù)據(jù)前對數(shù)據(jù)進(jìn)行加密.而計數(shù)器模式加密[6-11]是目前被廣泛使用的加密技術(shù)之一.如圖2所示,計數(shù)器模式加密在PM中為每個緩存行大小的數(shù)據(jù)塊維護(hù)1個加密計數(shù)器,并在每次將數(shù)據(jù)塊從緩存寫回PM時增加計數(shù)器的值.執(zhí)行加密時,首先將密鑰、緩存行地址、加密計數(shù)器輸入加密引擎,例如高級加密標(biāo)準(zhǔn)(advanced encryption standard, AES)加密引擎;然后,加密引擎根據(jù)輸入數(shù)據(jù)生成OTP;最后,將OTP與緩存行異或得到密文,并將密文發(fā)送給PM.執(zhí)行解密時,首先生成OTP并同時從PM中讀取密文,再通過將OTP與密文異或得到明文.
Fig. 2 Counter-mode encryption圖2 計數(shù)器模式加密
為防止攻擊者篡改內(nèi)存總線上或PM中的數(shù)據(jù),需要采用完整性檢測技術(shù)保證數(shù)據(jù)的完整性.一種被廣泛使用的完整性檢測技術(shù)是MAC[5,16,21].如圖3所示,將數(shù)據(jù)、密鑰、地址、加密計數(shù)器作為加密Hash函數(shù)(例如AES-GCM[26])的輸入可計算得到MAC.當(dāng)數(shù)據(jù)寫回PM時,算出的MAC和數(shù)據(jù)一同寫回PM.而當(dāng)數(shù)據(jù)讀出PM時,重新計算MAC,并將算出的MAC和PM中存儲的MAC進(jìn)行比較,如果兩者不相同,則數(shù)據(jù)或加密計數(shù)器被篡改.
Fig. 3 Data integrity verification with MAC圖3 通過MAC驗證數(shù)據(jù)完整性
然而,僅靠MAC無法完全保證數(shù)據(jù)的完整性,攻擊者依然可以通過重放攻擊等方式篡改數(shù)據(jù).例如,假設(shè)PM中的初始數(shù)據(jù)為{數(shù)據(jù)0,加密計數(shù)器0,MAC0},并且正常應(yīng)用將其更新為{數(shù)據(jù)1,加密計數(shù)器1,MAC1}.如果攻擊者將數(shù)據(jù)替換為{數(shù)據(jù)0,加密計數(shù)器0,MAC0},那么僅通過MAC無法發(fā)現(xiàn)數(shù)據(jù)篡改.為解決此問題,通常將加密計數(shù)器所在的塊作為葉子結(jié)點構(gòu)建完整性檢測樹,例如默克爾樹[5,27]和SGX風(fēng)格的完整性檢測樹(簡稱為SGX樹)[7,10].如圖4所示,SGX樹的根結(jié)點存放在處理器中以防攻擊者篡改.每個結(jié)點塊中包含計數(shù)器和MAC.其中,MAC(例如MAC00)由結(jié)點塊中所有計數(shù)器(例如計數(shù)器01到計數(shù)器0x)以及父結(jié)點中的1個計數(shù)器(例如計數(shù)器11)作為輸入通過Hash得到.如果任意非根結(jié)點被篡改,則計算得到的MAC與結(jié)點塊中存放的MAC不匹配,從而發(fā)現(xiàn)篡改.
Fig. 4 SGX-style integrity verification tree圖4 SGX風(fēng)格的完整性檢測樹
Fig. 5 Avalanche effect of encryption圖5 加密的雪崩效應(yīng)
如表1所示,相比DRAM,NVM有著較差的寫延遲和耐久性.為了優(yōu)化NVM的寫性能并提升壽命,位級寫縮減技術(shù)[13-14]被廣泛用于減少數(shù)據(jù)寫入NVM時造成的位翻轉(zhuǎn),從而增加寫并行性并減少存儲單元磨損.例如,F(xiàn)NW(flip-n-write)[13]在寫操作造成的位翻轉(zhuǎn)超過數(shù)據(jù)塊大小一半時,先對數(shù)據(jù)塊中所有的位進(jìn)行翻轉(zhuǎn),再將發(fā)生翻轉(zhuǎn)的位寫回PM,從而將位翻轉(zhuǎn)減少至數(shù)據(jù)塊大小一半以下.然而,由于加密算法存在雪崩效應(yīng)[6,8,11,15],這些位級寫縮減技術(shù)不適用于加密NVM.雪崩效應(yīng)指,即使只修改明文中的1 b數(shù)據(jù)也會造成密文中超過半數(shù)的位發(fā)生變化.例如,如圖5所示,對于未加密NVM,數(shù)據(jù)在經(jīng)過FNW處理后僅需修改1 b數(shù)據(jù).而對于加密NVM,雪崩效應(yīng)使得無論是否經(jīng)過FNW處理均需要修改超過1 b數(shù)據(jù).
為優(yōu)化寫性能并提升壽命,一些研究工作針對加密NVM提出選擇重加密技術(shù)[6,8,28].該技術(shù)將每個數(shù)據(jù)塊劃分為細(xì)粒度的數(shù)據(jù)片,并在數(shù)據(jù)塊寫回PM時只將被修改的數(shù)據(jù)片采用新計數(shù)器重新加密并寫回.例如,如圖6所示,Nacre(8,4)[8]將數(shù)據(jù)塊劃分為大小為8 B的數(shù)據(jù)片并分配4個局部計數(shù)器.此外,為每個數(shù)據(jù)片維護(hù)2 b計數(shù)器指示器,以指示被用于加密該數(shù)據(jù)片的局部計數(shù)器.當(dāng)新數(shù)據(jù)寫回PM時,首先對比新舊數(shù)據(jù)確定被修改的數(shù)據(jù)片(例如分片1,3,4),然后將新的局部計數(shù)器(例如局部計數(shù)器1)和加密計數(shù)器拼接起來對被修改的數(shù)據(jù)片進(jìn)行加密,最后僅將重加密后的數(shù)據(jù)片寫回PM.
Fig. 6 Example of selective reencryption圖6 選擇重加密示例
為構(gòu)建高效安全PM系統(tǒng),加密、完整性檢測、選擇重加密技術(shù)引入多種元數(shù)據(jù),例如加密計數(shù)器、MAC、完整性檢測樹、局部計數(shù)器.這些元數(shù)據(jù)分別存放在PM中的不同位置,使得在訪問PM中的數(shù)據(jù)塊時需要額外執(zhí)行多次元數(shù)據(jù)訪問操作.例如,當(dāng)從PM讀取數(shù)據(jù)塊時,需要讀取加密計數(shù)器和局部計數(shù)器對數(shù)據(jù)塊進(jìn)行解密,還需要讀取MAC和完整性檢測樹來驗證完整性.為加速元數(shù)據(jù)訪問,許多研究工作[7,11,17,22]在處理器中添加元數(shù)據(jù)緩存,并對元數(shù)據(jù)管理方法進(jìn)行優(yōu)化.例如,將每個加密計數(shù)器塊分為1個主計數(shù)器和多個大小可變的從計數(shù)器[7],從而增加每個塊存放的計數(shù)器的數(shù)量,使得元數(shù)據(jù)緩存有更高的命中率.因為SGX樹的每個結(jié)點中也包含計數(shù)器,所以增加每個塊的計數(shù)器數(shù)量還可以降低樹的高度和大小,從而減少完整性檢測樹造成的開銷.
然而,現(xiàn)有的元數(shù)據(jù)管理優(yōu)化方法僅考慮部分元數(shù)據(jù).使用這些優(yōu)化方法管理加密、完整性檢測、選擇重加密技術(shù)引入的所有元數(shù)據(jù)依然存在顯著開銷.為量化此開銷,我們對元數(shù)據(jù)管理方法MorphCtr[7]和選擇重加密技術(shù)Nacre[8]進(jìn)行了實驗分析.其中,MorphCtr允許每個塊中計數(shù)器數(shù)量根據(jù)負(fù)載需求變化,但僅針對加密和完整性檢測元數(shù)據(jù)進(jìn)行優(yōu)化.而Nacre將數(shù)據(jù)分片后使用新的局部計數(shù)器對被修改的分片重新加密,如圖6所示.實驗中我們對4個系統(tǒng)進(jìn)行對比:MC-Only采用MorphCtr管理元數(shù)據(jù),但不執(zhí)行選擇重加密;MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)采用MorphCtr管理元數(shù)據(jù),并采用相應(yīng)的Nacre執(zhí)行選擇重加密.如圖7(a)所示,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)相比MC-Only分別減少9.8%,16.8%,20.0%的位翻轉(zhuǎn),同時分別造成10.4%,12.4%,17.3%的性能下降.圖7(a)的縱軸含義中IPC表示每周期執(zhí)行的指令數(shù)(instruction per cycle, IPC).如圖7(b)所示,越細(xì)粒度的數(shù)據(jù)分片方法造成的額外內(nèi)存訪問越多.MC-Nacre(2,4)會造成59.6%的額外內(nèi)存訪問,并且額外內(nèi)存訪問中68.4%為對選擇重加密元數(shù)據(jù)的訪問.因此,性能開銷主要源于對選擇重加密元數(shù)據(jù)的訪問,而現(xiàn)有的元數(shù)據(jù)管理方法無法高效地管理加密、完整性檢測、選擇重加密技術(shù)引入的全部元數(shù)據(jù).
Fig. 7 Analysis of metadata access overhead圖7 元數(shù)據(jù)訪問開銷分析
為高效管理加密、完整性檢測、選擇重加密技術(shù)引入的元數(shù)據(jù),本文提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法COTANA.圖8所示為COTANA的硬件架構(gòu).其中,NVM芯片以ECC內(nèi)存架構(gòu)組織成PM DIMM(dual inline memory module).PM DIMM的每個rank包括9顆可并行訪問的NVM芯片,其中8顆為數(shù)據(jù)芯片和1顆為ECC芯片.處理器通過內(nèi)存總線與PM相連,并通過內(nèi)存控制器控制PM執(zhí)行讀寫等操作.內(nèi)存控制器中包含1個元數(shù)據(jù)緩存.當(dāng)讀寫PM中的數(shù)據(jù)時,內(nèi)存控制器首先從元數(shù)據(jù)緩存中讀取加密計數(shù)器、局部計數(shù)器等元數(shù)據(jù)對數(shù)據(jù)進(jìn)行加密或解密.如果元數(shù)據(jù)緩存未命中,則從PM中讀取相應(yīng)元數(shù)據(jù)至元數(shù)據(jù)緩存.從PM中讀取任意數(shù)據(jù)或元數(shù)據(jù)時,均需要進(jìn)行完整性檢測,故完整性檢測相關(guān)元數(shù)據(jù)也需要讀取至元數(shù)據(jù)緩存.
Fig. 8 Hardware architecture of COTANA圖8 COTANA硬件架構(gòu)
基于圖8所示的硬件架構(gòu),元數(shù)據(jù)可以存放于數(shù)據(jù)芯片或ECC芯片.ECC芯片中的元數(shù)據(jù)可以與數(shù)據(jù)芯片中的數(shù)據(jù)并行訪問,從而隱藏元數(shù)據(jù)訪問延遲.然而,ECC芯片容量有限,需要確定將哪些元數(shù)據(jù)存放于ECC芯片才能最小化元數(shù)據(jù)開銷.
假設(shè)內(nèi)存總線寬度為72 b(64 b數(shù)據(jù)和8 b ECC),且數(shù)據(jù)塊大小為64 B,則讀取數(shù)據(jù)塊時可從ECC芯片并行讀取64 b元數(shù)據(jù).完整性檢測樹結(jié)點因為按照64 B塊粒度組織,所以不適合存放于ECC芯片.加密計數(shù)器和選擇重加密元數(shù)據(jù)需要在讀取數(shù)據(jù)前緩存在元數(shù)據(jù)緩存中,使OTP生成與數(shù)據(jù)讀取并行執(zhí)行以減少解密延遲,故不適合存放于ECC芯片.而MAC的大小通常小于64 b,并且只用于在讀取數(shù)據(jù)后檢測完整性,無需與其他元數(shù)據(jù)競爭元數(shù)據(jù)緩存.此外,由于MAC相比ECC有更強的檢錯能力,故可以將MAC放置在ECC芯片中代替ECC進(jìn)行檢錯,僅當(dāng)錯誤發(fā)生時再讀取ECC進(jìn)行糾錯.ECC信息可以與MAC一同存放于ECC芯片(54 b MAC和10 b ECC信息)[7],也可以單獨放置在數(shù)據(jù)芯片中(64 b ECC信息)[16].COTANA選擇將數(shù)據(jù)塊的MAC和ECC信息一同存放于ECC芯片.
COTANA按照圖9所示結(jié)構(gòu)對于加密計數(shù)器、完整性檢測樹、選擇重加密元數(shù)據(jù)進(jìn)行組織.其中,內(nèi)部結(jié)點采用現(xiàn)有的完整性檢測樹優(yōu)化方法[7,10]進(jìn)行組織,而葉子結(jié)點采用分離計數(shù)器策略[5]組織加密計數(shù)器,以利用計數(shù)器訪問局部性提高元數(shù)據(jù)緩存命中率.分離計數(shù)器策略在每個元數(shù)據(jù)塊中存放1個主計數(shù)器和多個從計數(shù)器.每個從計數(shù)器對應(yīng)1個數(shù)據(jù)塊.每當(dāng)數(shù)據(jù)塊寫回內(nèi)存時,通過主從計數(shù)器拼接得到的計數(shù)器對數(shù)據(jù)塊進(jìn)行加密,并且增加對應(yīng)從計數(shù)器的值.當(dāng)從計數(shù)器溢出時,增加主計數(shù)器的值并重置該主計數(shù)器對應(yīng)的所有從計數(shù)器,同時對所有從計數(shù)器對應(yīng)的塊進(jìn)行重加密.當(dāng)主計數(shù)器溢出時,需要修改加密密鑰,并對整個內(nèi)存進(jìn)行重加密.為進(jìn)一步降低元數(shù)據(jù)訪問開銷,COTANA將主從計數(shù)器與相應(yīng)的選擇重加密元數(shù)據(jù)放置在相同元數(shù)據(jù)塊中并作為完整性檢測樹的葉子結(jié)點,使得1次訪存操作可以獲取加解密所需的全部元數(shù)據(jù).此外,COTANA將葉子結(jié)點的MAC也存放于ECC芯片,從而在每個葉子結(jié)點中為選擇重加密元數(shù)據(jù)提供更多存儲空間.由于COTANA通過對完整性檢測樹的葉子結(jié)點(即加密計數(shù)器所在的元數(shù)據(jù)塊)重新組織來降低元數(shù)據(jù)訪問開銷,故COTANA不僅適用于SGX樹也適用于葉子結(jié)點為加密計數(shù)器的默克爾樹.
Fig. 9 Metadata management of COTANA圖9 COTANA元數(shù)據(jù)組織方式
在圖9所示的元數(shù)據(jù)組織方式中,葉子結(jié)點的具體實現(xiàn)取決于選擇重加密策略.例如,圖10所示為采用選擇重加密策略Nacre[8]時葉子結(jié)點的結(jié)構(gòu).每個葉子結(jié)點包含1個32 b主計數(shù)器和16個6 b從計數(shù)器,即每個葉子結(jié)點對應(yīng)16個數(shù)據(jù)塊.由于每個數(shù)據(jù)塊被劃分為8個數(shù)據(jù)片,故每個數(shù)據(jù)塊對應(yīng)8個計數(shù)器指示器,而每個葉子結(jié)點需要包含16×8=128個計數(shù)器指示器.假設(shè)每個數(shù)據(jù)塊對應(yīng)的局部計數(shù)器數(shù)量為N,則每個計數(shù)器指示器的大小為lbN.根據(jù)結(jié)點中除主從計數(shù)器外剩余空間大小,可以為每個數(shù)據(jù)塊分配4個2 b局部計數(shù)器,即總共16×4=64個局部計數(shù)器,并且每個計數(shù)器指示器的大小為2 b.
Fig. 10 Example of leaf nodes with Nacre圖10 采用Nacre時的葉子結(jié)點示例
圖11所示為采用Nacre[8]作為選擇重加密策略時MorphCtr[7](即MC-Nacre)和COTANA的內(nèi)存讀操作執(zhí)行流程對比.MC-Nacre將加密計數(shù)器放置在完整性檢測樹的葉子結(jié)點中,而將局部計數(shù)器和計數(shù)器指示器分離地存放在內(nèi)存中.因此,當(dāng)元數(shù)據(jù)緩存未命中時,最差情況需要在讀操作的關(guān)鍵路徑上執(zhí)行額外3次訪存操作,以讀取葉子結(jié)點、局部計數(shù)器、計數(shù)器指示器.而COTANA通過元數(shù)據(jù)協(xié)同管理將數(shù)據(jù)解密所需元數(shù)據(jù)組織在相同葉子結(jié)點中,從而減少額外的訪存操作.
Fig. 11 Comparison of read operation processes圖11 讀操作執(zhí)行流程對比
現(xiàn)有選擇重加密策略在對數(shù)據(jù)分片時廣泛采用靜態(tài)的連續(xù)分片方法[6,8,28],將地址連續(xù)的字節(jié)劃分至相同數(shù)據(jù)片.例如,假設(shè)數(shù)據(jù)塊大小為64 B,并且將每個字節(jié)按照地址從低到高分別記為字節(jié)i(i=0,1,…,63).如果將數(shù)據(jù)塊劃分為8個數(shù)據(jù)片,則數(shù)據(jù)片m(m=0,1,…,7)包含字節(jié)8m到字節(jié)8m+7.當(dāng)完成數(shù)據(jù)片劃分后,如果數(shù)據(jù)片中存在被修改的數(shù)據(jù),則需要使用新的計數(shù)器對數(shù)據(jù)片重新進(jìn)行加密.然而,采用靜態(tài)數(shù)據(jù)分片策略時,可能出現(xiàn)每個數(shù)據(jù)片中僅1 B數(shù)據(jù)被修改而導(dǎo)致重加密整個數(shù)據(jù)塊的情況.為量化這種情況發(fā)生的概率,我們采用SPEC CPU2006負(fù)載集[29]和持久性數(shù)據(jù)結(jié)構(gòu)負(fù)載集[30]來統(tǒng)計內(nèi)存寫操作的各個字節(jié)的修改頻率(字節(jié)的修改頻率=該字節(jié)的修改次數(shù)/內(nèi)存寫操作總數(shù)).圖12所示為不同負(fù)載下的測試結(jié)果.我們發(fā)現(xiàn)如果采用連續(xù)分片方法,每個數(shù)據(jù)片中總是存在部分字節(jié)的修改頻率顯著高于其他字節(jié).因此,連續(xù)分片方法會導(dǎo)致未被修改的字節(jié)因少部分頻繁修改的字節(jié)而重加密,從而無法有效地降低加密帶來的寫性能和耐久性影響.
Fig. 12 Modification frequency of different bytes in data blocks圖12 數(shù)據(jù)塊中不同字節(jié)的修改頻率
為解決此問題,COTANA采用動態(tài)數(shù)據(jù)分片策略,以從不同的分片方法中動態(tài)地選擇造成位翻轉(zhuǎn)最少的方法.如圖13所示,動態(tài)數(shù)據(jù)分片策略可選的分片方法包括連續(xù)分片方法和聚集分片方法.其中,聚集分片方法基于圖12所示的字節(jié)修改頻率規(guī)律,即編號差值為8的字節(jié)具有相似的修改頻率.因此,聚集分片方法將編號差值為8的字節(jié)劃分至相同數(shù)據(jù)片,即數(shù)據(jù)片m(m=0,1,…,7)包含字節(jié)8i+m(i=0,1,…,7).通過將相似修改頻率的字節(jié)聚集在一起,聚集分片方法能夠有效降低因部分字節(jié)修改而導(dǎo)致重加密整個數(shù)據(jù)塊的概率,從而減少加密數(shù)據(jù)的寫操作帶來的位翻轉(zhuǎn).
Fig. 13 Successive and gathering partition methods of data blocks圖13 數(shù)據(jù)塊連續(xù)分片方法和聚集分片方法
動態(tài)數(shù)據(jù)分片策略包括2種分片方法.為記錄數(shù)據(jù)塊采用何種方法進(jìn)行分片,COTANA為每個數(shù)據(jù)塊維護(hù)1 b類型標(biāo)記.當(dāng)執(zhí)行讀操作時,先根據(jù)類型標(biāo)記對數(shù)據(jù)塊進(jìn)行分片,再根據(jù)加密計數(shù)器和選擇重加密元數(shù)據(jù)對數(shù)據(jù)塊解密;當(dāng)執(zhí)行寫操作時,先并行地采用2種分片方法劃分?jǐn)?shù)據(jù)塊并執(zhí)行重加密,再計算采用不同方法的加密數(shù)據(jù)造成的位翻轉(zhuǎn)數(shù)量.為計算位翻轉(zhuǎn)數(shù)量,需要將內(nèi)存中數(shù)據(jù)讀取至內(nèi)存控制器中與加密數(shù)據(jù)進(jìn)行對比.因此,動態(tài)數(shù)據(jù)分片策略在執(zhí)行每個寫操作時會引入1次額外讀操作.由于NVM的讀延遲通常低于寫延遲,寫耐久性差于DRAM,同時動態(tài)數(shù)據(jù)分片策略可以有效地降低加密帶來的寫性能和耐久性影響,故該策略的額外讀操作帶來的開銷是可接受的.最后,動態(tài)數(shù)據(jù)分片策略動態(tài)地選擇造成位翻轉(zhuǎn)最少的加密數(shù)據(jù)寫回內(nèi)存并根據(jù)選取的分片方法設(shè)置類型標(biāo)記.為降低維護(hù)類型標(biāo)記的開銷,將類型標(biāo)記也放置在完整性檢測樹的葉子結(jié)點中.例如,每個葉子結(jié)點包括1個32 b主計數(shù)器、16個5 b從計數(shù)器、16個1 b類型標(biāo)記、64個2 b局部計數(shù)器、128個2 b計數(shù)器指示器.
COTANA通過對多種元數(shù)據(jù)協(xié)同管理,降低元數(shù)據(jù)訪問開銷.但是,由于完整性檢測樹的每個葉子結(jié)點中僅能存放16個從計數(shù)器,故有可能增大元數(shù)據(jù)存儲開銷.表2所示為COTANA和MC-Nacre[7-8]的存儲開銷對比.因為COTANA和MC-Nacre均將數(shù)據(jù)塊的MAC放置于ECC芯片,同時將加密計數(shù)器放置在葉子結(jié)點中,所以表2中只考慮完整性檢測樹和選擇重加密元數(shù)據(jù)的開銷.假設(shè)內(nèi)存大小為4 GB,數(shù)據(jù)塊大小為64 B,則內(nèi)存中總共有226個數(shù)據(jù)塊.MC-Nacre允許每個完整性檢測樹結(jié)點中至多存放128個從計數(shù)器.因此,結(jié)點的總數(shù)約為219個,總大小約為32 MB.此外,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)分別為每個數(shù)據(jù)塊維護(hù)24 b,40 b,72 b選擇重加密元數(shù)據(jù),即存儲開銷分別為192 MB,320 MB,576 MB.此外,MC-Nacre需要在選擇重加密元數(shù)據(jù)上建立額外的完整性檢測樹,以保障元數(shù)據(jù)的完整性.相比于MC-Nacre,COTANA雖然在每個葉子結(jié)點中僅存放16個從計數(shù)器,即完整性檢測樹總大小約為256 MB,但是無需單獨維護(hù)重加密元數(shù)據(jù)及額外的完整性檢測樹,從而降低元數(shù)據(jù)開銷.
Table 2 Percentage of Memory Size Occupied by Metadata表2 元數(shù)據(jù)占內(nèi)存容量的百分比 %
現(xiàn)有的安全PM系統(tǒng)[7,16-17]在ECC內(nèi)存的內(nèi)存控制器中集成了加密、完整性檢測、選擇重加密所需的硬件,包括元數(shù)據(jù)緩存及計算組件.在現(xiàn)有系統(tǒng)的基礎(chǔ)上,COTANA僅需對內(nèi)存控制器進(jìn)行小幅修改并添加選擇重加密的計算組件,以實現(xiàn)對安全元數(shù)據(jù)的重新組織,以及并行地采用不同分片方法進(jìn)行選擇重加密并動態(tài)選擇造成位翻轉(zhuǎn)最少的分片方法.
本文將NVM模擬器NVMain[31]與全系統(tǒng)仿真器Gem5[18]進(jìn)行整合,通過NVMain為Gem5提供高精度PM系統(tǒng)仿真支持,并在此基礎(chǔ)上實現(xiàn)COTANA.表3所示為仿真器的參數(shù)配置.元數(shù)據(jù)緩存的默認(rèn)大小為128 KB.COTANA采用MorphCtr[7]策略管理完整性檢測樹的內(nèi)部結(jié)點,同時基于Nacre[8]策略實現(xiàn)葉子結(jié)點的管理和選擇重加密.實驗中,COTANA的對照系統(tǒng)包括僅采用MorphCtr的系統(tǒng)MC-Only,以及采用MorphCtr和Nacre但具有不同參數(shù)的系統(tǒng)MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4).為評估上述系統(tǒng),我們從標(biāo)準(zhǔn)負(fù)載集SPEC CPU2006[29]中選取10個內(nèi)存密集型負(fù)載.在運行每個負(fù)載時,先執(zhí)行5億條指令對緩存進(jìn)行預(yù)熱,再執(zhí)行20億條指令以統(tǒng)計實驗結(jié)果.此外,我們還使用表4所示的持久性數(shù)據(jù)結(jié)構(gòu)負(fù)載[30]對上述系統(tǒng)進(jìn)行評估.每個負(fù)載針對相應(yīng)的數(shù)據(jù)結(jié)構(gòu)執(zhí)行10萬個事務(wù)操作,每個事務(wù)中執(zhí)行隨機查找操作,若未找到數(shù)據(jù)則插入數(shù)據(jù),否則刪除已有數(shù)據(jù).
Table 3 Simulator Configuration of Parameters表3 仿真器參數(shù)配置
Table 4 Persistent Data Structure Workloads表4 持久性數(shù)據(jù)結(jié)構(gòu)負(fù)載
圖14所示為各系統(tǒng)的IPC,實驗結(jié)果基于MC-Only進(jìn)行了歸一化處理.與MC-Only相比,MC-Nacre(8,4)存在平均10.4%的IPC下降.這是因為在數(shù)據(jù)加解密的關(guān)鍵路徑上可能需要等待從內(nèi)存中分別讀取加密計數(shù)器和選擇重加密元數(shù)據(jù)塊.由于選擇重加密元數(shù)據(jù)開銷隨著分片粒度的減小而增加,故采用更細(xì)粒度分片的MC-Nacre(4,4)和MC-Nacre(2,4)分別存在12.4%和17.3%的IPC下降,而COTANA僅造成4.6%的IPC下降.相比MC-Nacre(8,4),IPC最高提升了13.7%.這是因為COTANA通過元數(shù)據(jù)協(xié)同管理將數(shù)據(jù)加解密所需元數(shù)據(jù)整合在相同數(shù)據(jù)塊中,從而減少關(guān)鍵路徑上元數(shù)據(jù)塊的訪問.
Fig. 14 Normalized IPC based on MC-Only圖14 基于MC-Only歸一化的IPC
Fig. 15 Breakdown of number of memory accesses圖15 內(nèi)存訪問次數(shù)分解
為進(jìn)一步驗證COTANA是否能夠有效減少元數(shù)據(jù)導(dǎo)致的內(nèi)存訪問,我們對各系統(tǒng)在負(fù)載運行過程中的所有內(nèi)存訪問進(jìn)行統(tǒng)計.圖15所示為基于應(yīng)用數(shù)據(jù)訪問次數(shù)歸一化后的實驗結(jié)果.在所有元數(shù)據(jù)導(dǎo)致的內(nèi)存訪問中,選擇重加密元數(shù)據(jù)訪問占據(jù)較大比例.因為選擇重加密元數(shù)據(jù)總大小隨著數(shù)據(jù)分片粒度減小而增大,所以MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)的內(nèi)存訪問次數(shù)依次增加.相比MC-Nacre(8,4),COTANA通過元數(shù)據(jù)協(xié)同管理最多減少了22.9%的內(nèi)存訪問次數(shù).對于部分負(fù)載(例如zeusmp),COTANA減少的內(nèi)存訪問相對有限.這是因為這些負(fù)載對于內(nèi)存的訪問具有良好的局部性,使得元數(shù)據(jù)緩存有較高的命中率.對于部分負(fù)載(例如astar),COTANA相比于其他系統(tǒng)有更少的計數(shù)器溢出造成的內(nèi)存訪問.這是因為雖然COTANA將選擇重加密元數(shù)據(jù)與加密計數(shù)器放置在相同元數(shù)據(jù)塊中會提升計數(shù)器溢出頻率,但是當(dāng)計數(shù)器溢出發(fā)生后,在對內(nèi)存中數(shù)據(jù)重新加密的過程中,COTANA僅需1次內(nèi)存訪問即可獲取重新加密1個數(shù)據(jù)塊所需的加密計數(shù)器和選擇重加密元數(shù)據(jù),而其他系統(tǒng)則需要2次內(nèi)存訪問才能獲取相關(guān)元數(shù)據(jù).
圖16所示為加密數(shù)據(jù)塊寫入內(nèi)存時平均每個數(shù)據(jù)塊中存在的位翻轉(zhuǎn)的比例.隨著數(shù)據(jù)分片粒度減小,可以減少因部分字節(jié)修改導(dǎo)致整個分片重加密的情況.因此,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)的位翻轉(zhuǎn)比例依次降低,全部負(fù)載的平均值分別為33.2%,26.2%,23.1%.而COTANA的位翻轉(zhuǎn)比例的平均值為27.5%.這是因為動態(tài)數(shù)據(jù)分片策略可以有效減少因部分字節(jié)修改導(dǎo)致整個分片重加密的情況.COTANA可以通過與MC-Nacre(8,4)相同的分片粒度同時取得更高的性能和更少的位翻轉(zhuǎn).而相比MC-Nacre(4,4)和MC-Nacre(2,4),COTANA雖然具有更高的位翻轉(zhuǎn),但可以避免細(xì)粒度分片帶來的選擇重加密元數(shù)據(jù)開銷和性能下降.
Fig. 16 Averaged percent of bit flips per NVM write圖16 NVM寫操作平均位翻轉(zhuǎn)比例
圖17所示為不同元數(shù)據(jù)緩存大小下各系統(tǒng)相對于MC-Only的IPC下降比例.相比MC-Nacre(8,4),COTANA在元數(shù)據(jù)緩存大小為128 KB,64 KB,32 KB時分別可減少5.8%,12.9%,18.4%的IPC下降比例.這是因為元數(shù)據(jù)緩存的命中率隨著元數(shù)據(jù)緩存大小減小而降低.而COTANA通過元數(shù)據(jù)協(xié)同管理能夠有效降低元數(shù)據(jù)緩存未命中時訪問元數(shù)據(jù)的開銷.
Fig. 17 Percentages of IPC degradation on different metadata cache sizes圖17 不同元數(shù)據(jù)緩存大小下的IPC下降比例
Fig. 18 Transaction throughput normalized to MC-Only圖18 基于MC-Only歸一化的事務(wù)吞吐率
圖18所示為各系統(tǒng)的事務(wù)吞吐率.實驗結(jié)果基于MC-Only進(jìn)行了歸一化處理.與MC-Only相比,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)分別存在平均19.3%,20.7%,21.9%的性能下降.而COTANA相比MC-Only僅平均造成15.2%的性能下降,COTANA相比MC-Nacre(8,4)最多提升9.3%的性能.因此,COTANA不僅適用于計算密集型的應(yīng)用場景,也適用于存儲密集型的應(yīng)用場景.
目前一些研究工作關(guān)注于如何高效管理安全元數(shù)據(jù).IVEC[21]提出將完整性檢測與數(shù)據(jù)糾錯結(jié)合,利用MAC檢測數(shù)據(jù)是否存在錯誤,并通過檢查可能出錯的位置或校驗信息輔助的方式修復(fù)數(shù)據(jù).在此基礎(chǔ)上,SYNERGY[16]進(jìn)一步提出了數(shù)據(jù)、MAC、校驗信息在內(nèi)存中的布局方法,將MAC放置在ECC芯片中,而將校驗信息放置在內(nèi)存中其他區(qū)域,從而允許數(shù)據(jù)和MAC并行訪問.VAULT[10]根據(jù)完整性檢測樹中層次越高的結(jié)點中的計數(shù)器增長越快的特性,為高層次結(jié)點分配更大的計數(shù)器,從而避免頻繁的計數(shù)器溢出.此外,通過壓縮數(shù)據(jù)塊將MAC放置在壓縮節(jié)省的空間中,使得無需依賴ECC芯片即可同時訪問數(shù)據(jù)和MAC.為減少完整性檢測樹開銷并減少計數(shù)器溢出,MorphCtr[7]提出一種可變的完整性檢測樹結(jié)點組織方式,允許完整性檢測樹根據(jù)應(yīng)用訪問特征動態(tài)改變每個結(jié)點中從計數(shù)器大小,使得每個結(jié)點最多可存放128個從計數(shù)器.現(xiàn)有的安全元數(shù)據(jù)管理相關(guān)的研究工作主要關(guān)注于加密、完整性檢測引入的元數(shù)據(jù),而沒有考慮因?qū)憙?yōu)化需求而引入的選擇重加密元數(shù)據(jù).COTANA則是綜合考慮加密、完整性檢測、選擇重加密元數(shù)據(jù)的特性,實現(xiàn)各類元數(shù)據(jù)的協(xié)同管理,以降低元數(shù)據(jù)訪問開銷.
由于加密算法存在雪崩效應(yīng),現(xiàn)有一些研究工作關(guān)注于如何降低安全NVM中寫操作開銷.DEUCE[6]為每個數(shù)據(jù)塊維護(hù)領(lǐng)頭計數(shù)器和跟隨計數(shù)器.跟隨計數(shù)器由領(lǐng)頭計數(shù)器屏蔽低位后計算得到.在數(shù)據(jù)寫入內(nèi)存時,將數(shù)據(jù)劃分為16b大小的數(shù)據(jù)片,使用跟隨計數(shù)器加密未修改數(shù)據(jù)片,使用領(lǐng)頭計數(shù)器加密被修改的數(shù)據(jù)片.Nacre[8]和SECRET[28]為每個數(shù)據(jù)片維護(hù)1個局部計數(shù)器,僅當(dāng)數(shù)據(jù)片被修改時才更新局部計數(shù)器,并對數(shù)據(jù)片進(jìn)行重新加密.DeWrite[11]將加密與數(shù)據(jù)去重結(jié)合,以減少寫入內(nèi)存的重復(fù)數(shù)據(jù).ASSURE[32]將MAC值進(jìn)行細(xì)粒度劃分,以避免為未修改的數(shù)據(jù)片重新計算MAC.現(xiàn)有安全NVM寫操作優(yōu)化相關(guān)的工作可以直接與COTANA協(xié)同工作,通過元數(shù)據(jù)協(xié)同管理策略降低元數(shù)據(jù)訪問開銷,同時通過動態(tài)數(shù)據(jù)分片策略減少位翻轉(zhuǎn).
系統(tǒng)發(fā)生意外崩潰后,僅當(dāng)安全元數(shù)據(jù)與NVM中的數(shù)據(jù)匹配時,才能正確地解密數(shù)據(jù)并進(jìn)行完整性檢測.因此,部分研究工作[17,22,27,33-36]關(guān)注于如何正確并高效地持久化安全元數(shù)據(jù).例如,cc-NVM[35]通過基于時段的安全元數(shù)據(jù)更新方法,在保證安全元數(shù)據(jù)一致性的同時充分利用元數(shù)據(jù)緩存,從而顯著提升系統(tǒng)性能并減少內(nèi)存寫操作數(shù)量.STAR[36]在SGX樹中采用54 b的MAC,并將每個結(jié)點中節(jié)省的10 b空間用于存放父結(jié)點中對應(yīng)計數(shù)器的低位,避免在更新SGX樹時遞歸更新至根結(jié)點并寫回所有更新的結(jié)點,從而大幅減少為保證SGX樹的崩潰一致性而引入的寫操作.與上述這些研究工作相比,COTANA主要關(guān)注如何高效組織各類元數(shù)據(jù),可以直接使用現(xiàn)有方法實現(xiàn)元數(shù)據(jù)正確持久化.例如,將COTANA集成至STAR時,僅需修改SGX樹葉子結(jié)點計數(shù)器的組織方式,并在選擇重加密時采用動態(tài)數(shù)據(jù)分片策略.此外,COTANA將選擇重加密元數(shù)據(jù)與加密計數(shù)器放置在相同數(shù)據(jù)塊中,能夠避免單獨持久化這2種元數(shù)據(jù),從而降低安全元數(shù)據(jù)一致性保障的開銷.
為構(gòu)建高效安全的PM系統(tǒng),通常使用加密和完整性檢測技術(shù)保證數(shù)據(jù)安全性,以及選擇重加密策略降低寫操作開銷.這些技術(shù)引入各類元數(shù)據(jù),但目前尚無綜合考慮全部元數(shù)據(jù)特性的元數(shù)據(jù)管理方法,從而存在較高的元數(shù)據(jù)開銷.此外,我們發(fā)現(xiàn)數(shù)據(jù)塊中不同字節(jié)存在不同的修改頻率,而現(xiàn)有選擇重加密策略無法充分利用修改頻率特性,從而導(dǎo)致額外的位翻轉(zhuǎn).為解決上述問題,本文提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法COTANA.為減少元數(shù)據(jù)開銷,COTANA將選擇重加密元數(shù)據(jù)與加密元數(shù)據(jù)放置在相同塊中,以減少元數(shù)據(jù)緩存未命中時所造成的額外內(nèi)存訪問.此外,COTANA利用ECC芯片放置數(shù)據(jù)塊和完整性檢測樹葉子結(jié)點的MAC,以避免MAC訪問造成的延遲.為減少位翻轉(zhuǎn),COTANA采用動態(tài)數(shù)據(jù)分片策略,從現(xiàn)有的連續(xù)分片方法和基于修改頻率特性設(shè)計的聚集分片方法中動態(tài)選擇造成位翻轉(zhuǎn)最少的方法.實驗結(jié)果顯示,與采用最新的安全元數(shù)據(jù)管理方法和選擇重加密策略的系統(tǒng)相比,COTANA最多能提升13.7%的性能,并減少21.3%的位翻轉(zhuǎn).
作者貢獻(xiàn)聲明:魏學(xué)亮負(fù)責(zé)完善本文工作思路,完成部分相關(guān)實驗,并撰寫論文;楊明順提出本文主要工作思路,并完成其余部分實驗;馮丹、劉景寧、童薇對整個工作提出指導(dǎo)意見并修改論文;吳兵和肖仁智對方案設(shè)計及論文給出修改意見.