• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于高性能密碼實(shí)現(xiàn)的大數(shù)據(jù)安全方案

    2019-10-21 05:44:14楊國(guó)強(qiáng)丁杭超陳彥琴
    計(jì)算機(jī)研究與發(fā)展 2019年10期
    關(guān)鍵詞:同態(tài)整數(shù)密鑰

    楊國(guó)強(qiáng) 丁杭超 鄒 靜 蔣 瀚 陳彥琴

    1(山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 濟(jì)南 250101) 2(山東大學(xué)數(shù)學(xué)學(xué)院 濟(jì)南 250100) 3(國(guó)網(wǎng)經(jīng)濟(jì)技術(shù)研究院有限公司 北京 102209) 4(山東大學(xué)軟件學(xué)院 濟(jì)南 250101) 5(北京三未信安科技發(fā)展有限公司 北京 100102)

    當(dāng)今信息技術(shù)已經(jīng)進(jìn)入人工智能技術(shù)飛速發(fā)展的時(shí)代,新一代人工智能技術(shù)是建立在大數(shù)據(jù)計(jì)算基礎(chǔ)上的.而大數(shù)據(jù)計(jì)算技術(shù)發(fā)展速度可以說(shuō)是日新月異.在云計(jì)算、霧計(jì)算、邊緣計(jì)算等計(jì)算模式下,大數(shù)據(jù)處理技術(shù)可以在海量的分散數(shù)據(jù)中迅速發(fā)現(xiàn)有價(jià)值的數(shù)據(jù),極大地提高生產(chǎn)力水平,給經(jīng)濟(jì)發(fā)展帶來(lái)巨大推動(dòng)力,目前大數(shù)據(jù)技術(shù)已經(jīng)成為云計(jì)算之后信息技術(shù)領(lǐng)域的另一個(gè)信息產(chǎn)業(yè)增長(zhǎng)點(diǎn).

    大數(shù)據(jù)強(qiáng)大的數(shù)據(jù)計(jì)算處理能力,也對(duì)數(shù)據(jù)安全帶來(lái)了巨大的安全風(fēng)險(xiǎn),大數(shù)據(jù)的機(jī)密性、認(rèn)證性以及隱私保護(hù)等數(shù)據(jù)安全問(wèn)題,目前受到高度關(guān)注[1].大數(shù)據(jù)的生命周期大概可以分成數(shù)據(jù)的采集、存儲(chǔ)、挖掘和發(fā)布4個(gè)主要環(huán)節(jié).數(shù)據(jù)的采集是指數(shù)據(jù)的采集和聚合過(guò)程,需要關(guān)注的安全問(wèn)題是數(shù)據(jù)匯聚過(guò)程中是傳輸安全問(wèn)題;數(shù)據(jù)的存儲(chǔ)則需要保證數(shù)據(jù)的機(jī)密性以及加解密的性能;數(shù)據(jù)的挖掘則需要關(guān)注數(shù)據(jù)的敏感信息的隱私保護(hù)問(wèn)題,以及挖掘者的身份認(rèn)證問(wèn)題;數(shù)據(jù)的發(fā)布則需要對(duì)數(shù)據(jù)進(jìn)行安全審計(jì)以及數(shù)據(jù)溯源問(wèn)題.可以看出,在大數(shù)據(jù)的每個(gè)應(yīng)用環(huán)節(jié),都有可能遇到安全問(wèn)題,而密碼技術(shù)則是解決大數(shù)據(jù)安全問(wèn)題的核心技術(shù).

    海量數(shù)據(jù)的應(yīng)用背景,為密碼學(xué)提出了新的要求,其中最重要的就是密碼算法的效率問(wèn)題.本文分析了大數(shù)據(jù)安全方案邏輯架構(gòu),抽取了關(guān)鍵的密碼底層算法以及運(yùn)算模塊,提出了3個(gè)快速密碼部件的快速實(shí)現(xiàn)算法,并在基于Xilinx公司的KC705開(kāi)發(fā)板上進(jìn)行了驗(yàn)證,同時(shí)給出實(shí)驗(yàn)數(shù)據(jù).具體有3方面內(nèi)容:

    1) 針對(duì)國(guó)產(chǎn)分組密碼算法標(biāo)準(zhǔn)SM4-XTS,進(jìn)行了快速實(shí)現(xiàn),該工作可以對(duì)海量的數(shù)據(jù)進(jìn)行快速地加解密,性能可達(dá)31.5 Gbps,同時(shí)有效地保證數(shù)據(jù)安全;

    2) 針對(duì)國(guó)產(chǎn)數(shù)字簽名算法標(biāo)準(zhǔn)SM2,進(jìn)行了快速實(shí)現(xiàn),該工作可以解決高并發(fā)的用戶身份認(rèn)證問(wèn)題;

    3) 針對(duì)大整數(shù)模冪運(yùn)算,進(jìn)行了快速實(shí)現(xiàn),大整數(shù)模冪運(yùn)算可以作為同態(tài)加密的協(xié)處理器,可以直接對(duì)大數(shù)據(jù)密文進(jìn)行處理,解決了大數(shù)據(jù)隱私保護(hù)的問(wèn)題.

    1 相關(guān)工作

    Elbirt等人[2]在2000年提出了一種在FPGA的快速AES的流水線實(shí)現(xiàn)方式,最高能到10 Gbps.負(fù)責(zé)對(duì)儲(chǔ)存媒介信息保護(hù)進(jìn)行算法標(biāo)準(zhǔn)開(kāi)發(fā)的IEEE 1619安全儲(chǔ)存委員會(huì)(SISWG)于2008年4月正式公布了XTS-AES算法標(biāo)準(zhǔn)[3],XTS-AES算法是一種可調(diào)整的窄式塊分組密碼,該算法主要用于以數(shù)據(jù)單元(包括扇區(qū)、邏輯磁盤塊等)為基礎(chǔ)結(jié)構(gòu)的存儲(chǔ)設(shè)備中靜止?fàn)顟B(tài)數(shù)據(jù)的加密.XTS-AES的公布解決了大數(shù)據(jù)存儲(chǔ)一系列的安全威脅,并且允許在算法實(shí)現(xiàn)上應(yīng)用并行化和流水線結(jié)構(gòu),提高性能.隨著國(guó)密算法SM4標(biāo)準(zhǔn)的發(fā)布,國(guó)內(nèi)的芯片廠商也生產(chǎn)了相應(yīng)的SM4算法芯片并應(yīng)用于國(guó)密市場(chǎng).比較代表性的產(chǎn)品有北京宏思電子技術(shù)有限責(zé)任公司的HSM4A高性能分組密碼算法芯片和清華大學(xué)微電子學(xué)研究所的高性能SM4芯片.這幾款芯片大都只支持ECB和CBC模式,并不支持XTS模式,國(guó)內(nèi)并沒(méi)有直接支持SM4-XTS模式的產(chǎn)品.

    2006年Ansari等人[4]在X86架構(gòu)上實(shí)現(xiàn)快速ECC算法,并在OpenSSL上提供了開(kāi)源代碼的實(shí)現(xiàn),單核CPU上ECC簽名的性能可以達(dá)到2萬(wàn)次秒的級(jí)別.國(guó)外很多公司和高校也投入到ECC的快速實(shí)現(xiàn)當(dāng)中[5-6].隨著國(guó)密標(biāo)準(zhǔn)算法SM2的發(fā)布,國(guó)內(nèi)的芯片廠商也推出了相應(yīng)的SM2芯片產(chǎn)品,比較具有代表性的是北京宏思電子技術(shù)有限責(zé)任公司的HSM2A高性能公鑰密碼算法芯片和北京華大信安科技有限公司的高性能ISECMM1521SV1芯片.

    1999年P(guān)aillier[7]提出了一種新的同態(tài)加密算法,即Paillier加密算法,該方案在提出后受到了廣泛的關(guān)注.2001年Choi等人[8]通過(guò)選取特殊的參數(shù)改進(jìn)了Paillier加密體制.基于Paillier體制的加法同態(tài)性可以有效地設(shè)計(jì)應(yīng)用于大數(shù)據(jù)環(huán)境下的隱私保護(hù)方案.而Paillier算法的核心運(yùn)算為大整數(shù)模冪.2012年Gueron[9]在X86架構(gòu)上實(shí)現(xiàn)快速的大整數(shù)模冪運(yùn)算,并在OpenSSL上提供了開(kāi)源代碼的實(shí)現(xiàn),單核CPU上512 b的大整數(shù)模冪性能可以達(dá)到8 000次秒的級(jí)別.國(guó)內(nèi)支持大整數(shù)模冪運(yùn)算的產(chǎn)品主要有北京芯光天地集成電路設(shè)計(jì)有限公司的SSX26芯片和北京華大信安科技有限公司的高性能ISRSAMM11KBV1芯片.

    2 相關(guān)知識(shí)

    2.1 SM4密碼算法及XTS模式

    2012年3月國(guó)家密碼管理局正式公布了SM4分組密碼算法行業(yè)標(biāo)準(zhǔn).與DES和AES算法類似,SM4算法是一種分組密碼算法,其分組長(zhǎng)度為128 b,密鑰長(zhǎng)度也為128 b.加密算法與密鑰擴(kuò)展算法均采用32輪非線性迭代結(jié)構(gòu),以字(32 b)為單位進(jìn)行加密運(yùn)算,每一次迭代運(yùn)算均為一輪變換函數(shù)F.SM4算法加解密算法的結(jié)構(gòu)相同,只是使用輪密鑰相反,其中解密輪密鑰是加密輪密鑰的逆序.SM4算法的整體結(jié)構(gòu)如圖1所示.

    Fig. 1 The overall architecture of SM4圖1 SM4的整體結(jié)構(gòu)圖

    XTS模式是可調(diào)整的分組密碼模式,跟傳統(tǒng)的分組密碼相比,除了密鑰和明文這2個(gè)輸入以外,XTS模式還多了一個(gè)輸入,這個(gè)輸入被稱作調(diào)整值[10](Tweak).Tweak的作用類似于CBC模式中的初始向量和OCB模式中的Nonce[11].引入這個(gè)調(diào)整值的原因是在一般情況下,密鑰的改變對(duì)整個(gè)加密系統(tǒng)來(lái)說(shuō)是一項(xiàng)開(kāi)銷很大的事情,所以在保持密鑰不變的情況下,通過(guò)改變這個(gè)調(diào)整值,能夠?qū)φ麄€(gè)加密系統(tǒng)提供多變性,相比于改變密鑰來(lái)說(shuō),改變調(diào)整值對(duì)整個(gè)加密系統(tǒng)開(kāi)銷更少,并且沒(méi)有任何風(fēng)險(xiǎn)性,因?yàn)檎{(diào)整值可以公開(kāi)[12],而不用擔(dān)心像密鑰那樣泄漏的問(wèn)題.對(duì)于不同的Tweak,XTS模式就代表2個(gè)不同的分組密碼,優(yōu)點(diǎn)體現(xiàn)在改變Tweak比改變密鑰的代價(jià)更??;因?yàn)楦淖兠荑€,就意味著要重新進(jìn)行密鑰擴(kuò)展算法.XTS模式的作用主要體現(xiàn)在存儲(chǔ)加密,尤其是磁盤扇區(qū)加密上.

    2.2 SM2算法簡(jiǎn)介

    SM2是2010年12月國(guó)國(guó)家密碼管理局發(fā)布的具有自主知識(shí)產(chǎn)權(quán)的國(guó)產(chǎn)密碼算法.該算法是基于橢圓曲線離散對(duì)數(shù)難題提出的公鑰密碼算法.SM2簽名算法可滿足大數(shù)據(jù)應(yīng)用中身份認(rèn)證的安全需求.SM2具體的簽名流程如下.

    設(shè)待簽名的消息為M,用戶A的身份信息為ZA,為了獲取消息M的數(shù)字簽名(r,s),作為簽名者的用戶A應(yīng)實(shí)現(xiàn)運(yùn)算步驟為:

    ① 置M=ZA‖M;

    ② 計(jì)算e=SM3(M);

    ③ 用隨機(jī)數(shù)發(fā)生器產(chǎn)生隨機(jī)數(shù)k∈[1,n-1];

    ④ 計(jì)算橢圓曲線點(diǎn)(x1,y1)=[k]G;

    ⑤ 計(jì)算r=(e+x1) modn,若r=0或r+k=n,則返回步驟③;

    ⑥ 計(jì)算s=(1+dA)-1(k-r.dA) modn,若s=0則返回步驟③;

    ⑦ 消息M的簽名為(r,s).

    2.3 Paillier同態(tài)密碼算法

    同態(tài)加密機(jī)制分為3個(gè)階段[13],分別為初始化階段、加密階段和解密階段.

    2) 加密階段.設(shè)有明文m∈Zn,且m

    加法同態(tài)的定義:如果已知密文E(x)和E(y),通過(guò)一系列運(yùn)算可以計(jì)算出E(x+y),而不需要知道x,y的值.即C(E(x),E(y))=E(x+y),此處C代表任意運(yùn)算.

    Paillier算法的加同態(tài)性質(zhì)證明:

    已知密文E(x)和E(y),則:

    D(E(x)×E(y) modn2)=

    D(gx+y(r1r2)nmodn2)=

    x+ymodn=D(E(x+y)),

    由此式可以推出,在不知道x和y的情況下可以求出E(x+y),所以說(shuō)Paillier算法滿足加法同態(tài)性質(zhì).

    3 大數(shù)據(jù)安全方案邏輯架構(gòu)

    本文分析了基于高性能密碼實(shí)現(xiàn)的大數(shù)據(jù)安全方案邏輯架構(gòu),如圖2所示,該方案從邏輯上分為3層:密碼算法層、密碼服務(wù)層和應(yīng)用層.

    Fig. 2 The logic architecture of big data scheme圖2 大數(shù)據(jù)安全方案邏輯架構(gòu)

    密碼算法層是整個(gè)大數(shù)據(jù)安全方案的核心層,為整個(gè)大數(shù)據(jù)安全方案提供技術(shù)支撐,在該層實(shí)現(xiàn)了安全方案需要的所有密碼算法,包括SM4-XTS存儲(chǔ)加解密算法、SM2簽名驗(yàn)簽算法、大整數(shù)的模冪算法.在密碼算法層,重點(diǎn)研究高性能密碼實(shí)現(xiàn)技術(shù),研究大整數(shù)運(yùn)算、橢圓曲線計(jì)算等優(yōu)化算法以及眾核并行技術(shù),實(shí)現(xiàn)FPGA高性能密碼運(yùn)算.

    通過(guò)改進(jìn)眾核并行和流水線技術(shù),優(yōu)化智能調(diào)度和協(xié)同計(jì)算,提高并發(fā)、多任務(wù)密碼處理陣列,在FPGA平臺(tái)實(shí)現(xiàn)高速密碼算法,保證滿足大數(shù)據(jù)安全方案對(duì)高性能密碼運(yùn)算的需求.

    密碼服務(wù)層是對(duì)密碼算法層的封裝,對(duì)外提供應(yīng)用接口.在這一層,用戶可以自定義指令來(lái)調(diào)用密碼算法層實(shí)現(xiàn)密碼服務(wù),如身份認(rèn)證、存儲(chǔ)加密、Paillier同態(tài)加解密運(yùn)算等.

    應(yīng)用層是調(diào)用密碼服務(wù)層的接口來(lái)解決大數(shù)據(jù)應(yīng)用中存在的實(shí)際問(wèn)題.調(diào)用存儲(chǔ)加密接口可以對(duì)海量的大數(shù)據(jù)進(jìn)行高速地加解密;調(diào)用身份認(rèn)證接口可以處理高并發(fā)用戶的身份認(rèn)證需求;調(diào)用大整數(shù)模冪運(yùn)算可以快速封裝成Paillier同態(tài)算法,完成一些加同態(tài)加解密的業(yè)務(wù)需求.

    4 大數(shù)據(jù)安全方案的快速實(shí)現(xiàn)

    本文的核心工作是密碼算法層在FPGA上的快速實(shí)現(xiàn).本方案中密碼算法層主要支持3種快速算法的實(shí)現(xiàn):SM4-XTS模式、SM2簽名驗(yàn)簽、大整數(shù)的模冪.下面分別介紹3種算法的快速實(shí)現(xiàn)方案.

    4.1 SM4-XTS的快速實(shí)現(xiàn)

    SM4-XTS模式的快速實(shí)現(xiàn)分為2個(gè)步驟:1)32級(jí)流水線SM4的高速實(shí)現(xiàn);2)伽羅華域乘法的快速實(shí)現(xiàn),并與32級(jí)流水線的配合.

    4.1.1 32級(jí)流水線SM4的高速實(shí)現(xiàn)

    S-BOX是SM4實(shí)現(xiàn)中最影響性能的部分.S-BOX的實(shí)現(xiàn)有2種方式[14]:1)采用多個(gè)S-BOX的組合邏輯方式;2)基于ROM的查找表實(shí)現(xiàn)方式.如果選擇多個(gè)S-BOX,整個(gè)輪函數(shù)可以由組合邏輯實(shí)現(xiàn),中間不需要插入寄存器,一次迭代可以在一個(gè)時(shí)鐘周期內(nèi)完成.此時(shí),多個(gè)S-BOX雖然多占用了資源,但是控制邏輯可減少?gòu)?fù)雜度,而且方便使用流水線處理;如果只用一個(gè)S-BOX實(shí)現(xiàn),為了完成非線性變換,需要對(duì)S-BOX進(jìn)行分時(shí)復(fù)用,此時(shí)必須在S-BOX的輸入和輸出端插入2級(jí)寄存器,此時(shí)雖然省去了S-BOX占用的資源,但是控制邏輯復(fù)雜很多,而且增加了大量的寄存器資源,并且花費(fèi)的時(shí)間也大大增加,一次迭代至少需要多個(gè)時(shí)鐘周期才能完成.所以我們選擇采用多個(gè)S-BOX的組合邏輯實(shí)現(xiàn)方式,即可以在一個(gè)周期內(nèi)完成輪函數(shù),又支持流水線方式.

    對(duì)于SM4的密鑰擴(kuò)展,我們采用動(dòng)態(tài)即時(shí)輪密鑰擴(kuò)展技術(shù),每個(gè)周期都可以使用一個(gè)單獨(dú)密鑰加解密一個(gè)分組而不影響性能,這為我們使用流水線技術(shù)打下了基礎(chǔ).

    在這種硬件架構(gòu)下,可以采用流水線的方式提升性能.通過(guò)即時(shí)輪密鑰擴(kuò)展技術(shù),SM4運(yùn)算時(shí),輪密鑰擴(kuò)展和加解密運(yùn)算是可以同時(shí)進(jìn)行的.通過(guò)精密設(shè)計(jì)的流水線,使得每個(gè)周期都可以使用一個(gè)單獨(dú)密鑰加解密一個(gè)分組而不影響性能.這樣,我們就可以在算法工作前期花費(fèi)少量的周期建立起流水線,當(dāng)流水線填滿后可以充分發(fā)揮部分邏輯電路的運(yùn)算能力,大幅度提升算法性能.

    在本文的快速實(shí)現(xiàn)方案中,我們使用了32級(jí)流水線技術(shù)來(lái)完成SM4算法的高速實(shí)現(xiàn)[15],為SM4-XTS的快速實(shí)現(xiàn)提供了技術(shù)基礎(chǔ).

    4.1.2 SM4-XTS的高速實(shí)現(xiàn)

    XTS加密算法示意圖如圖3所示,其中SM4-ENC為標(biāo)準(zhǔn)的SM4加密算法,Key2為調(diào)整值的密鑰,Key1為待加密數(shù)據(jù)的密鑰.伽羅華域模乘中的α為有限域GF(2128)域上的本原元,該有限域的生成多項(xiàng)式為x127+x7+x2+x+1.計(jì)算的順序步驟:

    ①T=SM4-ENC(Key2,i)?αj;

    ②PP=P⊕T;

    ③CC=SM4-ENC(Key1,PP);

    ④C=CC⊕T.

    Fig. 3 The overall architecture of SM4-XTS圖3 SM4-XTS的整體結(jié)構(gòu)圖

    步驟①中伽羅華域模乘在j是迭代遞增的情況下相當(dāng)于移位加異或運(yùn)算,所以可以每個(gè)時(shí)鐘周期更新一次結(jié)果.故在SM4流水線建立完成后,每個(gè)周期j遞增1,然后計(jì)算出來(lái)的T可以用于步驟②③的運(yùn)算中,依然保證SM4-XTS模式可以每個(gè)周期都向外輸出128 b的結(jié)果,實(shí)現(xiàn)高速SM4-XTS模式.

    4.2 SM2的快速實(shí)現(xiàn)

    SM2協(xié)議可分為4層,如圖4所示,最頂層是SM2協(xié)議(包括簽名、驗(yàn)簽、加解密和密鑰協(xié)商等),所有協(xié)議的基礎(chǔ)都是點(diǎn)乘操作.點(diǎn)乘操作是基于點(diǎn)加、倍點(diǎn)運(yùn)算來(lái)實(shí)現(xiàn)的.最底層是最基本的算術(shù)運(yùn)算,包括模加、模減、模逆、模乘.針對(duì)SM2協(xié)議的每一層我們都可以使用一定的優(yōu)化策略來(lái)加速運(yùn)算,減少運(yùn)算時(shí)間從而提升性能.

    Fig. 4 The overall architecture of SM2圖4 SM2的總體架構(gòu)

    1) 模乘器的優(yōu)化

    在最底層的4種算術(shù)運(yùn)算中,模乘運(yùn)算是整個(gè)SM2協(xié)議使用頻率最高、最核心,也是最重要的模塊,大約占用90%的運(yùn)算時(shí)間.模加和模減邏輯結(jié)構(gòu)相對(duì)簡(jiǎn)單,模逆使用頻率低,所以模乘器的優(yōu)化是我們?cè)趯?shí)現(xiàn)中關(guān)注的重點(diǎn).優(yōu)化策略主要包括3點(diǎn):

    ① 利用FPGA內(nèi)部的高速DSP運(yùn)算單元構(gòu)建模乘器.DSP是FPGA內(nèi)置的算術(shù)運(yùn)算單元,可以支持(25 b×18 b+48 b)的乘累加運(yùn)算.通過(guò)精心設(shè)計(jì)DSP的組合,盡量減少關(guān)鍵路徑的延時(shí),以支持高速的模乘運(yùn)算.

    ② 利用Karastusba算法減少部分積數(shù)量.模乘運(yùn)算的運(yùn)算時(shí)間由部分積數(shù)量決定.構(gòu)建256 b的乘法,Karastusba算法只需要3個(gè)128 b乘法生成的部分積和少量加法,相對(duì)傳統(tǒng)簡(jiǎn)單乘法減少了25%運(yùn)算量.同理,采用分而治之的方法,對(duì)N采取同樣的策略,最終可大幅降低模乘運(yùn)算時(shí)間.

    ③ 針對(duì)SM2特殊參數(shù)優(yōu)化模約減運(yùn)算.模乘中的模約減過(guò)程可以針對(duì)SM2協(xié)議定義的素?cái)?shù)P的特殊性來(lái)實(shí)現(xiàn).我們可以采用若干次加法和減法運(yùn)算來(lái)得到模約減結(jié)果,與目前普遍通用的Montgomery算法相比,節(jié)省了數(shù)次256 b的乘法運(yùn)算,性能可以明顯提升.

    2) 點(diǎn)加和倍點(diǎn)的優(yōu)化

    在點(diǎn)加和倍點(diǎn)的運(yùn)算過(guò)程中,為了避免耗時(shí)的模逆運(yùn)算,需要將普通坐標(biāo)轉(zhuǎn)換成雅可比坐標(biāo)下運(yùn)算.在SM2協(xié)議中,倍點(diǎn)需要8次模乘、6次模加、4次模減,而點(diǎn)加需要11次模乘、2次模加和6次模減.優(yōu)化策略主要包括2點(diǎn):

    ① 利用模乘器流水線能力提高點(diǎn)加和倍點(diǎn)的運(yùn)算效率.

    ② 降低倍點(diǎn)和點(diǎn)加運(yùn)算的模乘相關(guān)性.為了充分發(fā)揮模乘器流水線的性能,需要對(duì)點(diǎn)加和倍點(diǎn)運(yùn)算的公式進(jìn)行數(shù)據(jù)相關(guān)性分析,設(shè)計(jì)詳細(xì)的計(jì)算順序,使連續(xù)的模乘模加運(yùn)算不存在輸入輸出數(shù)據(jù)的相關(guān)性.

    3) 點(diǎn)乘的優(yōu)化

    對(duì)簽名來(lái)說(shuō),最費(fèi)時(shí)的操作為點(diǎn)乘操作(x1,y1)=[k]G.系數(shù)k按二進(jìn)制展開(kāi)為256位0和1的組合,我們可以采用NAF(非線性相關(guān))編碼的方式,對(duì)點(diǎn)乘系數(shù)k進(jìn)行編碼,增加系數(shù)k中0的數(shù)量,降低系數(shù)k的漢明重量,從而減少運(yùn)算次數(shù),提升簽名速度.

    4.3 大整數(shù)模冪的快速實(shí)現(xiàn)

    同態(tài)加密算法能夠保持?jǐn)?shù)據(jù)明文與密文之間的同態(tài)關(guān)系,包括支持加法、乘法的單同態(tài)加密算法,以及支持加法和乘法的全同態(tài)加密算法.全同態(tài)的運(yùn)算具有速度慢、密文規(guī)模大、效率低等缺點(diǎn),使其很難適用于大規(guī)模業(yè)務(wù)場(chǎng)景;RSA,Paillier等單同態(tài)加密算法,因?yàn)槠鋵?shí)現(xiàn)相對(duì)簡(jiǎn)單,所以有比較具體的應(yīng)用場(chǎng)景.所以本文主要研究Paillier單同態(tài)加密方案[16-17].

    眾所周知,Paillier算法的核心難題是大整數(shù)的模冪問(wèn)題.而模冪的基本運(yùn)算是大整數(shù)的模乘,所以在本節(jié)中重點(diǎn)介紹大整數(shù)模乘的快速實(shí)現(xiàn).

    如圖5的算法所示,大整數(shù)模乘算法[18],采用蒙哥馬利模乘算法的FIOS實(shí)現(xiàn)方式,便于FPGA實(shí)現(xiàn).在該算法中,w=128,即基本的運(yùn)算是128 b的乘法運(yùn)算,這樣s=4,8,12,16就分別代表512,1024,1536,2048位長(zhǎng)度的模乘運(yùn)算,可以通過(guò)定義s的不同值來(lái)實(shí)現(xiàn)模乘器長(zhǎng)度的動(dòng)態(tài)配置.

    Fig. 5 Montgomery multiplication (FIOS)
    圖5 蒙哥馬利模乘的FIOS實(shí)現(xiàn)

    在實(shí)現(xiàn)的具體過(guò)程中,需要注意中間結(jié)果的存儲(chǔ)問(wèn)題.對(duì)于一個(gè)大整數(shù),用寄存器存儲(chǔ)的話可能會(huì)帶來(lái)很大的資源浪費(fèi),隨著數(shù)據(jù)寬度的增加導(dǎo)致需要的寄存器硬件資源飛速增加.所以本節(jié)的實(shí)現(xiàn)中,可以用FPGA自帶的BRAM來(lái)存儲(chǔ)A,B,M以及中間結(jié)果Z.實(shí)驗(yàn)證明,可以減少60%的資源消耗,而且隨著數(shù)據(jù)寬度的增加,效果會(huì)更加明顯.

    總之,本方案提供了一個(gè)可以動(dòng)態(tài)配置長(zhǎng)度的大整數(shù)模冪處理器[19].通過(guò)FIOS算法的深度優(yōu)化以及BRAM的充分利用,可以高效、高速地完成大整數(shù)模冪的運(yùn)算.

    5 實(shí)驗(yàn)與結(jié)果

    本方案在FPGA芯片上實(shí)現(xiàn)一個(gè)高性能的密碼協(xié)處理器,該協(xié)處理器支持3種密碼功能:SM4-XTS模式加解密、SM2簽名、大整數(shù)的模冪運(yùn)算.通過(guò)輸入不同的密令碼來(lái)調(diào)用不同的密碼功能.該密碼協(xié)處理器的實(shí)現(xiàn)為整個(gè)大數(shù)據(jù)安全方案提供單芯片解決方案,便于產(chǎn)品化的推廣.

    5.1 實(shí)驗(yàn)環(huán)境

    我們基于Xilinx公司的KC705開(kāi)發(fā)板快速實(shí)現(xiàn)了各個(gè)算法,并實(shí)際測(cè)試了我們的方法,取得了實(shí)驗(yàn)數(shù)據(jù).

    KC705是Xilinx公司提供的7系列FPGA的開(kāi)發(fā)套件,開(kāi)發(fā)板上的FPGA芯片是Kintex-7系列 的XC7K325T-2,屬于中端系列,是Xilinx公司最具性價(jià)比的產(chǎn)品,便于產(chǎn)業(yè)推廣,具有實(shí)際的推廣價(jià)值.

    本方案在KC705開(kāi)發(fā)板上實(shí)現(xiàn)同時(shí)支持3種密碼運(yùn)算的密碼協(xié)處理器,對(duì)3種算法的資源共享、異步時(shí)鐘、地址分配等做了優(yōu)化處理,通過(guò)輸入不同的命令碼便可以支持相應(yīng)的密碼功能.

    5.2 實(shí)驗(yàn)結(jié)果

    本方案實(shí)現(xiàn)了一個(gè)高性能的密碼協(xié)處理,同時(shí)支持3種密碼功能:SM4-XTS、SM2簽名以及大整數(shù)模冪運(yùn)算.通過(guò)輸入不同的命令碼來(lái)調(diào)用不同的密碼功能.

    該密碼協(xié)處理器內(nèi)部包含3個(gè)密碼模塊,各個(gè)模塊在功能上相互獨(dú)立;但是每個(gè)密碼模塊運(yùn)行的時(shí)鐘頻率各不相同,需要做異步時(shí)鐘處理,同時(shí)為3個(gè)不同的算法模塊分配不同的訪問(wèn)地址.表1列舉了該密碼協(xié)處理各密碼模塊的實(shí)驗(yàn)結(jié)果.

    Table 1 Results of Cryptographic Co-processor

    由表1可以看出,這3種算法運(yùn)行在不同的時(shí)鐘頻率、資源占有率也各不相同.SM4-XTS模式可以運(yùn)行在250 MHz的時(shí)鐘頻率,處理一個(gè)SM4分組需要的時(shí)間為0.004 μs,SM4-XTS加密性能可達(dá)31.5 Gbps;而SM2簽名運(yùn)行在150 MHz的時(shí)鐘頻率,做一次簽名運(yùn)算需要的時(shí)間為38.5 μs,SM2簽名速度可達(dá)每秒26 063次;512 b大整數(shù)模冪運(yùn)行在66 MHz的時(shí)鐘頻率,做一次模冪運(yùn)算需要時(shí)間為149.2 μs,大整數(shù)模冪速度可達(dá)每秒6 702次.

    表2列舉的密碼協(xié)處理器的資源使用情況.LUT是(look-up-table)的縮寫,DSP是FPGA內(nèi)部實(shí)現(xiàn)的乘法器,二者都是FPGA的基本邏輯單元.本方案實(shí)現(xiàn)的密碼協(xié)處理充分利用了FPGA的元器件特性,提高各個(gè)模塊的實(shí)現(xiàn)效率.表2可以看出本方案切實(shí)可行,在實(shí)現(xiàn)高性能算法的同時(shí),預(yù)留了大量的資源便于邏輯調(diào)度、訪問(wèn)控制等控制邏輯的實(shí)現(xiàn).

    Table 2 Utilization of FPGA

    5.3 相關(guān)工作比較

    1) SM4-XTS性能比較

    SM4是我國(guó)專用的對(duì)稱密碼算法,目前國(guó)內(nèi)的產(chǎn)品基本都不支持SM4-XTS模式,只是支持ECB和CBC模式.其他產(chǎn)品的ECB模式與本文方案性能對(duì)比如表3所示:

    Table 3 Performance Comparison of SM4-XTS Encryption with Other Works

    HSM4A芯片是北京宏思電子技術(shù)有限責(zé)任公司生產(chǎn)的一款SM4算法芯片,加密性能可達(dá)2.5 Gbps.

    SSX1510是清華微電子所芯片研發(fā)的一款SM4芯片,其加密性能可達(dá)2.0 Gbps.

    可以看出:本文的工作首先填補(bǔ)了國(guó)內(nèi)該方向的空白,同時(shí)由表3的結(jié)果可以看出,本文采用32級(jí)流水線的高速實(shí)現(xiàn)方式,每個(gè)周期都可以輸出128 b的密文,加密性能已經(jīng)基本達(dá)到了極限,遠(yuǎn)超于其他產(chǎn)品的性能.所以本文提出的方案具有比較好的性價(jià)比,優(yōu)勢(shì)巨大.

    2) SM2和大整數(shù)模冪性能比較

    如表4、表5所示,SM2與大整數(shù)模冪性能與國(guó)內(nèi)其他廠商產(chǎn)品性能對(duì)比結(jié)果.

    Table 4 Performance Comparison of SM2 Signature with Other Works

    Table 5 Performance Comparison of 512 b Modular Exponentiation with Other Works

    HSM2A芯片是北京宏思電子技術(shù)有限責(zé)任公司生產(chǎn)的一款SM2算法芯片,簽名速度可達(dá)每秒20 000次.

    ISECMM1521SV1是北京華大信安科技有限公司開(kāi)發(fā)的橢圓曲線公鑰密碼芯片產(chǎn)品,其簽名速度可達(dá)每秒14 000次.

    SSX26芯片是北京芯光天地集成電路設(shè)計(jì)有限公司設(shè)計(jì)的一款RSA算法芯片,支持大整數(shù)模冪運(yùn)算,512 b的大整數(shù)模冪速度可達(dá)每秒1 400次.

    ISECMM1521SV1是北京華大信安科技有限公司開(kāi)發(fā)的一款RSA算法芯片,支持大整數(shù)模冪運(yùn)算,其512 b的大整數(shù)模冪速度可達(dá)每秒231次.

    由以上結(jié)果可以看出:SM2和大整數(shù)模冪的性能比較,本文的工作都處于比較明顯的領(lǐng)先地位.所以本文的方案具有一定的優(yōu)勢(shì),可以良好地滿足該方案密碼算法的需求.

    6 總 結(jié)

    本文提出了基于高性能密碼實(shí)現(xiàn)的大數(shù)據(jù)安全方案,主張用密碼技術(shù)來(lái)解決大數(shù)據(jù)安全問(wèn)題.實(shí)驗(yàn)結(jié)果表明,本文提出的方案主要解決了大數(shù)據(jù)技術(shù)中存在的3個(gè)技術(shù)難題:1)大規(guī)模的海量數(shù)據(jù)高速加解密問(wèn)題;2)高并發(fā)的用戶身份認(rèn)證問(wèn)題;3)大數(shù)據(jù)的部分隱私保護(hù)問(wèn)題.而且該方案在安全性、易用性、性能方面都具有較大優(yōu)勢(shì),優(yōu)于目前已知的其他方案.因此本文提出的方案是行之有效的.

    未來(lái)可以繼續(xù)添加數(shù)據(jù)溯源和數(shù)據(jù)確權(quán)的解決方案,如此可以解決大數(shù)據(jù)全生命周期的安全問(wèn)題,方案會(huì)更加完整、有效.

    猜你喜歡
    同態(tài)整數(shù)密鑰
    探索企業(yè)創(chuàng)新密鑰
    密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
    關(guān)于半模同態(tài)的分解*
    拉回和推出的若干注記
    一類整數(shù)遞推數(shù)列的周期性
    一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
    基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
    一種基于LWE的同態(tài)加密方案
    HES:一種更小公鑰的同態(tài)加密算法
    聚焦不等式(組)的“整數(shù)解”
    滨州市| 攀枝花市| 白城市| 扎鲁特旗| 阿克陶县| 綦江县| 偏关县| 大兴区| 饶平县| 金川县| 昌吉市| 苍溪县| 太和县| 怀集县| 志丹县| 乌兰县| 礼泉县| 湟源县| 东莞市| 大邑县| 和平县| 大兴区| 霍林郭勒市| 普陀区| 安顺市| 富顺县| 珠海市| 象山县| 旬邑县| 鲁甸县| 武川县| 贵德县| 晋城| 江达县| 象山县| 休宁县| 金门县| 凉山| 马边| 林周县| 曲靖市|