《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于全同態(tài)MAC的消息認(rèn)證算法設(shè)計
基于全同態(tài)MAC的消息認(rèn)證算法設(shè)計
2018年電子技術(shù)應(yīng)用第1期
潘 釗,,張躍軍,丁代魯
寧波大學(xué) 電路與系統(tǒng)研究所,浙江 寧波315211
摘要: 針對通信信道中數(shù)據(jù)傳輸?shù)陌踩院驼J(rèn)證問題,,通過對全同態(tài)加密和消息認(rèn)證碼(Message Authentication Code,,MAC)算法的研究,提出一種基于全同態(tài)MAC的消息認(rèn)證算法設(shè)計方案。該方案首先在接收端對消息進行全同態(tài)加密,,結(jié)合MD5算法對加密后的數(shù)據(jù)進行擾亂處理,將處理后的數(shù)據(jù)在信道中傳輸,。然后,,在接收端檢測消息在傳輸信道中是否被篡改,再對數(shù)據(jù)執(zhí)行全同態(tài)解密,,進而確保消息傳輸?shù)目煽啃?。最后,在SMIC 65 nm工藝下完成硬件設(shè)計,,DC綜合后電路面積為21 911 μm2,,在1.2 V電壓下最高工作頻率可達(dá)到204 MHz,功耗為5.73 mW,。
中圖分類號: TP331
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.171964
中文引用格式: 潘釗,,張躍軍,丁代魯. 基于全同態(tài)MAC的消息認(rèn)證算法設(shè)計[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.

Message authentication algorithm based on fully homomorphism MAC method
Pan Zhao,,Zhang Yuejun,,Ding Dailu
Institute of Circuits and Systems,Ningbo University,,Ningbo 315211,,China
Abstract: There are many problems of security and authentication in communication channel with data transmission. After studying the fully homomorphism encryption and message authentication code(MAC) algorithm, this paper presents a scheme of message authentication algorithm based on fully homomorphism MAC method. In this scheme, the input messages are encrypted with fully homomorphism method at the transmitting terminal, and the encrypted data are transmitted in communication channel after discomposing by MD5 algorithm. Then, it is confirmed whether the data are tampered during transmission channel at the receiving terminal. If the data are not tampered, it will be decrypted with fully homomorphism method. This method helps to ensure the reliability of message transmission. Finally, the proposed algorithm is designed using SMIC 65 nm process. DC synthesis shows that the area is 21 911 μm2, the maximum operating frequency is 204 MHz, and the power consumption is 5.73 mW at 1.2 V.
Key words : fully homomorphism encryption;MAC algorithm,;message authentication,;information security

0 引言

    隨著電子技術(shù)和互聯(lián)網(wǎng)技術(shù)的迅速崛起,特別是云計算商業(yè)化平臺的出現(xiàn),,不安全信道中消息認(rèn)證變得越來越重要,。在消息認(rèn)證過程中,通常采用構(gòu)造消息認(rèn)證碼(Message Authentication Code,,MAC)的方式實現(xiàn)[1],。該方法可有效地檢測在傳輸過程中數(shù)據(jù)是否存在被篡改,目前已被廣泛應(yīng)用在數(shù)字簽名,、文件校驗,、流密鑰產(chǎn)生等方面[2],。針對MAC算法的安全性、效率和能耗等問題,,許多學(xué)者已經(jīng)對此開展深入的研究,。劉云璐等[3]提出一種消息認(rèn)證協(xié)議優(yōu)化算法,解決信息在樹狀傳感器網(wǎng)絡(luò)中的上層節(jié)點處擁堵和被丟棄的問題,。王利村等[4]提出一種采用固定幀長的EPONMAC算法,,使以太網(wǎng)交換機的速率得以提升。盧艷宏等[5]提出用于無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)幕旌闲拖⒄J(rèn)證算法,,解決了能量損耗問題,。但是,上述所提的方法均采用原始數(shù)據(jù)進行傳輸,,存在消息被泄露的威脅,。

    近年出現(xiàn)的全同態(tài)加密技術(shù),它允許對密文執(zhí)行特定的操作后將其輸出進行解密,,解密所得的結(jié)果與對明文進行相同操作的結(jié)果相等,。全同態(tài)加密不但能夠提高數(shù)據(jù)處理效率、確保數(shù)據(jù)安全傳輸,,而且可以有效避免將原始數(shù)據(jù)委托給第三方操作的安全問題,。但是怎樣構(gòu)造密碼體制使其具有全同態(tài)性質(zhì)是學(xué)術(shù)界面臨的難題之一。2009年9月,,GENTRY C等[6]在ACM計算理論年會上對“全同態(tài)加密”的可行性從數(shù)學(xué)上進行了論證,,并給出具體實現(xiàn)方案,即在不解密的條件下對密文數(shù)據(jù)進行運算與對明文進行相同運算后加密的結(jié)果相同,。DIJK M等[7]提出一種整數(shù)型全同態(tài)加密的優(yōu)化方案,,極大地簡化電路的硬件結(jié)構(gòu)。鑒此,,本文針對數(shù)據(jù)傳輸?shù)陌踩珕栴},,提出一種基于全同態(tài)MAC的消息認(rèn)證算法,在SMIC 65 nm工藝下完成硬件電路設(shè)計,。實驗結(jié)果表明,,該結(jié)構(gòu)不僅具有良好的黑盒性,還能夠檢驗傳輸數(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個階段,,具體如下所示:

    (1)密鑰的生成,。隨機產(chǎn)生一個密鑰p,且p為素數(shù),。

    (2)全同態(tài)加密,。對任意的明文m加密可得密文c=m+2r+pq。其中p為正的奇數(shù),,q為較大的正整數(shù)(比p要大,,是否是奇數(shù)沒有要求),r為加密時由$random函數(shù)產(chǎn)生的較小整數(shù)(沒有正負(fù)要求),,m為明文(m∈{0,,1})。全同態(tài)加密完成對1位二進制數(shù)的加密,,所得結(jié)果是N位整數(shù),。

    (3)全同態(tài)解密。對任意的密文解密可得m=(c mod p)mod2,。mod p表示以p為基數(shù)進行的模運算,,可等效為以下運算:c mod p=c-「c/p」×p,其中「c/p」為c除以p的商取整,。

1.2 MAC算法

    MAC算法作為一種可攜帶密鑰的hash函數(shù),,通常用來檢驗所傳輸消息的完整性。常用的hash函數(shù)有MD5,、SHA-2和SHA-3等,,本文將采用MD5算法。MD5算法[8]可將任意長度的消息或文本進行相關(guān)運算,,使其壓縮成128位固定長度的摘要,,具體如下所示:

    (1)補位。任意長度消息的低位用一個1和若干個0進行補位,,在結(jié)果后面添加消息的最初長度(用64位二進制數(shù)表示),,使消息長度剛好成為512的整數(shù)倍。

    (2)初始化緩沖器,。A1,,A2,A3,,A4是4個32位寄存器,,也稱作鏈接變量的整數(shù)參數(shù),,并對其設(shè)置初始數(shù)據(jù)。

    (3)非線性輪運算,。聲明四個中間變量a1,,a2,a3,,a4,,對其進行賦值:a1=A1,a2=A2,,a3=A3,,a4=A4。接著執(zhí)行4輪主循環(huán),,每一輪完成16次運算,,每輪用到一個非線性函數(shù);每次操作需要對a1,,a2,,a3和a4中的3個變量完成一次非線性運算,并更新對應(yīng)的變量數(shù)據(jù),。四輪非線性函數(shù)分別如下所示:

     wdz4-1.2-x1.gif

    (4)數(shù)據(jù)輸出,。當(dāng)64步運算完成之后,將a1,,a2,,a3,a4分別與初始的值分別進行相加,,然后對下一組512位數(shù)據(jù)進行運算,,最后得到的結(jié)果為4個32位數(shù)據(jù)級聯(lián)構(gòu)成的128位輸出,即32位16進制的MD5碼,。

2 全同態(tài)MAC消息認(rèn)證的VLSI實現(xiàn)

    消息認(rèn)證是指對要傳輸?shù)南⒒蛘吆拖⑾嚓P(guān)的信息執(zhí)行一系列操作后再進行認(rèn)證,,目的是為了防止消息在傳輸和存儲過程中存在惡意篡改或錯誤修改,認(rèn)證內(nèi)容主要包含消息是否被篡改或延遲,、消息是否來自真正的發(fā)送者等,。圖1為消息認(rèn)證系統(tǒng)的結(jié)構(gòu)框圖。

wdz4-t1.gif

2.1 全同態(tài)MAC的消息認(rèn)證算法

    全同態(tài)MAC的消息認(rèn)證算法通過對消息進行全同態(tài)加密操作,,再采用MD5算法對加密后的數(shù)據(jù)進行擾亂處理,,不但避免在通信信道中傳輸原始數(shù)據(jù)的安全問題,而且能夠檢測消息有沒有被篡改,,進而確保消息傳輸?shù)目煽啃?。本文結(jié)合全同態(tài)算法和MD5算法,提出一種全同態(tài)MAC的消息認(rèn)證算法,該算法的具體實現(xiàn)方案如下:

    步驟1:將算法中輸入的二進制數(shù)據(jù)進行全同態(tài)加密處理得到密文,。

    步驟2:通過步驟1處理后,,將數(shù)據(jù)經(jīng)過MAC算法,使其生成MAC1值,,將MAC1值及密文在信道中傳輸,。

    步驟3:接收方收到MAC1值和密文后,運用相同的MAC算法對密文進行運算,,生成MAC2值,,對比MAC1值和MAC2值,若一致,,則用全同態(tài)解密算法對密文解密,恢復(fù)原始數(shù)據(jù),;若不一致,,則接收方重新發(fā)送。

    全同態(tài)MAC算法流程圖,,如圖2所示,。整個過程消息一直以密文進行傳輸,保證了原始消息安全性,,只有當(dāng)接收方確認(rèn)消息來源和完整性后才進行密文的解密,。全同態(tài)MAC算法的偽代碼,如圖3所示,。其中,,fhe表示全同態(tài)加密模塊,fhd表示全同態(tài)解密模塊,,top表示全同態(tài)MAC算法模塊,。

wdz4-t2.gif

wdz4-t3.gif

2.2 全同態(tài)MAC的消息認(rèn)證算法硬件結(jié)構(gòu)

    全同態(tài)MAC的消息認(rèn)證算法的具體結(jié)構(gòu)如圖4所示。該算法首先執(zhí)行全同態(tài)加密運算,,將所得的結(jié)果經(jīng)過數(shù)據(jù)控制模塊用1和0進行補位,,并以信息長度為512位進行分組。每個分組又被分成16個32位子集,,每個子集用Mj(j為0到15)表示,,以新變量和子集作為輸入進行四輪主循環(huán),每一輪循環(huán)需要完成16次迭代運算,,其中每輪運算選擇一個不重復(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ù)功能函數(shù)更新a1,,a2,a3和a4中的一個,,通過16次迭代后,,得到更新后a1,a2,,a3和a4的數(shù)值,。然后,將更新后的數(shù)值應(yīng)用于第二輪循環(huán),,以此類推,,完成四輪循環(huán);其次,,將此時的a1,,a2,a3和a4的數(shù)值分別與原來的A1,,A2,,A3,A4相加,;最后,,對下一分組數(shù)據(jù)進行相同操作,當(dāng)所有分組都完成運算后,,將新的A1,,A2,A3,A4按順序級聯(lián)成128位數(shù)據(jù)輸出,。

wdz4-t4.gif

3 實驗結(jié)果與分析

    采用SMIC 65 nm CMOS工藝,,實現(xiàn)基于全同態(tài)MAC的消息認(rèn)證算法硬件電路。實驗環(huán)境包括Intel Xeon(R) Dual-Core CPU 2.0 GHz,、6 G RAM服務(wù)器,,涉及的工具軟件包括:NCverilog仿真軟件和DC綜合工具。表1為p=11,,q=121時,,輸入數(shù)據(jù)經(jīng)過全同態(tài)加密模塊的輸出數(shù)據(jù)。表2為p=11,,q=121時,,輸入數(shù)據(jù)經(jīng)過全同態(tài)MAC算法的輸出數(shù)據(jù)。

wdz4-b1.gif

wdz4-b2.gif

    圖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ù)具有良好的隨機特性。

wdz4-t5.gif

    不同溫度/電壓下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,。

wdz4-b3.gif

4 結(jié)論

    本文通過對全同態(tài)算法和MD5算法的研究,,提出了一個全同態(tài)MAC的消息認(rèn)證算法設(shè)計方法。將全同態(tài)加密生成數(shù)據(jù)與原有的結(jié)果進行比較,,驗證其黑盒性,。實驗結(jié)果表明,該算法有效避免在通信信道中傳輸原始數(shù)據(jù)的安全問題,,同時可以檢測消息是否被篡改,,確保消息傳輸?shù)目煽啃浴?/p>

參考文獻(xiàn)

[1] 徐津,巧燕,,王大印.一種基于Hash函數(shù)和分組密碼的消息認(rèn)證碼[J].計算機學(xué)報,,2015,38(4):793-803.

[2] 張紹蘭.幾類密碼Hash函數(shù)的設(shè)計與安全性分析[D].北京:北京郵電大學(xué),2011.

[3] 劉云璐,,蒲菊華,,方維維,等.一種無線傳感器網(wǎng)絡(luò)MAC協(xié)議優(yōu)化算法[J].計算機學(xué)報,,2012,,35(3):529-839.

[4] 王利村,邱昆,,王東,,等.一種固定幀長的EPON MAC算法[J].電子科技大學(xué)學(xué)報,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].計算機科學(xué),2008,,35(7):295-297.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。