第二章 演算法及文獻探討
2.2 文獻探討
在本章中,將探討幾位學者之研究成果,並介紹其特色,文獻[2]與[3]採用管 線式(Pipeline)的安排來達到 30Gbps 以上的高產率,為達到此目標,亦使用了相 當多的電路面積;文獻[4]以 LEON 處理器來結合一個 AES 的加速器,此加速器 透過兩個不同的介面:Memory-Mapped 與 CPI,來對記憶體以及 LEON 處理器內 部的單元做快速的資料存取,亦可以達到20Mbps 的產率;文獻[5]全部使用 BRAM 來完成AES 所包含的動作,其數量高達 11 個之多,在 FPGA 內能夠節省較多的 資源使用。
文獻[6]將一些複雜計算,預先產生,然後儲存於 BRAM 內,用以減少運算 量,並提及另一種與文獻[9]不同整合方法與排列方式,對於本研究有莫大的影 響;文獻[7]提出面積非常小的 8 位元 AES 硬體架構設計,並且與 PicoBlaze 處理 器結合,但是 需要耗費高達 3000 個時脈才能完成 128 位元的資料處理。
文獻[8]與文獻[9]主要是本篇論文比較的對象,將獨立出來在後面章節做更詳 細的說明;文獻[10]以 32 位元的架構實現 AES 演算法,使用 BRAM 來完成移列 轉換的過程,並也達到不錯的效果;文獻[12][13][14][15]主要是針對關於位元組 替換(SubByte)的處理,提出求得乘法反元素之硬體電路設計,不同於查表法的設 計,屬於即時運算的方式,對於小面積實做上亦有所貢獻。
2.2.1 Pawel Chodowiec 架構
Pawel Chodowiec 之架構[8]是使用 FPGA 之雙埠((Dual-Port)BRAM,如圖 2-7 所示,將資料同放入一個雙埠BRAM 中,位置 000H~0FFH區放置位元組替換(S-box) 資料;位置 100H~1FFH 區放置反位元組替換(InvS-box)資料,如此便可以利用位 置線的最高的位元來控制選擇加密的操作或是解密的操作,以達到在FPGA 內節
省面積之目的。
圖2-7 Block RAM based implementation of SubBytes and InvSubBytes
而 在 進 行 混 行 運 算(MixColumn) 時 乘 以 多 項 式 c(x) , 進 行 反 混 行 運 算 (InvMixColumn)則要選擇 c(x).d2(x)代替原本之多項式 d(x),如圖 2-8 所示,與 其他學者作法較不相同,但是消耗的硬體資源相當接近。
圖2-8 Implementation of MixColumns and InvMixColumns
輸入(Input)以及輸出(Output)兩個部份之暫存器以記憶體(雙埠 BRAM)取 代,如圖2-9 所示,用以減少硬體資源之使用,但是需要額外控制記憶體資料的 存放位置,增加控制複雜度。
圖2-9 Data arrangement in the folded architecture.
⎥⎥ 的規格18-Kbit,總共用使用了 2 個記憶體達成,而相較於 Spartan-Ⅱ系列 BRAM 的規格只有4-Kbit,故此整合方案總共需要使用至 16 個才能達成。
在FPGA 的晶片上,除了有可以完成邏輯運算與暫存功能的可編程邏輯區域 (Configurable Logic Blocks, CLBs)資源,亦包含內建可使用的記憶體資源,稱為 Block RAM,依晶片型號其數量亦有多寡。使用此記憶體擁有許多的優點,如:
不會額外造成CLBs 資源的消耗、存取速度比外部記憶體快等。於是便有許多設 計,是利用到此資源,來減少其他資源的消耗;而共用電路也是能減少面積的方 式之一,如何設計將某些特定電路做有效的共用方式,且不會造成太多的變動,
也是下個章節要說明的部分。