文獻(xiàn)標(biāo)識(shí)碼: 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è)化平臺(tái)的出現(xiàn),,不安全信道中消息認(rèn)證變得越來越重要。在消息認(rèn)證過程中,,通常采用構(gòu)造消息認(rèn)證碼(Message Authentication Code,,MAC)的方式實(shí)現(xiàn)[1]。該方法可有效地檢測(cè)在傳輸過程中數(shù)據(jù)是否存在被篡改,,目前已被廣泛應(yīng)用在數(shù)字簽名,、文件校驗(yàn),、流密鑰產(chǎn)生等方面[2],。針對(duì)MAC算法的安全性、效率和能耗等問題,,許多學(xué)者已經(jīng)對(duì)此開展深入的研究,。劉云璐等[3]提出一種消息認(rèn)證協(xié)議優(yōu)化算法,解決信息在樹狀傳感器網(wǎng)絡(luò)中的上層節(jié)點(diǎn)處擁堵和被丟棄的問題,。王利村等[4]提出一種采用固定幀長(zhǎng)的EPONMAC算法,,使以太網(wǎng)交換機(jī)的速率得以提升。盧艷宏等[5]提出用于無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)幕旌闲拖⒄J(rèn)證算法,,解決了能量損耗問題,。但是,上述所提的方法均采用原始數(shù)據(jù)進(jìn)行傳輸,,存在消息被泄露的威脅,。
近年出現(xiàn)的全同態(tài)加密技術(shù),它允許對(duì)密文執(zhí)行特定的操作后將其輸出進(jìn)行解密,,解密所得的結(jié)果與對(duì)明文進(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ì)算理論年會(huì)上對(duì)“全同態(tài)加密”的可行性從數(shù)學(xué)上進(jìn)行了論證,,并給出具體實(shí)現(xiàn)方案,即在不解密的條件下對(duì)密文數(shù)據(jù)進(jìn)行運(yùn)算與對(duì)明文進(jìn)行相同運(yùn)算后加密的結(jié)果相同,。DIJK M等[7]提出一種整數(shù)型全同態(tài)加密的優(yōu)化方案,,極大地簡(jiǎn)化電路的硬件結(jié)構(gòu)。鑒此,,本文針對(duì)數(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)加密,。對(duì)任意的明文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)加密完成對(duì)1位二進(jìn)制數(shù)的加密,所得結(jié)果是N位整數(shù),。
(3)全同態(tài)解密,。對(duì)任意的密文解密可得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]可將任意長(zhǎng)度的消息或文本進(jìn)行相關(guān)運(yùn)算,,使其壓縮成128位固定長(zhǎng)度的摘要,具體如下所示:
(1)補(bǔ)位,。任意長(zhǎng)度消息的低位用一個(gè)1和若干個(gè)0進(jìn)行補(bǔ)位,,在結(jié)果后面添加消息的最初長(zhǎng)度(用64位二進(jìn)制數(shù)表示),使消息長(zhǎng)度剛好成為512的整數(shù)倍,。
(2)初始化緩沖器,。A1,A2,,A3,,A4是4個(gè)32位寄存器,也稱作鏈接變量的整數(shù)參數(shù),,并對(duì)其設(shè)置初始數(shù)據(jù),。
(3)非線性輪運(yùn)算。聲明四個(gè)中間變量a1,,a2,,a3,,a4,,對(duì)其進(jìn)行賦值:a1=A1,a2=A2,,a3=A3,,a4=A4。接著執(zhí)行4輪主循環(huán),,每一輪完成16次運(yùn)算,,每輪用到一個(gè)非線性函數(shù);每次操作需要對(duì)a1,,a2,,a3和a4中的3個(gè)變量完成一次非線性運(yùn)算,并更新對(duì)應(yīng)的變量數(shù)據(jù),。四輪非線性函數(shù)分別如下所示:
(4)數(shù)據(jù)輸出,。當(dāng)64步運(yùn)算完成之后,將a1,,a2,,a3,a4分別與初始的值分別進(jìn)行相加,,然后對(duì)下一組512位數(shù)據(jù)進(jìn)行運(yùn)算,,最后得到的結(jié)果為4個(gè)32位數(shù)據(jù)級(jí)聯(lián)構(gòu)成的128位輸出,即32位16進(jìn)制的MD5碼,。
2 全同態(tài)MAC消息認(rèn)證的VLSI實(shí)現(xiàn)
消息認(rèn)證是指對(duì)要傳輸?shù)南⒒蛘吆拖⑾嚓P(guān)的信息執(zhí)行一系列操作后再進(jìn)行認(rèn)證,,目的是為了防止消息在傳輸和存儲(chǔ)過程中存在惡意篡改或錯(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)證算法通過對(duì)消息進(jìn)行全同態(tài)加密操作,再采用MD5算法對(duì)加密后的數(shù)據(jù)進(jìn)行擾亂處理,,不但避免在通信信道中傳輸原始數(shù)據(jù)的安全問題,,而且能夠檢測(cè)消息有沒有被篡改,進(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算法對(duì)密文進(jìn)行運(yùn)算,,生成MAC2值,,對(duì)比MAC1值和MAC2值,若一致,,則用全同態(tài)解密算法對(duì)密文解密,,恢復(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ǔ)位,,并以信息長(zhǎng)度為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相加;最后,,對(duì)下一分組數(shù)據(jù)進(jìn)行相同操作,,當(dāng)所有分組都完成運(yùn)算后,將新的A1,,A2,,A3,A4按順序級(jí)聯(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組測(cè)試數(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é)論
本文通過對(duì)全同態(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í)可以檢測(cè)消息是否被篡改,確保消息傳輸?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] 王利村,,邱昆,王東,,等.一種固定幀長(zhǎng)的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.