吉兵,陳振嬌,王兆尹,范炯
(中國(guó)電子科技集團(tuán)公司第58研究所,江蘇無錫214072)
基于FPGA的Rijndael-Ecc加密系統(tǒng)的實(shí)現(xiàn)
吉兵,陳振嬌,王兆尹,范炯
(中國(guó)電子科技集團(tuán)公司第58研究所,江蘇無錫214072)
針對(duì)目前物聯(lián)網(wǎng)易被攻擊的特點(diǎn),提出一種基于FPGA的Rijndael-ECC混合加密系統(tǒng)。方案采用Rijndael模塊對(duì)數(shù)據(jù)進(jìn)行加密,用散列函數(shù)加密算法處理數(shù)據(jù)得到數(shù)據(jù)摘要,用ECC加密算法實(shí)現(xiàn)對(duì)摘要的簽名和私鑰的加密,各模塊采用并行執(zhí)行的處理方式。同時(shí)利用流水線思想對(duì)Rijndael的輪單元結(jié)構(gòu)進(jìn)行了改進(jìn),提高了整個(gè)加密系統(tǒng)的工作效率,完全滿足了物聯(lián)網(wǎng)對(duì)于穩(wěn)定性、功耗以及處理速度的要求,給數(shù)據(jù)傳輸?shù)陌踩蕴峁┝烁邚?qiáng)度的保障。
FPGA;Rijndael;橢圓曲線加密算法;數(shù)字簽名
物聯(lián)網(wǎng)的廣泛使用帶來了諸多類型的安全威脅,隨著片上系統(tǒng)(SoC)和低功耗嵌入式技術(shù)的飛速發(fā)展,使得物聯(lián)網(wǎng)廣泛應(yīng)用于國(guó)防軍事、生物醫(yī)療、城市交通、國(guó)際反恐等諸多需嚴(yán)格保障信息安全的領(lǐng)域,因此如何為物聯(lián)網(wǎng)絡(luò)提供更可靠的安全保障已經(jīng)成為研究的熱點(diǎn)[1]。
自2013年以來,隨著物聯(lián)網(wǎng)概念的火熱,市面上出現(xiàn)了大量基于物聯(lián)網(wǎng)開發(fā)的智能傳感器設(shè)備,從智能家居到醫(yī)療衛(wèi)生,這些設(shè)備與我們的安全密不可分。近年來關(guān)于黑客頻繁入侵智能終端的報(bào)道越來越多,對(duì)于人們的安全隱私造成了極大的威脅,由于安全系統(tǒng)本身商業(yè)價(jià)值較低的原因,使得物聯(lián)網(wǎng)安全發(fā)展十分緩慢。值得注意的是自2015年開始,美國(guó)已出臺(tái)了一系列關(guān)于物聯(lián)網(wǎng)設(shè)備安全和隱私的規(guī)定。我國(guó)目前對(duì)于物聯(lián)網(wǎng)設(shè)備安全還沒有明確規(guī)定,安全問題一直是現(xiàn)代生活中的一部分,對(duì)于物聯(lián)網(wǎng)設(shè)備的保護(hù)應(yīng)當(dāng)出現(xiàn)在其發(fā)展中的各個(gè)階段,新的安全漏洞會(huì)不斷涌現(xiàn),因此有關(guān)于物聯(lián)網(wǎng)安全問題的研究具有十分重要的價(jià)值。
目前在加密領(lǐng)域主要有兩種較為流行的加密算法:對(duì)稱加密算法和非對(duì)稱加密算法。Rijndael作為美國(guó)政府加密標(biāo)準(zhǔn)(AES)的加密算法有著高效安全的優(yōu)勢(shì),但其密鑰管理較為復(fù)雜,并不完全適用于物聯(lián)網(wǎng)開放式的工作環(huán)境,而橢圓曲線加密算法(ECC)有著十分簡(jiǎn)單的密鑰管理系統(tǒng),非常適用于物聯(lián)網(wǎng),但其工作效率遠(yuǎn)不如Rijndael加密算法,對(duì)于這兩種加密算法的研究往往都是分開進(jìn)行并無交集。為了更好地適用于物聯(lián)網(wǎng)的工作環(huán)境,本文將兩種算法進(jìn)行結(jié)合,提出了一種基于FPGA的Rijndael-ECC混合加密系統(tǒng)的設(shè)計(jì)方案。
本文所設(shè)計(jì)的系統(tǒng)主要包含兩大功能:數(shù)據(jù)加密和身份認(rèn)證。Rijndael負(fù)責(zé)數(shù)據(jù)與簽名的加密傳輸,ECC算法主要用于實(shí)現(xiàn)ECDSA簽名系統(tǒng)。為了保證整個(gè)系統(tǒng)的高效運(yùn)行,本文將對(duì)各主要底層模塊進(jìn)行單獨(dú)分析和設(shè)計(jì),最后利用各模塊搭建出整個(gè)加密系統(tǒng)。
2.1 Rijndael算法基本結(jié)構(gòu)
Rijndael算法的分組長(zhǎng)度和密鑰長(zhǎng)度的設(shè)計(jì)十分靈活且安全性高。其算法基于排列和置換的迭代型分組的密碼,能夠有效防御各種攻擊和線性密碼分析[2]。它可以使用128位、192位和256位密鑰,并且使用128位(16 B)分組加密和解密數(shù)據(jù),轉(zhuǎn)換的輪數(shù)Nr由秘鑰長(zhǎng)度m和分組長(zhǎng)度n共同決定,AES加密的每一輪均由輪密鑰異或、S盒變換、行置換和列混合4個(gè)變換組成[3],過程如圖1所示。
圖1 Rijndael加密流程圖
2.2 基于FPGA的Rijndale模塊設(shè)計(jì)
基于圖1分析,可以發(fā)現(xiàn)Rijndale加密算法基本包含位移、異或、代換、混合這幾個(gè)操作。已知位移操作不需要門電路,異或也比較簡(jiǎn)單。相對(duì)來說復(fù)雜的運(yùn)算就是代換和混合操作,細(xì)分可分為字節(jié)的正逆代換、列混淆和逆列混淆[4]。因此對(duì)于Rijndale設(shè)計(jì),用硬件描述完成這些復(fù)雜的組合邏輯電路是設(shè)計(jì)的難點(diǎn)。如今在高性能的硬件設(shè)計(jì)領(lǐng)域,流水線設(shè)計(jì)是當(dāng)今速度最快也是比較成熟的一種技術(shù)手段。本文根據(jù)Rijndale加密流程各個(gè)步驟不同的運(yùn)算方式,分別采用了并行處理和內(nèi)部流水線兩種混合的設(shè)計(jì)方案。
由圖1中可以看出Rjindale加密算法是一個(gè)N次迭代的過程,每一輪的循環(huán)是加密過程最重要的步驟,因此我們將輪單元結(jié)構(gòu)進(jìn)行展開分析,如圖2所示。
圖2 Rijndale輪單元基本結(jié)構(gòu)
根據(jù)所示輪加密運(yùn)算的內(nèi)部邏輯單元運(yùn)算,根據(jù)門等效原理[5],表1所示為各個(gè)單元的等效邏輯門個(gè)數(shù)。
根據(jù)表1所示的各個(gè)運(yùn)算所需要的總邏輯門數(shù)、路徑邏輯門以及延時(shí)邏輯門數(shù),我們對(duì)輪單元結(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計(jì),對(duì)很長(zhǎng)的工作路徑進(jìn)行合理劃分,確保分割模塊可以獲得較大的時(shí)鐘頻率。如果所設(shè)計(jì)的流水線級(jí)數(shù)過多,雖然運(yùn)算單元的工作頻率會(huì)越高,但是系統(tǒng)所消耗的資源或者面積就會(huì)越大。
表1 路徑長(zhǎng)度等效邏輯門
圖3 Rijndale輪單元結(jié)構(gòu)改進(jìn)
表2 分割后的各部分路徑長(zhǎng)度
如表2結(jié)果所示,在關(guān)鍵路徑上插入緩存器,將時(shí)間路徑最大限度地均勻分割,將復(fù)雜的邏輯組合與簡(jiǎn)單的邏輯進(jìn)行均分,使得單短組合邏輯簡(jiǎn)單化,縮短了路徑,提高了每段邏輯組合的運(yùn)算速度,使Rijndael在FPGA上實(shí)現(xiàn)了較高的吞吐率,進(jìn)而帶來了較高的系統(tǒng)工作效率。
Rijndael加密流程的另一個(gè)重要環(huán)節(jié)就是n輪密鑰的生成,傳統(tǒng)方案中密鑰的生成總是要等待輪迭代的執(zhí)行,密鑰擴(kuò)展單元就產(chǎn)生了大量空閑時(shí)間,十分浪費(fèi)系統(tǒng)資源,利用FPGA平臺(tái)自身的優(yōu)勢(shì),使得輪迭代和密鑰擴(kuò)展單元兩個(gè)模塊同時(shí)執(zhí)行,節(jié)約了密鑰生成所消耗的時(shí)間,提高了整個(gè)加密流程的運(yùn)行速度。
2.3 Rijndale電路模塊的實(shí)現(xiàn)
為了保證整個(gè)加密系統(tǒng)的復(fù)用性和可升級(jí)性,原則上對(duì)能夠單獨(dú)設(shè)計(jì)的功能進(jìn)行模塊化設(shè)計(jì)以方便后續(xù)的使用與單獨(dú)的方針測(cè)試。如圖4所示為基于Quartus II 9.0的Rijndael加密程序的數(shù)字電路模塊。
圖4 Rijndale電路模塊
3.1 ECC模塊化設(shè)計(jì)
對(duì)于以廣播的通信方式進(jìn)行數(shù)據(jù)傳遞的物聯(lián)網(wǎng)來說,這種開放式的特點(diǎn)相對(duì)容易受到非法竊聽或者攻擊。ECC公鑰密碼體制剛好具有極其相似的通信形式,而密碼體制卻具有極高安全性,因此二者的結(jié)合可有效地提高通信的安全性[6]。
ECC算法的實(shí)現(xiàn)是在這兩個(gè)基本的伽羅瓦域(Galois fields)中的一個(gè):大素?cái)?shù)階域GF(p)或者是特征值為2的GF(2m)域。目前這兩個(gè)域被公認(rèn)可以提供相同的安全級(jí)別,本文將重點(diǎn)研究在有限域GF(2m)上運(yùn)算[7],因?yàn)樗梢栽谟布懈行У乩媚?運(yùn)算。本文所建立的ECC通信模型如圖5所示。
圖5 ECC通信模型
基于ECC加密算法的通信模型,本文設(shè)計(jì)了如圖6所示的ECC算法的結(jié)構(gòu)框圖,并且為了方便算法在FPGA上的高效實(shí)現(xiàn),本文將模運(yùn)算的逆、加、乘等調(diào)用比較頻繁的操作進(jìn)行了單獨(dú)設(shè)計(jì),圖7、圖8為部分電路圖。
圖6 ECC電路框圖
圖7 模乘和模平方運(yùn)算器件
圖8 模逆運(yùn)算邏輯器件
3.2 數(shù)據(jù)摘要模塊
一個(gè)加密系統(tǒng)要具備比較完整的抗攻擊能力,不僅要能防御被動(dòng)攻擊,同時(shí)也要能抵抗主動(dòng)攻擊,加密數(shù)據(jù)僅僅只能保證被動(dòng)攻擊的安全性,對(duì)于主動(dòng)攻擊,身份認(rèn)證是強(qiáng)有力的手段,消息摘要是實(shí)現(xiàn)身份認(rèn)證的核心技術(shù)[8]。本文將采用較為成熟的算法MD5,將其移植到FPGA上進(jìn)行實(shí)現(xiàn),如圖9所示。
圖9 基于Quartus II的MD5電路器件
3.3 數(shù)字簽名方案
在數(shù)據(jù)通信中,我們可以使用數(shù)字簽名來對(duì)訪問節(jié)點(diǎn)的身份進(jìn)行認(rèn)證,以確保信息的可靠性,本文將采用ECC密碼體制對(duì)數(shù)據(jù)摘要進(jìn)行加密等處理的方案產(chǎn)生數(shù)字簽名,為了易于硬件算法的實(shí)現(xiàn),將采用基于Montgomery的ECDSA簽名算法[9],如圖10所示為基于ECC的數(shù)字簽名方案。
圖10 數(shù)字簽名流程
4.1 系統(tǒng)加密模塊
近年來我國(guó)農(nóng)村空心化、留守化、衰敗化的問題比較突出。交通不便、教育水平有限、醫(yī)療衛(wèi)生欠缺、就業(yè)形勢(shì)嚴(yán)峻、基礎(chǔ)設(shè)施不完善等問題,使得鄉(xiāng)村越來越難滿足現(xiàn)代人的生產(chǎn)生活需求。不少鄉(xiāng)村勞動(dòng)力外流,只有老人、小孩留守家園。另外,傳統(tǒng)社會(huì)維系鄰里的鄉(xiāng)賢宗法體系、農(nóng)耕勞作體系、風(fēng)水匠作體系已趨瓦解,在當(dāng)下重構(gòu)民主管理、團(tuán)結(jié)互助、和睦友善的鄰里關(guān)系迫在眉睫。
本文從安全、高效、靈活以及通用性的特點(diǎn)出發(fā),結(jié)合1、2節(jié)中涉及的加解密、密鑰安全、簽名認(rèn)證等底層模塊,如圖11所示給出了加密過程的具體步驟:
(1)對(duì)將要發(fā)送的數(shù)據(jù)作預(yù)處理,使用摘要算法得到數(shù)據(jù)摘要,Rijndael算法得到數(shù)據(jù)密文;
(2)ECC加密模塊對(duì)密鑰進(jìn)行偽裝得到密鑰數(shù)據(jù)碼;
(3)ECDSA簽名算法對(duì)數(shù)據(jù)摘要進(jìn)行簽名處理得到唯一數(shù)字簽名;
(4)Rijndael模塊繼續(xù)對(duì)簽名進(jìn)行加密處理得到簽名碼;
(5)對(duì)所有密文進(jìn)行打包發(fā)送。
圖11 加密系統(tǒng)
4.2 系統(tǒng)解密模塊
解密系統(tǒng)如圖12所示。
(2)調(diào)用ECC密碼系統(tǒng)對(duì)密鑰密文進(jìn)行解密運(yùn)算,解密出Rijndael加密所使用的密鑰。
(3)調(diào)用Rijndael加密算法對(duì)簽名和數(shù)據(jù)做解密操作,從中分理出簽名信息和明文數(shù)據(jù)。
(4)調(diào)用MD5模塊對(duì)明文信息進(jìn)行處理,得到摘要信息;將摘要信息和簽名信息送入ECC簽名驗(yàn)證模塊,分別得到信息r和v。
(5)當(dāng)且僅當(dāng)v=r時(shí),身份可確認(rèn)且信息有效,將數(shù)據(jù)送入下一環(huán)節(jié);否則,身份錯(cuò)誤并粉碎數(shù)據(jù)。
圖12 解密系統(tǒng)
4.3 測(cè)試數(shù)據(jù)
本文采用基于EP4CE115的FPGA平臺(tái)對(duì)加密系統(tǒng)進(jìn)行開發(fā)實(shí)現(xiàn),使用Quartus II 9.1綜合仿真平臺(tái)和ModelSim SE 6.5仿真軟件[10]對(duì)每一個(gè)低層單元進(jìn)行單獨(dú)仿真和分析,可以更好地反映出系統(tǒng)的工作效率。
在Rijndael模塊綜合測(cè)試中,我們將加密流程中的字代換、行位移、列混合等過程中的關(guān)鍵變量信號(hào)添加到仿真文件中,可以更直觀地看到每一步驟的變換過程,如圖13所示。
圖13 Rijndael加解密仿真圖
由圖13可以看到Rijndael加密算法的4個(gè)基本工作步驟:輪密鑰異或(add)、S盒變換(sub)、行置換(shift)和列混合(mix)。僅從仿真圖來看,基于流水線設(shè)計(jì)的輪單元工作正常,相比傳統(tǒng)方案中順序執(zhí)行的處理方法,本設(shè)計(jì)在一定程度上提高了加密的速度,具體仿真參數(shù)如表3所示。
表3 Rijndael算法模塊綜合測(cè)試
基于流水線的設(shè)計(jì)方案理論上會(huì)占用更多的資源,表3可以看出本方案在資源占用率上并無優(yōu)勢(shì),但在吞吐率上有較大的提升,結(jié)果顯示本方案的吞吐率達(dá)到了23808 Mbps,在犧牲了部分資源的情況下使得系統(tǒng)工作效率有了較為明顯的提升。最終經(jīng)過計(jì)算,在吞吐率/面積比這個(gè)衡量系統(tǒng)是否高效的指標(biāo)上,本文設(shè)計(jì)具有較為明顯的優(yōu)勢(shì)。
從圖14和圖15可以清楚地看出通過ECC加密算法得到的簽名為rg=2157957AD158…,加密后的簽名sg=0e0a987…,數(shù)字簽名校驗(yàn)結(jié)果如圖16所示,v=r=2157957AD158…,驗(yàn)證了本系統(tǒng)工作的正確性和可靠性。
圖14 ECC仿真圖
圖15 加密系統(tǒng)仿真圖
圖16 簽名校驗(yàn)仿真圖
本文根據(jù)物聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)奶攸c(diǎn),提出了基于FPGA的Rijndael-Ecc加密方案并得到了實(shí)現(xiàn),測(cè)試數(shù)據(jù)也表明在一定程度上提高了數(shù)據(jù)傳輸?shù)陌踩裕`活性的設(shè)計(jì)方案也為繼續(xù)優(yōu)化加密系統(tǒng)做了良好的鋪墊,今后將繼續(xù)研究在系統(tǒng)工作效率不變的前提下進(jìn)一步優(yōu)化系統(tǒng)所占面積。
[1]BlilatA,Bouayad A,ElHouda ChaouiN,etal.Wireless sensor network:Security challenges[C].Network Security and Systems(JNS2),2012 NationalDaysof.IEEE,2012:68-72.
[2]Johnson D,Menezes A,Vanstone S.The elliptic curve digital signature algorithm(ECDSA)[J].International Journal of Information Security,2001,1(1):36-63.
[3]Herrera-Alzu I,López-Vallejo M.Design techniques for Xilinx Virtex FPGA configuration memory scrubbers[J]. IEEE Transactions on Nuclear Science,2013,60:376-385.
[4]Kaminsky A,Kurdziel M,Radziszowski S.An overview of cryptanalysis research for the advanced encryption standard; proceedings of the Military Communications Conference[C]. IEEE,2010-MILCOM 2010,F,2010.
[5]ZHI L.Reseach of Image Encryption Algorithm Based on S-DES;proceedings of the Computer Science and Electronics Engineering(ICCSEE)[C].IEEE,2012 International Conference on,F,2012.
[6]RIEBLER H,KENTER T,PLESSL C,et al.Reconstructing AES Key Schedules from Decayed Memory with FPGAs; proceedings of the Field-Programmable Custom Computing Machines(FCCM)[C].2014 IEEE 22nd Annual International Symposium on,F,2014.
[7]SUN J,ZHAO G,LI X.An Improved Public Key Encryption Algorithm Based on Chebyshev Polynomials[J]. Telkomnika Indonesian Journal of Electrical Engineering, 2013,11(2):864-70.
[8]Elbirt A J,Yip W,Chetwynd B,et al.An FPGA-based performance evaluation of the AES block cipher candidate algorithm finalists[J].Very Large Scale Integration(VLSI) Systems,IEEE Transactions on,2001,9(4):545-557.
[9]Shim J H,Kim D W,Kang Y K,et al.A Rijndael cryptoprocessor using shared on-the-fly key scheduler[C]. ASIC,2002.Proceedings.2002 IEEE Asia-Pacific Conference on.IEEE,2002:89-92.
[10]ZHU Y,ZHANG H,BAO Y.Study of the AES Realization Method on the Reconfigurable Hardware;proceedings of the Computer Sciences and Applications(CSA)[C].2013International Conference on,F,2013.
[11]ZHANG X,PARHI K K.High-speed VLSI architectures for the AES algorithm[J].Very Large Scale Integration (VLSI)Systems,IEEE Transactions on,2004,12(9): 957-67.
[12]J RVINEN K U,TOMMISKA M T,SKYTT J O.A fully pipelined memoryless 17.8 Gbps AES-128 encryptor; proceedings of the Proceedings of the 2003 ACM/SIGDA eleventh international symposium on Field programmable gate arrays[C].F,ACM,2003.
[13]STANDAERT F-X,ROUVROY G,QUISQUATER J-J,et al.Efficient implementation of Rijndael encryption in reconfigurable hardware:improvements and design tradeoffs[M].Cryptographic Hardware and Embedded Systems-CHES 2003.Springer.2003:334-50.
[14]ZAMBRENO J,NGUYEN D,CHOUDHARY A. Exploring area/delay tradeoffs in an AES FPGA implementation[M].Field Programmable Logic and Application.Springer.2004:575-85.
[15]JUN T,LIEJUN W.An improved rijndael encryption algorithm based on niosii[J].Information Technology Journal,2013,12(7):1434-8.
Rijndael-Ecc Encryption System Based on FPGA
JI Bing,CHEN Zhenjiao,WANG Zhaoyin,FAN Jiong
(China Electronic Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)
According to the characteristics of the development of the Internet of things,a Rijndael-ECC encryption system based on FPGA is proposed.The scheme adopts the Rijndael module to encrypt data,using the hash function algorithm to get the data summary.ECC encryption algorithm is used to implement for the signature and encryption private key.Each module adopts parallel processing method.The structure of the wheel unit is improved by pipeline system.The work efficiency of the whole encryption system is improved. Fully meet the Internet of things to the requirement of stability,power consumption and processing speed.The security of data transmission is provided with high strength.
FPGA;Rijndael;ECC;ECDSA
TP309
A
1681-1070(2017)02-0028-05
2016-10-31