文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.171964
中文引用格式: 潘釗,張躍軍,丁代魯. 基于全同態(tài)MAC的消息認(rèn)證算法設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(1):20-23.
英文引用格式: Pan Zhao,Zhang Yuejun,Ding Dailu. Message authentication algorithm based on fully homomorphism MAC method[J]. Application of Electronic Technique,2018,44(1):20-23.
0 引言
隨著電子技術(shù)和互聯(lián)網(wǎng)技術(shù)的迅速崛起,特別是云計(jì)算商業(yè)化平臺的出現(xiàn),不安全信道中消息認(rèn)證變得越來越重要。在消息認(rèn)證過程中,通常采用構(gòu)造消息認(rèn)證碼(Message Authentication Code,MAC)的方式實(shí)現(xiàn)[1]。該方法可有效地檢測在傳輸過程中數(shù)據(jù)是否存在被篡改,目前已被廣泛應(yīng)用在數(shù)字簽名、文件校驗(yàn)、流密鑰產(chǎn)生等方面[2]。針對MAC算法的安全性、效率和能耗等問題,許多學(xué)者已經(jīng)對此開展深入的研究。劉云璐等[3]提出一種消息認(rèn)證協(xié)議優(yōu)化算法,解決信息在樹狀傳感器網(wǎng)絡(luò)中的上層節(jié)點(diǎn)處擁堵和被丟棄的問題。王利村等[4]提出一種采用固定幀長的EPONMAC算法,使以太網(wǎng)交換機(jī)的速率得以提升。盧艷宏等[5]提出用于無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)幕旌闲拖⒄J(rèn)證算法,解決了能量損耗問題。但是,上述所提的方法均采用原始數(shù)據(jù)進(jìn)行傳輸,存在消息被泄露的威脅。
近年出現(xiàn)的全同態(tài)加密技術(shù),它允許對密文執(zhí)行特定的操作后將其輸出進(jìn)行解密,解密所得的結(jié)果與對明文進(jìn)行相同操作的結(jié)果相等。全同態(tài)加密不但能夠提高數(shù)據(jù)處理效率、確保數(shù)據(jù)安全傳輸,而且可以有效避免將原始數(shù)據(jù)委托給第三方操作的安全問題。但是怎樣構(gòu)造密碼體制使其具有全同態(tài)性質(zhì)是學(xué)術(shù)界面臨的難題之一。2009年9月,GENTRY C等[6]在ACM計(jì)算理論年會上對“全同態(tài)加密”的可行性從數(shù)學(xué)上進(jìn)行了論證,并給出具體實(shí)現(xiàn)方案,即在不解密的條件下對密文數(shù)據(jù)進(jìn)行運(yùn)算與對明文進(jìn)行相同運(yùn)算后加密的結(jié)果相同。DIJK M等[7]提出一種整數(shù)型全同態(tài)加密的優(yōu)化方案,極大地簡化電路的硬件結(jié)構(gòu)。鑒此,本文針對數(shù)據(jù)傳輸?shù)陌踩珕栴},提出一種基于全同態(tài)MAC的消息認(rèn)證算法,在SMIC 65 nm工藝下完成硬件電路設(shè)計(jì)。實(shí)驗(yàn)結(jié)果表明,該結(jié)構(gòu)不僅具有良好的黑盒性,還能夠檢驗(yàn)傳輸數(shù)據(jù)是否完整。
1 全同態(tài)算法和MAC算法
1.1 全同態(tài)算法
在密碼系統(tǒng)中,設(shè)m為明文,c為密文,Enc為加密操作,Dec為解密操作,則有c=Enc(m),m=Dec(c)。在全同態(tài)算法中,設(shè)f為任意操作,則全同態(tài)過程可表示為Dec(f(Enc(m)))=f(m)或f(Enc(m))=Enc(f(m))。全同態(tài)算法主要包括密鑰的生成、加密和解密3個(gè)階段,具體如下所示:
(1)密鑰的生成。隨機(jī)產(chǎn)生一個(gè)密鑰p,且p為素?cái)?shù)。
(2)全同態(tài)加密。對任意的明文m加密可得密文c=m+2r+pq。其中p為正的奇數(shù),q為較大的正整數(shù)(比p要大,是否是奇數(shù)沒有要求),r為加密時(shí)由$random函數(shù)產(chǎn)生的較小整數(shù)(沒有正負(fù)要求),m為明文(m∈{0,1})。全同態(tài)加密完成對1位二進(jìn)制數(shù)的加密,所得結(jié)果是N位整數(shù)。
(3)全同態(tài)解密。對任意的密文解密可得m=(c mod p)mod2。mod p表示以p為基數(shù)進(jìn)行的模運(yùn)算,可等效為以下運(yùn)算:c mod p=c-「c/p」×p,其中「c/p」為c除以p的商取整。
1.2 MAC算法
MAC算法作為一種可攜帶密鑰的hash函數(shù),通常用來檢驗(yàn)所傳輸消息的完整性。常用的hash函數(shù)有MD5、SHA-2和SHA-3等,本文將采用MD5算法。MD5算法[8]可將任意長度的消息或文本進(jìn)行相關(guān)運(yùn)算,使其壓縮成128位固定長度的摘要,具體如下所示:
(1)補(bǔ)位。任意長度消息的低位用一個(gè)1和若干個(gè)0進(jìn)行補(bǔ)位,在結(jié)果后面添加消息的最初長度(用64位二進(jìn)制數(shù)表示),使消息長度剛好成為512的整數(shù)倍。
(2)初始化緩沖器。A1,A2,A3,A4是4個(gè)32位寄存器,也稱作鏈接變量的整數(shù)參數(shù),并對其設(shè)置初始數(shù)據(jù)。
(3)非線性輪運(yùn)算。聲明四個(gè)中間變量a1,a2,a3,a4,對其進(jìn)行賦值:a1=A1,a2=A2,a3=A3,a4=A4。接著執(zhí)行4輪主循環(huán),每一輪完成16次運(yùn)算,每輪用到一個(gè)非線性函數(shù);每次操作需要對a1,a2,a3和a4中的3個(gè)變量完成一次非線性運(yùn)算,并更新對應(yīng)的變量數(shù)據(jù)。四輪非線性函數(shù)分別如下所示:
(4)數(shù)據(jù)輸出。當(dāng)64步運(yùn)算完成之后,將a1,a2,a3,a4分別與初始的值分別進(jìn)行相加,然后對下一組512位數(shù)據(jù)進(jìn)行運(yùn)算,最后得到的結(jié)果為4個(gè)32位數(shù)據(jù)級聯(lián)構(gòu)成的128位輸出,即32位16進(jìn)制的MD5碼。
2 全同態(tài)MAC消息認(rèn)證的VLSI實(shí)現(xiàn)
消息認(rèn)證是指對要傳輸?shù)南⒒蛘吆拖⑾嚓P(guān)的信息執(zhí)行一系列操作后再進(jìn)行認(rèn)證,目的是為了防止消息在傳輸和存儲過程中存在惡意篡改或錯(cuò)誤修改,認(rèn)證內(nèi)容主要包含消息是否被篡改或延遲、消息是否來自真正的發(fā)送者等。圖1為消息認(rèn)證系統(tǒng)的結(jié)構(gòu)框圖。
2.1 全同態(tài)MAC的消息認(rèn)證算法
全同態(tài)MAC的消息認(rèn)證算法通過對消息進(jìn)行全同態(tài)加密操作,再采用MD5算法對加密后的數(shù)據(jù)進(jìn)行擾亂處理,不但避免在通信信道中傳輸原始數(shù)據(jù)的安全問題,而且能夠檢測消息有沒有被篡改,進(jìn)而確保消息傳輸?shù)目煽啃?。本文結(jié)合全同態(tài)算法和MD5算法,提出一種全同態(tài)MAC的消息認(rèn)證算法,該算法的具體實(shí)現(xiàn)方案如下:
步驟1:將算法中輸入的二進(jìn)制數(shù)據(jù)進(jìn)行全同態(tài)加密處理得到密文。
步驟2:通過步驟1處理后,將數(shù)據(jù)經(jīng)過MAC算法,使其生成MAC1值,將MAC1值及密文在信道中傳輸。
步驟3:接收方收到MAC1值和密文后,運(yùn)用相同的MAC算法對密文進(jìn)行運(yùn)算,生成MAC2值,對比MAC1值和MAC2值,若一致,則用全同態(tài)解密算法對密文解密,恢復(fù)原始數(shù)據(jù);若不一致,則接收方重新發(fā)送。
全同態(tài)MAC算法流程圖,如圖2所示。整個(gè)過程消息一直以密文進(jìn)行傳輸,保證了原始消息安全性,只有當(dāng)接收方確認(rèn)消息來源和完整性后才進(jìn)行密文的解密。全同態(tài)MAC算法的偽代碼,如圖3所示。其中,fhe表示全同態(tài)加密模塊,fhd表示全同態(tài)解密模塊,top表示全同態(tài)MAC算法模塊。
2.2 全同態(tài)MAC的消息認(rèn)證算法硬件結(jié)構(gòu)
全同態(tài)MAC的消息認(rèn)證算法的具體結(jié)構(gòu)如圖4所示。該算法首先執(zhí)行全同態(tài)加密運(yùn)算,將所得的結(jié)果經(jīng)過數(shù)據(jù)控制模塊用1和0進(jìn)行補(bǔ)位,并以信息長度為512位進(jìn)行分組。每個(gè)分組又被分成16個(gè)32位子集,每個(gè)子集用Mj(j為0到15)表示,以新變量和子集作為輸入進(jìn)行四輪主循環(huán),每一輪循環(huán)需要完成16次迭代運(yùn)算,其中每輪運(yùn)算選擇一個(gè)不重復(fù)的非線性函數(shù)。第一輪選擇F(a2,a3,a4),則功能函數(shù)(a1,a2,a3,a4,Mj,g,ti)可表示為FF(a1,a2,a3,a4,Mj,g,ti),代表含義為a1=a2+(a1+(F(a2,a3,a4)+Mj+ti)<<<g),其中<<<g表示循環(huán)左移g位。每進(jìn)行一次迭代,根據(jù)功能函數(shù)更新a1,a2,a3和a4中的一個(gè),通過16次迭代后,得到更新后a1,a2,a3和a4的數(shù)值。然后,將更新后的數(shù)值應(yīng)用于第二輪循環(huán),以此類推,完成四輪循環(huán);其次,將此時(shí)的a1,a2,a3和a4的數(shù)值分別與原來的A1,A2,A3,A4相加;最后,對下一分組數(shù)據(jù)進(jìn)行相同操作,當(dāng)所有分組都完成運(yùn)算后,將新的A1,A2,A3,A4按順序級聯(lián)成128位數(shù)據(jù)輸出。
3 實(shí)驗(yàn)結(jié)果與分析
采用SMIC 65 nm CMOS工藝,實(shí)現(xiàn)基于全同態(tài)MAC的消息認(rèn)證算法硬件電路。實(shí)驗(yàn)環(huán)境包括Intel Xeon(R) Dual-Core CPU 2.0 GHz、6 G RAM服務(wù)器,涉及的工具軟件包括:NCverilog仿真軟件和DC綜合工具。表1為p=11,q=121時(shí),輸入數(shù)據(jù)經(jīng)過全同態(tài)加密模塊的輸出數(shù)據(jù)。表2為p=11,q=121時(shí),輸入數(shù)據(jù)經(jīng)過全同態(tài)MAC算法的輸出數(shù)據(jù)。
圖5為數(shù)據(jù)經(jīng)過全同態(tài)MAC算法后輸出數(shù)據(jù)之間的相關(guān)性。其中,圖5(a)為同一組輸出數(shù)據(jù)的自相關(guān)函數(shù),圖5(b)為6組測試數(shù)據(jù)之間的互相關(guān)函數(shù)。表明算法輸出數(shù)據(jù)具有良好的隨機(jī)特性。
不同溫度/電壓下DC綜合的特征,如表3所示。其中,fhe為全同態(tài)加密模塊,fhd為全同態(tài)解密模塊,top為基于全同態(tài)MAC算法模塊。在1.2 V電壓下,DC綜合后電路面積為219 11 μm2,工作頻率最高可達(dá)到204 MHz,功耗為5.73 mW。
4 結(jié)論
本文通過對全同態(tài)算法和MD5算法的研究,提出了一個(gè)全同態(tài)MAC的消息認(rèn)證算法設(shè)計(jì)方法。將全同態(tài)加密生成數(shù)據(jù)與原有的結(jié)果進(jìn)行比較,驗(yàn)證其黑盒性。實(shí)驗(yàn)結(jié)果表明,該算法有效避免在通信信道中傳輸原始數(shù)據(jù)的安全問題,同時(shí)可以檢測消息是否被篡改,確保消息傳輸?shù)目煽啃浴?/p>
參考文獻(xiàn)
[1] 徐津,巧燕,王大印.一種基于Hash函數(shù)和分組密碼的消息認(rèn)證碼[J].計(jì)算機(jī)學(xué)報(bào),2015,38(4):793-803.
[2] 張紹蘭.幾類密碼Hash函數(shù)的設(shè)計(jì)與安全性分析[D].北京:北京郵電大學(xué),2011.
[3] 劉云璐,蒲菊華,方維維,等.一種無線傳感器網(wǎng)絡(luò)MAC協(xié)議優(yōu)化算法[J].計(jì)算機(jī)學(xué)報(bào),2012,35(3):529-839.
[4] 王利村,邱昆,王東,等.一種固定幀長的EPON MAC算法[J].電子科技大學(xué)學(xué)報(bào),2004,33(6):730-733.
[5] 盧艷宏,掌明,馮源.無線傳感器網(wǎng)絡(luò)能量高效混合MAC算法[J].電訊技術(shù),2012,5(8):1349-1353.
[6] GENTRY C.Fully homomorphic encryption using ideal lattice[C].Proceedings of the 41st Annual ACM Symposium on Theory of Computing,New York:ACM Press,2009:169-178.
[7] DIJK M,GENTRY C,HALEVI S,et al.Fully homomorphic encryption over the integery[C].Proceedings of EUROCRYPT’2010,Berlin:Springer,2010:24-43.
[8] 張裔智,趙毅,湯小斌.MD5算法研究[J].計(jì)算機(jī)科學(xué),2008,35(7):295-297.