TWI776760B - 神經網路之處理方法及其伺服器與電子裝置 - Google Patents
神經網路之處理方法及其伺服器與電子裝置 Download PDFInfo
- Publication number
- TWI776760B TWI776760B TW110148953A TW110148953A TWI776760B TW I776760 B TWI776760 B TW I776760B TW 110148953 A TW110148953 A TW 110148953A TW 110148953 A TW110148953 A TW 110148953A TW I776760 B TWI776760 B TW I776760B
- Authority
- TW
- Taiwan
- Prior art keywords
- gate
- candidate
- obfuscated
- gates
- key
- Prior art date
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
- Computer And Data Communications (AREA)
Abstract
提供一種神經網路之處理方法。將人工智慧編譯器的AI編譯器程式碼轉換為一混淆電路碼,包括以下步驟:伺服器將對應至混淆電路碼之具有多個邏輯閘之混淆電路的電路圖,傳送至電子裝置;電子裝置產生對應至各邏輯閘之多個候選閘的多個密鑰編碼本;電子裝置產生對應至各邏輯閘之此些候選閘的複數個混淆真值表,並藉由使用模糊傳輸(OT)協定,傳送至伺服器;及伺服器得到各邏輯閘的目標混淆真值表。之後,電子裝置根據此些密鑰編碼本,對神經網路(NN)模型進行加密。伺服器產生加密後NN模型的編譯後NN模型。
Description
本揭露是有關於一種神經網路(Neural Network, NN)之處理方法及其伺服器與電子裝置。
隨著技術的發展,人工智慧(Artificial Intelligence, AI)的相關應用越來越受到關注。大多數AI框架(framework)僅支持CPU和GPU硬體環境。AI編譯器(神經網路編譯器)可以使神經網路(Neural Network, NN)模型在不同類型的硬體上執行,如行動電話、嵌入式系統裝置、低功耗特殊用途晶片等。
AI編譯器可以在雲端服務中實現。模型開發者只需上傳NN模型,雲端的AI編譯器就可以針對不同的硬體平台對模型進行優化(optimize)、基準測試(benchmark)和包裝(package)。編譯好的NN模型可以傳送到AI單晶片系統(System on a Chip, SoC)或AI軟體保護器(dongle)(例如USB AI dongle)上執行,也可以在其他不同的硬體平台上執行。
然而,此種在雲端服務中實現AI編譯器的方法使得NN模型缺乏私密性。當使用不同框架開發的NN模型傳送到雲端進行編譯時,NN模型可能被其他人取得。優異的NN模型通常是公司的重要資產。如果將NN模型讓他人得知,可能會對公司造成重大損失。因此,在將NN模型上傳到雲端時,如何妥善保護模型開發者開發的NN模型,使上傳的NN模型具有良好的私密性,乃成為業界所致力的課題。
根據本揭露之第一方面,提出一種神經網路(Neural Network, NN)之處理方法,包括下列步驟。將一人工智慧(Artificial Intelligence, AI)編譯器(compiler)的一AI編譯器程式碼轉換為一混淆電路碼(garbled circuit code),包括以下步驟:一伺服器將對應至此混淆電路碼之一混淆電路的一電路圖,傳送至一第一電子裝置,此混淆電路具有多個邏輯閘;此第一電子裝置產生對應至各邏輯閘之多個候選閘的多個密鑰編碼本(key codebook);此第一電子裝置產生對應至各邏輯閘之此些候選閘的多個混淆真值表;此第一電子裝置藉由使用模糊傳輸(Oblivious Transfer, OT)協定,將對應至各邏輯閘之此些候選閘的此些混淆真值表傳送至此伺服器;及此伺服器基於對應至各邏輯閘之此些候選閘的此些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表。第一電子裝置根據此些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型。此伺服器藉由各邏輯閘的此目標混淆真值表,根據此混淆電路碼產生此加密後NN模型的一編譯後NN模型。
根據本揭露之第二方面,提出一種用以處理神經網路之伺服器,包括一傳送電路及一處理器。處理器用以將一AI編譯器的一AI編譯器程式碼轉換為一混淆電路碼,此處理器係執行以下程序:將對應至此混淆電路碼之一混淆電路的一電路圖,經由此傳送電路傳送至一第一電子裝置,此混淆電路具有多個邏輯閘;經由此傳送電路,藉由使用OT協定,從此第一電子裝置接收對應至各邏輯閘之多個候選閘的多個混淆真值表;及基於對應至各邏輯閘之此些候選閘的此些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表。其中,此第一電子裝置產生對應至各邏輯閘之此些候選閘的多個密鑰編碼本,此第一電子裝置根據此些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型,此處理器更用以藉由各邏輯閘的此目標混淆真值表,根據此混淆電路碼產生此加密後NN模型的一編譯後NN模型。
根據本揭露之第三方面,提出一種用以處理神經網路之電子裝置,包括一傳送電路及一處理器。處理器用以協助一伺服器以將一AI編譯器的一AI編譯器程式碼轉換為一混淆電路碼,此處理器係執行以下程序:經由此傳送電路,從此伺服器接收對應至此混淆電路碼之一混淆電路的一電路圖,此混淆電路具有多個邏輯閘;產生對應至各邏輯閘之多個候選閘的多個密鑰編碼本;產生對應至各邏輯閘之此些候選閘的多個混淆真值表;及藉由使用OT協定,將對應至各邏輯閘之此些候選閘的此些混淆真值表經由此傳送電路傳送至此伺服器。其中,此處理器更用以根據此些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型,此伺服器基於對應至各邏輯閘的此些候選閘的此些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表,並由此伺服器藉由各邏輯閘的此目標混淆真值表,根據此混淆電路碼產生此加密後NN模型的一編譯後NN模型。
為了對本揭露之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
請參照第1圖和第2圖,第1圖繪示根據本揭露之實施例的神經網路(Neural Network, NN)之處理方法的流程圖,第2圖繪示用以處理神經網路之系統的方塊圖。神經網路處理方法包括以下步驟。首先,藉由執行步驟102至110,一人工智慧(Artificial Intelligence, AI)編譯器(compiler)的一AI編譯器程式碼係被轉換為一混淆電路碼(garbled circuit code)。於步驟102中,一伺服器202將對應至混淆電路碼之一混淆電路的一電路圖Gc,傳送至一電子裝置204。混淆電路具有多個邏輯閘。於步驟104,電子裝置204產生對應至各邏輯閘之多個候選閘的多個密鑰編碼本(key codebook)。於步驟106,電子裝置204產生對應至各邏輯閘之此些候選閘的多個混淆真值表。於步驟108,電子裝置204藉由使用模糊傳輸(Oblivious Transfer, OT)協定,將對應至各邏輯閘之此些候選閘的此些混淆真值表傳送至伺服器202。於步驟110,伺服器202基於對應至各邏輯閘之此些候選閘的此些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表。
之後,進入步驟112,電子裝置204根據此些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型。接著,執行步驟114,伺服器202藉由各邏輯閘的目標混淆真值表,根據混淆電路碼產生加密後NN模型的一編譯後NN模型。
電子裝置204例如作為系統200中的客戶端。伺服器202例如是雲端伺服器。藉由根據密鑰編碼本對NN模型進行加密,並使用OT協定傳送混淆真值表,使得電子裝置204(客戶端)提供的NN模型的內容不會被伺服器202(雲端伺服器)得知,讓NN模型的私密性受到保護。此外,藉由傳送電路圖Gc而非傳送混淆電路、使用混淆電路碼、以及透過使用OT協定來傳送混淆真值表,伺服器202(雲端伺服器)的AI編譯器的內容不會被電子裝置204(客戶端)所得知。因此,AI編譯器的私密性也受到保護。下面將進一步描述根據本揭露實施例的神經網路(NN)之處理方法。
在密碼學中,模糊傳輸(Oblivious Transfer, OT)協定是一種傳送端將多個資訊中的一個傳送給接收端,但傳送端仍然不知道哪個資訊已被傳送的協定。第一種形式的模糊傳輸係於1981年由 Michael O. Rabin提出(Michael O. Rabin. "How to exchange secrets with oblivious transfer." Technical Report TR-81, Aiken Computation Laboratory, Harvard University, 1981.)。1985年,Shimon Even、Oded Goldreich和Abraham Lempel提出了更有用的模糊傳輸的形式,稱為1-2模糊傳輸(1-2 oblivious transfer)或“2選1模糊傳輸(1 out of 2 oblivious transfer)”(S. Even, O. Goldreich, and A. Lempel, "A Randomized Protocol for Signing Contracts", Communications of the ACM, Volume 28, Issue 6, pg. 637-647, 1985.)。它被概括為“n選1模糊傳輸(1 out of n oblivious transfer)”,其中接收者只得到一個元素,而傳送端不知道哪個元素被查詢,且接收端也不知道其他未被取得的元素。
請參考第3A圖至第3C圖,第3A圖繪示一第一OT情境,第3B圖繪示一第二OT情境,第3C圖繪示OT要求。如第3A圖所示,當使用者B向使用者A傳送位元值b=1以詢問訊息M1時,使用者A向使用者B回覆b=1對應的訊息M1。然而,在第3A圖所示之第一OT情境中,使用者A係知道使用者B的選擇b(b=1)。如第3B圖所示,當使用者B選擇位元值b=1並且不向使用者A傳送位元值b=1時,使用者A直接將分別對應至b=0和b=1的訊息M0和訊息M1都傳送給使用者B。然而,在如第3B圖所示之第二種OT情境中,使用者B知道b=0所對應的訊息M0,其中訊息M0並未被使用者B所選擇。如第3C圖所示,使用者B傳送位元值b(b可以是0或1),使用者A只傳送訊息Mb(當b的值為0時,訊息Mb為M0;當b的值為1時,訊息Mb為M1)給使用者B。在此OT要求下,使用者A不知道使用者B的選擇(b的值),使用者B也不知道使用者A的其他訊息。
參考第4A圖,其繪示2選1模糊傳輸協定的流程。假設給定一產生器g和g
mmod q。根據Discrete-Log假設(Discrete-Log assumption),計算出m之值是困難的。其中,g是大質素,q是模數(modulus),m是整數。
假設Z
q是q階之群(group of order q),亦即,Z
q表示g
mmod q的元素的集合,也就是Z
q={0, 1, 2, …q-1}。使用者A和使用者B都知道產生器“g”之值。使用者A隨機選擇Z
q的一個元素,所選擇的元素表示為產生器“c”。使用者A將產生器“c”傳送給使用者 B。使用者B隨機選擇Z
q的一個元素,所選擇的元素表示為產生器“k”。使用者B選擇位元值b,b為集合{0,1}中的一個元素。使用者B也設定z
b=g
k,z
1-b=c/g
k(亦即,當b為0時,z
0=g
k,z
1=c/g
k;當b為1時,z
1=g
k,z
0=c/g
k),然後使用者B將z
b和z
1-b傳送給使用者A。
使用者A隨機選擇值“r0”和“r1”,並產生值“g
r0”和“g
r1”。使用者A有兩個資訊“x
0”和“x
1”,使用者A使用值“r0”和“r1”對“x
0”和“x
1”進行加密,例如使用者A產生值H(z
0 r0)
x
0和H(z
1 r1)
x
1。然後,使用者A將資料C
0和C
1傳送給使用者 B。資料C
0和C
1由(式1)所定義:
C
0=[g
r0, H(z
0 r0)
x
0]
C
1=[g
r1, H(z
1 r1)
x
1] (式 1)
H是可以用以將任意長度的資料映射到x
0和x
1的長度的雜湊函數(Hash function)。運算符“
”表示位元層級(bit-wise)之互斥或運算(Exclusive OR operation)。
在使用者B接收到資料C
0和C
1之後,使用者B透過計算H(v
1 k)
v
2解密C
b=[v
1,v
2]。以b=0為例。當b=0時,z
0=g
k,z
1=c/g
k。然後,z
0 r0=(g
k)
r0,z
1 r1= (c/g
k)
r1,且C
b=C
0=[v
1, v
2]=[g
r0, H(z
0 r0)
x
0]。因此,H(v
1 k)
v
2=H(g
r0)
k H(z
0 r0)
x
0=H(g
r0)
k H((g
k)
r0)
x
0=x
0。然而,由於C
1=[g
r1, H(z
1 r1)
x
1],且針對C
1的H(v
1 k)
v
2係等於 H((g
r1)
k)
H(z
1 r1)
x
1=H((g
r1)
k)
H((c/g
k)
r1)
x
1。由於c
r1未知,因此無法得到“x
1”的值。這樣一來,使用者B在不知道資訊“x
1”的情況下,可以得到資訊“x
0”,而使用者A不知道使用者B選擇之b的值。也就是說,使用者B只得到x
0和x
1之一,並且使用者A不知道使用者B得到了x
0和x
1中的哪一個。
請參考第4B圖,其繪示n選1模糊傳輸協定的流程。假設給定一個產生器g和g
mmod q,根據Discrete-Log假設,計算出m之值是困難的。其中,g是大質素,q是模數,m是整數。
假設Z
q是q階之群,亦即,Z
q表示g
mmod q的元素的集合,也就是Z
q={0, 2,...q-1}。Z
q的產生器“g”和“h”對於使用者A和使用者B都是已知的。使用者B選擇一個值a,a為集合{1, ..., n}中的一個元素,n為整數。使用者B隨機選擇Z
q的一個元素,表示為產生器“r”,使用者B向使用者A傳送值y=g
rh
a。使用者A隨機選擇Z
q的n個元素,表示為產生器“k
1, k
2,...k
n”。使用者A擁有資訊(x
1, x
2......, x
n)。然後,使用者A傳送{<c
i=(g
ki, x
i(y/h
a)
ki)>: i=1,..,n}至使用者B。亦即,使用者A傳送c
1=(g
k1, x
1(y/h
a)
k1), c
2=(g
k2, x
2(y/h
a)
k2),... c
n=(g
kn, x
n(y/h
a)
kn)至使用者B。使用者B收到c
a=(v, w)=(g
ka, x
a(y/h
a)
ka),並計算x
a=w/v
r。例如,當使用者B選擇a=2時,x
2= w/v
r= x
a(y/h
a)
ka/(g
ka)
r= x
a(g
rh
a/h
a)
ka/(g
ka)
r= x
a= x
2。如此,使用者B可以在不知道資訊“x
1”和“x
3~x
n”的情況下得到資訊“x
2”,而使用者A則不知道使用者B選擇之a的值。亦即,使用者B只得到x
0到x
n之一,而使用者A則不知道使用者B得到了x
0到x
n中的哪一個。
請參考第5A圖至第5C圖,其繪示了混淆電路協定(garbled circuit protocol)的流程。第5A圖繪示混淆電路協定的混淆電路之一例。第5B圖繪示及閘的輸入線密鑰和輸出線密鑰的示例。第5C圖顯示第5B圖之及閘對應的真值表,與第5B圖的及閘對應之加密真值表(混淆真值表)。混淆電路協定是一種確保雙方計算安全之加密協定,其中雙方可透過其各自之輸入,來共同對一函數求值(evaluate)。在混淆電路協定中,函數必須描述為布林電路(Boolean circuit)。混淆電路首先由Andrew Yao提出(Yao, Andrew Chi-Chih (1986), "How to generate and exchange secrets", 27th Annual Symposium on Foundations of Computer Science (SFCS 1986), Foundations of Computer Science, 1986.)。
如第5A圖所示,兩方使用者A和使用者B都知道執行函數f的布林電路502。使用者A具有輸入x,而使用者B則具有輸入y。使用者A和使用者B在使用者A不知道使用者B的輸入且使用者B不知道使用者A的輸入的情況下,安全地計算f(x, y)。如第5B圖所示,首先,使用者A為每條線選擇兩個隨機密鑰。一個密鑰對應至“0”,另一個密鑰對應至“1”。具有2個輸入線的閘共有6個密鑰。茲使用及閘504作為例子說明之。及閘504具有兩個輸入線506和508及一個輸出線510,如第5B圖所示。及閘504在輸入線506上接收x值,並在輸入線508上接收y值。及閘504在輸出線510上輸出z值。使用者A針對輸入線506選擇兩個隨機密鑰k
0x和k
1x。輸入線密鑰k
0x對應至“0”,而輸入線密鑰k
1x對應至“1”。使用者A為輸入線508選擇兩個隨機密鑰k
0y和k
1y。輸入線密鑰k
0y對應至“0”,而輸入線密鑰k
1y對應至“1”。使用者A亦為輸出線510選擇兩個隨機密鑰k
0z和k
1z。輸出線密鑰k
0z對應至“0”,且輸出線密鑰k
1z對應至“1”。
如第5C圖所示,之後,使用者A透過使用對應的一對輸入線密鑰來對輸出線密鑰k
0z和k
1z進行加密,以加密及閘504之真值表的每一列。例如,使用者A使用對應之一對的輸入線密鑰k
0x和k
0y對輸出線密鑰k
0z進行加密,其對應至真值表的第一列(顯示了當x=0和y=0時,z=0),以產生加密真值表的第一列之內容E
k0x(E
k0y(k
0z))。函數E
k0y(k
0z)表示藉由使用輸入線密鑰k
0y,來對輸出線密鑰k
0z進行加密。函數E
k0x(E
k0y(k
0z))表示藉由使用輸入線密鑰k
0x,來對E
k0y(k
0z)的值進行加密。可以使用輸入線密鑰k
0y和k
0x來對輸出線密鑰k
0z進行解密。
使用者A透過使用對應之一對的輸入線密鑰k
0x和k
1y對輸出線密鑰k
0z進行加密,其對應至真值表的第二列(顯示了當x=0和y=1,z=0),以產生加密真值表的第二列之內容E
k0x(E
k1y(k
0z))。函數E
k1y(k
0z)表示藉由使用輸入線密鑰k
1y,來對輸出線密鑰k
0z進行加密。函數E
k0x(E
k1y(k
0z))表示藉由使用輸入線密鑰k
0x,來對E
k1y(k
0z)的值進行加密。可以使用輸入線密鑰k
1y和k
0x來對輸出線密鑰k
0z進行解密。
使用者A使用對應之一對輸入線密鑰k
1x和k
0y對輸出線密鑰k
0z進行加密,其對應至真值表的第三列(顯示了當x=1和y=0時,z=0),以產生加密真值表的第三列之內容E
k1x(E
k0y(k
0z))。函數E
k0y(k
0z)表示藉由使用輸入線密鑰k
0y,來對輸出線密鑰k
0z進行加密。函數E
k1x(E
k0y(k
0z))表示藉由使用輸入線密鑰k
1x,來對E
k0y(k
0z)的值進行加密。可以使用輸入線密鑰k
0y和k
1x來對輸出線密鑰k
0z進行解密。
類似地,使用者A使用對應之一對的輸入線密鑰k
1x和k
1y對輸出線密鑰k
1z進行加密,其對應至真值表的第四列(顯示了當x=1和y=1時,z=1),以產生加密真值表第四列之內容E
k1x(E
k1y(k
1z))。函數E
k1y(k
1z)表示藉由使用輸入線密鑰k
1y,來對輸出線密鑰k
1z進行加密。函數E
k1x(E
k1y(k
1z))表示藉由使用輸入線密鑰k
1x,來對E
k1y(k
1z)的值進行加密。可以使用輸入線密鑰k
1y和k
1x來對輸出線密鑰k
1z進行解密。
在產生及閘504的加密真值表後,可以將加密真值表的每一列以隨機的方式重新排列,以得到更多的保護。加密真值表作為使用者A傳送給使用者B的混淆真值表。使用者A可以進行上述類似的程序,針對第5A圖之布林電路中的其他閘,產生加密真值表(混淆真值表)。例如,使用者A可以執行上述類似的程序來產生如第5A圖所示的或閘512、或閘514、及閘516、非閘518和及閘520的加密真值表(混淆真值表)。一個閘的輸出線密鑰可以作為另一個閘的輸入線密鑰。例如,及閘504的輸出線密鑰k
0z和k
1z可以作為及閘516的輸入線密鑰。
下文將舉例說明混淆電路協定的主要步驟。於主要步驟1中,當使用者A的位元值為1時,使用者A僅將輸入線密鑰k
1x傳送給使用者B。當使用者A的位元值為0時,使用者A僅將輸入線密鑰k
0x傳送給使用者B。在主要步驟2中,當使用者B的位元值為b時,使用者B透過使用OT協定,僅從使用者A取得k
by。亦即,使用者A向使用者B傳送輸入線密鑰k
0y和k
1y,當使用者B的位元值為0時,使用者B僅透過使用OT協定從使用者A得到k
0y;而當使用者B的位元值為1時,使用者B僅透過使用OT協定從使用者A得到k
1y。
在主要步驟3中,假設使用者B的位元值為0,使用者B可以基於使用者A傳送給使用者B的混淆真值表,使用輸入線密鑰k
1x和k
0y來計算k
0z。由於使用者B只有輸入線密鑰k
1x和k
0y,使用者B無法透過第5C圖之混淆真值表第一列的內容E
k0x(E
k0y(k
0z))進行解密動作,以得到k
0z。使用者B亦無法透過第5C圖所示之混淆真值表第二行的內容E
k0x(E
k1y(k
0z))進行解密動作,以得到k
0z。使用者B也無法透過第5C圖所示之混淆真值表第四行的內容E
k1x(E
k1y(k
1z))進行解密動作,以得到k
0z。使用者B只能透過第5C圖所示之混淆真值表第三行的內容E
k1x(E
k0y(k
0z))進行解密動作,以得到k
0z。因此,使用者B對及閘504的函數進行盲運算(blindly compute) AND(1,0)=0。也就是,使用者B根據作為密鑰型式之輸入值的輸入線密鑰k
1x和k
0y,得到作為密鑰型式之輸出值的輸出線密鑰k
0z,即使是在使用者B不知道輸出線密鑰k
0z係對應於位元值0的情況下。
在使用者B完成及閘504的運算之後,使用者B還可透過重複上述主要步驟1至3,繼續進行其他閘的運算,例如是第5A圖所示之或閘512、或閘514、及閘516、非閘518和及閘520的運算。例如,在使用者B得到或閘512的密鑰型式之輸入值後,使用者B根據或閘512的密鑰型式之輸入值,藉由使用或閘512的混淆真值表進行解密,以得到或閘512的密鑰型式之輸出值。接著,使用者B將及閘504的密鑰型式之輸出,與或閘512的密鑰型式之輸出,作為及閘516的輸入,以得到及閘516的輸出。亦即,使用者B將及閘504的密鑰型式之輸出值,與或閘512的密鑰型式之輸出值,作為及閘516的密鑰型式之輸入值。並根據及閘516的混淆真值表,以得到及閘516的密鑰型式之輸出值。之後,使用者B將及閘516的密鑰型式之輸出值,與非閘518的密鑰型式之輸出值,作為及閘520之密鑰型式之輸入值。並根據及閘520的混淆真值表,得到及閘520的密鑰型式之輸出值。使用者A可以根據及閘520的輸出之位元值,與及閘520之對應的輸出線密鑰之間的關係,對及閘520之密鑰型式之輸出值進行解密,以得到及閘520的輸出之對應的位元值。
請再參考第1圖及第2圖,以下將更詳細地描述透過執行步驟102至110,將AI編譯器的AI編譯器程式碼轉換為混淆電路碼的過程。AI編譯器例如由軟體程式實現。軟體程式首先被轉換為電路碼,例如是布林電路碼(Boolean circuit code)。請參考“Niklaus Wirth, ‘Hardware compilation: translating programs into circuits’, Computer 31.6 (1998): P. 25-31”,其中提到,除了個別的程式語言和硬體描述語言,單一語言也可以讓人將程式的一部分編譯為一般處理器的指令序列,而將其他部分編譯為可編程閘陣列(programmable gate array)的電路。
之後,透過上述混淆電路協定,將電路碼轉換為混淆電路碼。混淆電路碼可以透過混淆電路的函數來模擬。第6圖顯示混淆電路之一例。混淆電路600包括多個電路單元,例如T個電路單元,T為整數。 T個電路單元包括電路單元602(1)、電路單元602(2)、……電路單元602(T)。每個電路單元可以具有多個邏輯閘。例如,電路單元602(1)具有邏輯閘604(1)至604(6)。舉例來說,邏輯閘604(1)為及邏輯閘(AND logic gate),邏輯閘604(2)為反或邏輯閘(NOR logic gate),邏輯閘604(3)為或邏輯閘(OR logic gate),邏輯閘604(4)為及邏輯閘,邏輯閘604(5)為非邏輯閘(NOT logic gate),邏輯閘604(6)為及邏輯閘。
在第1圖的步驟102中,伺服器202將對應至混淆電路碼之一混淆電路的一電路圖Gc,傳送至電子裝置204。第7圖繪示對應至第6圖的混淆電路600的電路圖700之一例。電路圖700係具有多個圖閘的電路圖,於電路圖700中係不指示圖閘的類型。這些圖閘的連接關係顯示於電路圖中。例如,電路圖700具有多個圖形單元。圖形單元包括圖形單元702(1)至702(T)。圖形單元702(1)包括圖閘704(1)到704(6)。圖閘704(1)的輸出和圖閘704(2)的輸出連接到圖閘704(4)的輸入,類似於邏輯閘604(1)、604(2)、和604(4)之邏輯閘604(1)的輸出和邏輯閘604(2)的輸出連接到邏輯閘604(4)的輸入的連接關係。然而,混淆電路600中的邏輯閘的類型並未顯示於電路圖700中。例如,圖閘704(1)至704(6)的類型未顯示於電路圖700。以圖閘704(1)為例。雖然邏輯閘604(1)為及邏輯閘,但圖閘704(1)是否也是及閘是未知的。
於步驟104中,電子裝置204產生對應至各邏輯閘之多個候選閘的多個密鑰編碼本。此些候選閘包括至少一單輸入候選閘和至少一雙輸入候選閘。此些混淆真值表包括單輸入混淆真值表和雙輸入混淆真值表。此至少一單輸入候選閘包括一緩衝器閘(buffer gate)和一非閘(NOT gate),例如是一緩衝器候選閘和一非候選閘。此至少一雙輸入候選閘包括一及閘(AND gate)、一或閘(OR gate)、一反及閘(NAND gate)、一反或閘(NOR gate)、一互斥或閘(XOR gate)、和一互斥反或閘(XNOR gate),例如是一及候選閘、一或候選閘、一反及候選閘、一反或候選閘、一互斥或候選閘、和一互斥反或候選閘。
請參考第8A圖到第8H圖,其分別繪示及候選閘、或候選閘、反及候選閘、反或候選閘、互斥或候選閘、互斥反或候選閘、緩衝器候選閘、和非候選閘的輸入線密鑰、輸出線密鑰、真值表和對應的加密真值表之示例。
假設邏輯閘包括一第1個邏輯閘604(1)至一第N個邏輯閘604(N),此些候選閘具有一第1個類型候選閘到一第M個類型候選閘,M和N為整數。每個候選閘具有至少一輸入線和一輸出線。對於此些候選閘中的一特定候選閘,提供對應至此特定候選閘的至少一輸入線的至少一輸入線密鑰,並提供對應至此特定候選閘的輸出線的至少一輸出線密鑰。藉由使用此至少一輸入線密鑰對此輸出線密鑰進行加密,來加密此特定候選閘的一真值表的每一列。
以第8A圖的及候選閘為例。如第8A圖所示,提供對應至及候選閘之輸入線x1的兩個輸入線密鑰k
0x1和k
1x1,提供對應至及候選閘之輸入線y1的兩個輸入線密鑰k
0y1和k
1y1,並提供對應至及候選閘的輸出線z1的輸出線密鑰k
0z1和k
1z1。及候選閘的真值表的每一列係透過使用至少一輸入線密鑰對輸出線密鑰進行加密,以產生加密真值表(亦即混淆真值表),如第8A圖所示。
以邏輯閘604(1)和圖閘704(1)為例。由於圖閘704(1)為如第7圖的電路圖700所示的雙輸入圖閘,所以圖閘704(1)可以與至少一雙輸入候選閘之一具有相同類型。亦即,邏輯閘604(1)和圖閘704(1)對應至及候選閘、或候選閘、反及候選閘、反或候選閘、互斥或候選閘、與互斥反或候選閘。每個候選閘的密鑰編碼本包括輸入或輸出的位元值,以及對應的輸入線密鑰或輸出線密鑰。例如,及候選閘的密鑰編碼本記錄了輸入x1的位元值“0”係對應至輸入線密鑰k
0x1,輸入x1的位元值“1”係對應至輸入線密鑰k
1x1,輸入y1的位元值“0”係對應至輸入線密鑰k
0y1,輸入y1的位元值“1”係對應至輸入線密鑰k
1y1,輸出z1的位元值“0”係對應至輸出線密鑰k
0z1,輸出z1的位元值“1”係對應至輸出線密鑰k
1z1。
在步驟106中,電子裝置204產生對應至各邏輯閘之此些候選閘的多個混淆真值表。以邏輯閘604(1)和圖閘704(1)為例。由於電子裝置204(客戶端)不知道圖閘704(1)的閘類型,並且電子裝置204知道圖閘704(1)是雙輸入圖閘,所以電子裝置204知道圖閘704(1)的候選閘包括及候選閘、或候選閘、反及候選閘、反或候選閘、互斥或候選閘、與互斥反或候選閘。因此,電子裝置204產生對應至邏輯閘604(1)的及候選閘、或候選閘、反及候選閘、反或候選閘、互斥或候選閘、與互斥反或候選閘的混淆真值表。此外,以邏輯閘604(5)和圖閘704(5)為例。由於電子裝置204不知道圖閘704(5)的閘類型,並且電子裝置204知道圖閘704(5)是單輸入圖閘,所以電子裝置204知道圖閘704(5)的候選閘包括緩衝器候選閘和非候選閘。因此,電子裝置204產生對應至邏輯閘604(5)的緩衝器候選閘和非候選閘的混淆真值表。
在步驟108中,電子裝置204藉由使用OT協定,將對應至各邏輯閘之此些候選閘的此些混淆真值表傳送至伺服器202。混淆電路600的電路圖700例如是編號後電路圖。編號後電路圖700具有編號1至N且不指示圖閘類型的圖閘。例如,圖形單元702(1)的圖閘704(1)~704(6)依次編號為1~6。同理,圖形單元702(2)~702(T)的圖閘也依次編號為7到N。
步驟108的流程可以包括伺服器202傳送此些邏輯閘中的一第i個邏輯閘對應的一請求R(i)至電子裝置204,其中i為1至N之間的整數;以及回應於電子裝置204的請求R(i),將對應至第i個邏輯閘之第1個類型候選閘的混淆真值表X
1(i)、第2個類型候選閘的該混淆真值表X
2(i)、……第M個類型候選閘的混淆真值表X
M(i)傳送至伺服器202。當第i個邏輯閘為雙輸入線邏輯閘時,設定R(i)=a
i,a
i為集合{1, 2,.., 6}中個一個元素,以對應至第i個邏輯閘,第i個邏輯閘為集合{及邏輯閘,或邏輯閘,反及邏輯閘,反或邏輯閘,互斥或邏輯閘,互斥反或邏輯閘}中的一個元素。當第i個邏輯閘為單輸入線邏輯閘時,設定R(i)= b
i,b
i為集合{0,1}中的一個元素,其對應至第i個邏輯閘,第i個邏輯閘為集合{緩衝器邏輯閘,非邏輯閘}中的一個元素。
例如,當i=1時,伺服器202向電子裝置204傳送與邏輯閘604(1)對應的請求R(1)。回應於請求R(1),電子裝置204傳送對應至邏輯閘604(1)的及候選閘的混淆真值表X
1(1)、或候選閘的混淆真值表X
2(1)、反及候選閘的混淆真值表X
3(1)、反或候選閘的混淆真值表X
4(1)、互斥或候選閘的的混淆真值表X
5(1)、與互斥反或候選閘的混淆真值表X
6(1)至伺服器202。由於邏輯閘604(1)係雙輸入線邏輯閘,因此M的值等於6。
此外,當i=5時,伺服器202向電子裝置204傳送對應至邏輯閘604(5)的請求R(5)。回應於請求R(5),電子裝置204傳送對應至邏輯閘604(5)的緩衝器候選閘的混淆真值表X
1(5)、與非候選閘的混淆真值表X
2(5)至伺服器202。由於邏輯閘604(5)係單輸入線邏輯閘,因此M的值等於2。
在步驟110中,伺服器202基於對應至各邏輯閘之此些候選閘的此些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表。步驟110的流程可以包括伺服器經由使用OT協定,透過一解密程序,得到對應至一第j個類型候選閘的混淆真值表的第i個邏輯閘的目標混淆真值表,第j個類型候選閘與第i個邏輯閘的閘之類型相同,j為1至M之間的整數。
以i=1為例。藉由伺服器202透過使用OT協定的解密過程,得到對應至第1個類型候選閘的混淆真值表(也就是及候選閘X
1(1)的混淆真值表)的邏輯閘604(1)的目標混淆真值表TG(1),伺服器202根據對應至邏輯閘604(1)的候選閘X
1(1)至X
6(1)的混淆真值表,透過使用OT協定,得到邏輯閘604(1)的目標混淆真值表TG(1)。第1個類型候選閘(亦即及候選閘X
1(1))與邏輯閘604(1)具有相同類型的閘。
以i=5為例。藉由伺服器202透過使用OT協定的解密過程,得到對應至第2個類型候選閘的混淆真值表(也就是非候選閘X
1(1)的混淆真值表)的邏輯閘604(5)的目標混淆真值表TG(5),伺服器202根據對應至邏輯閘604(5)的候選閘X
1(1)至X
2(1)的混淆真值表,透過使用OT協定,得到邏輯閘604(5)的目標混淆真值表TG(5)。第2個類型候選閘(亦即非候選閘X
2(5))與邏輯閘604(5)具有相同類型的閘。
上述步驟102至110可以視為執行在伺服器202中設定AI編譯器的設定過程。步驟112至114可以視為是對客戶端(亦即電子裝置204)傳送的NN模型進行加密與解密的執行過程。
在步驟112中,電子裝置204根據此些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型。步驟112的流程可以包括電子裝置204將NN模型轉換為多個二進位值,並根據密鑰編碼本,將此些二進位值轉換為多個密鑰型式之原始模型值。密鑰型式之原始模型值被傳送到伺服器202。例如,電子裝置204藉由首先將NN模型轉換為二進位值(例如,二進位值(b
I0b
I1b
I2... b
IS),S是整數,b
I0、b
I1、b
I2……、b
IS各代表一個二進位值),然後根據密鑰編碼本將這些二進位值轉換為多個密鑰型式之原始模型值(例如,密鑰型式之原始模型值(K
I1K
I2K
I3... K
IS),S是整數,K
I1、K
I2、K
I3……、K
IS各代表一個密鑰型式之原始模型值),來根據密鑰編碼本對模型開發者預先訓練過的NN模型以及已經訓練好的參數或權重,進行加密。密鑰型式之原始模型值(K
I1K
I2K
I3…K
IS)例如選自對應至電路圖700的輸入端的輸入線密鑰。電路圖700的輸入端可包括每個電路單元的第一級圖閘的多個輸入端,例如是第7圖所示之編號為1、2、3、7、8、9、10、…、N-5、N-4、N-3的圖閘的輸入端。電子裝置(客戶端)204將密鑰型式之原始模型值(K
I1K
I2K
I3... K
IS)傳送至伺服器202,以作為混淆電路600的輸入,如第6圖所示。
在步驟114中,伺服器202藉由各邏輯閘的目標混淆真值表,根據混淆電路碼產生加密後NN模型的一編譯後NN模型。步驟114的程序可以包括根據此些密鑰型式之原始模型值執行混淆電路碼,以產生編譯後NN模型的多個密鑰型式之編譯後模型值。亦即,由於伺服器202中的AI編譯器已經轉換為對應至混淆電路600的混淆電路碼,並且已經得到了各邏輯閘的目標混淆真值表,因此伺服器202可以藉由使用輸入的密鑰型式之原始模型值(K
I1K
I2K
I3…K
IS),透過對混淆電路碼進行求值,以產生編譯後NN模型。
對混淆電路碼進行求值的過程可以藉由混淆電路600來說明。以電路單元602(1)為例。密鑰型式之輸入值K
I1和K
I2被輸入至及邏輯閘604(1)。及邏輯閘604(1)使用邏輯閘604(1)的目標混淆真值表TG(1)(亦即圖閘704(1)的及候選閘的混淆真值表),根據密鑰型式之輸入值K
I1和K
I2,以得到及邏輯閘604(1)的密鑰型式之輸出值K
a。同理,反或邏輯閘604(2)使用邏輯閘604(2)的目標混淆真值表TG(2)(亦即圖閘704(2)的反或候選閘的混淆真值表),根據密鑰型式之輸入值K
I3和K
I4,得到反或邏輯閘604(2)的密鑰型式之輸出值K
b。或邏輯閘604(3)使用邏輯閘604(3)的目標混淆真值表TG(3)(亦即圖閘704(3)的或候選閘的混淆真值表),根據密鑰型式之輸入值K
I5和K
I6,得到或邏輯閘604(3)的密鑰型式的輸出值K
c。及邏輯閘604(4)使用邏輯閘604(4)的目標混淆真值表TG(4)(亦即圖閘704(4)的及候選閘的混淆真值表),根據密鑰型式之輸入值K
a和K
b,得到及邏輯閘604(4)之密鑰型式輸出值K
d。非邏輯閘604(5)使用邏輯閘604(5)的目標混淆真值表TG(5)(亦即圖閘704(5)的非候選閘的混淆真值表),根據密鑰型式之輸入值K
c,得到非邏輯閘604(5)之密鑰型式的輸出值K
e。及邏輯閘604(6)使用及邏輯閘604(6)的目標混淆真值表TG(6)(亦即圖閘704(6)的及候選閘的混淆真值表),根據密鑰型式之輸入值K
d和K
e,得到及邏輯閘604(6)的密鑰型式的輸出值K
O1。
電路單元602(2)至602(T)執行類似的程序,以分別產生密鑰型式之輸出值K
O2至K
OT。編譯後NN模型的密鑰型式之編譯後模型值係被產生,其為(K
O1K
O2K
O3... K
OT)。伺服器202接著將編譯後NN模型的密鑰型式之編譯後模型值(K
O1K
O2K
O3... K
OT)傳送到另一電子裝置214。
電子裝置214更根據此些密鑰編碼本,對此編譯後NN模型進行解密,以產生一機器碼。電子裝置214更執行此機器碼。亦即,電子裝置204將密鑰編碼本Key_cb傳送給電子裝置214,然後電子裝置214根據密鑰編碼本Key_cb,基於密鑰型式之編譯後模型值(K
O1K
O2... K
OT)對編譯後NN模型進行解密,以產生機器碼並執行機器碼。
例如,電子裝置214可以包括一傳送電路216、一處理器218、與AI執行模組220。傳送電路216接收密鑰型式之編譯後模型值(K
O1K
O2... K
OT)。處理器218藉由使用密鑰編碼本Key_cb對密鑰型式之編譯後模型值(K
O1K
O2... K
OT)進行解密,以產生二進位值(b
O1b
O2... b
OT)。處理器218進一步將二進位值(b
O1b
O2... b
OT)轉換為可由AI執行模組220執行的機器碼(或可部署碼(deployable code))。AI執行模組220可透過運行模組(runtime module)執行機器碼。
請參考第2圖,伺服器202可包括一傳送電路206與一處理器208。處理器208用以將一AI編譯器的一AI編譯器程式碼轉換為一混淆電路碼。處理器208係執行以下程序。處理器208將對應至混淆電路碼之一混淆電路的一電路圖,經由傳送電路206傳送至一電子裝置204。混淆電路具有多個邏輯閘。處理器208經由傳送電路206,藉由使用OT協定,從電子裝置204接收對應至各邏輯閘之多個候選閘的多個混淆真值表。
處理器208基於對應至各邏輯閘之此些候選閘的此些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表。
電子裝置204產生對應至各邏輯閘之此些候選閘的多個密鑰編碼本。電子裝置204根據此些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型。處理器208更用以藉由各邏輯閘的目標混淆真值表,根據混淆電路碼產生加密後NN模型的一編譯後NN模型。
請參考第2圖,電子裝置204可包括一傳送電路210與一處理器212。處理器212用以協助伺服器202以將一AI編譯器的一AI編譯器程式碼轉換為一混淆電路碼。處理器212係執行以下程序。處理器212經由傳送電路210,從伺服器202接收對應至混淆電路碼之一混淆電路的一電路圖。混淆電路具有多個邏輯閘。處理器212產生對應至各邏輯閘之多個候選閘的多個密鑰編碼本。處理器212產生對應至各邏輯閘之此些候選閘的多個混淆真值表。處理器212藉由使用OT協定,將對應至各邏輯閘之此些候選閘的此些混淆真值表經由傳送電路210傳送至伺服器202。
處理器212更用以根據此些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型。伺服器202基於對應至各邏輯閘的此些候選閘的此些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表。並由伺服器202藉由各邏輯閘的目標混淆真值表,根據混淆電路碼產生加密後NN模型的一編譯後NN模型。
雖然第2圖的實施例繪示了電子裝置204和電子裝置214,在一些實施例中,電子裝置214可以合併至電子裝置204。因此,伺服器202的處理器208可將編譯後的NN模型傳送至電子裝置204,電子裝置204根據密鑰編碼本對編譯後NN模型進行解密,以產生機器碼,並執行此機器碼。
藉由根據密鑰編碼本對NN模型進行加密並透過使用OT協定傳送混淆真值表,可使模型提供者(客戶端)提供的NN模型的內容不會洩漏給雲端伺服器,而使得NN模型的私密性受到保護。另外,藉由傳送電路圖而非傳送混淆電路,並使用混淆電路碼,且透過使用OT協定來傳送混淆真值表,雲端伺服器之AI編譯器的內容不會被洩漏給客戶端。因此,AI編譯器的私密性也受到保護。
本揭露提供了一種安全的AI編譯器(神經網路編譯器、深度學習編譯器),可以在不知道預訓練模型、模型參數、權重的情況下完成NN編譯,以產生編譯後之優化加密文件。然後,客戶端可以解密此加密文件,以產生可以在硬體上執行的低階機器碼。本揭露可以實現保護NN模型不被編譯器解碼的功能。本揭露實施例可以增加對雲端AI編譯器服務的模型私密性之保護。藉由使用模糊傳輸協定和混淆電路(混淆邏輯閘)技術,實現了NN模型編譯的私密性保護機制。透過本揭露的實施例,模型開發者可以保護其NN模型,並且使用者可以透過從模型開發者處得到用來解密的資訊(例如,密鑰編碼本)來執行編譯後的模型程式碼。
綜上所述,雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露。本揭露所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
102~114:流程步驟
200:系統
202:伺服器
204,214:電子裝置
206,210,216:傳送電路
208,212,218:處理器
220:AI執行模組
502:布林電路
504,516,520:及閘
506,508:輸入線
510:輸出線
512,514:或閘
518:非閘
600:混淆電路
602(1)~602(T):電路單元
604(1)~604(6),604(N):邏輯閘
700:電路圖
702(1)~702(T):圖形單元
704(1)~704(6):圖閘
第1圖繪示根據本揭露之實施例的神經網路之處理方法的流程圖。
第2圖繪示用以處理神經網路之系統的方塊圖。
第3A圖繪示一第一OT情境。
第3B圖繪示一第二OT情境。
第3C圖繪示OT要求。
第4A圖繪示2選1模糊傳輸協定的流程。
第4B圖繪示n選1模糊傳輸協定的流程。
第5A圖繪示混淆電路協定的混淆電路之一例。
第5B圖繪示及閘的輸入線密鑰和輸出線密鑰的示例。
第5C圖顯示第5B圖之及閘對應的真值表,與第5B圖的及閘對應之加密真值表(混淆真值表)。
第6圖顯示混淆電路之一例。
第7圖繪示對應至第6圖的混淆電路的電路圖之一例。
第8A圖到第8H圖分別繪示及候選閘、或候選閘、反及候選閘、反或候選閘、互斥或候選閘、互斥反或候選閘、緩衝器候選閘、和非候選閘的輸入線密鑰、輸出線密鑰、真值表和對應的加密真值表之示例。
102~114:流程步驟
Claims (20)
- 一種神經網路(Neural Network, NN)之處理方法,包括: 將一人工智慧(Artificial Intelligence, AI)編譯器(compiler)的一AI編譯器程式碼轉換為一混淆電路碼(garbled circuit code),包括以下步驟: 一伺服器將對應至該混淆電路碼之一混淆電路的一電路圖,傳送至一第一電子裝置,該混淆電路具有複數個邏輯閘; 該第一電子裝置產生對應至各邏輯閘之複數個候選閘的複數個密鑰編碼本(key codebook); 該第一電子裝置產生對應至各邏輯閘之該些候選閘的複數個混淆真值表; 該第一電子裝置藉由使用模糊傳輸(Oblivious Transfer, OT)協定,將對應至各邏輯閘之該些候選閘的該些混淆真值表傳送至該伺服器;及 該伺服器基於對應至各邏輯閘之該些候選閘的該些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表; 該第一電子裝置根據該些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型;以及 該伺服器藉由各邏輯閘的該目標混淆真值表,根據該混淆電路碼產生該加密後NN模型的一編譯後NN模型。
- 如請求項1所述之方法,其中該些候選閘包括至少一單輸入候選閘和至少一雙輸入候選閘,該些混淆真值表包括複數個單輸入混淆真值表和複數個雙輸入混淆真值表,該至少一單輸入候選閘包括一緩衝器閘(buffer gate)和一非閘(NOT gate),且該至少一雙輸入候選閘包括一及閘(AND gate)、一或閘(OR gate)、一反及閘(NAND gate)、一反或閘(NOR gate)、一互斥或閘(XOR gate)、和一互斥反或閘(XNOR gate)。
- 如請求項1所述之方法,其中該混淆電路的該電路圖為一編號後電路圖,該編號後電路圖具有複數個被編號且不指示圖閘類型的圖閘,該邏輯閘包括一第1個邏輯閘至一第N個邏輯閘,該些候選閘具有一第1個類型候選閘到一第M個類型候選閘,M和N為整數,該第一電子裝置經由使用OT協定,將對應至各邏輯閘之該些候選閘的該些混淆真值表傳送至該伺服器之步驟包括: 該伺服器傳送該些邏輯閘中的一第i個邏輯閘對應的一請求R(i)至該第一電子裝置,其中i為1至N之間的整數;以及 回應於該第一電子裝置的該請求R(i),將對應至該第i個邏輯閘之該第1個類型候選閘的該混淆真值表、該第2個類型候選閘的該混淆真值表、……該第M個類型候選閘的該混淆真值表傳送至該伺服器; 其中,該伺服器基於對應至各邏輯閘之該些候選閘的該些混淆真值表,經由使用OT協定,得到各邏輯閘的該目標混淆真值表的步驟包括:該伺服器經由使用OT協定,透過一解密程序,得到對應至一第j個類型候選閘的該混淆真值表的該第i個邏輯閘的該目標混淆真值表,該第j個類型候選閘與該第i個邏輯閘的閘之類型相同,j為1至M之間的整數。
- 如請求項1所述之方法,其中,每個候選閘具有至少一輸入線和一輸出線,該第一電子裝置產生對應至各邏輯閘之該些候選閘的該些混淆真值表的步驟包括: 對於該些候選閘中的一特定候選閘,提供對應至該特定候選閘的該至少一輸入線的至少一輸入線密鑰,並提供對應至該特定候選閘的該輸出線的至少一輸出線密鑰;以及 藉由使用該至少一輸入線密鑰對該輸出線密鑰進行加密,來加密該特定候選閘的一真值表的每一列。
- 如請求項1所述之方法,其中,該第一電子裝置根據該些密鑰編碼本,對該NN模型進行加密,以產生該加密後NN模型的步驟包括: 將該NN模型轉換為複數個二進位值;以及 根據該些密鑰編碼本,將該些二進位值轉換為複數個密鑰型式之原始模型值; 其中,該些密鑰型式之原始模型值係被傳送到伺服器。
- 如請求項5所述之方法,其中,該伺服器藉由各邏輯閘的該目標混淆真值表,根據該混淆電路碼產生該加密後NN模型的該編譯後NN模型的步驟包括: 根據該些密鑰型式之原始模型值執行該混淆電路碼,以產生該編譯後NN模型的複數個密鑰型式之編譯後模型值。
- 如請求項1所述之方法,更包括: 該第一電子裝置或一第二電子裝置根據該些密鑰編碼本,對該編譯後NN模型進行解密,以產生一機器碼;以及 由該第一電子裝置或該第二電子裝置執行該機器碼。
- 一種用以處理神經網路之伺服器,包括: 一傳送電路; 一處理器,用以將一AI編譯器的一AI編譯器程式碼轉換為一混淆電路碼,該處理器係執行以下程序: 將對應至該混淆電路碼之一混淆電路的一電路圖,經由該傳送電路傳送至一第一電子裝置,該混淆電路具有複數個邏輯閘; 經由該傳送電路,藉由使用OT協定,從該第一電子裝置接收對應至各邏輯閘之複數個候選閘的複數個混淆真值表;及 基於對應至各邏輯閘之該些候選閘的該些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表; 其中,該第一電子裝置產生對應至各邏輯閘之該些候選閘的複數個密鑰編碼本,該第一電子裝置根據該些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型,該處理器更用以藉由各邏輯閘的該目標混淆真值表,根據該混淆電路碼產生該加密後NN模型的一編譯後NN模型。
- 如請求項8所述之伺服器,其中,該些候選閘包括至少一單輸入候選閘和至少一雙輸入候選閘,該些混淆真值表包括複數個單輸入混淆真值表和複數個雙輸入混淆真值表,該至少一單輸入候選閘包括一緩衝器閘和一非閘,且該至少一雙輸入候選閘包括一及閘、一或閘、一反及閘、一反或閘、一互斥或閘,和一互斥反或閘。
- 如請求項8所述之伺服器,其中該混淆電路的該電路圖為一編號後電路圖,該編號後電路圖具有複數個被編號且不指示圖閘類型的圖閘,該邏輯閘包括一第1個邏輯閘至一第N個邏輯閘,該些候選閘具有一第一個類型候選閘到一第M個類型候選閘,M和N為整數,經由該傳送電路,藉由使用OT協定,從該第一電子裝置接收對應至各邏輯閘之該些候選閘的該些混淆真值表之程序包括: 傳送對應至該些邏輯閘中的一第i個邏輯閘一請求R(i)至該第一電子裝置,其中i為1至N之間的整數;以及 接收對應至與該請求R(i)相關之該第i個邏輯閘之該第1個類型候選閘的該混淆真值表、該第2個類型候選閘的該混淆真值表、……該第M個類型候選閘的該混淆真值表; 其中,該伺服器基於對應至各邏輯閘之該些候選閘的該些混淆真值表,經由使用OT協定,得到各邏輯閘的該目標混淆真值表的程序包括經由使用OT協定,透過一解密程序,得到對應至一第j個類型候選閘的該混淆真值表的該第i個邏輯閘的該目標混淆真值表,該第j個類型候選閘與該第i個邏輯閘的閘之類型相同,j為1至M之間的整數。
- 如請求項8所述之伺服器,其中每個候選閘具有至少一輸入線和一輸出線,對應至各邏輯閘之該些候選閘的該些混淆真值表係藉由以下程序產生: 對於該些候選閘中的一特定候選閘,提供對應至該特定候選閘的該至少一輸入線的至少一輸入線密鑰,提供對應至該特定候選閘的該輸出線的至少一輸出線密鑰,並藉由使用該至少一輸入線密鑰對該輸出線密鑰進行加密,來加密該特定候選閘的一真值表的每一列。
- 如請求項8所述之伺服器,其中,透過將該NN模型轉換為複數個二進位值,並根據該些密鑰編碼本,將該些二進位值轉換為複數個密鑰型式之原始模型值來對該NN模型進行加密; 其中,該編譯後NN模型係藉由根據該些密鑰型式之原始模型值執行該混淆電路碼,以產生該編譯後NN模型的複數個密鑰型式之編譯後模型值來產生。
- 如請求項8所述之伺服器,其中,該處理器更用以將該編譯後NN模型傳送至該第一電子裝置; 其中,該編譯後NN模型由該第一電子裝置根據該些密鑰編碼本,進行解密以產生一機器碼,該機器碼係由該第一電子裝置執行。
- 如請求項8所述之伺服器,其中,該處理器更用以將該編譯後NN模型傳送到一第二電子裝置; 其中,該編譯後NN模型由該第二電子裝置根據該些密鑰編碼本,進行解密以產生一機器碼,該機器碼係由該第二電子裝置執行。
- 一種用以處理神經網路之電子裝置,包括: 一傳送電路; 一處理器,用以協助一伺服器以將一AI編譯器的一AI編譯器程式碼轉換為一混淆電路碼,該處理器係執行以下程序: 經由該傳送電路,從該伺服器接收對應至該混淆電路碼之一混淆電路的一電路圖,該混淆電路具有複數個邏輯閘; 產生對應至各邏輯閘之複數個候選閘的複數個密鑰編碼本; 產生對應至各邏輯閘之該些候選閘的複數個混淆真值表;及 藉由使用OT協定,將對應至各邏輯閘之該些候選閘的該些混淆真值表經由該傳送電路傳送至該伺服器; 其中,該處理器更用以根據該些密鑰編碼本,對一NN模型進行加密,以產生一加密後NN模型,該伺服器基於對應至各邏輯閘的該些候選閘的該些混淆真值表,經由使用OT協定,得到各邏輯閘的一目標混淆真值表,並由該伺服器藉由各邏輯閘的該目標混淆真值表,根據該混淆電路碼產生該加密後NN模型的一編譯後NN模型。
- 如請求項15所述之電子裝置,其中該些候選閘包括至少一單輸入候選閘和至少一雙輸入候選閘,該些混淆真值表包括複數個單輸入混淆真值表和複數個雙輸入混淆真值表,該至少一單輸入候選閘包括一緩衝器閘和一非閘,且該至少一雙輸入候選閘包括一及閘、一或閘、一反及閘、一反或閘、一互斥或閘、和一互斥反或閘。
- 如請求項15所述之電子裝置,其中該混淆電路的該電路圖係為一編號後電路圖,該編號後電路圖具有複數個被編號且不指示圖閘類型的圖閘,該邏輯閘包括一第1個邏輯閘至一第N個邏輯閘,該些候選閘具有一第1個類型候選閘至一第M個類型候選閘,M和N為整數,藉由使用OT協定,將對應至各邏輯閘之該些候選閘的該些混淆真值表經由該傳送電路傳送至該伺服器的程序包括: 接收來自該伺服器之對應至該些邏輯閘中的一第i個邏輯閘一請求R(i),其中i為1至N之間的整數;以及 回應於該請求R(i),將對應至該第i個邏輯閘之該第1個類型候選閘的該混淆真值表、該第2個類型候選閘的該混淆真值表、……該第M個類型候選閘的該混淆真值表傳送至該伺服器; 其中,藉由使用OT協定,各邏輯閘的該目標混淆真值表係藉由該伺服器透過一解密程序,得到對應至一第j個類型候選閘的該混淆真值表的該第i個邏輯閘的該目標混淆真值表,該第j個類型候選閘與該第i個邏輯閘的閘之類型相同,j為1至M之間的整數。
- 如請求項15所述之電子裝置,其中,每個候選閘具有至少一輸入線和一輸出線,產生對應至各邏輯閘之該些候選閘的該些混淆真值表的程序包括: 對於該些候選閘中的一特定候選閘,提供對應至該特定候選閘的該至少一輸入線的至少一輸入線密鑰,並提供對應至該特定候選閘的該輸出線的至少一輸出線密鑰;以及 藉由使用該至少一輸入線密鑰對該輸出線密鑰進行加密,來加密該特定候選閘的一真值表的每一列。
- 如請求項15所述之電子裝置,其中,係藉由將該NN模型轉換為複數個二進位值,並根據該些密鑰編碼本,將該些二進位值轉換為複數個密鑰型式之原始模型值來加密NN模型,並且該些密鑰型式之原始模型值係傳送到該伺服器; 其中,該加密NN模型之該編譯後NN模型係藉由根據該些密鑰型式之原始模型值執行該混淆電路碼,以產生該編譯後NN模型的複數個密鑰型式之編譯後模型值所產生。
- 如請求項15所述之電子裝置,其中,該處理器更用以根據該些密鑰編碼本,對該編譯後NN模型進行解密,以產生一機器碼,並執行該機器碼。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110148953A TWI776760B (zh) | 2021-12-27 | 2021-12-27 | 神經網路之處理方法及其伺服器與電子裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110148953A TWI776760B (zh) | 2021-12-27 | 2021-12-27 | 神經網路之處理方法及其伺服器與電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI776760B true TWI776760B (zh) | 2022-09-01 |
TW202326522A TW202326522A (zh) | 2023-07-01 |
Family
ID=84957893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110148953A TWI776760B (zh) | 2021-12-27 | 2021-12-27 | 神經網路之處理方法及其伺服器與電子裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI776760B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045688A (zh) * | 2019-12-06 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种模型安全部署和预测的方法和系统 |
US20200233979A1 (en) * | 2019-01-17 | 2020-07-23 | Koninklijke Philips N.V. | Machine learning model validation and authentication |
CN111967038A (zh) * | 2019-09-30 | 2020-11-20 | 华控清交信息科技(北京)有限公司 | 数据处理系统、方法、设备、编辑器及存储介质 |
CN112334917A (zh) * | 2018-12-31 | 2021-02-05 | 英特尔公司 | 对采用人工智能的系统进行防护 |
TWI724809B (zh) * | 2019-08-09 | 2021-04-11 | 開曼群島商創新先進技術有限公司 | 模型參數確定方法、裝置和電子設備 |
US20210241806A1 (en) * | 2020-01-30 | 2021-08-05 | Stmicroelectronics International N.V. | Streaming access memory device, system and method |
-
2021
- 2021-12-27 TW TW110148953A patent/TWI776760B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112334917A (zh) * | 2018-12-31 | 2021-02-05 | 英特尔公司 | 对采用人工智能的系统进行防护 |
US20200233979A1 (en) * | 2019-01-17 | 2020-07-23 | Koninklijke Philips N.V. | Machine learning model validation and authentication |
TWI724809B (zh) * | 2019-08-09 | 2021-04-11 | 開曼群島商創新先進技術有限公司 | 模型參數確定方法、裝置和電子設備 |
CN111967038A (zh) * | 2019-09-30 | 2020-11-20 | 华控清交信息科技(北京)有限公司 | 数据处理系统、方法、设备、编辑器及存储介质 |
CN111045688A (zh) * | 2019-12-06 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种模型安全部署和预测的方法和系统 |
US20210241806A1 (en) * | 2020-01-30 | 2021-08-05 | Stmicroelectronics International N.V. | Streaming access memory device, system and method |
Also Published As
Publication number | Publication date |
---|---|
TW202326522A (zh) | 2023-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Abd El-Latif et al. | Secure data encryption based on quantum walks for 5G Internet of Things scenario | |
Riazi et al. | Chameleon: A hybrid secure computation framework for machine learning applications | |
Naveed et al. | Controlled functional encryption | |
US20200151356A1 (en) | System and method for fast and efficient searching of encrypted ciphertexts | |
JP6880017B2 (ja) | 信頼できないコンピュータ上でプライベートプログラムを実行するためのシステム及びプロセス | |
Cheng et al. | Secure similar sequence query on outsourced genomic data | |
TW201448552A (zh) | 隱私保護之脊狀回歸 | |
EP3264671A1 (en) | Key replacement direction control system, and key replacement direction control method | |
Schneider | Engineering secure two-party computation protocols: design, optimization, and applications of efficient secure function evaluation | |
JPWO2019130528A1 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
US11101980B2 (en) | System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption | |
US11575501B2 (en) | Preserving aggregation using homomorphic encryption and trusted execution environment, secure against malicious aggregator | |
CN111428887A (zh) | 一种基于多个计算节点的模型训练控制方法、装置及系统 | |
WO2021239006A1 (zh) | 基于秘密共享的训练方法、装置、电子设备及存储介质 | |
Fang et al. | Secure function evaluation using an fpga overlay architecture | |
Faraoun | A genetic strategy to design cellular automata based block ciphers | |
Holz et al. | Linear-complexity private function evaluation is practical | |
US20230208639A1 (en) | Neural network processing method and server and electrical device therefor | |
TWI776760B (zh) | 神經網路之處理方法及其伺服器與電子裝置 | |
Schneider | Practical Secure Function Evaluation. | |
CN113645022A (zh) | 一种确定隐私集合交集方法、装置、电子设备及存储介质 | |
Yuan et al. | Secure integrated circuit design via hybrid cloud | |
Hinkelmann et al. | A cryptographically t‐private auction system | |
Mazonka et al. | Practical data-in-use protection using binary decision diagrams | |
JP6642425B2 (ja) | 条件生成装置、条件生成方法、条件生成プログラム、データベース検索システム、及び、データベース検索プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |