假設(shè)路徑A的最小 的可能值為Lmin(A),路徑B的最大的可能值為Lmax(B),如果Lmax(B) < Lmin(A),就將路徑A排除 掉。
[0028] 本實施例中,所述的加密數(shù)據(jù)比較模塊,通過設(shè)計一個函數(shù),使得輸入是需要比較 的加密數(shù)據(jù)的差,輸出是加密的1或0。如果需要比較的加密數(shù)據(jù)相等,則輸入是加密的0,輸 出是加密的1。若需要比較的加密數(shù)據(jù)不相等,則輸入是任意非零的密文,輸出是加密的0。 假設(shè)輸入的差為~^符號^代表是密文,設(shè)計的函數(shù)為
[0029]
(1)
[0030] 其中,P為密文的模數(shù)且為素數(shù)。?是一個變量,取值從?:到/>-L當P確定W后,密 文的取值范圍被限定在6到#-?之間。當輸入…?]的時候,很明顯,輸出是δ。當輸 入是1 = δ時,由素數(shù)的性質(zhì)(p-l)!=-l(modp)可得到輸出為L。
[0031] 本實施例中,所述的編輯距離計算模塊,首先利用加密數(shù)據(jù)比較模塊和最短路徑 集計算模塊,計算出最短路徑集中的每一條路徑的加密的值。對于輸入基因序列長度為(m, η)的序列對,不妨設(shè)一共有t條可能的最短路徑,每一條路徑的值表示為Α,/·^ = 1,2,···,?。再通 過利用編輯距離在有限的范圍內(nèi)取值的運一限制條件,將原本需要通過比較大小才能得到 的最短路徑集里面中的最小值,通過下面的函數(shù)
[0032]
(2)
[0033] 其中,s=max(m,n)表示兩段基因序列可能的最大編輯距離值,w=|m-n|表示兩段 基因序列可能的最小編輯距離值,?代表編輯距離的可能取值,t代表最短路徑集中的路徑 數(shù)量,P為密文的模數(shù)且為素數(shù)。在圖2中,w = 0,s = 4。若../';= 0,則至少存在一條值為rj的路 徑,使得r j = i。將名,? = M', W+1, W+2,..., 5分別帶入等式(1)中,得到每Z. = W, M'十1, M'十2,...,互。 將玲,/= W, W+.1, W.+返回給用戶,用戶解醬之后,得到Fi, i =w,W+1,W+2,. . . , S。編每距 離就是最小的i,使得Fi=l。
[0034] 本實施例中,所述的并行運算模塊,通過利用密文的多孔結(jié)構(gòu)(multiple slots), 同時運算得到多個編輯距離,并且利用多核CPU,將最短路徑集中的路徑分解到多個CPU進 行運算。
[0035] 并行運算模塊利用了同態(tài)加密產(chǎn)生的密文具有多孔結(jié)構(gòu)的特點,可W把多組對應 長度相等的基因序列,加密到一個密文中。例如'AGC','GGC'和'CGA',可W把'A','G'和'C' 加密到一個密文里面。進行編輯距離運算的時候,密文里面的對應孔中的數(shù),都與其它密文 對應位置的孔中的數(shù)做運算,一個密文里面的不同孔中的數(shù)互不影響。運樣就可W同時計 算多對的基因序列對的編輯距離。而利用多核屯、CPU,可W將最短路徑集里面的路徑,分別 用不同的核進行運算,按照編輯距離計算模塊的算法,得到一個編輯距離。用戶比較不同核 屯、得到的最短距離,選取最小的那個作為整個基因序列對的編輯距離。
[0036] 具體實施參數(shù)和實施效果:
[0037] 上述實施例中關(guān)鍵參數(shù)的設(shè)置為:實驗所用數(shù)據(jù)來源于隨機生成的基因序列。選 取了不同長度的基因序列對,例如9*10,8*8,11*8等等。鑒于設(shè)備限制,上述實施例只選取 了一臺配置32核的服務(wù)器,使用了其中的30核。當基因?qū)π蛄虚L度為8*11時,密鑰產(chǎn)生時間 為34.7419s,數(shù)據(jù)加密時間為9.04633s,編輯距離計算時間為235.129s,由于運用了多孔結(jié) 構(gòu)(multiple slots),可W同時計算1785組基因序列的編輯距離,平均到每一對的基因序 列的編輯距離運算時間為0.1317 S。將本發(fā)明和最新的方法比較,如C h e 0 η J Η的論文 "Homomo;rphic Computation of Edit Distance"計算的編輯距離只是一個估計值,而且論 文里只提供了最大長度為8*8的基因序列的編輯距離計算產(chǎn)生的時間花費W及加密電路深 度。對于8*8的基因序列,同樣利用了多孔結(jié)構(gòu),并且同樣不利用多核運算,比較了程序運行 的時間和加密電路的深度。本發(fā)明的時間是0.2998s,深度為15。而上述論文所提方法的時 間為25.4366s,深度為19。由此可見,在運算時間和深度上均有很大的提升。
[0038] 本發(fā)明在計算編輯距離的同時還保證了原始隱私數(shù)據(jù)的安全性,并行運算能更進 一步提升了方法性能。本發(fā)明具備良好的實用性和擴展性。
[0039] W上對本發(fā)明的具體實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述 特定實施方式,本領(lǐng)域技術(shù)人員可W在權(quán)利要求的范圍內(nèi)做出各種變形或修改,運并不影 響本發(fā)明的實質(zhì)內(nèi)容。
【主權(quán)項】
1. 一種基于同態(tài)加密隱私數(shù)據(jù)保護的編輯距離計算系統(tǒng),其特征在于,包括:加密數(shù)據(jù) 比較模塊、最短路徑集計算模塊和編輯距離計算模塊,其中: 所述加密數(shù)據(jù)比較模塊,對加密后的密文利用同態(tài)加密的性質(zhì)構(gòu)造函數(shù),輸入兩個需 要比較的密文的差,輸出一個加密的標志位; 所述最短路徑集計算模塊,首先計算所有可能的路徑集,然后對每條路徑進行校驗,排 除掉不可能成為最后結(jié)果的路徑,得到最短路徑集; 所述編輯距離計算模塊,基于前面兩個模塊的結(jié)果,計算出每一個最短路徑集中的加 密的路徑值,再利用編輯距離只能在有限范圍內(nèi)取值這個性質(zhì),判斷出其中的最短加密路 徑值,作為結(jié)果。2. 根據(jù)權(quán)利要求1所述的基于同態(tài)加密隱私數(shù)據(jù)保護的編輯距離計算系統(tǒng),其特征是, 所述加密數(shù)據(jù)比較模塊,利用全同態(tài)加密算法進行加密,得到的數(shù)據(jù)即同態(tài)加密隱私數(shù)據(jù)。3. 根據(jù)權(quán)利要求1所述的基于同態(tài)加密隱私數(shù)據(jù)保護的編輯距離計算系統(tǒng),其特征是, 所述的加密數(shù)據(jù)比較模塊,構(gòu)造一個函數(shù),該函數(shù)完成:在加密狀態(tài)下,判斷兩個十進制整 數(shù)是否相等;該函數(shù)的輸入是加密狀態(tài)下的兩個整數(shù)之差,函數(shù)輸出的是加密狀態(tài)的1或加 密狀態(tài)的0。4. 根據(jù)權(quán)利要求1所述的基于同態(tài)加密隱私數(shù)據(jù)保護的編輯距離計算系統(tǒng),其特征是, 所述的最短路徑集計算模塊,對所有路徑集運用排除法,對于一條路徑,如果還能找到另一 條值不大于它的路徑,就把它排除,經(jīng)過排除法后得到是最短路徑集。5. 根據(jù)權(quán)利要求1-4任一項所述的基于同態(tài)加密隱私數(shù)據(jù)保護的編輯距離計算系統(tǒng), 其特征是,所述系統(tǒng)進一步包括并行運算模塊,所述的并行運算模塊,通過利用密文的多孔 結(jié)構(gòu),同時運算得到多個編輯距離,并且利用多核CPU,將最短路徑集中的路徑分解到多個 CHJ進行運算。6. 根據(jù)權(quán)利要求1-5任一項所述的基于同態(tài)加密隱私數(shù)據(jù)保護的編輯距離計算系統(tǒng), 其特征是,所有的運算均處于加密的狀態(tài)下并且在云端運行,第三方負責提供公鑰給機構(gòu) 和密鑰給用戶,機構(gòu)負責提供加密的數(shù)據(jù)給云端來運算,密文結(jié)果由云端返回給用戶,用戶 解密后得到最終結(jié)果。
【專利摘要】本發(fā)明提供了一種基于同態(tài)加密隱私數(shù)據(jù)保護的編輯距離計算系統(tǒng),其中:加密數(shù)據(jù)比較模塊對加密后的密文,利用同態(tài)加密的性質(zhì)構(gòu)造函數(shù),輸入兩個需要比較的密文的差,輸出一個加密的標志位;最短路徑集計算模塊,首先計算所有可能的路徑集,然后對每條路徑進行校驗,排除掉不可能成為最后結(jié)果的路徑,得到最短路徑集;編輯距離計算模塊基于前面兩個模塊的結(jié)果,計算出每一個最短路徑集中的加密的路徑值,再利用編輯距離只能在有限范圍內(nèi)取值這個性質(zhì),判斷出其中的最短加密路徑值,作為結(jié)果。本發(fā)明在計算編輯距離的同時還保證了原始隱私數(shù)據(jù)的安全性,并行運算能更進一步提升了方法性能。本發(fā)明具備良好的實用性和擴展性。
【IPC分類】G06F21/62, G06F21/60
【公開號】CN105488422
【申請?zhí)枴緾N201510807824
【發(fā)明人】熊紅凱, 張宇辰
【申請人】上海交通大學
【公開日】2016年4月13日
【申請日】2015年11月19日