• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      ANT 系列分組密碼算法的FPGA 高速實(shí)現(xiàn)*

      2021-04-24 11:37:08王建新劉芮安肖超恩
      電子技術(shù)應(yīng)用 2021年4期
      關(guān)鍵詞:加解密狀態(tài)機(jī)流水線

      王建新,劉芮安,肖超恩,張 磊

      (北京電子科技學(xué)院 電子與通信工程系,北京 100070)

      0 引言

      隨著信息技術(shù)的發(fā)展,信息安全問(wèn)題日益受到重視。在網(wǎng)絡(luò)空間安全維護(hù)、發(fā)展的進(jìn)程中,密碼技術(shù)在公鑰基礎(chǔ)設(shè)施、GSM 鑒權(quán)、電子信封及區(qū)塊鏈等[1]領(lǐng)域中起到了關(guān)鍵作用。分組密碼算法是保障信息機(jī)密性和完整性的重要技術(shù)手段[2],在智能終端、無(wú)線傳感網(wǎng)絡(luò)等領(lǐng)域廣泛應(yīng)用[3]。目前,所使用的分組密碼多為國(guó)外設(shè)計(jì),且傳統(tǒng)分組密碼如AES[4]等在資源有限的情況下并不適用。我國(guó)自主設(shè)計(jì)的商用分組密碼算法以SM4 算法為主。

      近年來(lái),提升科技創(chuàng)新的保障效應(yīng)和網(wǎng)絡(luò)安全的動(dòng)力機(jī)能[5]成為網(wǎng)絡(luò)空間治理的重要目標(biāo)。為推動(dòng)密碼算法技術(shù)進(jìn)步,中國(guó)密碼學(xué)會(huì)舉辦了全國(guó)密碼算法設(shè)計(jì)競(jìng)賽。ANT 系列分組密碼算法由山東大學(xué)網(wǎng)絡(luò)空間安全學(xué)院王美琴[6]等提交,經(jīng)公開評(píng)議、檢測(cè)評(píng)估和專家評(píng)選已入選競(jìng)賽第二輪名單。

      近年來(lái),輕量級(jí)密碼算法逐漸成為研究熱點(diǎn)[7],如HIGHT[8]、PRESENT[9]、PICCOLO[10]、LED[11]、LBlock[12]和Zorro[13]等。作為一款國(guó)產(chǎn)輕量級(jí)密碼算法,ANT 系列分組密碼算法具有抗側(cè)信道攻擊、適合bit-slice 多路并行實(shí)現(xiàn)等優(yōu)勢(shì)[6],具有一定的研究?jī)r(jià)值及應(yīng)用前景。

      為了適應(yīng)第五代移動(dòng)通信、物聯(lián)網(wǎng)等高新技術(shù)對(duì)密碼算法高速實(shí)現(xiàn)的需求[14],本文采用流水線結(jié)構(gòu),對(duì)ANT 算法進(jìn)行高速、高數(shù)據(jù)吞吐率的硬件設(shè)計(jì)實(shí)現(xiàn)。

      1 ANT 系列分組密碼算法介紹

      1.1 ANT-128/128 分組密碼算法

      ANT-128/128 分組密碼算法采用128 bit 長(zhǎng)度主密鑰K=k2n-1||k2n-2||…||k0,并可以分為:

      K1||K0作為L(zhǎng)FSR 的初始狀態(tài)。每次先取出當(dāng)前低位寄存器Ki中的n 比特作為當(dāng)前輪的輪密鑰ki,然后進(jìn)行LSFR 的狀態(tài)更新,(i+1)作為輪常數(shù)(i 為當(dāng)前輪數(shù)),如圖1 所示。Ki+1經(jīng)過(guò)A 操作迭代變換3 次,如圖2所示。

      圖1 ANT-128/128 算法密鑰擴(kuò)展結(jié)構(gòu)圖

      圖2 A 操作結(jié)構(gòu)圖

      在ANT-128/128 算法中,常數(shù)t0=7,t1=1。

      1.2 輪函數(shù)

      ANT-128/128 分組密碼算法輪函數(shù)結(jié)構(gòu)如圖3 所示,其中,(s0,s1)=(3,16)。為保證加解密一致,最后一輪左支經(jīng)過(guò)輪函數(shù)后不進(jìn)行交換。

      圖3 輪函數(shù)結(jié)構(gòu)圖

      1.2.1 非線性函數(shù)G0 、G1

      G0、G1為非線性函數(shù),包含兩層,兩層中間是一層比特級(jí)的置換。

      (1)對(duì)于G0:y1=G0(x0)

      先經(jīng)過(guò)第一層:

      其中,0≤j<n。

      (2)對(duì)于G1,結(jié)構(gòu)與G0相同,僅作比特位與模數(shù)的變換,在此不作贅述。

      1.2.2 比特級(jí)置換PERM

      在ANT-128/128 算法下,比特級(jí)置換PERM 的表達(dá)式如下:

      2 功能模塊設(shè)計(jì)

      本文采用Verilog HDL 語(yǔ)言以Quartus II 15.0 為平臺(tái)進(jìn)行工程實(shí)現(xiàn)。系統(tǒng)由兩個(gè)主要部分組成,分別為密鑰擴(kuò)展模塊和加解密模塊。本文使用了有限狀態(tài)機(jī)(FSM)[15-16]的設(shè)計(jì)思路對(duì)兩個(gè)模塊進(jìn)行工程實(shí)現(xiàn),并采用流水線結(jié)構(gòu)對(duì)加解密模塊進(jìn)行性能優(yōu)化,以提高數(shù)據(jù)吞吐率。系統(tǒng)整體結(jié)構(gòu)框圖如圖4 所示。

      圖4 系統(tǒng)整體結(jié)構(gòu)框圖

      圖4 中,在控制信號(hào)置位后,密鑰擴(kuò)展模塊讀取128 bit主密鑰并進(jìn)行子密鑰擴(kuò)展,存儲(chǔ)于子密鑰寄存器中,供加解密模塊調(diào)用。加解密模塊讀取明文,并以流水線的形式同時(shí)開始各輪函數(shù)運(yùn)算,在經(jīng)歷46 輪后,生成128 bit密文。下面將對(duì)三個(gè)模塊設(shè)計(jì)方案進(jìn)行詳細(xì)說(shuō)明。

      2.1 密鑰擴(kuò)展模塊設(shè)計(jì)

      ANT 密鑰擴(kuò)展模塊基于LFSR 實(shí)現(xiàn),采用有限狀態(tài)機(jī)結(jié)構(gòu),能夠達(dá)到“狀態(tài)更新一次,寄存器移位一次”的效果。密鑰擴(kuò)展模塊定義的輸入端口有:時(shí)鐘、主密鑰以及復(fù)位,設(shè)置狀態(tài)字寄存器。當(dāng)系統(tǒng)檢測(cè)到復(fù)位信號(hào)時(shí),電路將從空閑狀態(tài)轉(zhuǎn)換為工作狀態(tài),并在每一個(gè)時(shí)鐘上升沿到來(lái)時(shí)轉(zhuǎn)換到下一狀態(tài)。每一輪完成后,生成的子密鑰將會(huì)存入相應(yīng)的寄存器,供輪函數(shù)調(diào)用。經(jīng)歷46 輪后,密鑰擴(kuò)展完畢。密鑰擴(kuò)展模塊流程如圖5 所示。

      圖5 密鑰擴(kuò)展流程圖

      在密鑰擴(kuò)展模塊中,為保證數(shù)據(jù)的擴(kuò)散性,算法設(shè)計(jì)了A 操作并對(duì)其進(jìn)行三次迭代,其實(shí)質(zhì)是對(duì)比特分組的移位和異或。為提升運(yùn)算速度,本文經(jīng)過(guò)計(jì)算得到A 操作迭代三次后的輸出表達(dá)式,并將其整體例化為元件。該設(shè)計(jì)方式無(wú)需調(diào)用三次“A 操作”,只需調(diào)用一次“A 操作三次迭代”,省去了四次異或運(yùn)算與四次移位。在密鑰擴(kuò)展中,由于各輪中該部分功能相同,只需實(shí)現(xiàn)一次元件,并在各輪中依次調(diào)用,從而大大節(jié)約了硬件資源。

      A 操作經(jīng)計(jì)算后的表達(dá)式為:

      其中,i 為輪數(shù),x[7]、x[6]…x[0]為A 操作輸入均分成的8 個(gè)32 比特的分組。

      2.2 輪函數(shù)設(shè)計(jì)

      ANT 輪函數(shù)采用Feistel 結(jié)構(gòu),在每一輪中,左側(cè)輸出涉及兩個(gè)循環(huán)左移、兩次G 操作和三個(gè)異或運(yùn)算,右側(cè)輸出等于左側(cè)輸入,不參與運(yùn)算。對(duì)于循環(huán)左移,由于各次移動(dòng)位數(shù)相同,本文直接采用位拼接的方式改變輸入信號(hào),省去了移位運(yùn)算。

      G0、G1操作是比特級(jí)非線性函數(shù),僅采用比特級(jí)的與操作、異或操作和PERM 置換操作[6]。由于各輪中比特置換PERM 完全一致,本文則直接對(duì)相應(yīng)比特位進(jìn)行線網(wǎng)型賦值,不進(jìn)行單獨(dú)例化,從而減少不必要的運(yùn)算和資源占用。G0、G1操作功能一致但各輪輸入輸出信號(hào)不同,例化為元件,供各輪調(diào)用。G0實(shí)現(xiàn)流程如圖6 所示,G1與G0操作類似,僅模數(shù)不同,故此處不再贅述。

      圖6 G0 操作流程圖

      2.3 加解密模塊設(shè)計(jì)

      ANT 加(解)密模塊中各輪相同功能模塊只需實(shí)現(xiàn)一次并對(duì)其重復(fù)調(diào)用。由于輪函數(shù)每一輪的左輸出即為下一輪的右輸入;每一輪的右輸出即為下一輪的左輸入;又因?yàn)槊枯営逸斎氲闹蹬c上一輪左輸入的值相同,采用有限狀態(tài)機(jī)方式,定義了左右兩組寄存器,實(shí)現(xiàn)數(shù)據(jù)在狀態(tài)跳變時(shí)的依次傳遞。當(dāng)系統(tǒng)檢測(cè)到密鑰擴(kuò)展完成后,狀態(tài)機(jī)跳轉(zhuǎn)至工作狀態(tài),讀取明(密)文數(shù)據(jù)。當(dāng)狀態(tài)依次更新時(shí),各輪進(jìn)行左右數(shù)據(jù)交換,并進(jìn)行加(解)密運(yùn)算,以此類推。ANT 算法加解密結(jié)構(gòu)一致,本文僅以加密過(guò)程為例。具體流程如圖7 所示。

      2.4 流水線設(shè)計(jì)優(yōu)化

      本文采用流水線結(jié)構(gòu)[16-19]對(duì)算法進(jìn)行速度優(yōu)化。流水線是一種通過(guò)增加空間的利用來(lái)減少時(shí)間消耗的時(shí)空映射技術(shù)[20],對(duì)電路邏輯進(jìn)行系統(tǒng)分割,在各部分之間插入寄存器暫存中間數(shù)據(jù),將大操作分解成若干個(gè)小操作。每一個(gè)小操作的時(shí)間短且支持并行計(jì)算。

      圖7 加密模塊流程圖

      ANT-128/128 算法包含46 輪加解密運(yùn)算,采用流水線結(jié)構(gòu)可以實(shí)現(xiàn)輪運(yùn)算的并行操作,大大提升加解密效率。在具體實(shí)現(xiàn)中,本文采用46 級(jí)全級(jí)流水線結(jié)構(gòu),每一輪函數(shù)運(yùn)算結(jié)束后,其結(jié)果存入緩沖區(qū)中,供下一輪函數(shù)運(yùn)算調(diào)用。同時(shí),其本身也將從上一輪運(yùn)算的緩沖區(qū)中提取數(shù)據(jù),開始下一輪運(yùn)算。與非流水線結(jié)構(gòu)相比,該方法能夠使效率顯著提升?;诹魉€的加密模塊流程如圖8 所示。

      圖8 基于流水線的加密模塊流程圖

      圖8 中,輪函數(shù)1 使用第一組明文開始運(yùn)算,將結(jié)果存入1/2 輪緩沖區(qū),同時(shí)讀取下一組明文。輪函數(shù)2讀取1/2 輪緩沖區(qū)中的數(shù)據(jù),將結(jié)果存入2/3 緩沖區(qū),并再次從1/2 緩沖區(qū)中讀取新的數(shù)據(jù),以此類推。

      3 仿真驗(yàn)證與性能分析

      本文采用Altera 公司Cyclone V 系列的5CGXFC7D6-F31C7ES 芯片,以Quartus II 15.0 為開發(fā)環(huán)境對(duì)算法進(jìn)行系統(tǒng)仿真驗(yàn)證與性能分析。

      3.1 密鑰擴(kuò)展模塊結(jié)果與性能分析

      密鑰擴(kuò)展模塊仿真波形如圖9 所示。為方便觀察,圖中僅列出了00 輪至05 輪、10 輪至15 輪以及最后一輪的數(shù)據(jù)。算法作者給出的部分子密鑰標(biāo)準(zhǔn)向量值如表1 所示,可以得出:仿真結(jié)果與標(biāo)準(zhǔn)向量值一致。

      表1 部分輪次子密鑰標(biāo)準(zhǔn)向量值

      密鑰擴(kuò)展模塊性能參數(shù)如表2 所示。其中,邏輯單元1 663 Slices,占總邏輯資源的3%;寄存器3 185 Slices;綜合最大工作頻率247.52 MHz。

      表2 密鑰擴(kuò)展模塊性能參數(shù)

      圖9 密鑰擴(kuò)展模塊仿真波形圖

      3.2 加解密模塊結(jié)果與性能分析

      本文利用Verilog HDL 語(yǔ)言進(jìn)行了基于單輪單個(gè)分組數(shù)據(jù)的加密,并已將各輪子密鑰存儲(chǔ)于寄存器中。其中,采用有限狀態(tài)機(jī)設(shè)計(jì)的仿真波形如圖10 所示,采用流水線設(shè)計(jì)的仿真波形如圖11 所示。算法作者給出的密文標(biāo)準(zhǔn)向量值如圖12 所示,仿真結(jié)果與標(biāo)準(zhǔn)向量值一致。

      由表3 可知,采用有限狀態(tài)機(jī)設(shè)計(jì)的加解密模塊占用資源較少,但運(yùn)算速度不高,其吞吐率v1為:

      表3 加解密模塊性能參數(shù)對(duì)比

      采用流水線設(shè)計(jì)進(jìn)行優(yōu)化后,雖然占用資源較多,但可以獲得更高的工作頻率,使得數(shù)據(jù)吞吐率得到極大提升。流水線設(shè)計(jì)的最大工作頻率為338.52 MHz,其吞吐率v2為:

      圖10 采用有限狀態(tài)機(jī)設(shè)計(jì)的仿真波形圖

      圖11 采用流水線設(shè)計(jì)的仿真波形圖

      圖12 算法作者給出的密文標(biāo)準(zhǔn)向量值

      算法作者給出的硬件仿真(基于HJTC110nm 標(biāo)準(zhǔn)元件庫(kù))數(shù)據(jù)中,加密吞吐率約為1.3 Gb/s,而本文所得加密吞吐率為43 Gb/s,約為其吞吐率的33 倍??梢?,ANT分組密碼算法的加密吞吐率在經(jīng)流水線結(jié)構(gòu)優(yōu)化后顯著提升。

      4 結(jié)論

      本文對(duì)ANT-128/128 分組密碼算法進(jìn)行了相關(guān)研究,在用有限狀態(tài)機(jī)結(jié)構(gòu)對(duì)算法進(jìn)行硬件實(shí)現(xiàn)后,采用流水線設(shè)計(jì)對(duì)加解密模塊進(jìn)行效率優(yōu)化,并對(duì)二者進(jìn)行了性能對(duì)比。其中,面向速度優(yōu)化的流水線設(shè)計(jì)大大提高了加解密速率,在工作頻率339 MHz 下,生成一組128 bit 的密文,速度達(dá)到43 Gb/s。后續(xù)將會(huì)對(duì)其面積、速度進(jìn)行更深入優(yōu)化,進(jìn)一步提升算法運(yùn)行效率。

      猜你喜歡
      加解密狀態(tài)機(jī)流水線
      Gen Z Migrant Workers Are Leaving the Assembly Line
      流水線
      基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
      PDF中隱私數(shù)據(jù)的保護(hù)方法
      電子取證中常見數(shù)據(jù)加解密理論與方法研究
      基于FPGA的LFSR異步加解密系統(tǒng)
      報(bào)廢汽車拆解半自動(dòng)流水線研究
      網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)募咏饷芟到y(tǒng)研究
      軟件工程(2014年11期)2014-11-15 20:02:46
      SIMATIC IPC3000 SMART在汽車流水線領(lǐng)域的應(yīng)用
      FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
      普格县| 津市市| 阿合奇县| 五峰| 苗栗市| 阜城县| 博客| 建阳市| 双鸭山市| 富阳市| 安福县| 河池市| 永德县| 云龙县| 壤塘县| 高要市| 齐河县| 抚远县| 盘锦市| 镇宁| 河池市| 黔东| 凤山县| 平乐县| 姜堰市| 伊宁市| 南涧| 海口市| 常山县| 米泉市| 丹东市| 丹巴县| 阿巴嘎旗| 伊宁县| 临汾市| 临桂县| 宁夏| 玛沁县| 扬州市| 青川县| 肃南|