TW202101432A - 實現隱私保護的數據同態加解密方法及裝置 - Google Patents

實現隱私保護的數據同態加解密方法及裝置 Download PDF

Info

Publication number
TW202101432A
TW202101432A TW109103360A TW109103360A TW202101432A TW 202101432 A TW202101432 A TW 202101432A TW 109103360 A TW109103360 A TW 109103360A TW 109103360 A TW109103360 A TW 109103360A TW 202101432 A TW202101432 A TW 202101432A
Authority
TW
Taiwan
Prior art keywords
homomorphic
data
random number
target user
ciphertext
Prior art date
Application number
TW109103360A
Other languages
English (en)
Other versions
TWI734368B (zh
Inventor
韓帥
黃章杰
馬環宇
雷浩
Original Assignee
開曼群島商創新先進技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 開曼群島商創新先進技術有限公司 filed Critical 開曼群島商創新先進技術有限公司
Publication of TW202101432A publication Critical patent/TW202101432A/zh
Application granted granted Critical
Publication of TWI734368B publication Critical patent/TWI734368B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本說明書一個或多個實施例提供一種實現隱私保護的數據同態加解密方法及裝置,該加密方法可以包括:獲取目標用戶對應的公鑰pk={N, h},其中h為隨機數空間
Figure 109103360-A0101-11-0001-3
內大小為k的預設循環群的生成元,k的長度為i位元、N的長度為n位元,且i<<n;選取隨機數r,使得hr 屬於該預設循環群;通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c=

Description

實現隱私保護的數據同態加解密方法及裝置
本說明書一個或多個實施例涉及加解密技術領域,尤其涉及一種實現隱私保護的數據同態加解密方法及裝置。
在很多場景下,用戶都存在對數據內容進行隱私保護的需求。例如,區塊鏈技術(也被稱之為,分布式帳本技術)是一種去中性化的分布式資料庫技術,具有去中心化、公開透明、不可竄改、可信任等多種特點,適用於諸多對數據可靠性具有高需求的應用場景中,但是由於全量交易數據都可以公開查詢,可能暴露區塊鏈交易的交易額等數據。再例如,在多方計算的場景下,譬如用戶A持有待處理數據、用戶B持有數據處理模型,在通過該數據處理模型對待處理數據實施處理時,如果用戶A將待處理數據發送至用戶B,會導致待處理數據的取值被暴露,如果用戶B將數據處理模型提供至用戶A進行使用,會導致數據處理模型的模型參數被暴露。
有鑑於此,本說明書一個或多個實施例提供一種實現隱私保護的數據同態加解密方法及裝置。 為實現上述目的,本說明書一個或多個實施例提供技術方案如下: 根據本說明書一個或多個實施例的第一方面,提出了一種實現隱私保護的數據同態加密方法,包括: 獲取目標用戶對應的公鑰pk={N, h},其中h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,k的長度為i位元、N的長度為n位元,且i<<n; 選取隨機數r,使得hr 屬於該預設循環群; 通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c=
Figure 02_image003
=
Figure 02_image005
; 將該同態密文c提供至該目標用戶,該同態密文c可由該目標用戶通過私鑰sk解密得到數據m,該私鑰sk的取值為α=a·k,a為預設非零數值。 根據本說明書一個或多個實施例的第二方面,提出了一種實現隱私保護的數據同態解密方法,包括: 獲取同態密文c=
Figure 02_image003
=
Figure 02_image005
,該同態密文c由目標用戶對應的公鑰pk={N, h}和隨機數r對數據m進行處理後得到;其中,h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,hr 屬於該預設循環群,k的長度為i位元、N的長度為n位元,且i<<n; 根據該目標用戶的私鑰sk對該同態密文c進行解密,得到加密前的數據m=
Figure 02_image007
,其中該私鑰sk的取值為α=a·k,a為預設非零數值。 根據本說明書一個或多個實施例的第三方面,提出了一種實現隱私保護的數據同態加密裝置,包括: 公鑰獲取單元,獲取目標用戶對應的公鑰pk={N, h},其中h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,k的長度為i位元、N的長度為n位元,且i<<n; 隨機數選取單元,選取隨機數r,使得hr 屬於該預設循環群; 數據處理單元,通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c=
Figure 02_image003
=
Figure 02_image005
; 密文提供單元,將該同態密文c提供至該目標用戶,該同態密文c可由該目標用戶通過私鑰sk解密得到數據m,該私鑰sk的取值為α=a·k,a為預設非零數值。 根據本說明書一個或多個實施例的第四方面,提出了一種實現隱私保護的數據同態解密裝置,包括: 密文獲取單元,獲取同態密文c=
Figure 02_image003
=
Figure 02_image005
,該同態密文c由目標用戶對應的公鑰pk={N, h}和隨機數r對數據m進行處理後得到;其中,h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,hr 屬於該預設循環群,k的長度為i位元、N的長度為n位元,且i<<n; 密文解密單元,根據該目標用戶的私鑰sk對該同態密文c進行解密,得到加密前的數據m=
Figure 02_image007
,其中該私鑰sk的取值為α=a·k,a為預設非零數值; 數據輸出單元,將解密得到的數據m輸出至該目標用戶。 根據本說明書一個或多個實施例的第五方面,提出了一種電子設備,包括: 處理器; 用於儲存處理器可執行指令的記憶體; 其中,該處理器通過運行該可執行指令以實現如第一方面所述的方法。 根據本說明書一個或多個實施例的第六方面,提出了一種電腦可讀取儲存媒介,其上儲存有電腦指令,該指令被處理器執行時實現如第一方面所述方法的步驟。 根據本說明書一個或多個實施例的第七方面,提出了一種電子設備,包括: 處理器; 用於儲存處理器可執行指令的記憶體; 其中,該處理器通過運行該可執行指令以實現如第二方面所述的方法。 根據本說明書一個或多個實施例的第八方面,提出了一種電腦可讀取儲存媒介,其上儲存有電腦指令,該指令被處理器執行時實現如第二方面所述方法的步驟。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書一個或多個實施例相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書一個或多個實施例的一些方面相一致的裝置和方法的例子。 需要說明的是:在其他實施例中並不一定按照本說明書示出和描述的順序來執行相應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本說明書所描述的更多或更少。此外,本說明書中所描述的單個步驟,在其他實施例中可能被分解為多個步驟進行描述;而本說明書中所描述的多個步驟,在其他實施例中也可能被合併為單個步驟進行描述。 同態加密(Homomorphic Encryption)技術可以將原始數據加密為相應的同態密文,並且同態密文無需解密為原始數據即可直接參與計算。例如,所參與的計算為加減運算時,表明相應的同態加密技術滿足加法同態;所參與的計算為乘除運算時,表明相應的同態加密技術滿足乘法同態;所參與的計算既包括加減運算又包括乘除運算時,表明相應的同態加密技術滿足全同態。本說明書所實現的數據同態加解密方案可以實現加法同態。 在實現同態加解密之前,用戶需要獲得唯一對應於自身的公私鑰對;換言之,每一用戶分別維護一組公私鑰對,且不同用戶對應於不同的公私鑰對。譬如,當某一用戶持有公鑰pk_0、私鑰sk_0時,可以通過該公鑰pk_0對某一明文數據m_0進行加密、得到相應的同態密文c_0,那麼只有私鑰sk_0能夠將該同態密文c_0解密為明文數據m_0,而諸如另一用戶持有的私鑰sk_1或者其他數據均無法對同態密文c_0進行正常解密。 同時,假定上述用戶通過公鑰pk_0對明文數據m_1進行加密、得到相應的同態密文c_1,對明文數據m_2進行加密、得到相應的同態密文c_2,那麼同態密文c­_0、c_1和c_2之間可以滿足加法同態。例如,可以對同態密文c­_0、c_1和c_2實施下述計算:c_3=c­_0+c_1-c_2,那麼用戶可以通過私鑰sk_0對c_3進行解密、得到相應的明文數據m_3,並且基於前述的加法同態特性可以確定m_3=m_0+m_1-m_2。當然,同態密文的運算規則與明文數據的運算規則並不一定相同;比如,當明文數據的加法可以對應於同態密文的乘法、明文數據的減法可以對應於同態密文的除法時,可以對同態密文c­_0、c_1和c_2實施下述計算:c_3=c­_0×c_1÷c_2,則相應的明文數據m_3=m_0+m_1-m_2。 下面結合實施例,介紹本說明書的實現隱私保護的數據同態加解密方案: 圖1是一示例性實施例提供的一種實現隱私保護的數據同態加密方法的流程圖。如圖1所示,該方法應用於計算設備上,可以包括以下步驟: 步驟102,獲取目標用戶對應的公鑰pk={N, h},其中h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,k的長度為i位元、N的長度為n位元,且i<<n。 上述的計算設備可以屬於目標用戶,即目標用戶可以通過自身對應的公鑰pk對數據m進行同態加密,以針對該數據m的取值進行隱私保護,或者進一步實施其他操作。或者,上述計算設備可以屬於目標用戶之外的其他用戶,而目標用戶的公鑰pk可以公開給該用戶,使得該用戶可以基於該公鑰pk對數據m進行同態加密,甚至可以進一步對加密得到的同態密文c實施符合加法同態的其他運算,而只有目標用戶可以通過私鑰sk對同態密文c或其運算結果進行解密。 N為預先確定的一數值。例如,N的長度為n可以為2048bit(位元)或者其他長度,本說明書並不對此進行限制。那麼,基於該數值N,可以確定出上述的隨機數空間
Figure 02_image001
。在該隨機數空間
Figure 02_image001
中,可以確定出一預設循環群,該預設循環群具有一生成元為上述的h,使得該生成元h可以生成該預設循環群中的所有元素,例如:該預設循環群中的元素可以表徵為h0 、h1 、h2 ……;其中,當上述預設循環群的大小為k時,該預設循環群中的元素可以表徵為h0 、……hk-1 ,並且生成元h的其他次冪均可以循環表徵為h0 、……hk-1 ,比如hk =h0 、hk+1 =h1 、……、h2k-1 =hk-1 等。 步驟104,選取隨機數r,使得hr 屬於該預設循環群。 雖然隨機數r具有隨機性,但是需要確保hr 屬於前述的預設循環群,因而並不能夠完全隨意地選取隨機數r。實際上,當預設循環群的大小為k時,應當確保r∈[0, k-1]。 同時,當k的長度為i位元時,可以確保隨機數r的長度同樣為i位元。而與N的長度n相比,由於i<<n,使得隨機數r是相對遠小於N的數值,譬如r與N的取值之間相差預設數量級。例如,當n=2048時,可以選取i=320,此時隨機數r的取值遠小於N的取值。 步驟106,通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c=
Figure 02_image003
=
Figure 02_image005
。 在同態密文c的上述計算公式中,包含兩部分內容:
Figure 02_image015
用於承載明文數據m、
Figure 02_image017
Figure 02_image019
用於增加密文隨機性。對於
Figure 02_image019
而言,如前所述:通過從隨機數空間
Figure 02_image001
中選取一預設循環群,並且該預設循環群的大小k具有相對較小的長度i,使得隨機數r同樣具有相對較小的長度,因而相比於選取長度為n或同等數量級的隨機數而言,較小長度的隨機數r可以確保
Figure 02_image019
的計算量相對更小,從而在針對相同的數據m進行加密時,可以顯著地提升加密效率。尤其是,在針對大量數據實施加密操作的場景下,比如區塊鏈網路內可以顯著提升機密交易的處理效率,再比如在多方計算場景下可以顯著加快計算速度等。 通過限制上述長度i的最小取值,可以避免選取過小的隨機數r,防止造成同態密文c的隨機性不足而影響其安全性。例如,當n=2048時,通過設定i≥224,即隨機數r的長度不小於224bit,可以確保同態密文c具有足夠的隨機性和安全性,譬如可以至少提供112-bit或更高的安全性(在2112 個步驟內無法被攻破)。 在針對上述公式中的
Figure 02_image019
進行計算時,雖然可以每次按照公式直接進行模冪計算,但是可能由於較大的計算量而需要較長的計算時長。實際上,通過將公式由
Figure 02_image017
轉換為
Figure 02_image019
之後,可以發現:
Figure 02_image019
為i位元指數的固定底模冪,即
Figure 02_image019
的底固定為
Figure 02_image023
,因而可以根據公鑰pk中的h預先計算出
Figure 02_image023
的取值,而無需臨時計算。 進一步地,由於隨機數r的長度固定為i位元,因而所有隨機數r均可以表徵為i位的二進制字符串,該i位的二進制字符串可以被基於j位元的單位長度進行劃分為i/j個數值段r_0、r_1、……、r_[(i/j)-1],可以統一表示為r_u,其中u∈[0, (i/j)-1]。假定這些數值段按照從低位至高位的順序可以依次排列為r_0、r_1、……、r_[(i/j)-1],那麼所有隨機數r均可以表徵為
Figure 02_image025
,並且任意數值段r_u的取值必然屬於[0, 2j -1]。因此,上述的
Figure 02_image019
可以拆解為
Figure 02_image028
,可以進一步轉換為
Figure 02_image030
。例如,可以選取j=8或其他數值。 那麼,可以預先計算出
Figure 02_image032
Figure 02_image034
、……、
Figure 02_image036
的取值,然後通過對實際選取的隨機數r進行拆解後,結合預先計算的取值做進一步計算。或者,由於隨機數r拆解得到的上述數值段r_0、r_1、……、r_[(i/j)-1]中,每個數值段的取值必然為[0, 2j -1],因而可以預先計算出
Figure 02_image038
~
Figure 02_image040
Figure 02_image042
~
Figure 02_image044
、……、
Figure 02_image046
~
Figure 02_image048
的取值,那麼對於實際選取的隨機數r進行拆解後,譬如當拆解得到i/j個數值段ru 且u∈[0, (i/j)-1]時,可以根據每個數值段的取值選取對應的預先計算出的取值,然後在完全不涉及到模冪運算的情況下,將這些取值相乘來計算得到
Figure 02_image019
或進一步處理為
Figure 02_image051
,從而極大地提升計算效率。 例如,對於實際選取的隨機數r,如果該隨機數r拆解後得到的數值段分別為r0 、r1 ……r(i/j)-1 ,即r=r0 +r1 ·2j +……+r(i/j)-1 ·2j[(i/j)-1] ,那麼根據上述預先計算的
Figure 02_image038
~
Figure 02_image040
Figure 02_image042
~
Figure 02_image044
、……、
Figure 02_image055
~
Figure 02_image048
構成的取值列表,可以直接從該取值列表中確定出
Figure 02_image058
Figure 02_image060
、……、
Figure 02_image062
的取值(即
Figure 02_image064
ru 次冪的取值),然後將這些取值相乘即可得到
Figure 02_image019
或進一步處理為
Figure 02_image051
。 最後,結合計算得到的(1+N)m 的取值和上述的
Figure 02_image051
的取值,可以進一步生成同態密文c。 步驟108,將該同態密文c提供至該目標用戶,該同態密文c可由該目標用戶通過私鑰sk解密得到數據m,該私鑰sk的取值為α=a·k,a為預設非零數值。 相應地,圖2是一示例性實施例提供的一種實現隱私保護的數據同態解密方法的流程圖。如圖2所示,該方法應用於計算設備上,可以包括以下步驟: 步驟202,獲取同態密文c=
Figure 02_image003
=
Figure 02_image005
,該同態密文c由目標用戶對應的公鑰pk={N, h}和隨機數r對數據m進行處理後得到。 在上述公式中,h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,hr 屬於該預設循環群,k的長度為i位元、N的長度為n位元,且i<<n。關於公鑰pk的生成過程、隨機數r的選取和針對數據m的加密過程,可以參考上述圖1所示的實施例,此處不再贅述。 步驟204,根據該目標用戶的私鑰sk對該同態密文c進行解密,得到加密前的數據m=
Figure 02_image007
,其中該私鑰sk的取值為α=a·k,a為預設非零數值。 當同態密文c的取值滿足c=
Figure 02_image005
時,基於私鑰sk的解密方式可以為:首先,根據密鑰sk的取值α推算出前述預設循環群的大小k;然後,在上述同態密文c的計算公式兩側同時進行k次冪計算,得到ck =
Figure 02_image074
=
Figure 02_image076
。而如前所述,h為預設循環群的生成元且該預設循環群的大小為k,使得hk =h0 =1,因而上述公式可以進一步轉換為ck =
Figure 02_image078
=
Figure 02_image080
,所以可以計算得到m=
Figure 02_image007
。 可見,由私鑰sk的取值α與預設循環群的大小k相關,使得目標用戶根據私鑰sk對同態密文c的公式兩側同時取k次冪時,可以消去隨機數部分
Figure 02_image083
,僅剩下c與m之間的轉換過程,從而能夠順利解密得到數據m。 步驟206,將解密得到的數據m輸出至該目標用戶。 目標用戶可以在所持的計算設備上執行上述同態解密操作,並向目標用戶輸出解密得到的數據m。或者,目標用戶可以將同態密文c傳輸至非本地的某一計算設備上,譬如雲端設備等,並且該計算設備受到目標用戶信任、能夠儲存或臨時獲得目標用戶的私鑰sk,從而針對同態密文c進行解密,而後將解密得到的數據m輸出並返回至該目標用戶。 如前所述,通過選取滿足一定條件的公私鑰對,可以按照圖1所述的實施例將數據m加密為相應的同態密文c、按照圖2所述的實施例將同態密文c解密為相應的數據m。而下面將結合實施例,舉例說明如何選取滿足上述條件的公私鑰對。 首先確定數字N。N的取值可以為兩個大質數P、Q的乘積,使得P、Q的取值難以被猜測出。P、Q的長度可以為1024bit(位元),則N=P·Q的長度為2048bit,即上述的參數n=2048;當然,其他實施例中也可以採用其他長度,本說明書並不對此進行限制。當N的長度足夠大時,P、Q的取值被猜測出的概率極低,因而基於P、Q的取值生成公私鑰對時,可以確保公私鑰的取值難以被猜測出,具有高安全性。其中,可以優先確定出N的長度n,然後選取長度為(n/2)的質數P、Q,並且確保滿足P≡Q≡3mod4,gcd(P-1, Q-1)=2(即P-1與Q-1的最大公約數為2),然後計算得到N=P·Q。 根據確定出的數字N,可以得到消息空間ZN ,該消息空間ZN 所含元素為{0,……,N-1}。根據消息空間ZN ,可以確定出隨機數空間
Figure 02_image001
,該隨機數空間
Figure 02_image001
所含元素為消息空間ZN 中所有與N互質的元素。由於N=P·Q,可以確定該隨機數空間
Figure 02_image001
的大小(即所含元素的數量)為(P-1)(Q-1)。 隨機數空間
Figure 02_image001
存在下述子群:二次剩餘群
Figure 02_image084
和群
Figure 02_image086
。其中,二次剩餘群
Figure 02_image084
所含元素為隨機數空間
Figure 02_image001
中元素的2次方,即
Figure 02_image084
={y2 mod N|y∈
Figure 02_image001
},並且該二次剩餘群
Figure 02_image084
的大小為(P-1)(Q-1)/4。以及,群
Figure 02_image086
為由元素(-1 mod N)生成的二階循環群,該群
Figure 02_image086
所含元素為{-1 mod N, 1 mod N},即群
Figure 02_image086
的大小為2。 進一步的,二次剩餘群
Figure 02_image084
存在下述子群:群
Figure 02_image089
與群
Figure 02_image091
,並且二次剩餘群
Figure 02_image084
為群
Figure 02_image089
與群
Figure 02_image091
的內直積(
Figure 02_image089
Figure 02_image095
Figure 02_image091
=
Figure 02_image084
),即|
Figure 02_image089
||
Figure 02_image091
|=|
Figure 02_image084
|;其中,|
Figure 02_image089
|表示群
Figure 02_image089
的大小、|
Figure 02_image091
|表示群
Figure 02_image091
的大小、|
Figure 02_image084
|表示二次剩餘群
Figure 02_image084
的大小。其中,由於已知|
Figure 02_image084
|=(P-1)(Q-1)/4,因而可以依此設定|
Figure 02_image089
|和|
Figure 02_image091
|的取值,以使得能夠滿足上述的|
Figure 02_image089
||
Figure 02_image091
|=  |
Figure 02_image084
|。其中,群
Figure 02_image089
表示群
Figure 02_image084
中所有元素的α次方構成的集合,而群
Figure 02_image091
表示群
Figure 02_image084
中所有元素的β次方構成的集合,即
Figure 02_image089
={y mod N|y∈
Figure 02_image001
}、
Figure 02_image091
={y mod N|y∈
Figure 02_image001
}。 因此,可由群
Figure 02_image091
與群
Figure 02_image086
的內直積組成如前所述的預設循環群,比如該預設循環群可以表達為
Figure 02_image091
Figure 02_image095
Figure 02_image086
。其中,通過設定|
Figure 02_image091
|=α,結合群
Figure 02_image086
的大小為2,可以確定該預設循環群的大小為k=2α。因此,當滿足前述的密鑰sk=α=a·k時,可以確定a=α/k=1/2。 由於將α的取值作為密鑰sk,因而必須確保α的取值無法或難以被猜測,以保證其安全性。而如前所述,公鑰所含的數值N為質數P、Q的乘積,該質數P、Q的取值難以被猜測,因而可以根據質數P、Q的取值,計算α。例如,可以借助於中間參數p、q,該中間參數p、q為質數,並且p|P-1、q|Q-1(即p可被P-1整除、q可被Q-1整除),那麼可以設定α=pq。同時,可以設定β=(P-1)(Q-1)/(4pq),並且滿足gcd(α,β)=1,可以確定α·β=(P-1)(Q-1)/4=|
Figure 02_image084
|。結合前述的|
Figure 02_image089
||
Figure 02_image091
|=|
Figure 02_image084
|、|
Figure 02_image091
|=α,可知|
Figure 02_image089
|=β。 如前所述,對於選取的預設循環群為
Figure 02_image091
Figure 02_image095
Figure 02_image086
,該預設循環群的生成元h可以表徵為h=
Figure 02_image097
,y∈
Figure 02_image001
。由於預設循環群為
Figure 02_image091
Figure 02_image095
Figure 02_image086
的大小為2α,因而該預設循環群為
Figure 02_image091
Figure 02_image095
Figure 02_image086
所含元素為{h0 ,h1 ,h2 ,…,h2α-1 }。而在後續的加密過程中,由於需要選取隨機數r並使得hr 屬於預設循環群為
Figure 02_image091
Figure 02_image095
Figure 02_image086
,因而該隨機數r的取值屬於[0, 2α-1],即隨機數r的長度與α的長度相關。 由於在根據公鑰pk對數據m進行加密時,採用的計算公式為:c=
Figure 02_image005
,隨機數r被作為模冪計算的指數,因而需要控制該隨機數r的長度,以降低模冪計算的複雜度。例如,當N的長度n=2048bit時,可以設定隨機數r的長度為i=320bit,那麼α的長度同樣為320bit;又由於α=pq,因而前述的中間參數p、q的長度可以分別為160bit,以確保計算得到的α長度為320bit。 根據如前所述的內容,本說明書的技術方案在確定公私鑰時,實際上涉及到隨機數空間
Figure 02_image001
以及作為其子群的二次剩餘群
Figure 02_image084
、群
Figure 02_image086
,以及作為二次剩餘群
Figure 02_image084
的子群的群
Figure 02_image089
與群
Figure 02_image091
。而在這些群組中,本說明書中選擇由群
Figure 02_image091
與群
Figure 02_image086
組合形成預設循環群
Figure 02_image091
Figure 02_image095
Figure 02_image086
,該預設循環群
Figure 02_image091
Figure 02_image095
Figure 02_image086
的大小(2α)與隨機數r的長度相關;換言之,通過選取恰當大小的預設循環群
Figure 02_image091
Figure 02_image095
Figure 02_image086
,使得加密計算過程中能夠選取恰當長度的隨機數r,從而能夠在加密效率與安全性之間找到恰當的平衡點(隨機數r的長度越大時,加密效率越低、安全性越高;反之,加密效率越高、安全性越低)。 實際上,隨機數空間
Figure 02_image001
實際上還存在其他子群。例如,圖3是一示例性實施例提供的一種隨機數空間
Figure 02_image001
的示意圖。如圖3所示,除了上述各個子群之外,隨機數空間
Figure 02_image001
還可以包括群
Figure 02_image102
、群
Figure 02_image104
等其他子群,但基於這些子群形成預設循環群時,可能導致加密效率降低。其中,群
Figure 02_image102
表示隨機數空間
Figure 02_image001
中所有Jacobi(雅克比)符號為+1的元素構成的集合,即
Figure 02_image102
={y | y∈
Figure 02_image001
, (
Figure 02_image107
)=+1}。而群
Figure 02_image104
表示隨機數空間
Figure 02_image001
中由某個Jacobi(雅克比)符號為-1且階數為2的元素w生成的二階循環群,
Figure 02_image104
={w mod N, 1 mod N}。 以群
Figure 02_image102
為例。由於群
Figure 02_image102
的大小為(P-1)(Q-1)/2,即|
Figure 02_image102
|=(P-1)(Q-1)/2。如果將群
Figure 02_image102
作為預設循環群,或者基於群
Figure 02_image102
生成預設循環群,則相應確定隨機數r時,該隨機數r的長度與該群
Figure 02_image102
的大小(P-1)(Q-1)/2相關,譬如當P、Q的長度分別為1024bit時,隨機數r的長度為2048bit,遠大於前述基於
Figure 02_image091
Figure 02_image095
Figure 02_image086
選定的長度為320bit的隨機數r,將極大地提升加密計算的複雜度、降低加密效率。類似地,如前所述,由於群
Figure 02_image084
的大小為(P-1)(Q-1)/4,如果將群
Figure 02_image084
作為預設循環群,或者基於群
Figure 02_image084
生成預設循環群,則相應確定隨機數r的長度與該群
Figure 02_image084
的大小(P-1)(Q-1)/4相關,譬如當P、Q的長度分別為1024bit時,隨機數r的長度為2048bit。因此,本說明書中採用對群
Figure 02_image084
進一步拆分的方式,形成大小為α的群
Figure 02_image091
,以據此構成前述的預設循環群
Figure 02_image091
Figure 02_image095
Figure 02_image086
。 本說明書的同態加解密方案,可以適用於多種應用場景,下面進行舉例說明。 上述同態加解密方案可以應用於區塊鏈交易中,以實現區塊鏈網路中的機密交易。例如,根據交易對象Q_0~Q_t分別對應的轉帳額m0 ~mt ,目標用戶可以創建該目標用戶與交易對象Q_0~Q_t之間的區塊鏈交易,該區塊鏈交易中包含轉帳額m0 ~mt 分別對應的同態密文c0 ~ct ,t≥0;其中,該目標用戶、交易對象Q_0~Q_t的帳戶餘額在區塊鏈帳本上被分別記錄為相應的同態密文d、d_0~d_t。然後,目標用戶可以向區塊鏈網路提交該區塊鏈交易;其中,當該區塊鏈交易完成後,區塊鏈帳本上記錄的同態密文d減小(c0 +…+ct )且d_0增大c0 、…、d_t增大ct 。 圖4是一示例性實施例提供的一種區塊鏈網路中實現機密交易的示意圖。如圖4所示,假定目標用戶為用戶Ua、交易對象為用戶Ub、Uc等。用戶Ua存在唯一對應的公私鑰對(pk_0, sk_0),即公鑰為pk_0、私鑰為sk_0;類似地,用戶Ub存在唯一對應的公私鑰對(pk_1, sk_1)、用戶Uc存在唯一對應的公私鑰對(pk_2, sk_2),以此類推。 在區塊鏈帳本上,分別記錄有各個用戶對應帳戶的帳戶餘額,並且是以帳戶餘額對應的同態密文形式進行記錄。例如,用戶Ua的帳戶餘額為m_a,實際以本說明書的同態加密方案對m_a進行加密生成相應的同態密文c_a,且區塊鏈帳本上記錄該同態密文c_a;類似地,區塊鏈帳本上記錄有用戶Ub的帳戶餘額m_b對應的同態密文c_b、用戶Uc的帳戶餘額m_c對應的同態密文c_c等。因此,雖然區塊鏈帳本上的數據可以公開查詢,但是每個用戶實際上僅能夠通過密鑰對自身對應的同態密文進行解密、無法對其他用戶對應的同態密文進行解密,使得每個用戶僅能夠獲知自身的帳戶餘額、無法獲知其他用戶的帳戶餘額。 假定由用戶Ua發起一筆區塊鏈交易,該區塊鏈交易需要由用戶Ua向用戶Ub轉帳的轉帳額1為m_1、向用戶Uc轉帳的轉帳額2為m_2等。那麼,假定用戶Ua從帳戶內選取一筆價值為m的資產,通過該資產完成上述區塊鏈交易,並且可以獲知該資產在完成向用戶Ub、Uc等的轉帳後,剩餘的找零額為m_0。那麼,可以確定該區塊鏈交易的輸入為上述價值為m的資產,輸出為轉帳至用戶Ua的m_0、轉帳至用戶Ub的m_1、轉帳至用戶Uc的m_2等,此時由用戶Ua、Ub、Uc等共同構成了上述的交易對象Q_0~Q_t。 其中,上述價值為m的資產屬於用戶Ua,該資產的價值在區塊鏈帳本上被記錄為相應的同態密文c(pk_0, m),表示該同態密文c由用戶Ua的公鑰pk_0對資產數額m進行同態加密後得到。同時,用戶Ua需要為區塊鏈交易的各個輸出進行同態加密,則加密時採用的公鑰對應於輸出的目標對象;例如,由於需要向用戶Ua輸出找零額m_0,因而需要採用用戶Ua的公鑰pk_0對數額m_0加密生成同態密文c_0(pk_0, m_0),由於需要向用戶Ub輸出轉帳額1即m_1,因而需要採用用戶Ub的公鑰pk_1對數額m_1加密生成同態密文c_1(pk_1, m_1),由於需要向用戶Uc輸出轉帳額2即m_2,因而需要採用用戶Uc的公鑰pk_2對數額m_2加密生成同態密文c_2(pk_2, m_2)。當然,區塊鏈交易中還可以封裝交易所需的其他內容或證明資訊等,此處不再一一列舉。 然後,用戶Ua將上述區塊鏈交易提交至區塊鏈網路後,區塊鏈網路中的各個區塊鏈節點完成對該區塊鏈交易的共識後,可以將該區塊鏈交易上鏈執行。相應地,區塊鏈帳本中記錄的各個用戶的帳戶餘額將隨之發生變化:用戶Ua在上述區塊鏈交易中支出了上述價值m的資產、收入了找零額,因而在區塊鏈帳本上的資產由c_a更新為[c_a-c(pk_0, m)+c_0(pk_0, m_0)](若明文數據的加減法運算對應於同態密文的乘除法運算,則c_a更新為[c_a÷c(pk_0, m)×c_0(pk_0, m_0)]);其中,由於c_a、c(pk_0, m)、c_0(pk_0, m_0)均由用戶Ua的公鑰pk_0加密生成,因而滿足加法同態特性,使得用戶Ua通過相應的私鑰sk_0對[c_a-c(pk_0, m)+c_0(pk_0, m_0)](或上述的[c_a÷c(pk_0, m)×c_0(pk_0, m_0)])進行解密後,得到的數值必然等於(m_a-m+m_0)。類似地,用戶Ub在上述區塊鏈交易中收入了轉帳額1,因而在區塊鏈帳本上的資產由c_b更新為[c_b+c_1(pk_1, m_1)](若明文數據的加減法運算對應於同態密文的乘除法運算,則c_b更新為[c_b×c_1(pk_1, m_1)]),並且可以通過私鑰sk_1解密,得到的數值必然等於(m_b+m_1);用戶Uc在上述區塊鏈交易中收入了轉帳額2,因而在區塊鏈帳本上的資產由c_c更新為[c_c+c_2(pk_2, m_2)](若明文數據的加減法運算對應於同態密文的乘除法運算,則c_c更新為[c_c×c_2(pk_2, m_2)]),並且可以通過私鑰sk_2解密,得到的數值必然等於(m_c+m_2)。 可見,基於本說明書的同態加解密方案,可以保證用戶的帳戶餘額、區塊鏈交易的交易額等處於隱私狀態,並且能夠基於同態特性而保證各個數額之間能夠正確計算與維護,從而實現了區塊鏈網路場景下的機密交易。同時,尤其是當區塊鏈交易涉及到多個交易對象、或者涉及大量區塊鏈交易時,本說明書的同態加解密方案可以在保障安全性的同時,極大地加快每次加解密運算的執行速度,有助於提升區塊鏈網路的交易效率。 上述同態加解密方案可以應用於多方計算場景中,以實現多方計算場景中的安全交互。例如,目標用戶可以將數據m0 ~ms 分別對應的同態密文c0 ~cs 發送至指定用戶,以由該指定用戶對同態密文c0 ~cs 實施符合加法同態的預設運算f();並且,該指定用戶返回的運算結果f(c0 ~cs )可由該私鑰sk解密,且解密後取值為f(m0 ~ms )。 圖5是一示例性實施例提供的一種多方計算場景的交互示意圖。如圖5所示,仍以用戶Ua與用戶Ub為例,用戶Ua對應於公私鑰對(pk_0, sk_0)、用戶Ub對應於公私鑰對(pk_1, sk_1),兩者之間的交互過程可以包括以下步驟: 步驟502,用戶Ua將數據m0 ~ms 加密為同態密文c0 ~cs 。 用戶Ua採用自身對應的公鑰pk_0,基於如圖1所示的實施例,對數據m0 ~ms 進行同態加密處理,生成相應的同態密文c0 ~cs 。此處不再贅述具體的計算公式和加密過程。 步驟504,用戶Ua將同態密文c0 ~cs 發送至用戶Ub。 由於用戶Ua僅將同態密文c0 ~cs 發送至用戶Ub,而無需發送原始的明文數據m0 ~ms ,而用戶Ub並不持有加密使用的公鑰pk_0對應的私鑰sk_0,因而數據m0 ~ms 不會向用戶Ub暴露。 步驟506,用戶Ub利用模型參數d0 ~ds 處理同態密文c0 ~cs 。 步驟508,用戶Ub將密文處理結果c_f返回用戶Ua。 假定用戶Ub通過大數據分析或人工智能等方式,訓練得到一組數據處理模型的模型參數d0 ~ds ,但是用戶Ub並不希望向其他用戶暴露這組模型參數d0 ~ds 。因此,通過利用這組模型參數d0 ~ds 對同態密文c0 ~cs 進行處理後,僅將得到的密文處理結果c_f返回用戶Ua,這樣既可以通過模型參數d0 ~ds 處理同態密文c0 ~cs ,又可以避免暴露模型參數d0 ~ds 的具體取值等資訊。 其中,在利用這組模型參數d0 ~ds 對同態密文c0 ~cs 進行處理時,處理過程應當符合加法同態特性,即每個同態密文可以與對應的參數進行乘除等運算,但是各個同態密文之間應當採用加減運算,而不應出現同態密文之間的乘除運算。例如,數據處理模型的處理方式可以為:c0 ×d0 +c1 ×d1 +…+cs ×ds 。當然,如果明文數據的加減法運算對應於同態密文的乘除法運算,則數據處理模型的處理方式可以為:c0 d0 ×c1 d1 ×…×cs ds 。 步驟510,用戶Ua對密文處理結果c_f解密得到明文處理結果m_f。 基於加法同態特性,使得用戶Ub通過上述模型參數d0 ~ds 對同態密文c0 ~cs 進行處理後,再通過私鑰sk_0對密文處理結果c_f進行解密,得到的明文處理結果m_f相當於通過上述模型參數d0 ~ds 對數據m0 ~ms 進行處理得到的結果。 因此,基於本說明書的同態加解密方案,使得在用戶Ua與用戶Ub之間的多方計算場景下,既可以確保用戶Ua持有的數據m0 ~ms 不向用戶Ub暴露、用戶Ub持有的模型參數d0 ~ds 不向用戶Ua暴露,又可以使得用戶Ua最終能夠得到模型參數d0 ~ds 對數據m0 ~ms 進行處理後的結果m_f。同時,尤其是涉及到對較多數據進行同態加密的情況下,基於本說明書的同態加解密方案,可以顯著加快加解密速度,從而提升多方計算效率。 圖6是一示例性實施例提供的一種設備的示意結構圖。請參考圖6,在硬體層面,該設備包括處理器602、內部匯流排604、網路介面606、內部記憶體608以及非揮發性記憶體610,當然還可能包括其他業務所需要的硬體。處理器602從非揮發性記憶體610中讀取對應的電腦程式到內部記憶體608中然後運行,在邏輯層面上形成實現隱私保護的數據同態加密裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯器件抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯器件。 請參考圖7,在軟體實施方式中,該實現隱私保護的數據同態加密裝置可以包括: 公鑰獲取單元71,獲取目標用戶對應的公鑰pk={N, h},其中h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,k的長度為i位元、N的長度為n位元,且i<<n; 隨機數選取單元72,選取隨機數r,使得hr 屬於該預設循環群; 數據處理單元73,通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c=
Figure 02_image003
=
Figure 02_image005
; 密文提供單元74,將該同態密文c提供至該目標用戶,該同態密文c可由該目標用戶通過私鑰sk解密得到數據m,該私鑰sk的取值為α=a·k,a為預設非零數值。 可選的,隨機數空間
Figure 02_image001
的二次剩餘群
Figure 02_image084
為群
Figure 02_image089
與群
Figure 02_image091
的內直積,且|
Figure 02_image091
|=α;其中,該預設循環群為群
Figure 02_image091
與群
Figure 02_image086
的內直積,群
Figure 02_image086
為隨機數空間
Figure 02_image001
內由元素(-1 mod N)生成的二階循環群,a=1/2。 可選的,當N=P·Q,P、Q是長度為n/2位元的質數,且P≡Q≡3mod4,gcd(P-1, Q-1)=2時,滿足:α=pq,β=(P-1)(Q-1)/(4pq),gcd(α,β)=1,且p|(P-1)、q|(Q-1),p、q是長度為i/2位元的質數。 可選的,h=
Figure 02_image097
,其中y∈隨機數空間
Figure 02_image001
。 可選的,數據處理單元73具體用於: 以j位元為單位長度對隨機數r進行分段,形成i/j個數值段ru ,u∈[0, (i/j)-1]; 查詢預生成的取值列表,該取值列表中包含
Figure 02_image118
Figure 02_image120
次冪的取值,v∈[0, 2j -1]; 根據查詢到的
Figure 02_image122
ru 次冪的取值,合併生成
Figure 02_image051
,以進一步生成同態密文c。 可選的,n=2048、224≤i<<n。 可選的,還包括: 密文發送單元75,將數據m0 ~ms 分別對應的同態密文c0 ~cs 發送至指定用戶,以由該指定用戶對同態密文c0 ~cs 實施符合加法同態的預設運算f(); 其中,該指定用戶返回的運算結果f(c0 ~cs )可由該私鑰sk解密,且解密後取值為f(m0 ~ms )。 可選的,還包括: 交易創建單元76,根據交易對象Q_0~Q_t分別對應的轉帳額m0 ~mt ,創建該目標用戶與交易對象Q_0~Q_t之間的區塊鏈交易,該區塊鏈交易中包含轉帳額m0 ~mt 分別對應的同態密文c0 ~ct ,t≥0;其中,該目標用戶、交易對象Q_0~Q_t的帳戶餘額在區塊鏈帳本上被分別記錄為相應的同態密文d、d_0~d_t; 交易提交單元77,向區塊鏈網路提交該區塊鏈交易;其中,當該區塊鏈交易完成後,區塊鏈帳本上記錄的同態密文d與(c0 +…+ct )運算、d_0與c0 運算、…、d_t與ct 運算,使該目標用戶的帳戶餘額減小(m0 +…+mt )、交易對象Q_0~Q_t的帳戶餘額分別減小c0 ~ct 。 圖8是一示例性實施例提供的一種設備的示意結構圖。請參考圖8,在硬體層面,該設備包括處理器802、內部匯流排804、網路介面806、內部記憶體808以及非揮發性記憶體810,當然還可能包括其他業務所需要的硬體。處理器802從非揮發性記憶體810中讀取對應的電腦程式到內部記憶體808中然後運行,在邏輯層面上形成實現隱私保護的數據同態解密裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯器件抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯器件。 請參考圖9,在軟體實施方式中,該實現隱私保護的數據同態解密裝置可以包括: 密文獲取單元91,獲取同態密文c=
Figure 02_image003
=
Figure 02_image005
,該同態密文c由目標用戶對應的公鑰pk={N, h}和隨機數r對數據m進行處理後得到;其中,h為隨機數空間
Figure 02_image001
內大小為k的預設循環群的生成元,hr 屬於該預設循環群,k的長度為i位元、N的長度為n位元,且i<<n; 密文解密單元92,根據該目標用戶的私鑰sk對該同態密文c進行解密,得到加密前的數據m=
Figure 02_image007
,其中該私鑰sk的取值為α=a·k,a為預設非零數值; 數據輸出單元93,將解密得到的數據m輸出至該目標用戶。 可選的,隨機數空間
Figure 02_image001
的二次剩餘群
Figure 02_image084
為群
Figure 02_image089
與群
Figure 02_image091
的內直積,且|
Figure 02_image091
|=α;其中,該預設循環群為群
Figure 02_image091
與群
Figure 02_image086
的內直積,群
Figure 02_image086
為隨機數空間
Figure 02_image001
內由元素(-1 mod N)生成的二階循環群,a=1/2。 可選的,當N=P·Q,P、Q是長度為n/2位元的質數,且P≡Q≡3mod4,gcd(P-1, Q-1)=2時,滿足:α=pq,β=(P-1)(Q-1)/(4pq),gcd(α,β)=1,且p|(P-1)、q|(Q-1),p、q是長度為i/2位元的質數。 可選的,h=
Figure 02_image097
,其中y∈隨機數空間
Figure 02_image001
。 可選的,n=2048、224≤i<<n。 可選的,還包括: 密文發送單元94,將數據m0 ~ms 分別對應的同態密文c0 ~cs 發送至指定用戶,以由該指定用戶對同態密文c0 ~cs 實施符合加法同態的預設運算f(); 該密文解密單元92具體用於接收並解密該指定用戶返回的運算結果f(c0 ~cs ),且解密後取值為f(m0 ~ms )。 上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。 在一個典型的配置中,電腦包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和內部記憶體。 內部記憶體可能包括電腦可讀取媒介中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性內部記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。內部記憶體是電腦可讀取媒介的示例。 電腦可讀取媒介包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀取指令、資料結構、程式的模組或其他數據。電腦的儲存媒介的例子包括,但不限於相變內部記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體 (EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶、磁碟儲存、量子記憶體、基於石墨烯的儲存媒介或其他磁性儲存設備或任何其他非傳輸媒介,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀取媒介不包括暫存電腦可讀取媒體 (transitory media),如調變的數據信號和載波。 還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。 上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。 在本說明書一個或多個實施例使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書一個或多個實施例。在本說明書一個或多個實施例和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。 應當理解,儘管在本說明書一個或多個實施例可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書一個或多個實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於確定”。 以上所述僅為本說明書一個或多個實施例的較佳實施例而已,並不用以限制本說明書一個或多個實施例,凡在本說明書一個或多個實施例的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書一個或多個實施例保護的範圍之內。
102~108:步驟 202~206:步驟 502~510:步驟 602,802:處理器 604,804:內部匯流排 606,806:網路介面 608,808:內部記憶體 610,810:非揮發性記憶體 71:公鑰獲取單元 72:隨機數選取單元 73:數據處理單元 74:密文提供單元 75,94:密文發送單元 76:交易創建單元 77:交易提交單元 91:密文獲取單元 92:密文解密單元 93:數據輸出單元
[圖1]是一示例性實施例提供的一種實現隱私保護的數據同態加密方法的流程圖。 [圖2]是一示例性實施例提供的一種實現隱私保護的數據同態解密方法的流程圖。 [圖3]是一示例性實施例提供的一種隨機數空間
Figure 02_image001
的示意圖。 [圖4]是一示例性實施例提供的一種區塊鏈網路中實現機密交易的示意圖。 [圖5]是一示例性實施例提供的一種多方計算場景的交互示意圖。 [圖6]是一示例性實施例提供的一種設備的結構示意圖。 [圖7]是一示例性實施例提供的一種實現隱私保護的數據同態加密裝置的方塊圖。 [圖8]是一示例性實施例提供的另一種設備的結構示意圖。 [圖9]是一示例性實施例提供的一種實現隱私保護的數據同態解密裝置的方塊圖。

Claims (20)

  1. 一種實現隱私保護的數據同態加密方法,包括: 獲取目標用戶對應的公鑰pk={N, h},其中h為隨機數空間
    Figure 03_image001
    內大小為k的預設循環群的生成元,k的長度為i位元、N的長度為n位元,且i<<n; 選取隨機數r,使得hr 屬於該預設循環群; 通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c=
    Figure 03_image003
    =
    Figure 03_image005
    ; 將該同態密文c提供至該目標用戶,該同態密文c可由該目標用戶通過私鑰sk解密得到數據m,該私鑰sk的取值為α=a·k,a為預設非零數值。
  2. 根據請求項1所述的方法,隨機數空間
    Figure 03_image001
    的二次剩餘群
    Figure 03_image007
    為群
    Figure 03_image009
    與群
    Figure 03_image011
    的內直積,且|
    Figure 03_image011
    |=α;其中,該預設循環群為群
    Figure 03_image011
    與群
    Figure 03_image013
    的內直積,群
    Figure 03_image013
    為隨機數空間
    Figure 03_image001
    內由元素(-1 mod N)生成的二階循環群,a=1/2。
  3. 根據請求項2所述的方法,當N=P·Q,P、Q是長度為n/2位元的質數,且P≡Q≡3mod4,gcd(P-1, Q-1)=2時,滿足:α=pq,β=(P-1)(Q-1)/(4pq),gcd(α,β)=1,且p|(P-1)、q|(Q-1),p、q是長度為i/2位元的質數。
  4. 根據請求項2所述的方法,h=
    Figure 03_image015
    ,其中y∈隨機數空間
    Figure 03_image001
  5. 根據請求項1所述的方法,通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c,包括: 以j位元為單位長度對隨機數r進行分段,形成i/j個數值段ru ,u∈[0, (i/j)-1]; 查詢預生成的取值列表,該取值列表中包含
    Figure 03_image017
    Figure 03_image019
    次冪的取值,v∈[0, 2j -1]; 根據查詢到的
    Figure 03_image021
    ru 次冪的取值,合併生成
    Figure 03_image023
    ,以進一步生成同態密文c。
  6. 根據請求項1所述的方法,n=2048、224≤i<<n。
  7. 根據請求項1所述的方法,還包括: 將數據m0 ~ms 分別對應的同態密文c0 ~cs 發送至指定用戶,以由該指定用戶對同態密文c0 ~cs 實施符合加法同態的預設運算f(); 其中,該指定用戶返回的運算結果f(c0 ~cs )可由該私鑰sk解密,且解密後取值為f(m0 ~ms )。
  8. 根據請求項1所述的方法,還包括: 根據交易對象Q_0~Q_t分別對應的轉帳額m0 ~mt ,創建該目標用戶與交易對象Q_0~Q_t之間的區塊鏈交易,該區塊鏈交易中包含轉帳額m0 ~mt 分別對應的同態密文c0 ~ct ,t≥0;其中,該目標用戶、交易對象Q_0~Q_t的帳戶餘額在區塊鏈帳本上被分別記錄為相應的同態密文d、d_0~d_t; 向區塊鏈網路提交該區塊鏈交易;其中,當該區塊鏈交易完成後,區塊鏈帳本上記錄的同態密文d與(c0 +…+ct )運算、d_0與c0 運算、…、d_t與ct 運算,使該目標用戶的帳戶餘額減小(m0 +…+mt )、交易對象Q_0~Q_t的帳戶餘額分別減小c0 ~ct
  9. 一種實現隱私保護的數據同態解密方法,包括: 獲取同態密文c=
    Figure 03_image003
    =
    Figure 03_image005
    ,該同態密文c由目標用戶對應的公鑰pk={N, h}和隨機數r對數據m進行處理後得到;其中,h為隨機數空間
    Figure 03_image001
    內大小為k的預設循環群的生成元,hr 屬於該預設循環群,k的長度為i位元、N的長度為n位元,且i<<n; 根據該目標用戶的私鑰sk對該同態密文c進行解密,得到加密前的數據m=
    Figure 03_image025
    ,其中該私鑰sk的取值為α=a·k,a為預設非零數值; 將解密得到的數據m輸出至該目標用戶。
  10. 根據請求項9所述的方法,隨機數空間
    Figure 03_image001
    的二次剩餘群
    Figure 03_image007
    為群
    Figure 03_image009
    與群
    Figure 03_image011
    的內直積,且|
    Figure 03_image011
    |=α;其中,該預設循環群為群
    Figure 03_image011
    與群
    Figure 03_image013
    的內直積,群
    Figure 03_image013
    為隨機數空間
    Figure 03_image001
    內由元素(-1 mod N)生成的二階循環群,a=1/2。
  11. 根據請求項10所述的方法,當N=P·Q,P、Q是長度為n/2位元的質數,且P≡Q≡3mod4,gcd(P-1, Q-1)=2時,滿足:α=pq,β=(P-1)(Q-1)/(4pq),gcd(α,β)=1,且p|(P-1)、q|(Q-1),p、q是長度為i/2位元的質數。
  12. 根據請求項10所述的方法,h=
    Figure 03_image015
    ,其中y∈隨機數空間
    Figure 03_image001
  13. 根據請求項9所述的方法,n=2048、224≤i<<n。
  14. 根據請求項9所述的方法,還包括: 將數據m0 ~ms 分別對應的同態密文c0 ~cs 發送至指定用戶,以由該指定用戶對同態密文c0 ~cs 實施符合加法同態的預設運算f(); 接收並解密該指定用戶返回的運算結果f(c0 ~cs ),且解密後取值為f(m0 ~ms )。
  15. 一種實現隱私保護的數據同態加密裝置,包括: 公鑰獲取單元,獲取目標用戶對應的公鑰pk={N, h},其中h為隨機數空間
    Figure 03_image001
    內大小為k的預設循環群的生成元,k的長度為i位元、N的長度為n位元,且i<<n; 隨機數選取單元,選取隨機數r,使得hr 屬於該預設循環群; 數據處理單元,通過該公鑰pk和該隨機數r對該目標用戶對應的待加密數據m進行處理,生成同態密文c=
    Figure 03_image003
    =
    Figure 03_image005
    ; 密文提供單元,將該同態密文c提供至該目標用戶,該同態密文c可由該目標用戶通過私鑰sk解密得到數據m,該私鑰sk的取值為α=a·k,a為預設非零數值。
  16. 一種實現隱私保護的數據同態解密裝置,包括: 密文獲取單元,獲取同態密文c=
    Figure 03_image003
    =
    Figure 03_image005
    ,該同態密文c由目標用戶對應的公鑰pk={N, h}和隨機數r對數據m進行處理後得到;其中,h為隨機數空間
    Figure 03_image001
    內大小為k的預設循環群的生成元,hr 屬於該預設循環群,k的長度為i位元、N的長度為n位元,且i<<n; 密文解密單元,根據該目標用戶的私鑰sk對該同態密文c進行解密,得到加密前的數據m=
    Figure 03_image025
    ,其中該私鑰sk的取值為α=a·k,a為預設非零數值; 數據輸出單元,將解密得到的數據m輸出至該目標用戶。
  17. 一種電子設備,包括: 處理器; 用於儲存處理器可執行指令的記憶體; 其中,該處理器通過運行該可執行指令以實現如請求項1-8中任一項所述的方法。
  18. 一種電腦可讀取儲存媒介,其上儲存有電腦指令,該指令被處理器執行時實現如請求項1-8中任一項所述方法的步驟。
  19. 一種電子設備,包括: 處理器; 用於儲存處理器可執行指令的記憶體; 其中,該處理器通過運行該可執行指令以實現如請求項9-14中任一項所述的方法。
  20. 一種電腦可讀取儲存媒介,其上儲存有電腦指令,該指令被處理器執行時實現如請求項9-14中任一項所述方法的步驟。
TW109103360A 2019-06-18 2020-02-04 實現隱私保護的數據同態加解密方法及裝置 TWI734368B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910528750.9A CN110348231B (zh) 2019-06-18 2019-06-18 实现隐私保护的数据同态加解密方法及装置
CN201910528750.9 2019-06-18

Publications (2)

Publication Number Publication Date
TW202101432A true TW202101432A (zh) 2021-01-01
TWI734368B TWI734368B (zh) 2021-07-21

Family

ID=68182354

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109103360A TWI734368B (zh) 2019-06-18 2020-02-04 實現隱私保護的數據同態加解密方法及裝置

Country Status (3)

Country Link
CN (1) CN110348231B (zh)
TW (1) TWI734368B (zh)
WO (1) WO2020253234A1 (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10778410B2 (en) 2019-06-18 2020-09-15 Alibaba Group Holding Limited Homomorphic data encryption method and apparatus for implementing privacy protection
CN110348231B (zh) * 2019-06-18 2020-08-14 阿里巴巴集团控股有限公司 实现隐私保护的数据同态加解密方法及装置
WO2021081803A1 (zh) * 2019-10-30 2021-05-06 深圳市网心科技有限公司 区块链系统及监管方法、系统、装置、计算机存储介质
CN110784300B (zh) * 2019-11-08 2022-09-16 中国电子科技网络信息安全有限公司 一种基于乘法同态加密的密钥合成方法
CN111143862B (zh) * 2019-12-13 2021-07-09 支付宝(杭州)信息技术有限公司 数据处理方法、查询方法、装置、电子设备和系统
CN110912713B (zh) * 2019-12-20 2023-06-23 支付宝(杭州)信息技术有限公司 多方联合进行模型数据处理的方法及装置
CN110880967B (zh) * 2019-12-24 2023-04-07 北京炼石网络技术有限公司 采用分组对称密钥算法对多消息并行加解密方法
CN111131317B (zh) 2019-12-31 2022-04-26 百度在线网络技术(北京)有限公司 一种基于区块链的数据处理方法、装置、设备和介质
CN111444527B (zh) * 2020-03-30 2023-08-11 腾讯云计算(北京)有限责任公司 不同应用程序之间数据的相关系数确定方法、装置及介质
CN111737748B (zh) * 2020-06-24 2021-09-07 深圳前海微众银行股份有限公司 一种应用于区块链的数据解密方法、装置及存储介质
CN112052875A (zh) * 2020-07-30 2020-12-08 华控清交信息科技(北京)有限公司 一种训练树模型的方法、装置和用于训练树模型的装置
CN112288523B (zh) * 2020-10-29 2023-09-05 中国银联股份有限公司 一种基于区块链的数值排名方法及装置
CN114697001A (zh) * 2020-12-28 2022-07-01 山东浪潮质量链科技有限公司 一种基于区块链的信息加密传输方法、设备及介质
CN112668053B (zh) * 2021-01-05 2024-05-03 上海零数众合信息科技有限公司 一种区块链基于伪随机公钥的加密方法
CN113014373B (zh) * 2021-02-20 2022-06-10 广东浪潮智慧计算技术有限公司 一种同态计算中的数据加密方法、装置、设备及介质
CN112948083B (zh) * 2021-02-25 2023-10-27 北京金山云网络技术有限公司 数据处理方法、装置及电子设备
CN113159745B (zh) * 2021-03-23 2023-06-16 西安电子科技大学 基于全同态的区块链交易隐私保护方法
CN113099417B (zh) * 2021-03-23 2023-06-30 千寻位置网络(浙江)有限公司 差分数据播发方法、装置、电子设备及计算机存储介质
CN112800476A (zh) * 2021-03-25 2021-05-14 全球能源互联网研究院有限公司 一种数据脱敏方法、装置及电子设备
CN113055172B (zh) * 2021-03-31 2022-11-04 北京金山云网络技术有限公司 一种密钥协商方法、装置、电子设备及存储介质
CN113807537B (zh) * 2021-04-06 2023-12-05 京东科技控股股份有限公司 多源数据的数据处理方法、装置及电子设备、存储介质
CN113254956A (zh) * 2021-05-07 2021-08-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113268750B (zh) * 2021-05-21 2023-05-12 中国联合网络通信集团有限公司 数据处理方法、竞投节点设备和计算机可读介质
CN113313488B (zh) * 2021-05-26 2022-10-21 北京航空航天大学 一种基于区块链与同态加密的数据隐私保护方法
CN113312650B (zh) * 2021-06-23 2023-07-04 中国农业银行股份有限公司 交易日志隐私保护方法及装置
CN113965340A (zh) * 2021-08-30 2022-01-21 广东南方通信建设有限公司 一种跨平台数据迁移方法、系统和可读介质
CN114039785B (zh) * 2021-11-10 2024-02-27 奇安信科技集团股份有限公司 数据加密、解密、处理方法、装置、设备和存储介质
TWI789115B (zh) * 2021-11-12 2023-01-01 中華電信股份有限公司 雲端服務的加密系統及加密方法
CN114444108A (zh) * 2021-12-22 2022-05-06 深圳市洞见智慧科技有限公司 同态加密处理方法及相关设备
CN114567427B (zh) * 2022-01-05 2023-10-20 北京理工大学 一种区块链隐蔽数据分段传输方法
CN114581070B (zh) * 2022-03-10 2024-03-19 南京大学 基于同态加密的区块链支付通道网络路径选择方法和系统
CN115085897A (zh) * 2022-05-23 2022-09-20 支付宝(杭州)信息技术有限公司 用于保护隐私的数据处理方法、装置和计算机设备
CN114785501B (zh) * 2022-05-30 2024-05-17 建信金融科技有限责任公司 数据判等方法、设备及存储介质
CN114817970B (zh) * 2022-06-30 2022-11-29 深圳市洞见智慧科技有限公司 基于数据来源保护的数据分析方法、系统及相关设备
CN115271733B (zh) * 2022-09-28 2022-12-13 深圳市迪博企业风险管理技术有限公司 一种隐私保护的区块链交易数据异常检测方法及设备
CN116071137B (zh) * 2023-01-28 2023-05-30 中债金科信息技术有限公司 担保评估方法及装置、存储介质及电子设备
CN115913554B (zh) * 2023-03-13 2023-05-16 深圳市洞见智慧科技有限公司 基于国密的高效匿踪联邦学习方法、系统及相关设备
CN116402505B (zh) * 2023-05-11 2023-09-01 蓝象智联(杭州)科技有限公司 基于同态加密的图扩散方法、装置及存储介质
CN116318621B (zh) * 2023-05-23 2023-08-01 青岛鑫晟汇科技有限公司 一种基于同态加密的产业物联数据隐私保护系统
CN116340984B (zh) * 2023-05-29 2023-08-15 四川云合数创信息技术有限公司 一种基于智慧社区的用户信息管理方法及系统
CN116756754B (zh) * 2023-06-19 2024-01-30 广东技术师范大学 一种cad模型加密及解密方法
CN116684066B (zh) * 2023-07-06 2023-10-20 北京隐算科技有限公司 一种支持整数运算的同态加密方法、系统及存储介质
CN116881950B (zh) * 2023-09-05 2023-11-10 北京天润基业科技发展股份有限公司 隐私数据的处理方法、装置、电子设备及可读存储介质
CN116915405B (zh) * 2023-09-13 2023-11-21 北京数牍科技有限公司 基于隐私保护的数据处理方法、装置、设备及存储介质
CN116915382B (zh) * 2023-09-14 2023-12-15 北京隐算科技有限公司 一种基于模分量同态的多用户隐私保护方法
CN116956354B (zh) * 2023-09-21 2024-01-19 恒生电子股份有限公司 数据查询方法、装置、数据源设备、查询方设备及系统
CN117234457B (zh) * 2023-11-10 2024-01-26 蓝象智联(杭州)科技有限公司 一种用于隐私计算的数据相减运算方法
CN117391754A (zh) * 2023-12-12 2024-01-12 国网数字科技控股有限公司 电力市场交易的结算方法、相关装置及计算机存储介质
CN117478305B (zh) * 2023-12-28 2024-04-16 粤港澳大湾区数字经济研究院(福田) 基于两方安全协作的全同态加密方法、系统、终端及介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI456966B (zh) * 2011-01-20 2014-10-11 Acer Inc 利用隱私同態加密技術來提供社交網路服務之方法
CN103036884B (zh) * 2012-12-14 2015-09-16 中国科学院上海微系统与信息技术研究所 一种基于同态加密的数据保护方法和系统
US20160020898A1 (en) * 2013-03-04 2016-01-21 Valeria Nikolaenko Privacy-preserving ridge regression
CN105447361B (zh) * 2014-08-27 2018-08-21 华为技术有限公司 加密和相似性度量的方法、终端及服务器
CN104219056B (zh) * 2014-09-16 2017-05-17 西安电子科技大学 一种智能电网中具有隐私保护的实时电量收集方法
CN106161405B (zh) * 2015-04-21 2019-01-18 上海交通大学 基于同态加密机制的隐私可保护信息安全计算实现方法
CN106160995B (zh) * 2015-04-21 2019-04-16 郑珂威 基于系数映射变换的多项式完全同态加密方法及系统
CN104796475B (zh) * 2015-04-24 2018-10-26 苏州大学 一种基于同态加密的社会化推荐方法
CN105488422B (zh) * 2015-11-19 2019-01-11 上海交通大学 基于同态加密隐私数据保护的编辑距离计算系统
CN105577357B (zh) * 2015-12-21 2019-05-31 东南大学 基于全同态加密的智能家居数据隐私保护方法
CN106533650B (zh) * 2016-11-17 2019-04-02 浙江工商大学 面向云端的交互型隐私保护方法和系统
CN107222302B (zh) * 2017-07-03 2019-05-07 深圳大学 用部分同态加密方案构建的空间众包任务分配系统及方法
EP3718069B1 (en) * 2017-11-30 2024-04-17 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN109690551B (zh) * 2018-08-24 2023-11-10 区链通网络有限公司 区块链数据保护方法、装置、系统及计算机可读存储介质
CN109284627B (zh) * 2018-09-10 2022-02-08 中山大学 一种基于区块链智能合约的征信信誉方法及装置
JP2020502864A (ja) * 2018-11-07 2020-01-23 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 準同型暗号を使用したブロックチェーンデータ保護
AU2018347201B2 (en) * 2018-12-21 2020-08-27 Advanced New Technologies Co., Ltd. Blockchain data protection based on generic account model and homomorphic encryption
CN109840770A (zh) * 2019-01-31 2019-06-04 北京瑞卓喜投科技发展有限公司 一种智能合约执行方法及智能合约执行系统
CN110348231B (zh) * 2019-06-18 2020-08-14 阿里巴巴集团控股有限公司 实现隐私保护的数据同态加解密方法及装置

Also Published As

Publication number Publication date
TWI734368B (zh) 2021-07-21
CN110348231A (zh) 2019-10-18
WO2020253234A1 (zh) 2020-12-24
CN110348231B (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
TWI734368B (zh) 實現隱私保護的數據同態加解密方法及裝置
US11159305B2 (en) Homomorphic data decryption method and apparatus for implementing privacy protection
Schneider et al. GMW vs. Yao? Efficient secure two-party computation with low depth circuits
US11349668B2 (en) Encryption device and decryption device
CN109714157B (zh) 一种抗密钥暴露属性加密的sdn跨域访问控制方法
EP3661115B1 (en) Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
JP2004336794A (ja) 暗号システム内でユーザ定義idに基づく公開鍵を発生する方法と機器
CN114175569A (zh) 用于在aes计数器模式加密中对用拟群运算加密的整数进行相加和比较的系统和方法
JP7238977B2 (ja) 匿名署名システム及び匿名署名方法
Huang et al. Block-Level Message-Locked Encryption with Polynomial Commitment for IoT Data.
JP2014137474A (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
US8325913B2 (en) System and method of authentication
CN117134906A (zh) 多方隐私求交方法及相关装置
Muhammed et al. Improved cloud-based N-primes model for symmetric-based fully homomorphic encryption using residue number system
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
EP3959841B1 (en) Compression and oblivious expansion of rlwe ciphertexts
Asante et al. A symmetric, probabilistic, non-circuit based fully homomorphic encryption scheme
Martin et al. Efran (O):" Efficient Scalar Homomorphic Scheme on MapReduce for Data Privacy Preserving"
Blass et al. Epic: Efficient privacy-preserving counting for mapreduce
CN114006689B (zh) 基于联邦学习的数据处理方法、装置及介质
KR102187267B1 (ko) 타원곡선에 기반한 초 특이성 디피-헬만 암호 교환 방법 및 장치
AU2021106274A4 (en) A protocol for assuring data integrity in cloud setting by using a fully homomorphic batch encryption scheme with integer and shorter public key (hbeis)
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
Chen et al. A CRS-based convolution algorithm for NTRUEncrypt
CN117499010A (zh) 一种数据处理方法及装置