基于同態(tài)加密隱私數(shù)據(jù)保護(hù)的編輯距離計(jì)算系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種隱私保護(hù)的編輯距離計(jì)算方案,具體是一種基于同態(tài)加密隱私數(shù) 據(jù)保護(hù)的編輯距離(e d i t d i S化η C e)計(jì)算系統(tǒng)。
【背景技術(shù)】
[0002] 大數(shù)據(jù)時(shí)代對實(shí)驗(yàn)科學(xué)產(chǎn)生了很重大的影響。在生物醫(yī)藥領(lǐng)域,一個(gè)很重要的發(fā) 展趨勢是通過對大量的數(shù)據(jù)進(jìn)行研究來探索其中的規(guī)律。然而,一個(gè)單獨(dú)機(jī)構(gòu)不能滿足研 究需要的存儲空間和計(jì)算能力。依賴于數(shù)據(jù)共享的云計(jì)算的提出,給基于大數(shù)據(jù)基因運(yùn)算 的研究帶來了一個(gè)解決途徑。研究人員可W依靠云端來減少運(yùn)算所需要的時(shí)間和儲存空 間。使用云空間的一個(gè)很大的弊端就是可能會造成隱私泄露。假定云端是"可靠的",它不會 把數(shù)據(jù)分享出去,但它自己可能會對數(shù)據(jù)感興趣。患者的基因數(shù)據(jù)是需要被保護(hù)的數(shù)據(jù),不 能直接傳輸給云端,而其它的研究機(jī)構(gòu)又需要運(yùn)些數(shù)據(jù)來進(jìn)行研究。同態(tài)加密的出現(xiàn)能夠 很好的解決運(yùn)個(gè)問題。同態(tài)加密是一種特殊的加密方法,兩個(gè)通過同態(tài)加密得到的密文相 加,解密后等于兩個(gè)對應(yīng)的原文相加。兩個(gè)通過同態(tài)加密得到的密文相乘,解密后等于對應(yīng) 兩個(gè)相應(yīng)的原文相乘。通過同態(tài)加密,被信任的第Ξ方生成一個(gè)公鑰跟密鑰,并把公鑰傳輸 給機(jī)構(gòu)A,B。機(jī)構(gòu)A和機(jī)構(gòu)B通過運(yùn)個(gè)公鑰把要進(jìn)行運(yùn)算的數(shù)據(jù)進(jìn)行加密,然后把密文傳給云 端。云端對密文進(jìn)行運(yùn)算,然后將結(jié)果傳回給用戶。用戶對密文進(jìn)行解密,得到原文結(jié)果。在 運(yùn)種情況下,科研人員可W利用其它機(jī)構(gòu)的數(shù)據(jù)進(jìn)行研究。不像其它添加噪聲來保護(hù)隱私 的方法,使用同態(tài)加密的得到的結(jié)果是無誤差的。而機(jī)構(gòu)A和機(jī)構(gòu)B又不擔(dān)屯、自己的數(shù)據(jù)在 計(jì)算過程中被泄露。
[0003] 兩段基因序列的編輯距離(edit distance)可W用來表示運(yùn)兩段基因之間的差 異。由于基因可能出現(xiàn)缺失,而導(dǎo)致無法比較漢明距離,所W求編輯距離。如果給定兩段基 因數(shù)據(jù)的明文,可W用Wagner-Fischer方法來求解它們之間的編輯距離?;趯ΜF(xiàn)有技術(shù) 的文獻(xiàn)探索發(fā)現(xiàn),Qieon JH等人在2015年的《3rd Workshop on lincrypted Computing and Applied Homomorphic Cryp tography》(WAHC ' 15 )會議上發(fā)表的"Homomorph i c Computation of Edit Distance" -文中提出了一種方法,基于二進(jìn)制的表示方法,通過改 進(jìn)Wagner-Fischer方法,得到可能的路徑。然后再對可能的路徑,計(jì)算對應(yīng)的編輯距離。比 較運(yùn)些編輯距離的值,取最小的值,作為兩段基因序列的編輯距離。但是,基于二進(jìn)制的表 示方式,使得對密文做加法的時(shí)候,時(shí)間代價(jià)很大。而且,運(yùn)篇論文里面的最短路徑的獲取 方法,并不能獲得所有可能的最短路徑,最后算出來的只是編輯距離的一個(gè)估計(jì)值。運(yùn)些不 足促使申請人針對同態(tài)加密下求解兩段基因序列的編輯距離,提出了新的系統(tǒng)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明針對現(xiàn)有技術(shù)的不足,提供了一種基于同態(tài)加密隱私數(shù)據(jù)保護(hù)的編輯距離 計(jì)算系統(tǒng),可W提供基因序列的編輯距離計(jì)算的同時(shí)還保證了原始基因隱私數(shù)據(jù)的安全 性。
[0005] 本發(fā)明是通過W下技術(shù)方案實(shí)現(xiàn)的:
[0006] 本發(fā)明所述的基于同態(tài)加密隱私數(shù)據(jù)保護(hù)的編輯距離計(jì)算系統(tǒng),包括:加密數(shù)據(jù) 比較模塊、最短路徑集計(jì)算模塊和編輯距離計(jì)算模塊,其中:
[0007] 所述加密數(shù)據(jù)比較模塊,對加密后的密文利用同態(tài)加密(homomorPh i C enc巧ption)的性質(zhì)構(gòu)造函數(shù),輸入兩個(gè)需要比較的密文的差,輸出一個(gè)加密的標(biāo)志位;
[0008] 所述最短路徑集計(jì)算模塊,首先計(jì)算所有可能的路徑集,然后對每條路徑進(jìn)行校 驗(yàn),排除掉不可能成為最后結(jié)果的路徑,得到最短路徑集;
[0009] 所述編輯距離計(jì)算模塊,基于前面兩個(gè)模塊的結(jié)果,計(jì)算出每一個(gè)最短路徑集中 的加密的路徑值,再利用編輯距離只能在有限范圍內(nèi)取值運(yùn)個(gè)性質(zhì),判斷出其中的最短加 密路徑值,作為結(jié)果。
[0010] 優(yōu)選地,所述加密數(shù)據(jù)比較模塊,利用全同態(tài)加密算法進(jìn)行加密,得到的數(shù)據(jù)即同 態(tài)加密隱私數(shù)據(jù)。
[0011] 優(yōu)選地,所述的加密數(shù)據(jù)比較模塊,構(gòu)造了一個(gè)函數(shù),該函數(shù)可W完成:在加密狀 態(tài)下,判斷兩個(gè)十進(jìn)制整數(shù)是否相等。該函數(shù)的輸入是加密狀態(tài)下的兩個(gè)整數(shù)之差,函數(shù)輸 出的是加密狀態(tài)的1(如果兩個(gè)整數(shù)相等)或加密狀態(tài)的〇(如果兩個(gè)整數(shù)不等)。
[0012] 優(yōu)選地,所述的最短路徑集計(jì)算模塊,通過對所有路徑集運(yùn)用排除法,對于一條路 徑,如果還能找到另一條值不大于它的路徑,就把它排除。經(jīng)過排除法后得到是最短路徑 集。
[0013] 優(yōu)選地,所述的編輯距離計(jì)算模塊,通過計(jì)算最短路徑集里面的最短路徑,得到加 密的編輯距離。
[0014] 進(jìn)一步的,本發(fā)明所述系統(tǒng)還包括并行運(yùn)算模塊,所述并行運(yùn)算模塊運(yùn)用同態(tài)加 密里面的多孔結(jié)構(gòu),可W同時(shí)計(jì)算多個(gè)基因?qū)Φ木庉嬀嚯x,并利用了多核CPU,同時(shí)計(jì)算最 短路徑集里面的路徑值,加快了計(jì)算速度。
[0015] 本發(fā)明上述系統(tǒng)中所有的運(yùn)算均處于加密的狀態(tài)下并且在云端運(yùn)行,第Ξ方負(fù)責(zé) 提供公鑰給機(jī)構(gòu)和密鑰給用戶,機(jī)構(gòu)負(fù)責(zé)提供加密的數(shù)據(jù)給云端來運(yùn)算,密文結(jié)果由云端 返回給用戶,用戶解密后得到最終結(jié)果。
[0016] 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
[0017] 本發(fā)明所述系統(tǒng)計(jì)算編輯距離的同時(shí),還保證了原始隱私數(shù)據(jù)的安全性,基于整 數(shù)的表示方法也提升了計(jì)算的效率。本發(fā)明采用云端-客戶模式的福射式結(jié)構(gòu),其中加密數(shù) 據(jù)位于各個(gè)客戶端,加密數(shù)據(jù)比較模塊、最短路徑集計(jì)算模塊、編輯距離計(jì)算模塊和并行運(yùn) 算模塊位于服務(wù)器云端,具備良好的安全性、實(shí)用性和擴(kuò)展性。
【附圖說明】
[0018] 通過閱讀參照W下附圖對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、 目的和優(yōu)點(diǎn)將會變得更明顯:
[0019] 圖1為本發(fā)明一較優(yōu)實(shí)施例的結(jié)構(gòu)框圖;
[0020] 圖2為本發(fā)明一實(shí)施例最短路徑集計(jì)算的示意圖。
【具體實(shí)施方式】
[0021] 下面結(jié)合具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。W下實(shí)施例將有助于本領(lǐng)域的技術(shù) 人員進(jìn)一步理解本發(fā)明,但不W任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù) 人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可W做出若干變形和改進(jìn)。運(yùn)些都屬于本發(fā)明 的保護(hù)范圍。
[0022] 圖1所示,本發(fā)明一實(shí)施例系統(tǒng)的結(jié)構(gòu)框圖,包括:加密數(shù)據(jù)比較模塊,最短路徑集 計(jì)算模塊,編輯距離計(jì)算模塊和并行運(yùn)算模塊。其中:
[0023] 加密數(shù)據(jù)比較模塊,基于整數(shù)的表示方法,比較兩個(gè)密文是否相等。輸出為密文0 (不相等)或密文1(相等)。
[0024] 最短路徑集計(jì)算模塊,通過排除在所有路徑中值一定不可能是最小的路徑,將剩 余的路徑設(shè)定為最短路徑集。
[0025] 編輯距離計(jì)算模塊,首先計(jì)算出每一個(gè)最短路徑集中的加密的路徑值,再利用編 輯距離只能在有限范圍內(nèi)取值運(yùn)個(gè)性質(zhì),判斷出其中的最短加密路徑值,作為結(jié)果,返回給 用戶。
[0026] 并行運(yùn)算模塊,運(yùn)用同態(tài)加密里面的多孔結(jié)構(gòu),可W同時(shí)計(jì)算多個(gè)基因?qū)Φ木庉?距離,并利用了多核CPU,同時(shí)計(jì)算最短路徑集里面的路徑值,加快了計(jì)算速度。
[0027] 本實(shí)施例中,所述的最短路徑集計(jì)算模塊的具體實(shí)現(xiàn)如圖2所示。在圖中,向下走 一格或者向右走一格表示路徑的值加1,斜向下走一個(gè)格路徑可能增加0,也可能增加1。運(yùn) 取決于對應(yīng)位置的兩個(gè)基因是否相等,相等增加0,不同增加1。每一條路徑都是從左上角的 (〇,〇)走到右下角的(4,4)。圖中有Ξ條實(shí)例路徑,其中虛線路徑不是一個(gè)有效的最短路徑, 因?yàn)檩斎氲倪\(yùn)對基因序列的長度是4*4,所W編輯距離的最大可能值是4,而虛線路徑最小 的可能是6,所W虛線路徑不是可能的最短路徑。遍歷整個(gè)可能的路徑集,