2(華中科技大學(xué)計(jì)算機(jī)學(xué)院"/>
左鵬飛 華 宇 謝新鋒 胡 杏 謝 源 馮 丹
1(武漢光電國(guó)家研究中心(華中科技大學(xué)) 武漢 430074) >2(華中科技大學(xué)計(jì)算機(jī)學(xué)院 武漢 430074)3(加州大學(xué)圣芭芭拉分校 加利福利亞圣芭芭拉 美國(guó) 93106)
在過(guò)去的10年里,機(jī)器學(xué)習(xí)和邊緣計(jì)算是2個(gè)被廣泛關(guān)注的領(lǐng)域.一方面,機(jī)器學(xué)習(xí)特別是深度學(xué)習(xí)技術(shù)[1]最近取得了巨大的突破,在圖片識(shí)別[2-3]、語(yǔ)音識(shí)別[4-5]、游戲[6]等領(lǐng)域?qū)崿F(xiàn)了比人類(lèi)更高的準(zhǔn)確率和效率.另一方面,隨著邊緣設(shè)備計(jì)算能力和存儲(chǔ)容量的不斷提升,和不需要向云端遠(yuǎn)程傳輸數(shù)據(jù)等優(yōu)勢(shì),邊緣計(jì)算[7]也非常受歡迎.因此,越來(lái)越多的應(yīng)用和產(chǎn)品開(kāi)始探索和結(jié)合機(jī)器學(xué)習(xí)和邊緣計(jì)算兩者的優(yōu)勢(shì),最典型的應(yīng)用是無(wú)人駕駛汽車(chē)[8]和智能手機(jī)[9].通過(guò)在其上部署深度學(xué)習(xí)加速器,無(wú)人駕駛汽車(chē)可以進(jìn)行本地計(jì)算來(lái)實(shí)時(shí)地對(duì)當(dāng)前路況做出反應(yīng),而不用連接到高延遲的遠(yuǎn)程控制中心.
在深度學(xué)習(xí)中,深度學(xué)習(xí)模型是其核心,被認(rèn)為是需要重點(diǎn)保護(hù)的機(jī)密信息[10].這是因?yàn)樯疃葘W(xué)習(xí)模型是由模型提供商花費(fèi)大量財(cái)力訓(xùn)練出來(lái)的,是他們知識(shí)產(chǎn)權(quán)的重要組成部分和他們業(yè)務(wù)的核心競(jìng)爭(zhēng)力來(lái)源.另外,深度學(xué)習(xí)模型通常是使用用戶(hù)的隱私數(shù)據(jù)訓(xùn)練出來(lái)的,深度學(xué)習(xí)模型的泄露還會(huì)披露訓(xùn)練數(shù)據(jù)的相關(guān)隱私信息.更重要的是,當(dāng)惡意的敵手獲取到深度學(xué)習(xí)模型后,他可以有針對(duì)性地實(shí)施對(duì)該深度學(xué)習(xí)應(yīng)用的對(duì)抗攻擊[11].
然而我們發(fā)現(xiàn)相對(duì)于云計(jì)算,邊緣計(jì)算上的機(jī)器學(xué)習(xí)系統(tǒng)產(chǎn)生了新的安全問(wèn)題.這是因?yàn)檫吘売?jì)算設(shè)備上的機(jī)器學(xué)習(xí)系統(tǒng)更容易地被物理訪(fǎng)問(wèn).因此,邊緣設(shè)備上的機(jī)器學(xué)習(xí)系統(tǒng)會(huì)受到基于物理訪(fǎng)問(wèn)的攻擊,例如總線(xiàn)監(jiān)聽(tīng)攻擊(bus snooping attack)[12-13].攻擊者通過(guò)監(jiān)聽(tīng)深度學(xué)習(xí)加速器和內(nèi)存之間總線(xiàn)上傳輸?shù)臄?shù)據(jù),就很容易地獲取到該機(jī)器學(xué)習(xí)系統(tǒng)中的深度學(xué)習(xí)模型.所以加密深度學(xué)習(xí)加速器的內(nèi)存總線(xiàn)中傳輸?shù)臄?shù)據(jù)非常重要.一種直接的方法是,在深度學(xué)習(xí)加速器的片上加入加密(如AES)邏輯電路[12].當(dāng)加速器需要寫(xiě)數(shù)據(jù)到內(nèi)存中時(shí),先加密該數(shù)據(jù)再將密文寫(xiě)入;當(dāng)加速器需要從內(nèi)存中讀數(shù)據(jù)時(shí),先讀密文數(shù)據(jù)到片上再解密.然而,這種直接加密的方法極大地降低了深度學(xué)習(xí)加速器的性能.主要是因?yàn)樯疃葘W(xué)習(xí)加速器(如GPU)通過(guò)高并發(fā)來(lái)獲得高的性能,其性能對(duì)內(nèi)存訪(fǎng)問(wèn)吞吐量極其敏感.內(nèi)存總線(xiàn)的吞吐量在160 GBps左右[14],但目前最好的硬件實(shí)現(xiàn)的加密電路吞吐量只有10 GBps左右[15],從而大大限制了數(shù)據(jù)訪(fǎng)問(wèn)的吞吐量和降低了加速器性能.
為了解決這個(gè)問(wèn)題,本文提出一個(gè)高效的安全機(jī)器學(xué)習(xí)加速器架構(gòu)COSA,其利用計(jì)數(shù)器模式加密把解密操作從內(nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑中移走.具體地,當(dāng)加速器在內(nèi)存中讀取密文數(shù)據(jù)的同時(shí),COSA使用一個(gè)秘鑰、內(nèi)存行地址和該行的計(jì)數(shù)器通過(guò)AES電路計(jì)算出一個(gè)臨時(shí)數(shù)據(jù).當(dāng)密文數(shù)據(jù)從內(nèi)存中讀取出來(lái)后,COSA把密文數(shù)據(jù)和這個(gè)臨時(shí)數(shù)據(jù)進(jìn)行異或操作就解密出了明文數(shù)據(jù).可見(jiàn).加密操作和內(nèi)存讀操作并行地執(zhí)行了,只有一個(gè)異或操作在內(nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑上,大大提升了加速器性能.本文的主要貢獻(xiàn)包括3方面:
1) 發(fā)現(xiàn)了邊緣設(shè)備上深度學(xué)習(xí)加速器易受基于物理訪(fǎng)問(wèn)攻擊的安全問(wèn)題,并分析了加密對(duì)加速器性能的影響.
2) 提出了一個(gè)高效的安全深度學(xué)習(xí)加速器架構(gòu)COSA,通過(guò)把解密操作從內(nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑中移走來(lái)提升加速器性能.
3) 在GPGPU-Sim上實(shí)現(xiàn)了提出的COSA架構(gòu),并使用公開(kāi)的神經(jīng)網(wǎng)絡(luò)負(fù)載進(jìn)行測(cè)試,驗(yàn)證了本文提出方法的有效性.
本節(jié)首先介紹深度學(xué)習(xí)加速器的相關(guān)背景,然后介紹邊緣設(shè)備上深度學(xué)習(xí)加速器的安全性問(wèn)題,最后討論一個(gè)保證深度學(xué)習(xí)加速器安全性的直接加密方法.
由于位于網(wǎng)絡(luò)邊緣的設(shè)備上產(chǎn)生的數(shù)據(jù)越來(lái)越多,數(shù)據(jù)的傳輸速度成為了云計(jì)算模式的瓶頸.巨大的帶寬開(kāi)銷(xiāo)和高的響應(yīng)延時(shí)極大地降低了云計(jì)算的效率.例如一輛自動(dòng)駕駛汽車(chē)每秒產(chǎn)生的數(shù)據(jù)高達(dá)1 GB[16],其很難通過(guò)云計(jì)算來(lái)處理數(shù)據(jù)做實(shí)時(shí)的決策.為了解決這個(gè)問(wèn)題,邊緣計(jì)算的概念被提出[7,17].邊緣計(jì)算利用邊緣設(shè)備上的硬件資源來(lái)直接在本地進(jìn)行計(jì)算,這將大大減少了數(shù)據(jù)處理延時(shí)和邊緣設(shè)備的能耗開(kāi)銷(xiāo).
深度學(xué)習(xí)技術(shù)在許多領(lǐng)域得到了廣泛地應(yīng)用,如圖片識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ)言處理、游戲等,甚至可以實(shí)現(xiàn)比人類(lèi)更高的準(zhǔn)確率和效率.但是,深度學(xué)習(xí)的高效性依賴(lài)于極大的計(jì)算開(kāi)銷(xiāo).深度學(xué)習(xí)加速器的出現(xiàn)提高了邊緣設(shè)備的算力,使得深度學(xué)習(xí)在邊緣計(jì)算中的使用成為了可能.
GPU是一種最常用的神經(jīng)網(wǎng)絡(luò)加速器[18],由于其強(qiáng)大的并行處理能力非常適用于神經(jīng)網(wǎng)絡(luò)中的大量矩陣向量乘運(yùn)算和浮點(diǎn)運(yùn)算.FPGA也常被用作神經(jīng)網(wǎng)絡(luò)加速器[19],由于其可編程的特性可支持靈活地設(shè)計(jì)新的硬件結(jié)構(gòu)來(lái)匹配神經(jīng)網(wǎng)絡(luò)算法.另外還有一些專(zhuān)用的深度學(xué)習(xí)加速器產(chǎn)品,如Google的TPU[20]、寒武紀(jì)的Diannao[21]、麻省理工學(xué)院(MIT)提出的Eyeriss[22]等.
大部分神經(jīng)網(wǎng)絡(luò)推理加速器都可以抽象為如圖1所示的硬件架構(gòu).加速器片上會(huì)集成很多支持高并發(fā)計(jì)算的處理單元(processing element, PE),一塊cache用來(lái)存儲(chǔ)最近經(jīng)常被訪(fǎng)問(wèn)的熱數(shù)據(jù).由于cache的容量很小,其不能存儲(chǔ)全部的深度學(xué)習(xí)模型.整個(gè)的深度學(xué)習(xí)模型會(huì)存儲(chǔ)在片外的大容量DRAM內(nèi)存中,加速器需要通過(guò)GDDR總線(xiàn)連接片外的DRAM.GDDR總線(xiàn)是一種針對(duì)GPU等加速器專(zhuān)門(mén)設(shè)計(jì)的總線(xiàn),其具有比傳統(tǒng)CPU的DDR總線(xiàn)更高的帶寬,從而可以支持更高的內(nèi)存訪(fǎng)問(wèn)吞吐量.
Fig. 1 The architecture of the deep learning inference accelerator on edge devices圖1 邊緣設(shè)備上深度學(xué)習(xí)推理加速器架構(gòu)
在深度學(xué)習(xí)中,深度學(xué)習(xí)模型作為模型提供商的知識(shí)產(chǎn)權(quán)是非常重要的數(shù)據(jù).我們發(fā)現(xiàn)部署在邊緣計(jì)算設(shè)備上的深度學(xué)習(xí)加速器有泄露其上存儲(chǔ)的深度學(xué)習(xí)模型的風(fēng)險(xiǎn).與云計(jì)算不同,邊緣計(jì)算中的設(shè)備(如無(wú)人駕駛汽車(chē))很容易被物理地訪(fǎng)問(wèn).所以,邊緣設(shè)備上的深度學(xué)習(xí)加速器就很容易受到基于物理訪(fǎng)問(wèn)攻擊,如總線(xiàn)監(jiān)聽(tīng)攻擊[12].如圖1所示,攻擊者可以在GDDR內(nèi)存總線(xiàn)上安裝一個(gè)探聽(tīng)器,來(lái)截獲片外內(nèi)存與片上加速器之間傳輸?shù)臄?shù)據(jù),進(jìn)而獲取到整個(gè)深度學(xué)習(xí)模型.另外,本文不考慮總線(xiàn)篡改攻擊,其可以通過(guò)完整性校驗(yàn)技術(shù)抵御[23],與本文的研究工作是正交的.
加密深度學(xué)習(xí)加速器的內(nèi)存總線(xiàn)中傳輸?shù)臄?shù)據(jù)非常重要.如圖2所示,一種直接的方法是,在深度學(xué)習(xí)加速器片上的內(nèi)存控制器中加入加密邏輯電路,如高級(jí)加密標(biāo)準(zhǔn)(advanced encryption standard, AES)[24]邏輯電路.當(dāng)內(nèi)存控制器需要將一個(gè)內(nèi)存行寫(xiě)回到片外DRAM內(nèi)存中時(shí),先將該內(nèi)存行的數(shù)據(jù)加密再將密文寫(xiě)入;當(dāng)加速器需要從內(nèi)存中讀數(shù)據(jù)時(shí),先讀密文數(shù)據(jù)到片上再解密出明文.
Fig.2 A secure accelerator architecture using direct encryption圖2 一個(gè)使用直接加密的安全加速器架構(gòu)
在這種直接加密(direct encryption)的架構(gòu)中,每次內(nèi)存讀寫(xiě)都需要通過(guò)AES做加密或解密,并且加解密操作是在內(nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑上.然而,目前最好的硬件實(shí)現(xiàn)的加密電路吞吐量在10 GBps左右[15],其遠(yuǎn)低于內(nèi)存總線(xiàn)的吞吐量(160 GBps左右[14]).使得大量的讀寫(xiě)請(qǐng)求在等待AES電路來(lái)做加解密,大大增加了計(jì)算單元的等待周期從而降低了加速器的性能,如3.2節(jié)的實(shí)驗(yàn)評(píng)估所示.
本文提出一個(gè)高效的安全深度學(xué)習(xí)加速器架構(gòu)(COunter mode Secure Accelerator for deep learning, COSA),其利用計(jì)數(shù)器模式加密(counter mode encryption)[23,25],把解密操作從內(nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑中移走來(lái)極大地提高安全加速器的性能,并且可以實(shí)現(xiàn)更高的安全性.本節(jié)首先介紹計(jì)數(shù)器模式加密方法,接著介紹如何在安全的深度學(xué)習(xí)加速器中有效地使用計(jì)數(shù)器模式加密,最后介紹COSA的實(shí)現(xiàn)細(xì)節(jié).
加密內(nèi)存行的一種簡(jiǎn)單的方法是用一個(gè)全局的秘鑰(key)加密所有的內(nèi)存行,如圖3(a)所示.但是,相同的內(nèi)存行使用相同的秘鑰總是生成相同的密文,那么攻擊者簡(jiǎn)單地對(duì)比密文數(shù)據(jù)就可以知道哪些內(nèi)存行的明文數(shù)據(jù)是一樣的.因此,這種加密方法很容易受到字典攻擊(dictionary attacks)和重播攻擊(retry attacks)[26-27].一種改進(jìn)的方法是,使用一個(gè)全局秘鑰聯(lián)合該內(nèi)存行的地址(line addr)來(lái)加密該內(nèi)存行的數(shù)據(jù),如圖3(b)所示.那么,位于不同內(nèi)存行地址的相同數(shù)據(jù)會(huì)被加密成不同的密文,可以避免不同內(nèi)存行之間的字典攻擊和重播攻擊.但是,在相同行地址先后寫(xiě)入的相同數(shù)據(jù)的密文卻是相同的.因此,這種加密方法會(huì)有對(duì)同一行地址的字典攻擊和重播攻擊的風(fēng)險(xiǎn).
一種更安全的方法是計(jì)數(shù)器模式加密[25],其給每個(gè)內(nèi)存行分配一個(gè)計(jì)數(shù)器(counter),并使用一個(gè)全局的秘鑰、該內(nèi)存行的地址和該內(nèi)存行的計(jì)數(shù)器加密該內(nèi)存行的數(shù)據(jù),如圖3(c)所示.對(duì)于每次寫(xiě),該內(nèi)存行的計(jì)數(shù)器加一.那么,即使在相同行地址先后寫(xiě)入相同的明文數(shù)據(jù),其產(chǎn)生的密文也是不同的,從而實(shí)現(xiàn)了高的安全性.
Fig. 3 Different encryption methods圖3 不同的加密方法
Fig. 4 The COSA hardware architecture圖4 COSA安全深度學(xué)習(xí)加速器硬件架構(gòu)
通過(guò)使用計(jì)數(shù)器模式加密,本文提出了一種高效的安全深度學(xué)習(xí)加速器架構(gòu)COSA,如圖4所示.COSA在片外內(nèi)存中分配了一塊空間用來(lái)存儲(chǔ)所有內(nèi)存行對(duì)應(yīng)的計(jì)數(shù)器值,并在加速器片上增加了一個(gè)計(jì)數(shù)器cache(counter cache)來(lái)存儲(chǔ)最近經(jīng)常被訪(fǎng)問(wèn)的內(nèi)存行的計(jì)數(shù)器值.COSA并不是用AES電路邏輯直接對(duì)內(nèi)存行的數(shù)據(jù)進(jìn)行加解密,而是使用一個(gè)全局秘鑰、內(nèi)存行地址和內(nèi)存行計(jì)數(shù)器通過(guò)AES電路邏輯計(jì)算出一個(gè)一次性的填充數(shù)據(jù)(one-time pad, OTP).該填充數(shù)據(jù)和內(nèi)存行的密文數(shù)據(jù)進(jìn)行簡(jiǎn)單的異或操作就生成了明文數(shù)據(jù);同樣地,該填充數(shù)據(jù)和內(nèi)存行的明文數(shù)據(jù)進(jìn)行異或操作就生成了密文數(shù)據(jù)[12].
這樣做的好處是可以并行地執(zhí)行AES計(jì)算和數(shù)據(jù)讀操作.具體地,當(dāng)一個(gè)讀請(qǐng)求到DRAM內(nèi)存中取數(shù)據(jù)的同時(shí),COSA使用該內(nèi)存行的地址、計(jì)數(shù)器值和全局秘鑰通過(guò)AES電路邏輯計(jì)算出一個(gè)一次性填充數(shù)據(jù)(OTP).等密文內(nèi)存行被讀取到片上時(shí),COSA直接將該填充數(shù)據(jù)(OTP)和密文內(nèi)存行異或就解密出了明文數(shù)據(jù).可見(jiàn),AES計(jì)算步驟被成功地從讀操作的關(guān)鍵路徑上移走,只有異或操作的延遲被加在了讀操作的關(guān)鍵路徑上,如圖5所示:
Fig. 5 The parallel encryption in COSA圖5 COSA中的并行加密操作
需要注意的是,只有當(dāng)讀請(qǐng)求將要訪(fǎng)問(wèn)的內(nèi)存行所對(duì)應(yīng)的計(jì)數(shù)器緩存在片上計(jì)數(shù)器cache中時(shí),AES計(jì)算才能和DRAM內(nèi)存中的讀操作并行執(zhí)行.如果其所對(duì)應(yīng)的計(jì)數(shù)器沒(méi)有緩存在計(jì)數(shù)器cache中,COSA必須到內(nèi)存中先讀取計(jì)數(shù)器來(lái)形成OTP,再異或數(shù)據(jù)密文來(lái)解密.這樣的話(huà),AES計(jì)算延遲依然在讀請(qǐng)求的關(guān)鍵路徑上.
為了解決這個(gè)問(wèn)題,COSA增強(qiáng)DRAM內(nèi)存中計(jì)數(shù)器存儲(chǔ)的空間局部性并通過(guò)預(yù)取來(lái)提高計(jì)數(shù)器cache的命中率.具體地,每個(gè)內(nèi)存行對(duì)應(yīng)的計(jì)數(shù)器是個(gè)8 B的值,而加速器(如GPU)的內(nèi)存行大小通常是128 B.COSA把連續(xù)的16個(gè)物理地址所對(duì)應(yīng)內(nèi)存行的計(jì)數(shù)器存儲(chǔ)在一個(gè)128 B的內(nèi)存行中.那么,當(dāng)一個(gè)計(jì)數(shù)器被訪(fǎng)問(wèn)時(shí),連續(xù)的16個(gè)內(nèi)存行的計(jì)數(shù)器會(huì)在一次內(nèi)存訪(fǎng)問(wèn)中被預(yù)取到計(jì)數(shù)器cache中.接下來(lái)如果有對(duì)剩余15個(gè)計(jì)數(shù)器的訪(fǎng)問(wèn),都會(huì)命中cache,從而提升了計(jì)時(shí)器cache的命中率.
由于每個(gè)128 B的內(nèi)存行需要8 B的計(jì)數(shù)器,COSA只需要6.25%(=8 B128 B)的內(nèi)存空間來(lái)存儲(chǔ)全部的計(jì)數(shù)器.
本節(jié)介紹安全深度學(xué)習(xí)加速器COSA的實(shí)現(xiàn)細(xì)節(jié),如圖6所示. 位于片上的加速器會(huì)對(duì)片外的DRAM內(nèi)存發(fā)送讀寫(xiě)操作請(qǐng)求,這些讀寫(xiě)請(qǐng)求都會(huì)先放入如圖6中下半部分所示的L2到DRAM隊(duì)列(L2→DRAM Queue)中.另一方面,片外的DRAM內(nèi)存會(huì)返回讀請(qǐng)求的數(shù)據(jù)到片上加速器(圖6中的上半部分所示).
Fig. 6 The workflow of counter mode encryption in COSA圖6 COSA中計(jì)數(shù)器模式加密工作流程
首先介紹片上加速器向片外內(nèi)存發(fā)送請(qǐng)求的流程.發(fā)送的請(qǐng)求包括讀(R)和寫(xiě)(W)兩種請(qǐng)求,不管是讀請(qǐng)求還是寫(xiě)請(qǐng)求都需要先查詢(xún)計(jì)數(shù)器cache.這是因?yàn)閷?xiě)請(qǐng)求需要獲取對(duì)應(yīng)的計(jì)數(shù)器值來(lái)加密寫(xiě)入的數(shù)據(jù),讀請(qǐng)求需要獲取對(duì)應(yīng)的計(jì)數(shù)器值來(lái)并行地執(zhí)行AES計(jì)算作解密.根據(jù)請(qǐng)求的類(lèi)型和計(jì)數(shù)器cache是否命中,COSA需要分別處理4種情況:
1) 寫(xiě)請(qǐng)求+cache不命中(W+Miss).當(dāng)一個(gè)內(nèi)存寫(xiě)請(qǐng)求對(duì)應(yīng)的計(jì)數(shù)器值不在計(jì)數(shù)器cache中時(shí),COSA生成一個(gè)對(duì)該計(jì)數(shù)器值的讀請(qǐng)求到片外內(nèi)存,并把該寫(xiě)請(qǐng)求加到解密等待緩存(encryption waiting buffer)中.如果解密等待緩存已滿(mǎn)的話(huà),該寫(xiě)請(qǐng)求會(huì)等待,直到解密等待緩存非滿(mǎn)時(shí)再被加入.
2) 寫(xiě)請(qǐng)求+cache命中(W+Hit).當(dāng)一個(gè)內(nèi)存寫(xiě)請(qǐng)求對(duì)應(yīng)的計(jì)數(shù)器值在計(jì)數(shù)器cache中時(shí),COSA使用該計(jì)數(shù)器通過(guò)AES計(jì)算出一個(gè)OTP來(lái)加密該寫(xiě)請(qǐng)求,然后把該寫(xiě)請(qǐng)求發(fā)送到片外內(nèi)存.
3) 讀請(qǐng)求+cache不命中(R+Miss).當(dāng)一個(gè)讀請(qǐng)求對(duì)應(yīng)的計(jì)數(shù)器值不在計(jì)數(shù)器cache中時(shí),COSA生成一個(gè)對(duì)該計(jì)數(shù)器值的讀請(qǐng)求到片外內(nèi)存,然后繼續(xù)把該讀請(qǐng)求發(fā)送到片外內(nèi)存.
4) 讀請(qǐng)求+cache命中(R+Hit).當(dāng)一個(gè)讀請(qǐng)求對(duì)應(yīng)的計(jì)數(shù)器在計(jì)數(shù)器cache中時(shí),COSA把該讀請(qǐng)求發(fā)送到片外內(nèi)存,同時(shí),使用它的計(jì)數(shù)器通過(guò)AES計(jì)算出一個(gè)OTP,并把該OTP放到OTP緩存中.
再介紹COSA處理片外內(nèi)存返回到片上的讀請(qǐng)求的流程.返回的讀請(qǐng)求可能是數(shù)據(jù)行或計(jì)數(shù)器行,所以分為2種情況:
1) 數(shù)據(jù)行(data).當(dāng)讀請(qǐng)求返回的是數(shù)據(jù)行時(shí),COSA首先查詢(xún)OTP緩存中是否有其對(duì)應(yīng)的OTP.如果有,則直接解密該數(shù)據(jù)行,并刪除OTP緩存中對(duì)應(yīng)的該數(shù)據(jù)的OTP;如果沒(méi)有,繼續(xù)查詢(xún)計(jì)數(shù)器cache中是否存在其對(duì)應(yīng)的計(jì)數(shù)器.如果計(jì)數(shù)器cache命中,則解密該數(shù)據(jù)行;如果cache不命中,COSA將該數(shù)據(jù)行放入解密等待緩存(decryption waiting buffer)中.
2) 計(jì)數(shù)器行(counter).當(dāng)讀請(qǐng)求返回的是計(jì)數(shù)器行時(shí),COSA先查詢(xún)解密等待隊(duì)列中是否有其對(duì)應(yīng)的數(shù)據(jù)行.如果有,則解密該數(shù)據(jù)行并將解密后的數(shù)據(jù)發(fā)送到DRAM→L2隊(duì)列.COSA繼續(xù)查詢(xún)加密等待隊(duì)列中是否有其對(duì)應(yīng)的數(shù)據(jù)行.如果有,則加密該數(shù)據(jù)行,并將該被加密的數(shù)據(jù)行寫(xiě)入到內(nèi)存.最后,COSA將該計(jì)數(shù)器寫(xiě)入到計(jì)數(shù)器cache中.
為了不失一般性,本文使用GPU一種最常用的深度學(xué)習(xí)加速器來(lái)實(shí)現(xiàn)提出的COSA方案.然而,本文提出的安全加密方法COSA實(shí)現(xiàn)在深度學(xué)習(xí)加速器的內(nèi)存控制器中,從而也適用于其他的深度學(xué)習(xí)加速器,如基于FPGA和ASIC的加速器.
1) GPU配置.通過(guò)使用GPGPU-Sim[28],實(shí)現(xiàn)了本文提出的安全深度學(xué)習(xí)加速器方案COSA.GPGPU-Sim是一個(gè)被廣泛使用的周期級(jí)的商用GPU性能模擬器,其可以支持運(yùn)行CUDA[29]和OpenCL[30]程序.在測(cè)試中,使用GPGPU-Sim模擬的GPU的配置如表1所示.在GPU中的每個(gè)內(nèi)存控制器中加入了一個(gè)16階流水線(xiàn)的AES電路,其加密塊大小是128 bit,對(duì)一個(gè)內(nèi)存行(128 B)的加解密延遲是40 cycles[31].COSA中encryption waiting buffer,decryption waiting buffer和OTP buffer的大小都為16.
Table 1 Configuration Parameters of the Simulated GPU表1 GPU硬件配置參數(shù)
2) 數(shù)據(jù)集.使用SPASS2009-Benchmarks[28]中的神經(jīng)網(wǎng)絡(luò)負(fù)載(neural network, NN)來(lái)評(píng)估COSA的性能.該NN負(fù)載使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network)來(lái)識(shí)別手寫(xiě)數(shù)字.已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)權(quán)重?cái)?shù)據(jù)和待識(shí)別的手寫(xiě)數(shù)字輸入已經(jīng)預(yù)先放在片外DRAM內(nèi)存中.該NN負(fù)載允許同時(shí)識(shí)別多個(gè)手寫(xiě)數(shù)字來(lái)提高并行性,總共識(shí)別來(lái)自美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)局(National Institute of Standards Technology, NIST)數(shù)據(jù)庫(kù)的28個(gè)手寫(xiě)數(shù)字.
3) 實(shí)驗(yàn)對(duì)比.實(shí)驗(yàn)對(duì)比了一個(gè)沒(méi)安全保證的神經(jīng)網(wǎng)絡(luò)加速器(Un-encr),和一個(gè)如1.3節(jié)描述的采用直接加密(direct encryption)的神經(jīng)網(wǎng)絡(luò)加速器.
實(shí)驗(yàn)測(cè)試了不同架構(gòu)的深度學(xué)習(xí)加速器的每周期執(zhí)行指令數(shù)(instructions per cycle, IPC),如圖7所示.由于本文提出的安全深度學(xué)習(xí)加速器COSA的片上部署了一個(gè)計(jì)數(shù)器cache,不同的計(jì)數(shù)器cache大小會(huì)影響其性能.所以實(shí)驗(yàn)也評(píng)估了COSA在不同計(jì)數(shù)器cache大小情況下的性能.
從實(shí)驗(yàn)結(jié)果中發(fā)現(xiàn),相對(duì)于一個(gè)沒(méi)有加密的加速器(Un-encryption),使用直接加密(direct encryption)的加速器性能大大地降低了,其IPC降低高達(dá)80%,如圖7所示.這是因?yàn)樵谑褂弥苯蛹用艿募铀倨髦屑用懿僮魇窃趦?nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑上,加密電路邏輯相對(duì)非常低的吞吐量嚴(yán)重影響了加速器的性能.本文提出的COSA,相對(duì)于直接加密方法極大地提高了加速器的性能.隨著每個(gè)內(nèi)存控制器中計(jì)數(shù)器cache的大小從8 KB增加到64 KB,COSA相對(duì)于直接加密方法實(shí)現(xiàn)了3.1倍到5.0倍的性能提升.當(dāng)計(jì)數(shù)器cache的大小為64 KB,COSA只比不加密的安全加速器慢13%左右.這是因?yàn)镃OSA利用計(jì)數(shù)器模式加密把很多讀請(qǐng)求的解密步驟從內(nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑中移走了.COSA會(huì)產(chǎn)生一些額外的內(nèi)存訪(fǎng)問(wèn)來(lái)讀取計(jì)數(shù)器,但是這不會(huì)顯著影響性能,因?yàn)閮?nèi)存有足夠高的帶寬.另外,更大的片上計(jì)數(shù)器cache容量可以實(shí)現(xiàn)更高的性能提升,這是由于更大的計(jì)數(shù)器cache有更高的cache 命中率,如圖8所示.
Fig. 7 IPCs of accelerators with different encryption schemes圖7 不同加密方法的加速器IPCs
本節(jié)首先從算法和架構(gòu)層面討論機(jī)器學(xué)習(xí)模型安全性相關(guān)的研究工作,然后討論內(nèi)存加密相關(guān)的研究工作.
1) 模型提取攻擊.①算法層面.現(xiàn)有的一些工作把機(jī)器學(xué)習(xí)模型看做為一個(gè)黑盒子,然后提出一些算法通過(guò)觀(guān)察該黑盒子的輸入和輸出數(shù)據(jù)來(lái)提取或推測(cè)模型相關(guān)的信息.Tramer等人[32]假設(shè)機(jī)器學(xué)習(xí)系統(tǒng)輸出的分類(lèi)標(biāo)簽的置信分?jǐn)?shù)(confidence scores)和模型結(jié)構(gòu)(model architecture)是已知的,并證實(shí)可以通過(guò)置信分?jǐn)?shù)來(lái)推測(cè)模型參數(shù)相關(guān)的信息.Oh等人[33]假設(shè)模型結(jié)構(gòu)是未知的,然后提出一個(gè)元模型(metamodel)方法來(lái)獲取模型結(jié)構(gòu)相關(guān)的信息.Wang等人[34]提出了一個(gè)獲取機(jī)器學(xué)習(xí)模型的超參數(shù)(hyperparameter)的方法.超參數(shù)一般被用于平衡目標(biāo)函數(shù)中的正則項(xiàng)和損失函數(shù),知道超參數(shù)可以進(jìn)一步幫助攻擊者獲取模型參數(shù).②系統(tǒng)和架構(gòu)層面.現(xiàn)有的一些方法通過(guò)利用操作系統(tǒng)或體系架構(gòu)的一些信息來(lái)推測(cè)機(jī)器學(xué)習(xí)模型的相關(guān)信息.Naghibijouybari等人[35]提出利用操作系統(tǒng)中的側(cè)信道信息,如內(nèi)存分配API、GPU硬件的性能計(jì)數(shù)器和時(shí)序等,來(lái)推測(cè)神經(jīng)網(wǎng)絡(luò)模型的相關(guān)信息如神經(jīng)元的個(gè)數(shù).Hua等人[36]提出利用機(jī)器學(xué)習(xí)加速器體系架構(gòu)中的側(cè)信道信息如內(nèi)存訪(fǎng)問(wèn)模式,來(lái)推測(cè)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)信息.
與這些現(xiàn)有的攻擊相比,本文關(guān)注的是一個(gè)更加危險(xiǎn)的攻擊也就是總線(xiàn)監(jiān)聽(tīng)攻擊.通過(guò)總線(xiàn)監(jiān)聽(tīng)攻擊,攻擊者不用推測(cè)就可以直接獲取到機(jī)器學(xué)習(xí)模型的所有數(shù)據(jù),包括網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)重參數(shù)等.為了抵御這種攻擊,本文提出了一個(gè)有效的安全加速器架構(gòu)COSA.
2) 內(nèi)存加密.內(nèi)存加密被廣泛地應(yīng)用在安全CPU系統(tǒng)中[12-13,23,26-27].由于CPU系統(tǒng)中的DDR內(nèi)存總線(xiàn)帶寬(10~30 GBps)和AES加密邏輯的帶寬(10 GBps)差不多,所以在CPU系統(tǒng)中使用內(nèi)存加密并不會(huì)帶來(lái)太大的性能損失.然而,機(jī)器學(xué)習(xí)加速器系統(tǒng)如GPU的GDDR總線(xiàn)帶寬遠(yuǎn)高于AES加密邏輯的帶寬,并且加速器的性能是帶寬敏感的,內(nèi)存加密會(huì)極大地影響加速器的性能.本文提出了COSA安全加速器架構(gòu)來(lái)有效地解決這個(gè)問(wèn)題.
我們發(fā)現(xiàn)部署在邊緣計(jì)算設(shè)備上的深度學(xué)習(xí)加速器有泄露其上存儲(chǔ)的深度學(xué)習(xí)模型的風(fēng)險(xiǎn).攻擊者通過(guò)監(jiān)聽(tīng)深度學(xué)習(xí)加速器和設(shè)備內(nèi)存之間的總線(xiàn)就能很容易地截獲到模型數(shù)據(jù).為了解決這個(gè)問(wèn)題,本文提出了一個(gè)有效的安全深度學(xué)習(xí)加速器架構(gòu)稱(chēng)作COSA.COSA通過(guò)利用計(jì)數(shù)器模式加密不僅提高了加速器的安全性,并且能夠把解密操作從內(nèi)存訪(fǎng)問(wèn)的關(guān)鍵路徑中移走來(lái)極大地提高加速器性能.我們?cè)贕PGPU-Sim上實(shí)現(xiàn)了提出的COSA架構(gòu),并使用神經(jīng)網(wǎng)絡(luò)負(fù)載測(cè)試了其性能.實(shí)驗(yàn)結(jié)果顯示COSA相對(duì)于直接加密的架構(gòu)提升了3倍以上的性能,相對(duì)于一個(gè)不加密的加速器性能只下降了13%左右.