999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種高性能硬件加密引擎陣列架構(gòu)

2022-01-04 09:35:38駱建軍沈一凡馮春陽(yáng)鄧江峽
電子與信息學(xué)報(bào) 2021年12期
關(guān)鍵詞:引擎設(shè)備

駱建軍 沈一凡 周 迪 馮春陽(yáng) 鄧江峽*

①(杭州電子科技大學(xué)微電子研究中心 杭州 310018)

②(浙江宇視科技有限公司 杭州 310051)

1 引言

隨著越來(lái)越多的硬件設(shè)備連接到互聯(lián)網(wǎng)中,物聯(lián)網(wǎng)安全面臨在擴(kuò)展連接環(huán)境下安全威脅引發(fā)的復(fù)雜挑戰(zhàn)[1]。執(zhí)行具有最小延時(shí)的高計(jì)算力的安全認(rèn)證是網(wǎng)絡(luò)安全的保障[2,3]。為了增強(qiáng)服務(wù)器性能,可以使用更為強(qiáng)大的CPU/GPU[4]。然而,即使執(zhí)行少量的安全負(fù)載,CPU的容量和效率也會(huì)因此而降低[5]。

本文介紹了一種替代解決方案,即一種具有高速、高吞吐量的可插拔式硬件加密卡,來(lái)應(yīng)對(duì)安全需求,并將CPU從執(zhí)行加解密算法(如RSA[6]、ECC[7]、AES[8]等)的任務(wù)中釋放掉。這種類型的密碼模塊(設(shè)備)會(huì)幫助服務(wù)器在不降低CPU性能的情況下處理大量驗(yàn)證請(qǐng)求。同時(shí),這個(gè)模塊和CPU之間通過(guò)高速接口來(lái)交換數(shù)據(jù)。以PCIe接口[9]為例,目前流行的是具有16個(gè)Lane的PCIe Gen4的CPU/GPU,其傳輸速率可達(dá)到32 GB/s,假定物聯(lián)網(wǎng)系統(tǒng)認(rèn)證按4 kB大小的數(shù)據(jù)包進(jìn)行處理,那么該模塊可執(zhí)行8×106次認(rèn)證操作。

要設(shè)計(jì)一種安全算法計(jì)算能力與8×106IOPS總線能力相匹配的PCIe卡其實(shí)是一個(gè)棘手的工程問(wèn)題。雖然已有一些用FPGA實(shí)現(xiàn)的密碼卡產(chǎn)品[10-12],但這樣的產(chǎn)品里面每個(gè)引擎都需要進(jìn)行數(shù)學(xué)運(yùn)算,而這些運(yùn)算受到硬件資源和物理邏輯門(mén)參數(shù)限制。要提供充足的邏輯門(mén)就需要用到多個(gè)FPGA芯片,即使這樣其性能仍然低于期望值。

本文提出了一種新的加密引擎陣列架構(gòu),其多個(gè)加密引擎可以并行計(jì)算。這一架構(gòu)用更少的引腳或連接來(lái)定義加密引擎接口,以降低封裝成本。同時(shí),考慮到eMMC總線與SPI總線類似,采用eMMC總線構(gòu)建加密引擎陣列,使其在兩個(gè)維度上都可以提供更高性能。此外,本文以PCIe接口為原型,還描述了一種高性能加密ASIC設(shè)計(jì)來(lái)驗(yàn)證該方法,并分享工程經(jīng)驗(yàn)。

2 模塊架構(gòu)

2.1 架構(gòu)描述

圖1是經(jīng)過(guò)實(shí)踐檢驗(yàn)達(dá)到預(yù)期性能的加密模塊架構(gòu),由一個(gè)高速接口、一個(gè)中央管理監(jiān)控模塊(Central Manage & Monitor Module, CMMM)和一組多通道驅(qū)動(dòng)的加密引擎構(gòu)成。

圖1 加密模塊架構(gòu)

高速接口被連接到使用PCIe, SAS, SATA的主機(jī)總線上。片上算法IP陣列會(huì)運(yùn)行多個(gè)算法引擎,而每個(gè)引擎都有一個(gè)數(shù)據(jù)包接口,該接口可用于機(jī)械硬盤(pán)、固態(tài)硬盤(pán)、SD卡、eMMC卡[13]、SPI接口[14]或SATA接口[15]。外加的數(shù)據(jù)緩沖區(qū)用于接收從主機(jī)來(lái)的命令和數(shù)據(jù)包,或返回給主機(jī)已處理過(guò)的數(shù)據(jù)包和相應(yīng)的狀態(tài)信息,以提高模塊的性能和穩(wěn)定性。

加密引擎陣列有N個(gè)并行的加密通道(CCi,0≤i

加密引擎由通道接口、數(shù)據(jù)緩沖區(qū)和具有安全密鑰寄存器的特定算法組成,如圖3所示。

圖2與圖3的緩沖區(qū)非常重要,因?yàn)樗鼘?shí)際上是一個(gè)由CMMM管理的隊(duì)列。這就使得模塊能連續(xù)地接收含有命令和數(shù)據(jù)包的任務(wù)而不管之前的任務(wù)是否完成。所有的任務(wù)都臨時(shí)被壓入隊(duì)列,而CMMM將把任務(wù)分配給任何空閑著的加密引擎。根據(jù)應(yīng)用程序要求,CMMM也可以按不同的優(yōu)先級(jí)來(lái)分配這些任務(wù)。圖4是CMMM管理任務(wù)流程示例,主機(jī)依次發(fā)送任務(wù)1、任務(wù)2、任務(wù)3,CMMM對(duì)這些任務(wù)動(dòng)態(tài)進(jìn)行調(diào)整,并分配給加密引擎。最終,主機(jī)先后收到任務(wù)2、任務(wù)3、任務(wù)1完成后的數(shù)據(jù)和狀態(tài)信息。顯然,緩沖越大,隊(duì)列越長(zhǎng),模塊可達(dá)到的性能也就越高。

圖2 使用MMC接口的加密塊

圖3 加密引擎結(jié)構(gòu)

圖4 加密任務(wù)流程

2.2 總線分析

由于所有高速接口(如SATA, PCIe)的物理層使用差分信號(hào)進(jìn)行傳輸,不能級(jí)聯(lián)到陣列中,這也就意味著M只能為1,限制了該架構(gòu)靈活地?cái)U(kuò)展到更大規(guī)模。因此,可以采用SPI總線或MMC/eMMC總線進(jìn)行數(shù)據(jù)傳輸。

SPI總線可以通過(guò)添加片選信號(hào)(CS)實(shí)現(xiàn)級(jí)聯(lián)來(lái)構(gòu)建一個(gè)2維加密陣列,但是通常的SPI總線的最大數(shù)據(jù)傳輸速率為1.2 MB/s,假設(shè)用4 kB大小的IO測(cè)試,其遠(yuǎn)小于300 IOPS,不能為認(rèn)證過(guò)程提供足夠的吞吐量。

MMC/eMMC具有與SPI總線類似的總線結(jié)構(gòu),其總線寬度還可以擴(kuò)展到4位,甚至8位,其定義的一種機(jī)制可以通過(guò)某個(gè)部件號(hào)來(lái)選擇或激活模塊(卡),并且基本的MMC/eMMC模塊可提供至少為25 MB/s的數(shù)據(jù)傳輸速率,最新的eMMC5.1可提供高達(dá)400 MB/s的數(shù)據(jù)傳輸速率,接近SATA III和USB3.0的性能。

鑒于以上分析,本文采用MMC/eMMC總線進(jìn)行數(shù)據(jù)傳輸。MMC/eMMC設(shè)備通過(guò)可以配置數(shù)量的數(shù)據(jù)信號(hào)總線來(lái)傳輸數(shù)據(jù)。這些通信信號(hào)描述如下:

CLK:從主機(jī)輸出的時(shí)鐘信號(hào),每個(gè)信號(hào)周期下命令總線上傳輸1 bit,所有數(shù)據(jù)總線上傳輸1 bit或2 bit。時(shí)鐘頻率可以在零到最大時(shí)鐘頻率之間變化。

CMD:雙向命令通道,用于設(shè)備初始化和命令傳輸。

DAT0-DAT7:雙向數(shù)據(jù)傳輸信號(hào),在推挽模式下工作,同一時(shí)刻進(jìn)行單向傳輸(主機(jī)或設(shè)備驅(qū)動(dòng)該信號(hào))。在上電或復(fù)位后,默認(rèn)只有DAT0用于傳輸數(shù)據(jù)。

MMC/eMMC總線的一個(gè)特性是在CMD線上采用“線與”機(jī)制時(shí),可使某個(gè)設(shè)備在總線仲裁程序設(shè)置的環(huán)境中作為一個(gè)多終端設(shè)備運(yùn)行。主機(jī)在開(kāi)漏模式下開(kāi)始設(shè)備識(shí)別過(guò)程,CMD線上的開(kāi)漏驅(qū)動(dòng)級(jí)允許在設(shè)備識(shí)別過(guò)程中進(jìn)行并行的設(shè)備操作。驅(qū)動(dòng)多臺(tái)設(shè)備的MMC/eMMC架構(gòu)如圖5和圖6所示。

圖5 一個(gè)MMC主機(jī)驅(qū)動(dòng)多個(gè)MMC設(shè)備

總線被激活后,主機(jī)將給設(shè)備發(fā)送有效運(yùn)行條件 (CMD1),對(duì)于CMD1的響應(yīng)就是“已連線”和對(duì)系統(tǒng)中所有設(shè)備進(jìn)行環(huán)境限制操作。將不兼容的設(shè)備設(shè)置成“Inactive State”。然后主機(jī)發(fā)送廣播命令A(yù)LL_SEND_CID(CMD2),要求所有設(shè)備發(fā)送其唯一的設(shè)備標(biāo)識(shí)碼(Device Identification Number, CID)。所有處于“Ready State”的設(shè)備在CMD線上同時(shí)相繼發(fā)送其CID,只要這些設(shè)備發(fā)出CID的位與在任何一個(gè)“位”周期內(nèi)相應(yīng)的位有不匹配時(shí),這些設(shè)備將不會(huì)被選上,還會(huì)立即停止發(fā)送其CID,保持“Ready State”,等待下一次識(shí)別周期。因?yàn)槊總€(gè)設(shè)備都有唯一的CID,所以最終只有一個(gè)設(shè)備給主機(jī)成功發(fā)送其完整的CID,這個(gè)設(shè)備之后進(jìn)入“Identification State”狀態(tài)。然后,主機(jī)發(fā)送SET_RELATIVE_ADDR(CMD3),為這個(gè)設(shè)備分配一個(gè)關(guān)聯(lián)設(shè)備地址(Relative Device Address, RCA),用于數(shù)據(jù)傳輸。一旦RCA被接收,Device進(jìn)入“Stand-by State”,由開(kāi)漏模式變?yōu)橥仆炷J剑辉賹?duì)之后的身份識(shí)別周期做出反應(yīng)。主機(jī)會(huì)重復(fù)設(shè)備識(shí)別過(guò)程(CMD2,CMD3循環(huán)),直到所有設(shè)備被識(shí)別,不再有設(shè)備響應(yīng)。識(shí)別過(guò)程超時(shí)的條件是發(fā)送CMD2后超過(guò)一段時(shí)間(eMMC規(guī)范中定義的NID時(shí)鐘周期)沒(méi)有收到響應(yīng)。之后,主機(jī)可以使用CID激活任意設(shè)備,并強(qiáng)制其他設(shè)備在總線上保持安靜。

3 性能分析

如果一個(gè)加密模塊共有M×N×K個(gè)加密引擎,那么它能同時(shí)處理M×N×K個(gè)認(rèn)證請(qǐng)求。比如每個(gè)加密引擎每秒可以運(yùn)行R次AES或SHA算法,那么這個(gè)模塊可以每秒執(zhí)行M×N×K×R次AES算法,也就是說(shuō)它的最大計(jì)算能力CAmax可以表示成:

但這不是最終測(cè)試到的性能,因?yàn)榧用苣K與主機(jī)間的接口吞吐量很可能是性能瓶頸。SATA接口的最大數(shù)據(jù)傳輸率TSmax=750 MB/s,PCIe Gen3×4的TSmax=4 GB/s。模塊的最終性能由{CAmax,TSmax}的最小值決定。

為了分析模塊性能和時(shí)延,定義以下幾個(gè)變量:

Tc:加密引擎處理一個(gè)命令數(shù)據(jù)包的時(shí)間。

Tt:處理器的本地緩沖區(qū)和模塊中央緩沖區(qū)之間的數(shù)據(jù)傳輸時(shí)間。

Ti:通過(guò)通信接口接收數(shù)據(jù)的時(shí)間。

Tw:數(shù)據(jù)包在IO隊(duì)列緩沖的時(shí)間。

模塊中的加密引擎越多,電路可以提供的性能越高。假設(shè)原始數(shù)據(jù)被分割為P個(gè)小數(shù)據(jù)包,每個(gè)數(shù)據(jù)包的大小為4 kB。加密或解密一個(gè)數(shù)據(jù)包需要Tc,共有N個(gè)并行運(yùn)行的加密通道,每個(gè)通道可運(yùn)行M個(gè)加密塊。那么電路每秒可以執(zhí)行N ·M/(Tc+Tt)次加密/解密操作,在此忽略了給模塊分配任務(wù)的時(shí)間。那么,IOPS可表示成

加密/解密處理器的延遲由多個(gè)參數(shù)決定。比如,如果有一個(gè)或多個(gè)空閑的加密引擎,此時(shí)數(shù)據(jù)包以最小的延遲通過(guò)中央緩沖區(qū)被加密引擎處理[18],Tw可以取最小值并忽略不計(jì)。如果所有的加密引擎繁忙且IO隊(duì)列已滿,接收到的數(shù)據(jù)包在中央緩沖區(qū)處于等待狀態(tài),直到有一個(gè)加密引擎被釋放到空閑狀態(tài),Tw具有最大值。Tw的計(jì)算公式為

假設(shè)緩沖區(qū)的最大容量Cmax=4 0 0 0,Ti=1 ms,Tc=5 ms,Tt=1 ms,當(dāng)N=1, 2, 4, 8,M=1,8時(shí),理論計(jì)算得到的最大總時(shí)延TL如表1所示。

表1 不同情況下的最大總時(shí)延(ms)

緩沖區(qū)的容量,即IO隊(duì)列的最大深度,必須滿足隊(duì)列請(qǐng)求的數(shù)量大于加密引擎的數(shù)量,否則一些加密引擎將會(huì)被閑置,模塊整體性能無(wú)法達(dá)到最高。另外,如果IO隊(duì)列深度配置得過(guò)大,響應(yīng)的時(shí)延就會(huì)增加。因此,IO隊(duì)列的深度應(yīng)該有一個(gè)極值。一般來(lái)說(shuō),隊(duì)列深度可以等于密碼引擎數(shù)量,并且每個(gè)隊(duì)列請(qǐng)求在緩沖區(qū)可占用1~4 kB空間。也就是說(shuō)在時(shí)延可以接受的情況下,隊(duì)列深度越大越好。

4 測(cè)試結(jié)果

為驗(yàn)證該架構(gòu),本文完成了一個(gè)PCIe Gen2×4接口的ASIC加密模塊。使用55 nm制程工藝,最終制備出尺寸為4.8 mm×4.7 mm的芯片,時(shí)鐘頻率高達(dá)500 MHz。

該模塊共有8個(gè)通道(N=8),每個(gè)通道驅(qū)動(dòng)8個(gè)eMMC模塊(M=8),每個(gè)模塊有16個(gè)加密引擎(K=16),單個(gè)加密引擎每秒可以執(zhí)行133次SHA-256加密操作(R=133),并且 IO大小為4 kB。測(cè)試結(jié)果見(jiàn)表2,表明其平均吞吐率等于419.23 MB/s。

表2 性能測(cè)試

目前已報(bào)道了具有高性能密碼設(shè)計(jì)的FPGA解決方案。比如文獻(xiàn)[19]中由3塊Xilinx Virtex FPGA芯片實(shí)現(xiàn)的模塊,其SHA-256吞吐率為47.75 MB/s。而本文ASIC架構(gòu)其吞吐量是它的8~9倍。

PCIe Gen4的速度比Gen2的快4倍,如果使用PCIe Gen4×8接口,理論上,該模塊的IOPS可達(dá)到容量為100k×4×2=800k,每個(gè)加密通道可提供100k的IOPS吞吐量,每個(gè)eMMC加密塊的IOPS應(yīng)大于12.5k。實(shí)際上,eMMC總線頻率高達(dá)200 MHz,這可以支持運(yùn)行最大為25k的IOPS。這意味著模塊可以在1 s內(nèi)用SHA-256算法處理800k次認(rèn)證請(qǐng)求。即使面向更高性能需求,(M,N) = (8, 8) 甚至 (M,N) = (8, 4)的配置仍然能滿足這一需求。

本文實(shí)現(xiàn)的ASIC加密模塊中,IO隊(duì)列深度被設(shè)置為128,由于IO隊(duì)列深度提供了足夠的等待緩沖區(qū),所以所有加密引擎都有足夠的時(shí)間運(yùn)行相應(yīng)的算法。如果IO隊(duì)列深度過(guò)小,IOPS將會(huì)下降到1.3k左右。PCIe Gen3×4的數(shù)據(jù)傳輸速率高達(dá)4 GB/s。其發(fā)送和接收數(shù)據(jù)的時(shí)延Ti=4 kB/(4 GB/s)=1 μs。

考慮到大多數(shù)情況下數(shù)據(jù)傳輸率較為穩(wěn)定,在相同硬件配置的情況下,Ti不會(huì)有太大不同。因此,時(shí)延主要由在IO隊(duì)列中的等待時(shí)間決定。測(cè)試結(jié)果如表3所示。

表3 隨機(jī)讀寫(xiě)的時(shí)延(μs)

5 結(jié)論

本文描述了一種高性能的支持并行運(yùn)算加密引擎陣列的PCIe接口加密卡,其平均吞吐率高達(dá)419.23 MB/s。此外,模塊集成的加密引擎越多,模塊的性能就越好。下一步的工作目標(biāo)是采用最新的PCIe接口、更多的PCIe物理通道以及更強(qiáng)大的加密算法引擎,為物聯(lián)網(wǎng)安全系統(tǒng)提供更高性能的加密卡。

猜你喜歡
引擎設(shè)備
以學(xué)促干 挺膺擔(dān)當(dāng) 激活砥礪前行的紅色引擎
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
基于VB6.0+Access2010開(kāi)發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
三生 三大引擎齊發(fā)力
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
無(wú)形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
如何在設(shè)備采購(gòu)中節(jié)省成本
基于Cocos2d引擎的PuzzleGame開(kāi)發(fā)
主站蜘蛛池模板: 日韩亚洲高清一区二区| 天天激情综合| 国产精品吹潮在线观看中文| 青青草原国产一区二区| 亚洲最大综合网| 香蕉国产精品视频| 午夜福利网址| 久久久久国产精品嫩草影院| 久久国产黑丝袜视频| 伊人久久大香线蕉综合影视| 亚洲视频免费播放| 国产精品一区在线观看你懂的| 久久综合五月| 欧美成人一级| 一级一级一片免费| 欧日韩在线不卡视频| 亚洲黄色视频在线观看一区| 亚洲激情区| 亚洲色图另类| 福利国产微拍广场一区视频在线| 天堂在线www网亚洲| 亚洲国产精品日韩av专区| 成色7777精品在线| 五月天久久综合| 五月激情综合网| 欧美日韩亚洲国产| 午夜精品区| 国产欧美日韩综合一区在线播放| 在线观看网站国产| 国产三级毛片| 91网在线| 久久99精品国产麻豆宅宅| 亚洲区欧美区| 99久久亚洲综合精品TS| 成年人久久黄色网站| 高清无码手机在线观看| 亚洲人成影视在线观看| 国产v欧美v日韩v综合精品| 日韩专区欧美| 亚洲第一成网站| 国产福利微拍精品一区二区| 亚洲狼网站狼狼鲁亚洲下载| 国产一区二区三区夜色| 夜夜操狠狠操| 九九热精品在线视频| 欧美成在线视频| 重口调教一区二区视频| 啦啦啦网站在线观看a毛片| 成人综合在线观看| 日韩精品亚洲人旧成在线| 免费在线a视频| 国产精品自拍露脸视频| 国产白浆在线观看| 国产9191精品免费观看| 国产精品一区在线观看你懂的| 极品国产一区二区三区| 99久久精品免费视频| 精品三级在线| 亚洲成网站| 久久亚洲高清国产| 亚洲午夜天堂| 国模在线视频一区二区三区| 国产精品女人呻吟在线观看| 福利视频一区| 亚洲福利片无码最新在线播放| 中文字幕在线观| 国产欧美日韩综合一区在线播放| 成人免费网站在线观看| 国产手机在线观看| 国产成人精品一区二区秒拍1o| 内射人妻无码色AV天堂| 91免费观看视频| 91午夜福利在线观看精品| 国产精品免费福利久久播放| 国产成人成人一区二区| 亚洲浓毛av| 91亚洲免费| 国产乱人视频免费观看| 亚洲天堂日韩在线| 香蕉视频国产精品人| 丰满人妻中出白浆| 久久免费成人|