《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于密碼邏輯陣列的分組密碼高能效映射方法
基于密碼邏輯陣列的分組密碼高能效映射方法
2019年電子技術(shù)應(yīng)用第11期
高嘉浩,李 偉,陳 韜
解放軍信息工程大學(xué),河南 鄭州 450001
摘要: 分組密碼是應(yīng)用最為廣泛的密碼體制之一,密碼邏輯陣列實(shí)現(xiàn)分組密碼算法的方式兼具靈活度和高性能。基于項(xiàng)目組設(shè)計(jì)的密碼邏輯陣列結(jié)構(gòu),分析分組密碼的基本特征,在此基礎(chǔ)上提出了分組密碼在陣列上高能效映射的模型和基本原則,減少了映射消耗的計(jì)算資源和互連資源,通過循環(huán)并行映射方式加速密碼處理,論述了典型分組密碼算法的映射方法。在陣列芯片上對(duì)映射結(jié)果進(jìn)行實(shí)測(cè)分析,其AES算法處理能效為9.54 Mbps/mW,相較于其他密碼處理結(jié)構(gòu)有著明顯能效優(yōu)勢(shì),結(jié)果表明本文提出的映射方法在分組密碼處理上具有較好的能效特性。
中圖分類號(hào): TN918
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190644
中文引用格式: 高嘉浩,李偉,陳韜. 基于密碼邏輯陣列的分組密碼高能效映射方法[J].電子技術(shù)應(yīng)用,2019,45(11):21-26,31.
英文引用格式: Gao Jiahao,Li Wei,Chen Tao. Block cipher energy efficient mapping method based on cipher logic array[J]. Application of Electronic Technique,2019,45(11):21-26,31.
Block cipher energy efficient mapping method based on cipher logic array
Gao Jiahao,Li Wei,Chen Tao
PLA Information Engineering University,Zhengzhou 450001,China
Abstract: Block cipher is one of the most widely used cryptosystems, and cipher logic array implements block cipher algorithm in a way that combines flexibility and high performance. Based on the structure of CLA designed by the project team, this paper analyzes the basic characteristics of block ciphers. Based on this, the basic principle and model of energy-efficient mapping of block ciphers on arrays is proposed, which reduces the computational resources and interconnection resources consumed by the mapping. The cryptographic processing is accelerated by cyclic parallel mapping, and the mapping method of the typical block cipher algorithm is discussed. The mapping results are analyzed on CLA chip. The energy efficiency of the AES algorithm is 9.54 Mbps/mW, which is significantly better than other cryptographic processing structures. The results show that the mapping method proposed in this paper has better energy efficiency characteristics in block cipher processing.
Key words : cipher logical array;block cipher algorithm;mapping;high energy efficiency

0 引言

    分組密碼是一類重要的密碼體制,在信息安全領(lǐng)域有著廣泛的應(yīng)用。隨著分組密碼的不斷發(fā)展,一方面算法的多樣性要求處理模塊具有一定的靈活性,另一方面對(duì)運(yùn)算速度有著一定的要求[1]

    分組密碼的專用集成電路(Application Specific Integrated Circuit,ASIC)實(shí)現(xiàn)方式針對(duì)具體的一種或幾種算法設(shè)計(jì),密碼處理性能高,但無法滿足靈活性要求。針對(duì)密碼運(yùn)算設(shè)計(jì)的專用指令處理器(Application Specific Instruction-Set Processor,ASIP)在指令集和體系結(jié)構(gòu)上進(jìn)行了專項(xiàng)優(yōu)化,在具有密碼處理性能的基礎(chǔ)上保證了一定的靈活度。受制于指令集體系結(jié)構(gòu)的執(zhí)行模式,依然存在計(jì)算資源受限,能效提升困難的問題。

    密碼邏輯陣列(Cipher Logical Array,CLA)較好地兼顧了靈活性和處理速度的需求。與ASIP相比密碼邏輯陣列舍棄了“取指”、“譯碼”等過程,同時(shí)陣列中采用分布式寄存資源存儲(chǔ)分組密碼的運(yùn)算結(jié)果,節(jié)省了大量的“訪存”時(shí)間。這種由數(shù)據(jù)流驅(qū)動(dòng)的方式將密碼處理集中于“執(zhí)行”階段,因此在能效上優(yōu)于專用指令密碼處理器[2]。

    本文依托于針對(duì)項(xiàng)目組設(shè)計(jì)的密碼邏輯陣列,分析了分組密碼的基本特點(diǎn),提出了分組密碼在陣列上映射的基本原則和高能效映射方法,選取幾種典型的分組密碼算法,論述對(duì)應(yīng)算法在陣列芯片上的映射步驟及流程,并實(shí)測(cè)映射后的實(shí)驗(yàn)數(shù)據(jù),以驗(yàn)證陣列映射分組密碼的實(shí)現(xiàn)性能。實(shí)測(cè)結(jié)果表明該密碼邏輯陣列支持多種分組密碼算法的映射實(shí)現(xiàn),具有一定的靈活度和較好的能效特性。

1 分組密碼處理特點(diǎn)分析

    分組密碼是將明文消息編碼的數(shù)字序列按固定長度進(jìn)行分組,在密鑰作用下逐組加密,最終變換為密文分組。分組密碼以混亂和擴(kuò)散為基本原則,通常由子密鑰生成算法和加密、解密算法組成[3]。分組密碼處理流程如圖1所示。

wdz1-t1.gif

    分組密碼屬于對(duì)稱密碼體制,采用迭代型結(jié)構(gòu),由初始變換、末變換以及中間變換組成,中間變換一般為一定次數(shù)的輪函數(shù)迭代,通常由子密鑰異或、S盒置換以及算術(shù)、移位等多類操作組成。從其結(jié)構(gòu)特點(diǎn)不難歸納出分組密碼在硬件處理上具有以下幾個(gè)顯著特點(diǎn):

    (1)分組密碼處理屬于典型的數(shù)據(jù)密集型計(jì)算,基于數(shù)據(jù)流驅(qū)動(dòng)的方式可以進(jìn)一步加速分組密碼處理性能。

    (2)分組密碼中數(shù)據(jù)為二進(jìn)制字符串,大多為無符號(hào)的整數(shù),長度介于64 bit到256 bit之間,粒度為32 bit的陣列適合實(shí)現(xiàn)分組密碼操作的并行運(yùn)算。

    (3)分組密碼具有很強(qiáng)的數(shù)據(jù)局部性,即第i輪迭代運(yùn)算的輸入數(shù)據(jù)只與第i-1輪的輸出數(shù)據(jù)直接相關(guān),而與之前的數(shù)據(jù)不直接相關(guān)。這使得輪內(nèi)操作只能串行執(zhí)行,而中間計(jì)算結(jié)果可被覆蓋。

    (4)輪函數(shù)作為運(yùn)算主體部分,輪函數(shù)內(nèi)部結(jié)構(gòu)簡單且算子排列有序,不存在相同運(yùn)算操作,控制實(shí)現(xiàn)簡單,因此分組密碼具有速度快和易于軟硬件實(shí)現(xiàn)的特點(diǎn)[4]。

    本文將選取AES、DES等典型的分組密碼算法進(jìn)行映射,驗(yàn)證陣列平臺(tái)的分組密碼算法高能效實(shí)現(xiàn)結(jié)果。

2 CLA基本結(jié)構(gòu)

    本文依托的密碼邏輯陣列面向?qū)ΨQ密碼算法高速處理而設(shè)計(jì),陣列中的計(jì)算單元(Process Element,PE)包含多種算子結(jié)構(gòu),粒度為32 bit,采取數(shù)據(jù)流驅(qū)動(dòng)的方式,根據(jù)存儲(chǔ)的配置信息確定算子結(jié)構(gòu)和互連結(jié)構(gòu),不同的配置信息對(duì)應(yīng)不同的內(nèi)部結(jié)構(gòu),實(shí)現(xiàn)不同的密碼運(yùn)算和所需功能。

    陣列整體上包含輸入輸出FIFO、共享存儲(chǔ)單元(Shared Store Unit,SSU)和運(yùn)算系統(tǒng)。其中輸入輸出FIFO起到數(shù)據(jù)緩存和數(shù)據(jù)交換的作用;SSU由寄存器堆和SRAM組成,主要完成密碼算法中子密鑰、常數(shù)的存取以及S盒操作;運(yùn)算系統(tǒng)由16個(gè)PE和基于2D-Mesh的互連結(jié)構(gòu)組成,通過可重構(gòu)的方式實(shí)現(xiàn)特定的密碼運(yùn)算,支持多個(gè)最小陣列組合成規(guī)模更大的陣列結(jié)構(gòu)。密碼邏輯陣列結(jié)構(gòu)圖如圖2所示。

wdz1-t2.gif

    PE包含功能單元(Function Unit,F(xiàn)U)、交互單元(Interaction Unit,IU)和連接單元(Connection Unit,CU)。連接單元實(shí)現(xiàn)PE內(nèi)部功能單元的互連,交互單元實(shí)現(xiàn)PE之間的互連,兩者構(gòu)成互連結(jié)構(gòu)。功能單元根據(jù)配置存儲(chǔ)器(Configuration Memory,CM)中的配置信息,在分布式控制器控制下實(shí)現(xiàn)輸入、輸出、路由和計(jì)算。目標(biāo)陣列有四個(gè)配置頁面,具有較大的配置存儲(chǔ)空間和較高的配置靈活性。

    在陣列中異構(gòu)PE(圖2中深色填充PE)中設(shè)計(jì)了能夠執(zhí)行某些低頻次的128 bit甚至更大位寬的操作算子,在分組密碼映射實(shí)現(xiàn)的前提下,有效地平衡了陣列整體的功耗與面積。

    作為計(jì)算核心的可重構(gòu)密碼塊(Reconfigurable Cryptography Block,RCB)由算術(shù)類單元AG、邏輯類單元LG、置換類單元BP和非線性類單元NF共四類算子組成;通過互連資源,各算子單元能夠以多種組合搭建數(shù)據(jù)路徑,從而實(shí)現(xiàn)復(fù)雜的密碼運(yùn)算。

    每一級(jí)單元后加入了旁路寄存器,可配置數(shù)據(jù)是否寄存。PE內(nèi)部的旁路寄存器構(gòu)成了陣列的分布式存儲(chǔ)結(jié)構(gòu),利用該類寄存器可控制數(shù)據(jù)路徑的延時(shí),靈活應(yīng)對(duì)不同密碼算法不同應(yīng)用場(chǎng)景下的性能需求。

3 分組密碼算法高能效映射

3.1 陣列映射模型

    CLA是實(shí)現(xiàn)分組密碼的平臺(tái),通過集合抽象的方式來表示其硬件資源,可為映射提供各種硬件資源的抽象信息。本文參考PRAM參數(shù)化描述形式[5],將CLA的硬件資源模型(不考慮輸入輸出FIFO)定義如下:

    (1)CLA中所有計(jì)算資源的集合可表示為FU={FUi,j|i,j=1,2,3,4};

    (2)IU、CU以及FU內(nèi)輸入輸出選擇網(wǎng)絡(luò)組成的CLA中的互連資源集合可以表示為ConPE={(Con_PEI,Con_PEO)i,j|i,j=1,2,3,4};

    (3)CLA中的存儲(chǔ)資源包括SSU和內(nèi)部的寄存器,可表示為SS={SSU,RSi,j|i,j=1,2,3,4};

    則CLA的硬件資源模型可以視為一個(gè)的三元數(shù)組D,D=(FU,ConPE,SS)。如果將輪函數(shù)視為一個(gè)有限集合,則有R={op1,op2,…,opn},集合中的每一個(gè)元素表示一種操作,若干個(gè)操作順序組合形成特定的密碼算法。

    將陣列中的每一個(gè)RCB視為一個(gè)集合F,則F={ag,lg,nf,bp,rs},F(xiàn)中元素代表四類算子單元和寄存器資源。則有wdz1-3.1-x1.gif即在四類算子單元中至少可以找到一個(gè)用于實(shí)現(xiàn)分組密碼中一個(gè)獨(dú)立的操作。

    映射過程中分組密碼操作順序最終表現(xiàn)為PE間互連資源即IU、CU的配置使用以及PE內(nèi)算子單元的連接順序,構(gòu)建的集合可以表示為:

    IOicu={up,down,left,right}

    IOrcb={up,down,left,right,ssu,rs,ag,lg,nf,bp}

    通過一個(gè)二元向量即可將陣列中的互連關(guān)系表示出來:Con=<Vi,Vo>,對(duì)應(yīng)的PE內(nèi)部和PE之間的連接關(guān)系可表示為:

    Con_PEI={<Vi,Vo>unit|<Vi,Vo>∈IOreb,unit=ag,lg,nf,bp}

    Con_PEO={<Vi,Vo>unit|<Vi,Vo>∈IOicu,unit=iu,cu}

    在確定互連關(guān)系集合之后,映射的存儲(chǔ)資源使用關(guān)系也被確定下來。映射密碼算法的實(shí)質(zhì)就是在CLA硬件資源模型的基礎(chǔ)上選取適當(dāng)?shù)馁Y源,確定各單元間的連接關(guān)系,配合時(shí)序控制實(shí)現(xiàn)密碼運(yùn)算。

    若將分組密碼視為一個(gè)集合Block={I,R,L},集合中的元素分別代表初始變換、輪函數(shù)循環(huán)和末變換。循環(huán)并行映射的集合可表示為:

    Map={Pagem=(FU,SS,Con,Ctr)m|m=1,2,3,4}

    即陣列最終的映射結(jié)果是全部4個(gè)配置頁面的配置信息,每個(gè)頁面包含計(jì)算、存儲(chǔ)、互連和控制4類配置要素。

3.2 分組密碼循環(huán)并行映射

    式(1)為吞吐率公式,式中w為處理數(shù)據(jù)位寬即分組長度;f為頻率;c為算法的運(yùn)算周期,表示每秒內(nèi)電路的數(shù)據(jù)處理能力,單位為b/s。

    wdz1-gs1.gif

    式(2)中PFIFO、PCM和PS分別表示陣列FIFO、配置存儲(chǔ)器和陣列的靜態(tài)功耗,均可視為常量;而陣列的動(dòng)態(tài)功耗PD則取決于具體的映射方案并與消耗的FU數(shù)量直接相關(guān)。

    wdz1-gs2.gif

    結(jié)合式(1)、式(2)可知,實(shí)現(xiàn)高能效映射一方面是增大數(shù)據(jù)處理位寬和運(yùn)行頻率,提高陣列的吞吐率;另一方面則是節(jié)約映射消耗資源,以降低整體功耗。

    提高分組密碼處理速度的重點(diǎn)是加速輪函數(shù)的循環(huán)過程,主要有操作流水和映射并行兩種方式。操作流水使用流水線技術(shù)將輪函數(shù)各操作展開,陣列中的算子單元在每個(gè)時(shí)鐘周期都承擔(dān)著特定的運(yùn)算任務(wù);映射并行則是在陣列上映射多個(gè)分組,使得陣列資源實(shí)現(xiàn)對(duì)不同數(shù)據(jù)的并行處理。這兩者都能有效提升分組密碼處理的吞吐率。

    映射過程中往往要考慮到分組密碼的工作模式,例如ECB這種數(shù)據(jù)不相關(guān)的工作模式,可以實(shí)現(xiàn)操作流水,而CBC這類前后分組數(shù)據(jù)相關(guān)的工作模式,則無法實(shí)現(xiàn)操作流水。同時(shí)實(shí)現(xiàn)操作流水將顯著增大陣列控制的復(fù)雜度,因而映射并行是一種更為實(shí)用的提升吞吐率的方式。

    陣列預(yù)設(shè)有四個(gè)配置頁面,靈活切換能夠充分容納更多的操作運(yùn)算,有效支持輪函數(shù)循環(huán)的并行映射。而陣列提供的資源總是有限的,實(shí)現(xiàn)并行處理的組數(shù)取決于循環(huán)內(nèi)映射所需頻次最高的算子單元。以DES算法為例,將DES算法的初始置換I和逆初始置換L映射到Page0,而在Page1上并行映射兩組輪運(yùn)算R1和R2,由陣列控制結(jié)構(gòu)控制配置頁面的切換,這樣通過循環(huán)加速能有效提升DES算法的吞吐率,如圖3所示。

wdz1-t3.gif

    通過將循環(huán)部分在一個(gè)頁面上并行映射達(dá)到加速處理的目的,余下的非循環(huán)部分則通過時(shí)序控制映射到其他頁面,最大限度利用陣列資源和相關(guān)配置,此時(shí)吞吐率可表示為式(3):

    wdz1-gs3.gif

式中fp為循環(huán)并行的運(yùn)算頻率,n為映射并行度,tdelay為切換配置頁面的時(shí)鐘延時(shí)。使用多個(gè)配置頁面并行映射后,陣列運(yùn)行頻率基本不變,雖然引入了配置頁面切換延時(shí),增大了陣列的動(dòng)態(tài)功耗,但是處理數(shù)據(jù)量近似成倍增加,有效提高了陣列的吞吐率和最終映射的能效。

3.3 分組密碼高能效映射方法

    根據(jù)以上分析,結(jié)合分組密碼的基本特點(diǎn),在映射過程中遵循以下基本原則優(yōu)化映射方案:

    (1)最少FU:盡可能減小PE單元使用量,同時(shí)提高每個(gè)PE單元內(nèi)部功能單元FU的利用率,以提高陣列的整體飽和度和吞吐率密度,簡化陣列內(nèi)部的連接關(guān)系,降低陣列功耗;

    (2)操作合并:陣列中的異構(gòu)PE算子單元支持級(jí)聯(lián)和大位寬數(shù)據(jù)處理,同類型的操作和相鄰數(shù)據(jù)操作均可以實(shí)現(xiàn)合并運(yùn)算,進(jìn)一步減少陣列中的資源消耗[6];

    (3)最小配置信息量:映射方案的配置信息越少,說明需要配置的結(jié)構(gòu)單元越少,則映射復(fù)雜度越低,效率越高;

    (4)啟用配置頁面:配置存儲(chǔ)器CM中包含4個(gè)配置頁面(Page0~Page3),當(dāng)映射循環(huán)并行頁面資源占用已滿或存在分支操作時(shí),應(yīng)選擇添加一個(gè)新的配置頁面;

    (5)中間值寄存:輪運(yùn)算過程中的中間數(shù)據(jù)應(yīng)在PE中寄存,為下一輪運(yùn)算提供數(shù)據(jù)輸入,同時(shí)縮短陣列內(nèi)部關(guān)鍵路徑,提高運(yùn)行頻率和能效。

    此外,分組密碼的同一組子密鑰往往需要加解密若干組明、密文,子密鑰生成算法運(yùn)算一次即可,其耗費(fèi)時(shí)間同整個(gè)數(shù)據(jù)任務(wù)處理的時(shí)間相比可忽略不計(jì)[7]。在陣列中采用離線密碼生成方式,即子密鑰提前生成并存入SSU中,待執(zhí)行輪函數(shù)時(shí)取出對(duì)應(yīng)的子密鑰參與運(yùn)算。

    S盒變換是分組密碼中重要的非線性算子單元,在映射時(shí)使用SSU中的SRAM實(shí)現(xiàn)該算子,具體地,需在映射前將S盒的配置信息寫入SRAM。映射按照如下步驟進(jìn)行,流程圖如圖4所示。

wdz1-t4.gif

    (1)設(shè)定映射并行度:如需在陣列上實(shí)現(xiàn)循環(huán)并行,需要在滿足資源限定下選擇合適的并行度,并確定各頁面映射內(nèi)容;

    (2)劃分算法操作,選取算子單元:根據(jù)算法中主要包含的操作類型確定各操作適合采用AG、LG、BP、NF中的哪一類計(jì)算單元實(shí)現(xiàn);

    (3)確定陣列中計(jì)算資源消耗:陣列的粒度為32 bit,處理的數(shù)據(jù)位寬決定了算法映射所需的計(jì)算單元及其內(nèi)部算子單元數(shù)目;

    (4)由操作次序確定RCB內(nèi)算子單元的排列順序,即在輸入、輸出網(wǎng)絡(luò)中確定待映射算子單元的數(shù)據(jù)來源、流向,完成PE內(nèi)部映射;

    (5)通過PE中的IU、CU單元確定陣列內(nèi)部互連關(guān)系,搭建陣列內(nèi)部數(shù)據(jù)路徑;

    (6)根據(jù)算法的時(shí)序圖確定相應(yīng)控制信號(hào):控制信號(hào)的主體是時(shí)序控制,主要包括配置控制和存儲(chǔ)使能控制,還包括算法過程中配置頁面切換和寄存器讀寫需求產(chǎn)生對(duì)應(yīng)時(shí)序的控制信號(hào)。

4 分組密碼算法映射及性能分析

4.1 AES算法映射

    以映射AES-128 bit算法為例,遵照以上步驟進(jìn)行。劃分操作后選取SRAM、BP、LG和AG單元依次實(shí)現(xiàn)輪函數(shù)中的S盒變換、行移位、列混合以及子密鑰異或4類操作。根據(jù)所需算子單元數(shù)量,將AES算法的初始變換和輪運(yùn)算分別映射到陣列上,由數(shù)據(jù)處理順序確定PE內(nèi)部及PE間互連關(guān)系,得到圖5所示的陣列數(shù)據(jù)路徑。

wdz1-t5.gif

    映射AES算法使用了12個(gè)FU以及若干互連單元,考慮到初始變換只有子密鑰異或,輪運(yùn)算中也包含相同操作,若將初始變換放入輪運(yùn)算中實(shí)現(xiàn)操作合并,AES算法流程可以調(diào)整為前9輪輪函數(shù)迭代、第10輪的S盒、行移位操作以及最后一輪的子密鑰異或;此外結(jié)合循環(huán)并行映射,在陣列上并行映射2個(gè)AES分組,得到如圖6所示的映射數(shù)據(jù)路徑。

wdz1-t6.gif

    確定數(shù)據(jù)路徑之后生成所需的時(shí)序控制,最終生成配置信息,完成AES算法的映射。調(diào)整后的映射方案使用了更少的FU以及互連資源,結(jié)合映射的基本原則,調(diào)整后的映射方案優(yōu)于調(diào)整前的方案,同時(shí)兩個(gè)分組并行處理有效提升了吞吐率和映射能效。

4.2 映射性能分析

    實(shí)驗(yàn)室設(shè)計(jì)的密碼邏輯陣列基于CMOS 55 nm工藝流片,選取幾種典型的分組密碼算法在CBC工作模式下的映射性能進(jìn)行實(shí)測(cè)分析,得到的結(jié)果如表1所示。

wdz1-b1.gif

    文獻(xiàn)中分組密碼的處理性能通常以某個(gè)算法的吞吐率作為直接評(píng)價(jià)標(biāo)準(zhǔn),而陣列結(jié)構(gòu)可以通過堆疊可重構(gòu)單元的方式顯著提升吞吐率,但同時(shí)這樣會(huì)帶來面積和功耗的等幅增加,僅僅考慮吞吐率指標(biāo)是不夠客觀的,因此本文將能效作為重要評(píng)估指標(biāo)。

    陣列能夠動(dòng)態(tài)配置中間數(shù)據(jù)的寄存與否,進(jìn)而改變陣列內(nèi)部的關(guān)鍵路徑,所以針對(duì)不同的算法可以優(yōu)化映射方案,使其能夠在陣列上達(dá)到最優(yōu)運(yùn)算頻率。根據(jù)實(shí)測(cè)的功耗數(shù)值,各個(gè)算法對(duì)應(yīng)功耗也穩(wěn)定在150~190 mW范圍內(nèi),其中DES算法映射共使用了11個(gè)FU,因而功耗最大。吞吐率受到算法的迭代周期、數(shù)據(jù)位寬以及頻率的影響,因此AES算法具有最少的迭代次數(shù),其吞吐率達(dá)到最高的586 Mb/s,能效也相對(duì)最高。

    在陣列上利用循環(huán)并行方式對(duì)各算法進(jìn)行映射,測(cè)得的結(jié)果如表2所示。

wdz1-b2.gif

    對(duì)比表1和表2中的結(jié)果,通過輪函數(shù)循環(huán)并行映射的方式,算法的吞吐率得到顯著提升,且和映射并行度成正相關(guān)。雖然并行映射的方式小幅度增大了陣列的功耗,但在能效指標(biāo)仍然有較為明顯的提高。實(shí)驗(yàn)證明循環(huán)并行映射能夠有效提升陣列映射分組密碼的吞吐率和能效。

    在相關(guān)文獻(xiàn)中選取了關(guān)于AES算法CBC模式下密碼處理結(jié)構(gòu)作為對(duì)比,考慮到不同工藝制程對(duì)性能參數(shù)的影響,本文參照了文獻(xiàn)[8]中依據(jù)工藝特征尺寸的方法換算了等價(jià)能效,雖然無法完全消除工藝偏差帶來的影響,但是可以作為參考依據(jù),結(jié)果如表3所示。

wdz1-b3.gif

    在CBC模式并行映射下陣列AES算法能夠達(dá)到1 765 Mb/s的吞吐率,得益于映射方案的優(yōu)化,陣列整體功耗僅有0.18 W,能效為9.54 Mbps/mW,處理能效分別是文獻(xiàn)[8]和文獻(xiàn)[12]的7.5倍和2.3倍。在同等資源密度下,數(shù)據(jù)流驅(qū)動(dòng)的陣列架構(gòu)相對(duì)于指令驅(qū)動(dòng)的處理器架構(gòu)能夠省去在指令部分的相關(guān)資源開銷,在能效上占據(jù)一定優(yōu)勢(shì)。本文提出的陣列結(jié)構(gòu)規(guī)模較小,但實(shí)際應(yīng)用時(shí)可根據(jù)需求擴(kuò)展PE數(shù)量以滿足分組密碼的性能、功耗等需求,因而具有較好的能效優(yōu)勢(shì)。

5 結(jié)論

    本文分析了分組密碼處理的基本特點(diǎn),并結(jié)合目標(biāo)密碼邏輯陣列結(jié)構(gòu)特點(diǎn),提出了分組密碼算法的映射模型和具體映射原則以及循環(huán)并行映射方式。本文選取了典型的分組密碼算法在目標(biāo)陣列上的映射,并對(duì)映射結(jié)果進(jìn)行實(shí)測(cè)驗(yàn)證,數(shù)據(jù)表明,通過并行映射的方式提升了映射吞吐率和能效,該陣列同其他處理平臺(tái)相比達(dá)到了較好的能效值,能夠滿足分組密碼的映射需求。但是存在資源利用率低的問題。通過改善PE內(nèi)部算子單元結(jié)構(gòu)和擴(kuò)充陣列規(guī)模,可以支持并行化映射,并對(duì)算法的映射方案不斷優(yōu)化,從而進(jìn)一步提升陣列的吞吐率及能效。

參考文獻(xiàn)

[1] COMPTON K,HAUCK S.Reconfigurable computing:a survey of systems and software[J].ACM Computing Surveys,2002,34(2):171-210.

[2] 金晨輝,鄭浩然,張少武,等.密碼學(xué)[M].北京:高等教育出版社,2009.

[3] 劉雷波,王博,魏少軍.可重構(gòu)計(jì)算密碼處理器[M].北京:科學(xué)出版社,2018.

[4] 朱敏,劉雷波,尹首一,等.面向?qū)ΨQ密碼領(lǐng)域的可重構(gòu)陣列設(shè)計(jì)[J].微電子學(xué),2012,42(6):815-818.

[5] 孫康.可重構(gòu)計(jì)算相關(guān)技術(shù)研究[D].杭州:浙江大學(xué),2007.

[6] 李遠(yuǎn)銘,嚴(yán)迎建,李偉.基于粗粒度可重構(gòu)密碼陣列的AES算法映射實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2018,35(3):304-308,326.

[7] 徐金甫,楊宇航.SM4算法在粗粒度陣列平臺(tái)的并行化映射[J].電子技術(shù)應(yīng)用,2017,43(4):39-42,46.

[8] SAYILAR G,CHIOU D.Cryptoraptor:high throughput reconfigurable cryptographic processor[C].IEEE/ACM International Conference on Computer-aided Design.IEEE,2014.

[9] FRONTE D,PEREZ A,PAYRAT E.Celator:a multi-algo-rithm cryptographic co-processor[C].International Conference on Reconfigurable Computing & Fpgas.IEEE,2008.

[10] 郭巖松,劉雷波.一種面向分組密碼的粗粒度可重構(gòu)陣列及AES算法映射[J].微電子學(xué)與計(jì)算機(jī),2015,32(9):1-5.

[11] LIU B,BAAS B M.Parallel AES encryption engines for many-core processor arrays[J].IEEE Transactions on Computers,2013,62(3):536-547.

[12] HUANG W,HAN J,WANG S,et al.A low-complexity heterogeneous multi-core platform for security SoC[C].Solid State Circuits Conference.IEEE,2010.



作者信息:

高嘉浩,李  偉,陳  韜

(解放軍信息工程大學(xué),河南 鄭州 450001)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。