《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信与网络 > 业界动态 > 可重构S盒运算单元的设计与实现

可重构S盒运算单元的设计与实现

2008-03-19
作者:孟 涛, 戴紫彬

  摘 要: 在分析多種對稱密碼算法" title="密碼算法">密碼算法的基礎(chǔ)上,總結(jié)出常用的S盒運算模式,設(shè)計并實現(xiàn)了高效、靈活、安全的可重構(gòu)" title="可重構(gòu)">可重構(gòu)S盒運算單元,并且給出了此單元通用的指令格式。
  關(guān)鍵詞: 密碼算法 可重構(gòu)? S盒? LUT

?

  在信息安全技術(shù)飛速發(fā)展的今天,密碼算法的使用范圍越來越廣泛。對稱密碼算法在密碼算法應(yīng)用中占有非常重要的位置,它可以用于構(gòu)造偽隨機數(shù)產(chǎn)生器、流密碼、認證碼和Hash函數(shù)等,也可以作為消息或?qū)嶓w認證、數(shù)據(jù)完整性和數(shù)字簽名等方案的核心部分。在各種各樣安全技術(shù)需求的促使下,可重構(gòu)密碼芯片已成為當(dāng)今研究的一個方向。目前,可重構(gòu)技術(shù)的研究已經(jīng)非常廣泛,在不同領(lǐng)域有著不同的研究層次。按照可重構(gòu)處理單元的規(guī)??蓜澐旨毩6瓤芍貥?gòu)和粗粒度可重構(gòu)。細粒度可重構(gòu)是指以位為可重構(gòu)的基本單元,例如: 現(xiàn)場可編程門陣列(FPGA);粗粒度可重構(gòu)是指以能單獨完成某些功能的單元為基本單元,例如:應(yīng)用于特定領(lǐng)域的可重構(gòu)系統(tǒng)MATRIX[1]。本文所設(shè)計的可重構(gòu)S盒運算單元RSU(Reconfigurable Sbox Unit)即為粗粒度的可重構(gòu)單元??芍貥?gòu)密碼運算單元是可重構(gòu)密碼系統(tǒng)的重要組成部分,RSU就是其中一種密碼運算單元。S盒運算單元靈活、高效的設(shè)計與實現(xiàn),將會使一個芯片內(nèi)集成更多的密碼算法。針對這一問題,本文對S盒運算的特性進行了研究與分析,提出了一種能支持4-4、6-4、8-8、8-32四種運算模式的RSU。對于4-4模式,RSU一次可以配置16 個配置頁CP(Configurable Pages);對于6-4模式,RSU一次可以配置4 CP;對于8-8模式,RSU一次可以配置2 CP;對于8-32模式,RSU一次可以配置2 CPs。如此高效、靈活的RSU設(shè)計方案,為可重構(gòu)密碼系統(tǒng)的設(shè)計與實現(xiàn)提供了基礎(chǔ)。
1 S盒的應(yīng)用及其實現(xiàn)方式的分析
1.1 對稱密碼算法中的S盒

  在對稱密碼算法中,S盒運算單元的使用頻率非常高。但在不同的算法中,S盒的使用方式各不相同。下面給出常用的20種對稱密碼算法中S盒運算模式的使用情況,如表1所示。
  可重構(gòu)S盒運算單元的設(shè)計主要是為了滿足不同算法的要求,通過一致的接口和不同的控制信號" title="控制信號">控制信號,共同使用一個模塊,完成不同模式的S盒運算。分析以上密碼算法可知,常用的S盒運算有4-4、6-4、8-8、8-32四種運算模式,所以本文提出的RSU至少要支持這四種運算模式的操作。


1.2 S盒實現(xiàn)方式的分析
  目前,常用的S盒的實現(xiàn)方法" title="實現(xiàn)方法">實現(xiàn)方法有兩種:基于邏輯電路的實現(xiàn)方法和基于查找表(LUT)的實現(xiàn)方法。
  (1)基于邏輯電路的實現(xiàn)方法
  S盒字節(jié)變換的映射關(guān)系通常是由某個算法指定的,而這個特定的算法是用邏輯電路實現(xiàn)的,從而得到S盒的運算結(jié)果。例如:在MARS密碼算法中,S盒映射關(guān)系由SHA-1摘要算法指定[3],而SHA-1摘要算法用邏輯電路實現(xiàn),將S盒源操作數(shù)按要求輸入SHA-1電路,那么SHA-1電路的運算結(jié)果便可作為S盒的結(jié)果輸出。這種方法的好處在于使用的資源較少,但運算速度" title="運算速度">運算速度慢,會成為整個芯片的瓶頸。最主要的是,一個固定的電路只能完成一種運算,不具有可配置性,攻擊手段較易成功,芯片本身的安全性較低。
  (2)基于LUT的實現(xiàn)方法
  設(shè)計者按照S盒字節(jié)變換的映射關(guān)系,將所有可能的結(jié)果(一般地,算法設(shè)計者會給出相應(yīng)的數(shù)據(jù)向量表)放在一個存儲器(RAM、ROM或是寄存器堆)內(nèi),當(dāng)進行S盒運算時,將操作數(shù)作為查找地址,直接對存儲單元進行查找,查找的結(jié)果作為S盒運算結(jié)果輸出?;贚UT的實現(xiàn)方法如圖1所示。


  這種方法占用了較多的存儲單元,但運算速度非???路徑上的延遲只有寄存器或存儲器的輸出延遲。最主要的是它具有可配置性和較高的靈活性,能滿足當(dāng)前多種密碼運算的需要,并且當(dāng)芯片不進行配置時它本身不帶有任何的算法信息,使得芯片本身更具有安全性。RSU的設(shè)計就是基于LUT方式,并加入了可重構(gòu)的設(shè)計思想,使得RSU具有更高的靈活性和安全性。
2 RSU的設(shè)計
2.1 RSU電路的設(shè)計
  為了使RSU能夠配置不同S盒的LUT,本設(shè)計選擇了可重寫的RAM作為存儲器,它可以動態(tài)地、重復(fù)地配置LUT;為使RAM的讀地址和查找結(jié)果的映射關(guān)系為可重構(gòu)的,以滿足常用S盒輸入位寬的大小,可重構(gòu)的控制節(jié)點參加RAM讀寫地址的譯碼,控制RAM的讀寫模式,實現(xiàn)常用的4bit、6bit、8bit幾種位寬。以上幾種LUT模式的輸入位寬最大為8bit,所以 RAM的深度至少為256。常用S盒輸出位寬最寬為32bit,所以RAM的輸出位寬至少為32bit。對于程序員來說,一種算法最好只需要進行一次配置,而MARS密碼算法的S盒有兩組256×32bit的LUT數(shù)據(jù),所以RAM塊最小應(yīng)為512×32bit,但為了減小輸出的路徑延遲,選擇以256×64bit的形式來實現(xiàn),在物理上RSU是以8塊256×8bit的RAM塊來實現(xiàn)的,RSU整體電路結(jié)構(gòu)如圖2所示。


  RSU_Datain為RSU的數(shù)據(jù)輸入端口,RSU_CP為頁面選擇信號,RSU_mode為模式選擇信號,RSU_ren為RAM塊的讀使能,RSU_clk為系統(tǒng)時鐘,RSU_conf_wen為RSU的配置使能信號,RSU_conf_addr為RSU的配置地址輸入。RSU的內(nèi)部主要由四個RAM組構(gòu)成,RAM組1的電路如圖3所示。


  RAM組1分為兩個256×8bit的RAM塊。信號RSU_G1_operater_H、RSU_G1_operater_L、RSU_G1_conf_address、RSU_G1_sel1、RSU_G1_sel2是由原驅(qū)動信號RSU_Datain、RSU_conf_addr在可重構(gòu)控制節(jié)點RSU_mode、RSU_CP控制下生成的,作為控制信號和源操作數(shù)參加RAM組1的配置和運算操作。
  當(dāng)RSU_conf_wen有效時,RSU執(zhí)行配置操作;當(dāng)RSU_ren有效時,RSU進行運算操作。RSU_mode信號分別為00、01、10、11時,RSU分別完成8-8、8-32、4-4、6-4四種模式的配置和運算操作。RSU_CP為0000~1111時,分別對第0~15個配置頁面進行讀或?qū)?。在以上的可重?gòu)節(jié)點的控制下,RSU就可以完成相應(yīng)的配置和運算操作,并且最優(yōu)化地利用了資源:對于配置操作,在4-4模式下,本運算單元一次可以配置16CP;在6-4模式下,本單元一次可以配置8CP;在8-8模式下,本單元一次可以配置2CP;在8-32模式下,本單元一次可以配置2CP。對于運算法操作,配置完成后,在運算時由RS_CP指定相應(yīng)的CP參加運算,在4-4模式下,一個執(zhí)行時鐘內(nèi)可以完成8組運算;在6-4模式下,一個執(zhí)行時鐘內(nèi)可以完成4組運算;在8-8模式下,一個執(zhí)行時鐘內(nèi)可以完成4組運算;在8-32模式下,一個執(zhí)行時鐘內(nèi)可以完成1組運算。
2.2 RSU指令的設(shè)計
  將RSU應(yīng)用到處理器中需要有相應(yīng)的指令啟動不同模式的配置和運算操作。下面根據(jù)RSU所支持的多CP配置和所支持的不同模式的運算操作,給出配置和運算的指令格式及編碼格式。指令助記符的格式如下:
  配置指令格式:CSB.nTm.CP RD RS
  運算指令格式:ESB. nTm.CP RD RS
  CSB表示執(zhí)行配置操作,ESB表示執(zhí)行運算操作,nTm表示模式選擇,CP表示CP選擇,RD為目的操作數(shù),RS為源操作數(shù),n的取值范圍為4、6、8,m的取值范圍為4、8、32,CP的取值范圍為1~16。舉例說明如下:
  CSB.4T4.2 RD RS 表示在模式4-4,將源操作數(shù)RS作為配置數(shù)據(jù)配置到地址為RD的RAM單元中。
  ESB. 4T4.2 RD RS 表示在模式4-4,將RS作為源操作數(shù)進行S盒運算,結(jié)果放在地址為RD的RAM單元中。
  由以上可知,指令機器碼中的控制信息至少要包括操作選擇、模式選擇和CP選擇字段;對于操作數(shù),在不同處理器中有不同的目的及源操作數(shù)寄存器的地址位數(shù)。圖4給出控制字段所對應(yīng)的機器碼格式。


  指令中相應(yīng)字段編碼如表2所示。


  在4-4模式下,CP選擇字段的取值范圍為0000~1111;在6-4模式下,CP選擇字段的取值范圍為0000~0011;在8-8模式下,CP選擇字段的取值范圍為0000~0011;在8-32模式下,CP選擇字段的取值范圍為0000~0001。指令譯碼可以獲得可重構(gòu)節(jié)點的控制信號,RSU在這些控制信號的控制下執(zhí)行配置或運算操作。
3 RSU的性能測試
  以上設(shè)計采用verilog語言描述,在QuartusII 5.0環(huán)境下編譯綜合,選用Altera StratixII系列器件作為目標(biāo)器件進行整體綜合、仿真和底層布局。對多組數(shù)據(jù)進行測試仿真,均得到正確結(jié)果。
  該模塊的運算速度可以通過以下公式得出:
  運算速度=每個時鐘運算數(shù)據(jù)的長度×系統(tǒng)頻率
  將實現(xiàn)的可重構(gòu)S盒運算單元下載到Altera StratixII系列器件EP2S15F484C3后,測得的主要性能指標(biāo)如表3所示。


  本文提出的支持4-4、6-4、8-8、8-32四種運算模式的可重構(gòu)的S盒運算單元,在執(zhí)行配置操作時,對于4-4模式,可以一次配置16CP;對于6-4模式,可以一次配置8CP;對于8-8模式,可以一次配置2CP;對于8-32模式,可以一次配置2CP。在執(zhí)行運算操作時,在一個運算時鐘周期內(nèi)可以完成8組4-4的運算,或者4組6-4的運算,或者4組8-8的運算,或者1組8-32的運算,并且當(dāng)芯片不進行配置時它本身不帶有任何特定算法的信息,滿足了密碼芯片設(shè)計所需的安全性。經(jīng)過在FPGA上的驗證,其運行結(jié)果正確,且運算速度較快,由于工藝的不同,當(dāng)采用ASIC實現(xiàn)時,其性能還將在此基礎(chǔ)上明顯提高,從而能夠滿足實現(xiàn)多種密碼算法的密碼芯片的需求,為可重構(gòu)密碼芯片提供了新的支持。

參考文獻
[1] Altera Corporation.Stratix II Device Handbook[M]. available at http://www.Altera.com.
[2] ?嵩天,湯志忠,汪東升.可重構(gòu)計算相關(guān)研究綜述[G]. 2004年全國博士生學(xué)術(shù)論壇論文集,2004.
[3] ?高娜娜,王沁,李占才.基于AES和DES算法的可重構(gòu)S盒硬件實現(xiàn)[J].小型微型計算機系統(tǒng),2006,(3):446-449.
[4] ?IBM Corporation Carolynn Burwick Don Coppersmith Edward D’Avignon Rosario Gennaro Shai Halevi Charanjit Jutla StephenM. Matyas Jr. Luke O’Connor Mohammad Peyravian David Safford Nevenko Zunic, MARS-a candidate cipher for AES, Revised, September, 22, 1999
[5] ?ELBIRT A J. Reconfigurable computing for symmetric-key algorithms[D]. PhD thesis, Electrical and Computer Engineering Department University of Massachusetts Lowell, ?April 22, 2002.
[6] ?SINGH H, LEE M H, LU G, et al.An integrated recon-figurable system for data-parallel and computation-intensive applications[J]. IEEE transactuions on computers,2000,49(5)465-481.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容