非對稱完全同態加密及其密鑰置換和密文交割方法與流程
2023-08-13 00:03:31 2

本發明涉及的是一種信息安全領域的技術,具體是一種非對稱完全同態加密及其密鑰置換和密文交割方法。
背景技術:
現有的全同態加密方法通過引入隨機噪聲用於加密,並對每一步同態運算之後引入數據清洗操作,以使噪聲大小始終保持在不影響計算結果的範圍內。但是由於該算法十分複雜,運算過程繁複,並且針對明文的每一位(bit)進行加密,導致整體運算量十分巨大,同時其密文所需的存儲空間也相當龐大,因而很難應用到實際服務中。
中國專利申請號cn201510192143.1,記載了一種基於係數映射變換的多項式完全同態加密方法及系統,首先將明文表達為指定映射函數的一組隨機取值、兩組隨機係數因子以及一個隨機常數組成的多項式,並將該多項式中的:指定映射函數的表達式與一組隨機係數因子作為密鑰;將另一組隨機係數因子、該映射函數的一組隨機自變量以及隨機常數作為可供同態運算的密文,通過對函數密鑰部分進行三種不同的映射後經過數值擬合,分別得到三個子函數構成的運算支持函數族,用於異地進行基於運算支持函數族的密文同態運算後返回本地,通過密鑰進行解密。但該技術屬於對稱加密方法,在實際應用中往往受到各種制約。
技術實現要素:
本發明針對現有技術存在的上述不足,提出一種非對稱完全同態加密及其密鑰置換和密文交割方法,在不洩露明文的情況下直接對密文進行運算,從而提供安全的數據存儲和運算環境。本發明基於改進的多項式同態加密原理,可以直接對任意整數或實數進行加密,並通過對多項式係數進行函數映射變換,將映射函數本身作為密鑰的一部分,依靠求解一般形態函數方程的困難性,消除了單純的多項式加密方法的安全性隱患。其計算速度相對於現有其他同態加密技術有顯著提高,所要求的密文體積和擴張速度更小,更有利於各種方式的實現,使得數據所有者可以放心地使用各種雲計算服務而不必再擔心其敏感數據、保密數據會因此而洩露。雲服務提供者也可以專心於實現客戶價值和提供優質服務,而不必再擔心客戶會因為對數據安全的擔心而不敢使用其提供的服務。
本發明是通過以下技術方案實現的:
本發明涉及一種非對稱完全同態加密的方法,其加密並傳輸數據的方式包括以下步驟:
i)接收端隨機生成周期性複合函數f作為函數密鑰部分以及實數向量y={yi|i∈i}並組合得到私鑰k={f,y},進一步隨機生成實數向量a1={a1i|i∈i}以及實數向量x1={x1i|i∈i},然後計算得到實數b1,使得以下等式成立,接收端生成私鑰對應的密鑰空間sk下的單位密文ck,1={a1,x1,b1}。
ii)接收端隨機生成公鑰k'={f',y'},並通過公鑰和私鑰的函數密鑰部分生成公鑰加密運算支持函數其中:h1為任意二元函數,且滿足條件h1(x,x')≠x≠x';然後將公鑰k'及單位密文ck,1傳輸給發送端。
iii)發送端獲得接收端的公鑰k'和單位密文ck,1,採用公鑰k'以完全同態方式加密所需傳輸的實數明文p獲得ck',再乘以ck,1得到最終密文c'=ck'·ck,1,並發送給接收端。
iv)接收端收到最終密文c'後,通過公鑰加密運算支持函數gpk將密文c'轉換到私鑰k對應的密鑰空間sk下的密文ck,ck=c'·gpk;然後使用私鑰k進行完全同態方式解密即得所述明文p。
本發明涉及一種基於上述非對稱完全同態加密的密文交割方法,包括以下步驟:
步驟1、進行初始化,即隨機生成私鑰和公鑰,並利用私鑰生成私鑰加密運算支持函數、私鑰對應密鑰空間的單位密文以及公鑰加密運算支持函數;
所述的私鑰處於保密狀態保存。
所述的單位密文和公鑰處於非保密狀態保存。
所述的運算支持函數和公鑰加密運算支持函數優選處於保密狀態並保存於伺服器端,且僅在進行密文同態運算和公鑰加密所得密文的接受或解密時調用。
步驟2、對明文進行加密以生成密文,即直接使用私鑰進行加密得到直接密文或使用與私鑰對應的公鑰進行加密運算以獲得同一個密鑰空間的兼容密文;
所述的直接密文和兼容密文處於同一個密鑰空間,即均通過私鑰進行解密還原得到明文或先經公鑰加密運算支持函數進行運算處理後再通過私鑰進行解密,得到經過相同運算處理後的明文。
當用於解密的私鑰丟失或無法獲得時,通過生成新的私鑰並將密文轉換至對應的密鑰空間可實現解密,具體為:接收端預先生成新的私鑰,即備用私鑰,並通過備用私鑰與原私鑰共同運算生成密鑰置換支持函數和原密鑰多項式密鑰部分的換元表達式並備份於伺服器端;當需要更換密鑰時,通過密鑰置換支持函數及原密鑰多項式密鑰部分的換元表達式對密文進行密鑰空間轉換後,即能夠以備用私鑰對轉換後的密文進行解密。
步驟3、當需要將密文安全交付至接收端時,則通過①發送接收端以及伺服器端三方或②發送接收端雙方完成密文交割,其中:
方案①具體步驟包括:
3.1)首先由服務端生成臨時密鑰,並發送至發送端和接收端;
3.2)接收端根據服務端臨時密鑰生成接收端臨時密鑰、交割函數和接收端交割支持函數,並將交割函數發送至密文發送端,將接收端交割支持函數發送至服務端;
3.3)發送端生成發送端臨時密鑰,並將需要交付的密文從原密鑰空間轉到臨時密鑰空間,同時根據接受到的服務端臨時密鑰以及從接收端獲得的交割函數運算生成發送端交割支持函數,最後將密文及發送端交割支持函數發送至服務端;
3.4)服務端根據接受到的接收端交割支持函數、密文及發送端交割支持函數,將密文依次從發送端臨時密鑰空間轉換到接收端臨時密鑰空間,再轉換到接收端原密鑰空間,最後將轉換後的密文發送至接收端,供接收端採用全同態方式將轉換後的密文解密。
方案②具體步驟包括:
3.a)接收端生成臨時密鑰、交割函數及其對應的密鑰置換支持函數,然後將臨時密鑰及交割函數發送至發送端;
3.b)發送端首先生成發送端臨時密鑰,將需要交付的密文從原密鑰空間轉換到臨時密鑰空間,然後根據接收端臨時密鑰及交割函數生成發送端交割支持函數,再將臨時密鑰空間密文與發送端交割支持函數發送至接收端;
3.c)接收端根據臨時密鑰空間密文與發送端交割支持函數,將密文依次從發送端臨時密鑰空間轉換到接收端臨時密鑰空間,再轉換到原密鑰空間,最終採用全同態方式將轉換後的密文解密。
技術效果
與現有的同態加密方法相比,本發明改進後的非對稱體制、密鑰置換方法和密文交割,可以適用於由不受信的外部對象執行加密數據的操作,公鑰及公鑰加密運算支持函數可以完全公開不影響安全性,而最終獲得的密文位於私鑰對應的密鑰空間,可以與私鑰加密獲得的密文進行同態運算,也可以使用私鑰解密。這樣的非對稱加密體制的應用面更廣,用於加密數據傳輸、加密數據採集等操作時安全性更高。
本發明也可以適用於轉換前後的密鑰屬於同一個用戶的情況。常見的應用場景之一是為了某種特殊操作需要——例如密文交割,臨時生成一次性的密鑰,並將指定的密文由原密鑰空間,轉換到臨時密鑰空間再進行操作,以提高操作的安全性。另外的應用場景包括,密文化簡與密文比較運算。密鑰置換操作通常在用戶本地完成,也可以在伺服器端完成,相比較於另外兩種更換密鑰空間的方法,密鑰置換處理最簡單,運算速度最快。
本發明還可以適用於轉換前後的密鑰分別屬於不同的用戶的情況,同時這兩個密鑰都是需要保密的。這裡假設所要交付的密文在整個交割過程中均處在不安全的環境,因此不允許執行任何解密操作,這也是三種更換密鑰空間方法中安全性要求最高,運算過程最複雜的。同時,密文交割的運算過程需要用到非對稱體制和密鑰置換兩種方法。密文交割操作通常需要第三方的參與,這樣可以達到較高的安全等級,在交割雙方達成基本互信的前提下,也可以只有交易雙方參與。
附圖說明
圖1為本發明非對稱體制密鑰生成操作示意圖;
圖2為本發明非對稱體制公鑰加密操作示意圖;
圖3為本發明密鑰置換操作示意圖;
圖4為本發明標準密文交割操作初始化示意圖;
圖5為本發明標準密文交割操作密文交割示意圖;
圖6為本發明簡化密文交割操作示意圖;
圖中:s為伺服器端,a為發送端,b為接收端。
具體實施方式
實施例1
由於完全同態加密方法所得到的密文具有可運算特點,使用同一個密鑰加密的密文,彼此之間可以依靠運算支持函數進行運算,而使用不同的密鑰加密的密文則不能。因此,我們稱使用同一個密鑰生成的所有密文構成的空間為這個密鑰所對應的密鑰空間,只有同一個密鑰空間中的兩個密文才可以運算,而不同密鑰空間中的密文不能進行運算。
本實施例涉及的非對稱完全同態加密體系,通過以下方式實現:
i)系統初始化,設置以ck,1={a1,x1,b1}作為與私鑰k對應的單位密文,其中:f(xi)>0且f可微,k={f,y},a1={a1i|i∈i}為實數向量,x1={x1i|i∈i}為實數向量,y={yi|i∈i}為實數向量;i為多項式密鑰維數下標集合,通常情況下i={1,2};f(xi)為函數密鑰部分,優選複合函數f為周期函數。
ii)隨機生成公鑰k'={f',y'},並通過公鑰生成公鑰加密運算支持函數其中:h1為任意二元函數,且滿足條件h1(x,x')≠x≠x'。
iii)採用公鑰k'加密任意實數明文p獲得密文ck',通過乘以單位密文,得到位於密鑰空間sk'k的最終密文c'=ck'·ck,1。
iv)通過公鑰加密運算支持函數gpk將最終密文c'轉換到私鑰k的密鑰空間sk,得到密文ck,然後使用私鑰k進行解密並得到所述任意實數明文p,即
所述的公鑰k'、私鑰空間sk的單位密文ck,1以及公鑰加密運算支持函數gpk均處於非保密狀態。
所述的密文ck等價於使用私鑰k直接加密任意實數明文p所獲得的密文,因此採用相同私鑰對其進行恢復必然得到相同的明文。
所述的完全同態方式是指:通過運算支持函數族對密文之間或明文與密文之間進行同態運算得到密文同態運算結果cr,並根據密文同態運算結果cr代入密鑰k中的f和y即可解密得到明文同態運算結果pr。
所述的運算支持函數族採用但不限於以下任意一種:
①其中:α、β∈x,h1(α,β)和h2(α,β)為滿足h1(α,β)≠h2(α,β)≠α≠β的任意函數,或者是:
②其中:α、β∈x,h1(α,β)、h2(α,β)和h3(α,β)為滿足h1(α,β)≠h2(α,β)≠h3(α,β)≠α≠β的任意函數,或者是:
③其中:α、β∈x,h1(α,β)、h2(α,β)、h3(α,β)和h4(α,β)為滿足h1(α,β)≠h2(α,β)≠h3(α,β)≠h4(α,β)≠α≠β的任意函數;f2為用於對運算支持函數進行加密的隨機生成函數。
所述的周期性複合函數採用但不限於一元或多元的各種解析函數,例如:正比例函數、反比例函數、正弦函數、餘弦函數、對數函數、指數函數、冪函數或其組合。
實施例2
本實施例基於實施例1中的非對稱加密體系,進一步通過以下方式實現密文交割:
步驟1)系統初始化,即發送端生成發送私鑰ka={fa,ya},接收端生成接收私鑰kb={fb,yb},發送端生成待發送密文ca={aa,xa,ba},伺服器端隨機生成臨時密鑰k1={f1,y1}並分別交付至發送端和接收端;
步驟2)接收端隨機生成臨時接收密鑰k2={f2,y2}以及密鑰交割函數ft,並生成接收端交割支持函數和密鑰接收置換函數其中:htemp1(x,x')≠x≠x';然後接收端將密鑰交割函數ft交付至發送端、將接收端交割支持函數gt和密鑰接收置換函數g2→b交付至伺服器端;
所述的密鑰交割函數優選通過點對點方式傳輸至發送端。
所述的接收端優選在完成傳輸後將臨時接收密鑰k2銷毀以提高安全性;
步驟3)發送端生成臨時發送密鑰k3={f3,y3}以及密鑰發送置換函數其中:htemp2(x,x')≠x≠x';據此將待發送密文ca轉換為發送密文c3={a3,x3,b3},同時發送端根據臨時密鑰k1和密鑰交割函數ft生成發送端交割支持函數並將發送密文c3和發送端交割支持函數g3交付至伺服器端。
所述的將待發送密文ca轉換為發送密文c3,具體為:基於明文不變原則,即則:
因此:其中:a3i=ai·a'i·ga→3(αi,βi),x3i=htemp2(αi,βi)。
經過上述變換操作,待發送密文ca從原密鑰空間sa轉換到新的密鑰空間s3中的發送密文c3,即實現密文轉換。
所述的發送端優選在完成傳輸後將臨時發送密鑰k3以及密鑰發送置換函數ga→3銷毀以提高安全性。
優選地,接收端將生成的密鑰交割函數ft發送至發送端,將接收端交割支持函數gt發送至伺服器端,同時掌握這兩個數據的一方就可以破解交割過程中的密文。由於接收端的所有對外通訊都有可能被監聽,為防止監聽者同時掌握密鑰交割函數ft和接收端交割支持函數gt,這裡可以使用本實施例中的非對稱加密方法,利用發送端的公鑰pka將密鑰交割函數ft加密後再發送至發送端,發送端收到後使用對應的私鑰ska解密得到密鑰交割函數。
步驟4)伺服器端根據來自發送端的發送端交割支持函數g3和來自接收端的接收端交割支持函數gt將密文c3轉換為中間密文c2={a2,x2,b2},然後伺服器端再通過來自接收端的密鑰接收置換函數g2→b將中間密文c2轉換為接收密文cb並輸出至接收端,完成密文交割。
所述的中間密文c2轉換為接收密文cb,具體為:則:
因此:
經過上述變換操作,中間密文c2從原密鑰空間s2轉換到新的密鑰空間sb中的接收密文cb,即實現密文轉換,轉換後的密文可採用但不限於本實施例所給出的方式,或如文獻cn201510192143.1中記載或其他類似的全同態加密方式實現解密。
上述密文交割過程中的發送私鑰ka和接收私鑰kb始終處於安全狀態,整個過程不涉及任何解密操作,除發送端第一次密鑰置換操作外,其餘針對密文的轉換操作均可以安全的在不受信的伺服器環境下進行。
實施例3
在一些情況下,密文交割的雙方可以達成互信,這時也可以選擇簡化的密文交割操作,這種操作不需要伺服器端的參與,僅發送接收雙方就可以完成。整個過程如下:
步驟1)接收端隨機生成臨時接收私鑰k1={f1,y1}、密鑰交割函數ft以及密鑰接收置換函數g1→b,並將臨時接收私鑰k1和密鑰交割函數ft交付至發送端;
所述的接收端優選在完成傳輸後將臨時接收私鑰k1銷毀;
步驟2)發送端隨機生成臨時發送私鑰k2={f2,y2}以及密鑰發送置換函數ga→2,並將發送密文ca轉換為中間密文c2;然後發送端使用私鑰解密獲得接收端的臨時接收私鑰k1和密鑰交割函數ft,生成發送端交割支持函數並將其與中間密文c2一併交付至接收端;
所述的發送端優選在完成傳輸後將臨時接手私鑰k1,接收端密鑰交割函數ft,臨時發送私鑰k2和密鑰發送置換函數ga→2銷毀;
步驟3)接收端根據收到的發送端交割支持函數g2和密鑰交割函數ft將中間密文c2轉換為接收秘文c1,具體為:
然後接收端通過密鑰接收置換函數g1→b將接收密文c1轉換為最終密文cb,並採用如文獻cn201510192143.1中記載或其他類似的全同態加密方式實現解密。
上述過程中,當接收端將接收私鑰k1和密鑰交割函數ft交付至發送端的步驟需要特別注意安全性,因為一旦洩露即可通過截取密文並實現解密解密,優選在步驟1)中採用非對稱加密方法,即使用發送端的公鑰pka將臨時接收私鑰k1和密鑰交割函數ft加密後再交付至發送端。
上述具體實施可由本領域技術人員在不背離本發明原理和宗旨的前提下以不同的方式對其進行局部調整,本發明的保護範圍以權利要求書為準且不由上述具體實施所限,在其範圍內的各個實現方案均受本發明之約束。