同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

通常情況下,云環(huán)境的數(shù)據(jù)中心保存有大量的私密數(shù)據(jù),這些數(shù)據(jù)往往代表了用戶的核心競(jìng)爭(zhēng)力。在云計(jì)算模式下,用戶將數(shù)據(jù)文件通過(guò)網(wǎng)絡(luò)傳遞到云計(jì)算服務(wù)提供商進(jìn)行處理時(shí),面臨著幾個(gè)方面的問(wèn)題:一是如何確保用戶的數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中不被竊?。欢侨绾伪WC云計(jì)算服務(wù)提供商在得到數(shù)據(jù)時(shí)不將用戶重要數(shù)據(jù)文件泄露出去;三是在云計(jì)算服務(wù)提供商處存儲(chǔ)時(shí)。如何保證訪問(wèn)用戶經(jīng)過(guò)嚴(yán)格的權(quán)限認(rèn)證并且是合法的數(shù)據(jù)訪問(wèn),并保證用戶在任何時(shí)候都可以安全訪問(wèn)到自身的數(shù)據(jù)文件。

從上面分析可以得出結(jié)論,保證云環(huán)境中數(shù)據(jù)文件傳輸?shù)陌踩窃骗h(huán)境數(shù)據(jù)安全的重要環(huán)節(jié)。對(duì)用戶數(shù)據(jù)文件進(jìn)行加密是最根本的解決方法。

一、同態(tài)加密技術(shù)

同態(tài)技術(shù)是在兩個(gè)集合之間傳遞的同時(shí)保存對(duì)應(yīng)關(guān)系的技術(shù)。在第一個(gè)集合上的操作結(jié)果保存在第二個(gè)集合相應(yīng)的成員中。

假設(shè)P和C是兩個(gè)集合,P1、P2∈ P,t是兩個(gè)集合之間的一個(gè)轉(zhuǎn)換關(guān)系,t’是t的逆轉(zhuǎn)換關(guān)系,集合之間的操作為+,如果:

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

該系統(tǒng)稱為同態(tài)。如果存在兩種關(guān)系+和×,同時(shí)滿足:

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

并且:

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

則該系統(tǒng)稱為代數(shù)同態(tài)。前者最明顯的作用是將兩個(gè)成員P1和P2轉(zhuǎn)換到C的范圍內(nèi)成為可能。這樣就可以應(yīng)用在某些加密中,并且可以讓第三方執(zhí)行+和×操作而保持映射關(guān)系不變。加密后仍可以解密回集合P的范圍內(nèi)。

一個(gè)代數(shù)同態(tài)加密系統(tǒng)可以看作是一個(gè)6元組,H1={P,c,t,t’,+,×},其中P和C分別代表明文和密文t和t’表示加密算法和解密算法。+和×表示兩個(gè)代數(shù)運(yùn)算。這樣,有限的同態(tài)加密方案就建成了。 Gentry的研究是從一個(gè)somewhat同態(tài)系統(tǒng)引導(dǎo)出一個(gè)全同態(tài),并能提供正常化過(guò)程的加法和乘法,被認(rèn)為可以在密文空間允許無(wú)限的操作。這種技術(shù)減少了密文空間的噪音,但需要一個(gè)額外的約束條件,需要將H1拓展到H2。

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

公式中引入了一個(gè)降噪算法r,將帶噪音的密文轉(zhuǎn)換成一個(gè)降噪的相應(yīng)密文。

在進(jìn)一步描述同態(tài)加密的概念之前,先論證一個(gè)非常簡(jiǎn)單的代數(shù)同態(tài)加密。雖然這個(gè)概念適用于所有的同態(tài)加密,但是這個(gè)例子旨在直觀的展示一個(gè)加密是如何生效的。

假設(shè)P∈N,P是一個(gè)比較大的質(zhì)數(shù),作為密鑰。a和b是任意的兩個(gè)整數(shù),滿足a’a+(r*p),r∈N。_r屬于任意整數(shù)。

這樣就可以對(duì)a進(jìn)行加密,明文a可以看做P對(duì)a’模的余數(shù)。那加密后的加法就可以表示為:

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

這樣當(dāng)解密時(shí)P對(duì)a+b+(H1+H)*p求模就是(a+b)的值。乘法可以表示為:

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

例如:

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

本文可以很容易的證明這個(gè)公式是不完整的。因?yàn)椴僮鱝、b兩者的結(jié)果如果大于質(zhì)數(shù)模型P,那兩者之間的加密操作就失敗了。因此兩個(gè)干凈的純文本元素,中間結(jié)果的增長(zhǎng)對(duì)每個(gè)模型都有一定意義上的“污染”,為了彌補(bǔ)這一點(diǎn),完全同態(tài)加密方案必須定義一個(gè)中間結(jié)果的正常化,(Gentry稱之為重加密)在這里,正?;瘧?yīng)該是可以最大減少對(duì)p求模后的余數(shù)的值,同時(shí)保留奇偶模型p,Gentry通過(guò)生成一個(gè)包含解密提示的公鑰。這個(gè)提示允許同態(tài)加密的中間結(jié)果在加密域內(nèi)。這意味著作為明文的參數(shù)始終是未知的。雖然在密文空間中有明文,這樣通過(guò)重新加密明文生成新的降噪的密文是可能的。

二、同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

本文提出了在不可信資源中使用一種基于全同態(tài)加密指令和數(shù)據(jù)的方法來(lái)確保數(shù)據(jù)在云環(huán)境中的傳輸安全。在定義了代數(shù)同態(tài)加密進(jìn)行加密的基礎(chǔ)上,提供一種系統(tǒng)架構(gòu)。這種概念解決了加密地址和分支加密的存儲(chǔ)訪問(wèn)問(wèn)題。同其他方法相比,該系統(tǒng)支持動(dòng)態(tài)參數(shù)和非線性程序。

為了加密明文,將明文的比特位加密成密文,這些比特位包含在奇偶數(shù)求模余數(shù)的密文中,這可以很容易的將噪音降低到一個(gè)布爾代數(shù)。本文的系統(tǒng)的理論基礎(chǔ)建立在如下兩個(gè)定義之上。

定義1布爾表達(dá)式中的操作+引申為XOR操作

定義2定義a * b=(a+b)+(a*b)為OR操作

系統(tǒng)利用Java和C語(yǔ)言實(shí)現(xiàn),本系統(tǒng)易于集成到現(xiàn)有的應(yīng)用程序中,滿足特殊的需求。系統(tǒng)架構(gòu)如圖1所示,以操作系統(tǒng)為基礎(chǔ),在其上層建立一個(gè)同態(tài)加密實(shí)現(xiàn)依賴庫(kù)的執(zhí)行引擎,加密程序本身是獨(dú)立于特定類型的加密,匯編模塊和執(zhí)行引擎使用相同的加密庫(kù)。只要匯編模塊和執(zhí)行引擎使用相同的加密庫(kù),加密程序獨(dú)立于特定的加密類型。在系統(tǒng)中定義了—個(gè)借接口,確保任何可用加密庫(kù)的互操作性。加密庫(kù)提供了類似encode/decode/recode的功能。

同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)文件傳輸中的應(yīng)用

其中,encode函數(shù)輸入一個(gè)整數(shù),生成一個(gè)取決于加密密鑰的加密bit數(shù)組。decode函數(shù)輸入為一個(gè)加密bit數(shù)組,利用密鑰進(jìn)行解碼。recode函數(shù)是正常化的過(guò)程,利用公鑰生成一個(gè)降噪的加密bit流。模塊化的系統(tǒng)設(shè)計(jì)使得加密庫(kù)可以快速更換,系統(tǒng)的效率提高成為可能。

系統(tǒng)實(shí)現(xiàn)應(yīng)用13位字長(zhǎng)的小端格式內(nèi)存,一個(gè)字包含8 bits和5 bits命令。這樣處理器架構(gòu)符合內(nèi)存訪問(wèn)原則,數(shù)據(jù)和指令同時(shí)被加密,數(shù)據(jù)和指令合一在一個(gè)指令周期調(diào)用。如果—個(gè)內(nèi)存位置被寫入,只有數(shù)據(jù)部分被修改,指令部分不變。

本文提出了一種利用同態(tài)加密技術(shù)給數(shù)據(jù)文件加密,然后在加密數(shù)據(jù)文件上執(zhí)行加密操作,最后進(jìn)行數(shù)據(jù)傳輸?shù)姆桨?。同其他解決方案相比,代碼以及處理的數(shù)據(jù)完全保存在密空間中,提高了云環(huán)境數(shù)據(jù)傳輸?shù)目煽啃院桶踩浴?/p>

小知識(shí)之同態(tài)加密

同態(tài)加密是基于數(shù)學(xué)難題的計(jì)算復(fù)雜性理論的密碼學(xué)技術(shù)。對(duì)經(jīng)過(guò)同態(tài)加密的數(shù)據(jù)進(jìn)行處理得到一個(gè)輸出,將這一輸出進(jìn)行解密,其結(jié)果與用同一方法處理未加密的原始數(shù)據(jù)得到的輸出結(jié)果是一樣的。