2(華中科技大學計算機學院"/>
999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?左鵬飛 華 宇 謝新鋒 胡 杏 謝 源 馮 丹
1(武漢光電國家研究中心(華中科技大學) 武漢 430074) >2(華中科技大學計算機學院 武漢 430074)3(加州大學圣芭芭拉分校 加利福利亞圣芭芭拉 美國 93106)
在過去的10年里,機器學習和邊緣計算是2個被廣泛關注的領域.一方面,機器學習特別是深度學習技術[1]最近取得了巨大的突破,在圖片識別[2-3]、語音識別[4-5]、游戲[6]等領域實現了比人類更高的準確率和效率.另一方面,隨著邊緣設備計算能力和存儲容量的不斷提升,和不需要向云端遠程傳輸數據等優勢,邊緣計算[7]也非常受歡迎.因此,越來越多的應用和產品開始探索和結合機器學習和邊緣計算兩者的優勢,最典型的應用是無人駕駛汽車[8]和智能手機[9].通過在其上部署深度學習加速器,無人駕駛汽車可以進行本地計算來實時地對當前路況做出反應,而不用連接到高延遲的遠程控制中心.
在深度學習中,深度學習模型是其核心,被認為是需要重點保護的機密信息[10].這是因為深度學習模型是由模型提供商花費大量財力訓練出來的,是他們知識產權的重要組成部分和他們業務的核心競爭力來源.另外,深度學習模型通常是使用用戶的隱私數據訓練出來的,深度學習模型的泄露還會披露訓練數據的相關隱私信息.更重要的是,當惡意的敵手獲取到深度學習模型后,他可以有針對性地實施對該深度學習應用的對抗攻擊[11].
然而我們發現相對于云計算,邊緣計算上的機器學習系統產生了新的安全問題.這是因為邊緣計算設備上的機器學習系統更容易地被物理訪問.因此,邊緣設備上的機器學習系統會受到基于物理訪問的攻擊,例如總線監聽攻擊(bus snooping attack)[12-13].攻擊者通過監聽深度學習加速器和內存之間總線上傳輸的數據,就很容易地獲取到該機器學習系統中的深度學習模型.所以加密深度學習加速器的內存總線中傳輸的數據非常重要.一種直接的方法是,在深度學習加速器的片上加入加密(如AES)邏輯電路[12].當加速器需要寫數據到內存中時,先加密該數據再將密文寫入;當加速器需要從內存中讀數據時,先讀密文數據到片上再解密.然而,這種直接加密的方法極大地降低了深度學習加速器的性能.主要是因為深度學習加速器(如GPU)通過高并發來獲得高的性能,其性能對內存訪問吞吐量極其敏感.內存總線的吞吐量在160 GBps左右[14],但目前最好的硬件實現的加密電路吞吐量只有10 GBps左右[15],從而大大限制了數據訪問的吞吐量和降低了加速器性能.
為了解決這個問題,本文提出一個高效的安全機器學習加速器架構COSA,其利用計數器模式加密把解密操作從內存訪問的關鍵路徑中移走.具體地,當加速器在內存中讀取密文數據的同時,COSA使用一個秘鑰、內存行地址和該行的計數器通過AES電路計算出一個臨時數據.當密文數據從內存中讀取出來后,COSA把密文數據和這個臨時數據進行異或操作就解密出了明文數據.可見.加密操作和內存讀操作并行地執行了,只有一個異或操作在內存訪問的關鍵路徑上,大大提升了加速器性能.本文的主要貢獻包括3方面:
1) 發現了邊緣設備上深度學習加速器易受基于物理訪問攻擊的安全問題,并分析了加密對加速器性能的影響.
2) 提出了一個高效的安全深度學習加速器架構COSA,通過把解密操作從內存訪問的關鍵路徑中移走來提升加速器性能.
3) 在GPGPU-Sim上實現了提出的COSA架構,并使用公開的神經網絡負載進行測試,驗證了本文提出方法的有效性.
本節首先介紹深度學習加速器的相關背景,然后介紹邊緣設備上深度學習加速器的安全性問題,最后討論一個保證深度學習加速器安全性的直接加密方法.
由于位于網絡邊緣的設備上產生的數據越來越多,數據的傳輸速度成為了云計算模式的瓶頸.巨大的帶寬開銷和高的響應延時極大地降低了云計算的效率.例如一輛自動駕駛汽車每秒產生的數據高達1 GB[16],其很難通過云計算來處理數據做實時的決策.為了解決這個問題,邊緣計算的概念被提出[7,17].邊緣計算利用邊緣設備上的硬件資源來直接在本地進行計算,這將大大減少了數據處理延時和邊緣設備的能耗開銷.
深度學習技術在許多領域得到了廣泛地應用,如圖片識別、語音識別、自然語言處理、游戲等,甚至可以實現比人類更高的準確率和效率.但是,深度學習的高效性依賴于極大的計算開銷.深度學習加速器的出現提高了邊緣設備的算力,使得深度學習在邊緣計算中的使用成為了可能.
GPU是一種最常用的神經網絡加速器[18],由于其強大的并行處理能力非常適用于神經網絡中的大量矩陣向量乘運算和浮點運算.FPGA也常被用作神經網絡加速器[19],由于其可編程的特性可支持靈活地設計新的硬件結構來匹配神經網絡算法.另外還有一些專用的深度學習加速器產品,如Google的TPU[20]、寒武紀的Diannao[21]、麻省理工學院(MIT)提出的Eyeriss[22]等.
大部分神經網絡推理加速器都可以抽象為如圖1所示的硬件架構.加速器片上會集成很多支持高并發計算的處理單元(processing element, PE),一塊cache用來存儲最近經常被訪問的熱數據.由于cache的容量很小,其不能存儲全部的深度學習模型.整個的深度學習模型會存儲在片外的大容量DRAM內存中,加速器需要通過GDDR總線連接片外的DRAM.GDDR總線是一種針對GPU等加速器專門設計的總線,其具有比傳統CPU的DDR總線更高的帶寬,從而可以支持更高的內存訪問吞吐量.

Fig. 1 The architecture of the deep learning inference accelerator on edge devices圖1 邊緣設備上深度學習推理加速器架構
在深度學習中,深度學習模型作為模型提供商的知識產權是非常重要的數據.我們發現部署在邊緣計算設備上的深度學習加速器有泄露其上存儲的深度學習模型的風險.與云計算不同,邊緣計算中的設備(如無人駕駛汽車)很容易被物理地訪問.所以,邊緣設備上的深度學習加速器就很容易受到基于物理訪問攻擊,如總線監聽攻擊[12].如圖1所示,攻擊者可以在GDDR內存總線上安裝一個探聽器,來截獲片外內存與片上加速器之間傳輸的數據,進而獲取到整個深度學習模型.另外,本文不考慮總線篡改攻擊,其可以通過完整性校驗技術抵御[23],與本文的研究工作是正交的.
加密深度學習加速器的內存總線中傳輸的數據非常重要.如圖2所示,一種直接的方法是,在深度學習加速器片上的內存控制器中加入加密邏輯電路,如高級加密標準(advanced encryption standard, AES)[24]邏輯電路.當內存控制器需要將一個內存行寫回到片外DRAM內存中時,先將該內存行的數據加密再將密文寫入;當加速器需要從內存中讀數據時,先讀密文數據到片上再解密出明文.

Fig.2 A secure accelerator architecture using direct encryption圖2 一個使用直接加密的安全加速器架構
在這種直接加密(direct encryption)的架構中,每次內存讀寫都需要通過AES做加密或解密,并且加解密操作是在內存訪問的關鍵路徑上.然而,目前最好的硬件實現的加密電路吞吐量在10 GBps左右[15],其遠低于內存總線的吞吐量(160 GBps左右[14]).使得大量的讀寫請求在等待AES電路來做加解密,大大增加了計算單元的等待周期從而降低了加速器的性能,如3.2節的實驗評估所示.
本文提出一個高效的安全深度學習加速器架構(COunter mode Secure Accelerator for deep learning, COSA),其利用計數器模式加密(counter mode encryption)[23,25],把解密操作從內存訪問的關鍵路徑中移走來極大地提高安全加速器的性能,并且可以實現更高的安全性.本節首先介紹計數器模式加密方法,接著介紹如何在安全的深度學習加速器中有效地使用計數器模式加密,最后介紹COSA的實現細節.
加密內存行的一種簡單的方法是用一個全局的秘鑰(key)加密所有的內存行,如圖3(a)所示.但是,相同的內存行使用相同的秘鑰總是生成相同的密文,那么攻擊者簡單地對比密文數據就可以知道哪些內存行的明文數據是一樣的.因此,這種加密方法很容易受到字典攻擊(dictionary attacks)和重播攻擊(retry attacks)[26-27].一種改進的方法是,使用一個全局秘鑰聯合該內存行的地址(line addr)來加密該內存行的數據,如圖3(b)所示.那么,位于不同內存行地址的相同數據會被加密成不同的密文,可以避免不同內存行之間的字典攻擊和重播攻擊.但是,在相同行地址先后寫入的相同數據的密文卻是相同的.因此,這種加密方法會有對同一行地址的字典攻擊和重播攻擊的風險.
一種更安全的方法是計數器模式加密[25],其給每個內存行分配一個計數器(counter),并使用一個全局的秘鑰、該內存行的地址和該內存行的計數器加密該內存行的數據,如圖3(c)所示.對于每次寫,該內存行的計數器加一.那么,即使在相同行地址先后寫入相同的明文數據,其產生的密文也是不同的,從而實現了高的安全性.

Fig. 3 Different encryption methods圖3 不同的加密方法

Fig. 4 The COSA hardware architecture圖4 COSA安全深度學習加速器硬件架構
通過使用計數器模式加密,本文提出了一種高效的安全深度學習加速器架構COSA,如圖4所示.COSA在片外內存中分配了一塊空間用來存儲所有內存行對應的計數器值,并在加速器片上增加了一個計數器cache(counter cache)來存儲最近經常被訪問的內存行的計數器值.COSA并不是用AES電路邏輯直接對內存行的數據進行加解密,而是使用一個全局秘鑰、內存行地址和內存行計數器通過AES電路邏輯計算出一個一次性的填充數據(one-time pad, OTP).該填充數據和內存行的密文數據進行簡單的異或操作就生成了明文數據;同樣地,該填充數據和內存行的明文數據進行異或操作就生成了密文數據[12].
這樣做的好處是可以并行地執行AES計算和數據讀操作.具體地,當一個讀請求到DRAM內存中取數據的同時,COSA使用該內存行的地址、計數器值和全局秘鑰通過AES電路邏輯計算出一個一次性填充數據(OTP).等密文內存行被讀取到片上時,COSA直接將該填充數據(OTP)和密文內存行異或就解密出了明文數據.可見,AES計算步驟被成功地從讀操作的關鍵路徑上移走,只有異或操作的延遲被加在了讀操作的關鍵路徑上,如圖5所示:

Fig. 5 The parallel encryption in COSA圖5 COSA中的并行加密操作
需要注意的是,只有當讀請求將要訪問的內存行所對應的計數器緩存在片上計數器cache中時,AES計算才能和DRAM內存中的讀操作并行執行.如果其所對應的計數器沒有緩存在計數器cache中,COSA必須到內存中先讀取計數器來形成OTP,再異或數據密文來解密.這樣的話,AES計算延遲依然在讀請求的關鍵路徑上.
為了解決這個問題,COSA增強DRAM內存中計數器存儲的空間局部性并通過預取來提高計數器cache的命中率.具體地,每個內存行對應的計數器是個8 B的值,而加速器(如GPU)的內存行大小通常是128 B.COSA把連續的16個物理地址所對應內存行的計數器存儲在一個128 B的內存行中.那么,當一個計數器被訪問時,連續的16個內存行的計數器會在一次內存訪問中被預取到計數器cache中.接下來如果有對剩余15個計數器的訪問,都會命中cache,從而提升了計時器cache的命中率.
由于每個128 B的內存行需要8 B的計數器,COSA只需要6.25%(=8 B128 B)的內存空間來存儲全部的計數器.
本節介紹安全深度學習加速器COSA的實現細節,如圖6所示. 位于片上的加速器會對片外的DRAM內存發送讀寫操作請求,這些讀寫請求都會先放入如圖6中下半部分所示的L2到DRAM隊列(L2→DRAM Queue)中.另一方面,片外的DRAM內存會返回讀請求的數據到片上加速器(圖6中的上半部分所示).

Fig. 6 The workflow of counter mode encryption in COSA圖6 COSA中計數器模式加密工作流程
首先介紹片上加速器向片外內存發送請求的流程.發送的請求包括讀(R)和寫(W)兩種請求,不管是讀請求還是寫請求都需要先查詢計數器cache.這是因為寫請求需要獲取對應的計數器值來加密寫入的數據,讀請求需要獲取對應的計數器值來并行地執行AES計算作解密.根據請求的類型和計數器cache是否命中,COSA需要分別處理4種情況:
1) 寫請求+cache不命中(W+Miss).當一個內存寫請求對應的計數器值不在計數器cache中時,COSA生成一個對該計數器值的讀請求到片外內存,并把該寫請求加到解密等待緩存(encryption waiting buffer)中.如果解密等待緩存已滿的話,該寫請求會等待,直到解密等待緩存非滿時再被加入.
2) 寫請求+cache命中(W+Hit).當一個內存寫請求對應的計數器值在計數器cache中時,COSA使用該計數器通過AES計算出一個OTP來加密該寫請求,然后把該寫請求發送到片外內存.
3) 讀請求+cache不命中(R+Miss).當一個讀請求對應的計數器值不在計數器cache中時,COSA生成一個對該計數器值的讀請求到片外內存,然后繼續把該讀請求發送到片外內存.
4) 讀請求+cache命中(R+Hit).當一個讀請求對應的計數器在計數器cache中時,COSA把該讀請求發送到片外內存,同時,使用它的計數器通過AES計算出一個OTP,并把該OTP放到OTP緩存中.
再介紹COSA處理片外內存返回到片上的讀請求的流程.返回的讀請求可能是數據行或計數器行,所以分為2種情況:
1) 數據行(data).當讀請求返回的是數據行時,COSA首先查詢OTP緩存中是否有其對應的OTP.如果有,則直接解密該數據行,并刪除OTP緩存中對應的該數據的OTP;如果沒有,繼續查詢計數器cache中是否存在其對應的計數器.如果計數器cache命中,則解密該數據行;如果cache不命中,COSA將該數據行放入解密等待緩存(decryption waiting buffer)中.
2) 計數器行(counter).當讀請求返回的是計數器行時,COSA先查詢解密等待隊列中是否有其對應的數據行.如果有,則解密該數據行并將解密后的數據發送到DRAM→L2隊列.COSA繼續查詢加密等待隊列中是否有其對應的數據行.如果有,則加密該數據行,并將該被加密的數據行寫入到內存.最后,COSA將該計數器寫入到計數器cache中.
為了不失一般性,本文使用GPU一種最常用的深度學習加速器來實現提出的COSA方案.然而,本文提出的安全加密方法COSA實現在深度學習加速器的內存控制器中,從而也適用于其他的深度學習加速器,如基于FPGA和ASIC的加速器.
1) GPU配置.通過使用GPGPU-Sim[28],實現了本文提出的安全深度學習加速器方案COSA.GPGPU-Sim是一個被廣泛使用的周期級的商用GPU性能模擬器,其可以支持運行CUDA[29]和OpenCL[30]程序.在測試中,使用GPGPU-Sim模擬的GPU的配置如表1所示.在GPU中的每個內存控制器中加入了一個16階流水線的AES電路,其加密塊大小是128 bit,對一個內存行(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硬件配置參數
2) 數據集.使用SPASS2009-Benchmarks[28]中的神經網絡負載(neural network, NN)來評估COSA的性能.該NN負載使用卷積神經網絡(convolutional neural network)來識別手寫數字.已經訓練好的神經網絡權重數據和待識別的手寫數字輸入已經預先放在片外DRAM內存中.該NN負載允許同時識別多個手寫數字來提高并行性,總共識別來自美國國家標準技術局(National Institute of Standards Technology, NIST)數據庫的28個手寫數字.
3) 實驗對比.實驗對比了一個沒安全保證的神經網絡加速器(Un-encr),和一個如1.3節描述的采用直接加密(direct encryption)的神經網絡加速器.
實驗測試了不同架構的深度學習加速器的每周期執行指令數(instructions per cycle, IPC),如圖7所示.由于本文提出的安全深度學習加速器COSA的片上部署了一個計數器cache,不同的計數器cache大小會影響其性能.所以實驗也評估了COSA在不同計數器cache大小情況下的性能.
從實驗結果中發現,相對于一個沒有加密的加速器(Un-encryption),使用直接加密(direct encryption)的加速器性能大大地降低了,其IPC降低高達80%,如圖7所示.這是因為在使用直接加密的加速器中加密操作是在內存訪問的關鍵路徑上,加密電路邏輯相對非常低的吞吐量嚴重影響了加速器的性能.本文提出的COSA,相對于直接加密方法極大地提高了加速器的性能.隨著每個內存控制器中計數器cache的大小從8 KB增加到64 KB,COSA相對于直接加密方法實現了3.1倍到5.0倍的性能提升.當計數器cache的大小為64 KB,COSA只比不加密的安全加速器慢13%左右.這是因為COSA利用計數器模式加密把很多讀請求的解密步驟從內存訪問的關鍵路徑中移走了.COSA會產生一些額外的內存訪問來讀取計數器,但是這不會顯著影響性能,因為內存有足夠高的帶寬.另外,更大的片上計數器cache容量可以實現更高的性能提升,這是由于更大的計數器cache有更高的cache 命中率,如圖8所示.

Fig. 7 IPCs of accelerators with different encryption schemes圖7 不同加密方法的加速器IPCs
本節首先從算法和架構層面討論機器學習模型安全性相關的研究工作,然后討論內存加密相關的研究工作.
1) 模型提取攻擊.①算法層面.現有的一些工作把機器學習模型看做為一個黑盒子,然后提出一些算法通過觀察該黑盒子的輸入和輸出數據來提取或推測模型相關的信息.Tramer等人[32]假設機器學習系統輸出的分類標簽的置信分數(confidence scores)和模型結構(model architecture)是已知的,并證實可以通過置信分數來推測模型參數相關的信息.Oh等人[33]假設模型結構是未知的,然后提出一個元模型(metamodel)方法來獲取模型結構相關的信息.Wang等人[34]提出了一個獲取機器學習模型的超參數(hyperparameter)的方法.超參數一般被用于平衡目標函數中的正則項和損失函數,知道超參數可以進一步幫助攻擊者獲取模型參數.②系統和架構層面.現有的一些方法通過利用操作系統或體系架構的一些信息來推測機器學習模型的相關信息.Naghibijouybari等人[35]提出利用操作系統中的側信道信息,如內存分配API、GPU硬件的性能計數器和時序等,來推測神經網絡模型的相關信息如神經元的個數.Hua等人[36]提出利用機器學習加速器體系架構中的側信道信息如內存訪問模式,來推測神經網絡的結構信息.
與這些現有的攻擊相比,本文關注的是一個更加危險的攻擊也就是總線監聽攻擊.通過總線監聽攻擊,攻擊者不用推測就可以直接獲取到機器學習模型的所有數據,包括網絡結構和權重參數等.為了抵御這種攻擊,本文提出了一個有效的安全加速器架構COSA.
2) 內存加密.內存加密被廣泛地應用在安全CPU系統中[12-13,23,26-27].由于CPU系統中的DDR內存總線帶寬(10~30 GBps)和AES加密邏輯的帶寬(10 GBps)差不多,所以在CPU系統中使用內存加密并不會帶來太大的性能損失.然而,機器學習加速器系統如GPU的GDDR總線帶寬遠高于AES加密邏輯的帶寬,并且加速器的性能是帶寬敏感的,內存加密會極大地影響加速器的性能.本文提出了COSA安全加速器架構來有效地解決這個問題.
我們發現部署在邊緣計算設備上的深度學習加速器有泄露其上存儲的深度學習模型的風險.攻擊者通過監聽深度學習加速器和設備內存之間的總線就能很容易地截獲到模型數據.為了解決這個問題,本文提出了一個有效的安全深度學習加速器架構稱作COSA.COSA通過利用計數器模式加密不僅提高了加速器的安全性,并且能夠把解密操作從內存訪問的關鍵路徑中移走來極大地提高加速器性能.我們在GPGPU-Sim上實現了提出的COSA架構,并使用神經網絡負載測試了其性能.實驗結果顯示COSA相對于直接加密的架構提升了3倍以上的性能,相對于一個不加密的加速器性能只下降了13%左右.