本發(fā)明屬于信息安全,具體涉及一種用于提高人工智能代碼和數(shù)據(jù)安全性的計(jì)算系統(tǒng)及方法。
背景技術(shù):
1、隨著大數(shù)據(jù)和人工智能的蓬勃發(fā)展,數(shù)據(jù)的重要性和安全性也日益得到人們的關(guān)注和重視。如何既能充分發(fā)揮既有數(shù)據(jù)的價(jià)值,又能確保數(shù)據(jù)的安全性和隱私性,即如何能真正實(shí)現(xiàn)“數(shù)據(jù)可用不可見”,仍然是目前信息安全技術(shù)領(lǐng)域面臨的一項(xiàng)重要挑戰(zhàn)。現(xiàn)有的用戶數(shù)據(jù)隱私保護(hù)計(jì)算技術(shù)方案可分為基于軟件的解決方案和基于硬件隔離的解決方案。基于軟件的解決方案通過運(yùn)用不同軟件機(jī)制和算法來保護(hù)數(shù)據(jù)的安全性和隱私性,主要包括安全多方計(jì)算(secure?multi-party?computation)技術(shù),基于同態(tài)加密(homomorphicencryption)和差分隱私(differential?privacy)的技術(shù),以及用于人工智能的聯(lián)邦學(xué)習(xí)機(jī)制和技術(shù)。基于硬件隔離的技術(shù),主要有基于可信計(jì)算執(zhí)行環(huán)境(trusted?executionenvironment,tee)的機(jī)密計(jì)算技術(shù)(主要包括intel?sgx以及arm?trustzone),以及其他一些基于獨(dú)立于cpu的片上計(jì)算系統(tǒng)等技術(shù)。
2、安全多方計(jì)算技術(shù)以密碼學(xué)為基礎(chǔ),其安全性可以被密碼學(xué)理論證明,但是由于其包含復(fù)雜的密碼學(xué)操作,計(jì)算開銷大,通信耗時(shí)長,在密鑰管理、簡(jiǎn)單統(tǒng)計(jì)和一些線性的機(jī)器學(xué)習(xí)模型等應(yīng)用場(chǎng)景中可以適用,但是對(duì)于深度神經(jīng)網(wǎng)絡(luò)等復(fù)雜場(chǎng)景,性能和網(wǎng)絡(luò)就會(huì)成為其應(yīng)用的瓶頸?;谕瑧B(tài)加密的技術(shù)方案由于所有計(jì)算都是密文的,因此對(duì)于隱私的保護(hù)程度高,但是部分同態(tài)加密算法支持的計(jì)算類型有限,應(yīng)用范圍比較窄;而全同態(tài)加密的計(jì)算開銷非常大,使其性能和應(yīng)用場(chǎng)合均受到限制?;诓罘蛛[私的計(jì)算技術(shù)保護(hù)的目標(biāo)是計(jì)算結(jié)果而不是計(jì)算過程,同時(shí)差分隱私在數(shù)據(jù)中會(huì)引入噪聲,因此會(huì)導(dǎo)致計(jì)算結(jié)果的準(zhǔn)確性降低,對(duì)于那些計(jì)算準(zhǔn)確度要求高的應(yīng)用如人臉識(shí)別等不適用。本地差分隱私雖然也保護(hù)計(jì)算過程,但是其引入的誤差更大,因此應(yīng)用場(chǎng)景更受到限制。聯(lián)邦學(xué)習(xí)雖然不移動(dòng)數(shù)據(jù),但是目前的聯(lián)邦學(xué)習(xí)機(jī)制在模型更新過程中還是存在一定程度的隱私泄露風(fēng)險(xiǎn),而且其模型聚合過程也受到網(wǎng)絡(luò)帶寬與延遲等因素的制約,存在網(wǎng)絡(luò)瓶頸。此外,基于軟件的技術(shù)方案還缺乏對(duì)參與計(jì)算過程的軟件或代碼本身的保護(hù),其安全性還依賴于運(yùn)行環(huán)境的安全性。與基于軟件的技術(shù)方案相比,基于硬件隔離的機(jī)密計(jì)算技術(shù)方案兼顧了安全性、通用性和高效性,但是其不足之處在于目前的技術(shù)方案中可信執(zhí)行環(huán)境和不可信執(zhí)行環(huán)境還需共享計(jì)算和內(nèi)存資源,這就導(dǎo)致其存在側(cè)信道攻擊等安全風(fēng)險(xiǎn)?,F(xiàn)有基于硬件隔離的技術(shù)方案雖然對(duì)數(shù)據(jù)計(jì)算過程中的計(jì)算代碼進(jìn)行了一定程度的保護(hù),但還缺乏對(duì)計(jì)算結(jié)果的保護(hù)。同時(shí),現(xiàn)有基于硬件隔離的技術(shù)方案還引入了新的計(jì)算架構(gòu)和計(jì)算指令,因此改變了應(yīng)用的編程方式,存在兼容性問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是為克服基于硬件隔離的安全技術(shù)解決方案存在的不足,提出一種用于提高人工智能代碼和數(shù)據(jù)安全性的計(jì)算系統(tǒng)及方法。本發(fā)明具有高安全性、高效性、高通用性和高兼容性,可對(duì)人工智能計(jì)算代碼和計(jì)算結(jié)果進(jìn)行有效保護(hù),全方位進(jìn)一步解決“數(shù)據(jù)可算不可見”問題。
2、本發(fā)明實(shí)施例提出一種用于提高人工智能代碼和數(shù)據(jù)安全性的計(jì)算系統(tǒng),包括通過互聯(lián)網(wǎng)連接的用戶計(jì)算機(jī)和服務(wù)計(jì)算機(jī);所述服務(wù)計(jì)算機(jī)的主機(jī)上設(shè)置有一個(gè)或多個(gè)密室計(jì)算安全裝置;所述用戶計(jì)算機(jī)用于發(fā)起人工智能計(jì)算,通過所述互聯(lián)網(wǎng)為所述服務(wù)計(jì)算機(jī)提供加密后的人工智能計(jì)算代碼及對(duì)應(yīng)數(shù)字簽名和加密后的計(jì)算所需用戶數(shù)據(jù)及對(duì)應(yīng)數(shù)字簽名;所述服務(wù)計(jì)算機(jī)用于接收加密后的人工智能計(jì)算代碼及對(duì)應(yīng)數(shù)字簽名和加密后的用戶數(shù)據(jù)及對(duì)應(yīng)數(shù)字簽名,利用所述密室計(jì)算安全裝置對(duì)所述人工智能計(jì)算代碼和所述用戶數(shù)據(jù)解密并進(jìn)行數(shù)字簽名驗(yàn)證后,完成相應(yīng)的計(jì)算,將計(jì)算結(jié)果進(jìn)行數(shù)字簽名并加密后通過所述互聯(lián)網(wǎng)返回給所述用戶計(jì)算機(jī)。
3、在本發(fā)明的一個(gè)具體實(shí)施例中,所述服務(wù)計(jì)算機(jī)按照輪流方式依次調(diào)度各個(gè)所述密室計(jì)算安全裝置。
4、在本發(fā)明的一個(gè)具體實(shí)施例中,所述用戶計(jì)算機(jī)上設(shè)置有一個(gè)用戶密碼處理單元,用于對(duì)密鑰進(jìn)行管理,對(duì)所述用戶計(jì)算機(jī)的所述人工智能計(jì)算代碼和所述用戶數(shù)據(jù)進(jìn)行加密及數(shù)字簽名,以及對(duì)從所述服務(wù)計(jì)算機(jī)返回的計(jì)算結(jié)果進(jìn)行解密及數(shù)字簽名驗(yàn)證。
5、在本發(fā)明的一個(gè)具體實(shí)施例中,所述密室計(jì)算安全裝置包括:計(jì)算單元、易失性存儲(chǔ)單元、非易失性存儲(chǔ)單元、應(yīng)用與數(shù)據(jù)處理單元、人工智能協(xié)處理單元、密碼處理單元和主機(jī)通信接口單元;其中,所述應(yīng)用與數(shù)據(jù)處理單元通過物理線路分別連接計(jì)算單元、非易失性存儲(chǔ)單元、密碼處理單元和主機(jī)通信接口單元,所述易失性存儲(chǔ)單元通過物理線路分別連接計(jì)算單元和非易失性存儲(chǔ)單元,所述計(jì)算單元通過物理線路還連接人工智能協(xié)處理單元;
6、所述應(yīng)用與數(shù)據(jù)處理單元通過所述主機(jī)通信接口單元接收所述用戶計(jì)算機(jī)向所述服務(wù)計(jì)算機(jī)發(fā)送的加密后的所述人工智能計(jì)算代碼和所述用戶數(shù)據(jù),通過所述密碼處理單元進(jìn)行解密和驗(yàn)證后將所述人工智能計(jì)算代碼和所述用戶數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)單元中,并將所述計(jì)算單元進(jìn)行人工智能計(jì)算后的計(jì)算結(jié)果利用所述密碼處理單元進(jìn)行加密和簽名后通過所述主機(jī)通信接口單元發(fā)送給所述服務(wù)計(jì)算機(jī)主機(jī);
7、所述非易失性存儲(chǔ)單元,用于存儲(chǔ)來自于所述應(yīng)用與數(shù)據(jù)處理單元處理后的所述人工智能計(jì)算代碼和所述用戶數(shù)據(jù),以及存儲(chǔ)所述計(jì)算單元進(jìn)行人工智能計(jì)算后的計(jì)算結(jié)果;
8、所述易失性存儲(chǔ)單元,用于按照所述計(jì)算單元的要求,加載存儲(chǔ)在所述非易失性存儲(chǔ)單元中的所述人工智能計(jì)算代碼和所述用戶數(shù)據(jù);
9、所述計(jì)算單元,用于加載存儲(chǔ)在所述易失性存儲(chǔ)單元中的所述人工智能計(jì)算代碼和所述用戶數(shù)據(jù)并進(jìn)行計(jì)算,然后將計(jì)算結(jié)果通過所述易失性存儲(chǔ)單元存儲(chǔ)在所述非易失性存儲(chǔ)單元中;
10、所述密碼處理單元用于協(xié)同所述用戶密碼處理單元進(jìn)行密鑰管理,對(duì)所述應(yīng)用與數(shù)據(jù)處理單元中的所述人工智能代碼和所述用戶數(shù)據(jù)進(jìn)行解密及數(shù)字簽名驗(yàn)證,并對(duì)所述應(yīng)用與數(shù)據(jù)處理單元中的計(jì)算結(jié)果進(jìn)行加密及數(shù)字簽名;
11、所述人工智能協(xié)處理單元用于輔助所述計(jì)算單元完成人工智能計(jì)算,以加速數(shù)據(jù)計(jì)算過程;
12、所述主機(jī)通信接口單元用于通過私有專用信道與所述服務(wù)計(jì)算機(jī)主機(jī)通信。
13、在本發(fā)明的一個(gè)具體實(shí)施例中,所述密碼處理單元包括通過物理線路相互連接的第一密鑰管理與分發(fā)模塊、第一加解密模塊、第一數(shù)字簽名及驗(yàn)證模塊;
14、所述第一密鑰管理與分發(fā)模塊用于完成加密密鑰和簽名密鑰的生成、存儲(chǔ)、管理與分發(fā);所述第一加解密模塊用于執(zhí)行加解密算法對(duì)所述應(yīng)用與數(shù)據(jù)處理單元中的所述人工智能代碼和所述用戶數(shù)據(jù)進(jìn)行解密,以及對(duì)所述應(yīng)用與數(shù)據(jù)處理單元中的計(jì)算結(jié)果進(jìn)行加密;所述第一數(shù)字簽名及驗(yàn)證模塊用于對(duì)所述應(yīng)用與數(shù)據(jù)處理單元中的所述人工智能代碼和所述用戶數(shù)據(jù)執(zhí)行數(shù)字簽名驗(yàn)證,以及對(duì)所述應(yīng)用與數(shù)據(jù)處理單元中的計(jì)算結(jié)果進(jìn)行數(shù)字簽名。
15、在本發(fā)明的一個(gè)具體實(shí)施例中,所述用戶密碼處理單元包括通過物理線路相互連接的第二密鑰管理與分發(fā)模塊、第二加解密模塊、第二數(shù)字簽名及驗(yàn)證模塊;
16、所述第二密鑰管理與分發(fā)模塊與所述第一密鑰管理與分發(fā)模塊協(xié)作,共同完成加密密鑰和簽名密鑰的生成、存儲(chǔ)、管理與分發(fā);所述第二加解密模塊用于執(zhí)行所述加解密算法以對(duì)所述用戶計(jì)算機(jī)中的所述人工智能代碼和所述用戶數(shù)據(jù)進(jìn)行加密,對(duì)來自所述服務(wù)計(jì)算機(jī)的計(jì)算結(jié)果進(jìn)行解密;所述第二數(shù)字簽名及驗(yàn)證模塊用于對(duì)所述用戶計(jì)算機(jī)中的所述人工智能代碼和所述用戶數(shù)據(jù)進(jìn)行數(shù)字簽名,對(duì)來自所述服務(wù)計(jì)算機(jī)的計(jì)算結(jié)果執(zhí)行數(shù)字簽名驗(yàn)證。
17、在本發(fā)明的一個(gè)具體實(shí)施例中,所述用戶密碼處理單元與所述密碼處理單元基于seckms密鑰管理系統(tǒng)構(gòu)建線上密鑰生成與交換。
18、本發(fā)明實(shí)施例還提出一種基于上述系統(tǒng)的計(jì)算方法,包括以下步驟:
19、1)用戶在用戶計(jì)算機(jī)上準(zhǔn)備用戶數(shù)據(jù)及對(duì)應(yīng)的人工智能計(jì)算代碼;
20、2)用戶計(jì)算機(jī)的用戶密碼處理單元和服務(wù)計(jì)算機(jī)上被選取的密室計(jì)算安全裝置中的密碼處理單元進(jìn)行通信,完成密碼生成和交換;包括:
21、服務(wù)計(jì)算機(jī)主機(jī)選取密室計(jì)算安全裝置;
22、用戶計(jì)算機(jī)的用戶密碼處理單元通過第二密鑰管理與分發(fā)模塊生成一個(gè)加密密鑰:第一密鑰,生成一對(duì)用于簽名的簽名密鑰對(duì):用戶公鑰和用戶私鑰,并與服務(wù)計(jì)算機(jī)上被選取的密室計(jì)算安全裝置中的密碼處理單元中第一密鑰管理與分發(fā)模塊進(jìn)行通信,完成密鑰分發(fā);
23、服務(wù)計(jì)算機(jī)上被選取的密室計(jì)算安全裝置中的密碼處理單元通過第一密鑰管理與分發(fā)模塊生成一個(gè)加密密鑰:第二密鑰,生成一對(duì)用于簽名的簽名密鑰對(duì):服務(wù)公鑰和服務(wù)私鑰,并與用戶計(jì)算機(jī)的用戶密碼處理單元中第二密鑰管理與分發(fā)模塊進(jìn)行通信,完成密鑰分發(fā);
24、3)用戶計(jì)算機(jī)對(duì)人工智能計(jì)算代碼和用戶數(shù)據(jù)進(jìn)行簽名及加密,得到加密計(jì)算代碼和對(duì)應(yīng)加密簽名以及加密用戶數(shù)據(jù)和對(duì)應(yīng)加密簽名;包括:
25、用戶計(jì)算機(jī)使用用戶私鑰,利用用戶密碼處理單元中第二數(shù)字簽名及驗(yàn)證模塊中的預(yù)選數(shù)字簽名算法,對(duì)人工智能計(jì)算代碼進(jìn)行簽名,得到計(jì)算代碼簽名;對(duì)用戶數(shù)據(jù)進(jìn)行簽名,得到用戶數(shù)據(jù)簽名;
26、用戶計(jì)算機(jī)使用第一密鑰和用戶密碼處理單元的第二加解密模塊中預(yù)選的對(duì)稱加密算法,對(duì)計(jì)算代碼、計(jì)算代碼簽名、用戶數(shù)據(jù)、用戶數(shù)據(jù)簽名的組合進(jìn)行加密,得到加密計(jì)算代碼和對(duì)應(yīng)加密簽名以及加密用戶數(shù)據(jù)和對(duì)應(yīng)加密簽名;
27、4)用戶計(jì)算機(jī)主機(jī)向服務(wù)計(jì)算機(jī)發(fā)送加密計(jì)算代碼和對(duì)應(yīng)加密簽名以及加密用戶數(shù)據(jù)和對(duì)應(yīng)加密簽名;服務(wù)計(jì)算機(jī)主機(jī)通過私有專用信道將加密計(jì)算代碼和對(duì)應(yīng)加密簽名以及加密用戶數(shù)據(jù)和對(duì)應(yīng)加密簽名發(fā)送給步驟2)中被選取的密室計(jì)算安全裝置;
28、5)服務(wù)計(jì)算機(jī)的密室計(jì)算安全裝置對(duì)接收到的加密計(jì)算代碼和對(duì)應(yīng)加密簽名以及加密用戶數(shù)據(jù)和對(duì)應(yīng)加密簽名進(jìn)行解密;包括:
29、密室計(jì)算安全裝置的應(yīng)用與數(shù)據(jù)處理單元通過主機(jī)通信接口單元和私有專用信道接收服務(wù)計(jì)算機(jī)主機(jī)發(fā)送過來的加密計(jì)算代碼和對(duì)應(yīng)加密簽名以及加密用戶數(shù)據(jù)和對(duì)應(yīng)加密簽名,將其存放在非易失性存儲(chǔ)單元中;
30、應(yīng)用與數(shù)據(jù)處理單元利用密碼處理單元中的第一加解密模塊利用第一密鑰和預(yù)選的對(duì)稱加密算法,對(duì)加密計(jì)算代碼和加密用戶數(shù)據(jù)進(jìn)行解密,并對(duì)計(jì)算代碼簽名和加密用戶數(shù)據(jù)簽名進(jìn)行解密,得到解密計(jì)算代碼、解密用戶數(shù)據(jù)、解密計(jì)算代碼簽名和解密用戶數(shù)據(jù)簽名,并存放在非易失性存儲(chǔ)單元中;
31、密碼處理單元使用數(shù)字簽名及驗(yàn)證模塊,利用用戶公鑰和預(yù)選的數(shù)字簽名算法,對(duì)解密計(jì)算代碼簽名和解密用戶數(shù)據(jù)簽名進(jìn)行驗(yàn)證:如果兩者均驗(yàn)證通過,則執(zhí)行步驟6);
32、6)密室計(jì)算安全裝置對(duì)解密計(jì)算代碼和解密用戶數(shù)據(jù)進(jìn)行處理,得到最終的計(jì)算結(jié)果;包括:
33、密室計(jì)算安全裝置的應(yīng)用與數(shù)據(jù)處理單元根據(jù)計(jì)算代碼的計(jì)算要求,利用計(jì)算單元將存儲(chǔ)在非易失性存儲(chǔ)單元中計(jì)算代碼的運(yùn)行環(huán)境代碼加載到易失性存儲(chǔ)單元中運(yùn)行;
34、應(yīng)用與數(shù)據(jù)處理單元利用計(jì)算單元和易失性存儲(chǔ)單元以及人工智能協(xié)處理單元運(yùn)行存儲(chǔ)在易失性存儲(chǔ)單元中的計(jì)算代碼,對(duì)存儲(chǔ)在非易失性存儲(chǔ)單元中的用戶數(shù)據(jù)進(jìn)行處理,得到計(jì)算結(jié)果,并將其存放在非易失性存儲(chǔ)單元中;
35、7)密室計(jì)算安全裝置將計(jì)算結(jié)果進(jìn)行簽名并加密,得到加密計(jì)算結(jié)果及加密計(jì)算結(jié)果簽名;包括:
36、密室計(jì)算安全裝置的密碼處理單元使用服務(wù)私鑰,利用用戶密碼處理單元中第一數(shù)字簽名及驗(yàn)證模塊預(yù)選的數(shù)字簽名算法,對(duì)計(jì)算結(jié)果進(jìn)行簽名,得到計(jì)算結(jié)果簽名;
37、密碼處理單元使用第二密鑰和用戶密碼處理單元的第一加解密模塊中預(yù)選的對(duì)稱密碼算法,對(duì)存放在非易失性存儲(chǔ)單元的計(jì)算結(jié)果和計(jì)算結(jié)果簽名進(jìn)行加密,得到加密計(jì)算結(jié)果及加密計(jì)算結(jié)果簽名;
38、8)服務(wù)計(jì)算機(jī)主機(jī)向用戶計(jì)算機(jī)發(fā)送加密計(jì)算結(jié)果及加密計(jì)算結(jié)果簽名;
39、9)用戶計(jì)算機(jī)上用戶密碼處理單元的第二加解密模塊利用步的第二密鑰和預(yù)選的對(duì)稱加密算法,對(duì)加密計(jì)算結(jié)果及加密計(jì)算結(jié)果簽名進(jìn)行解密,得到解密計(jì)算結(jié)果和解密計(jì)算結(jié)果簽名;
40、用戶密碼處理單元使用第二數(shù)字簽名及驗(yàn)證模塊,利用服務(wù)公鑰和預(yù)選的數(shù)字簽名算法,對(duì)解密計(jì)算結(jié)果簽名進(jìn)行驗(yàn)證;若驗(yàn)證成功,則用戶計(jì)算機(jī)將解密計(jì)算結(jié)果呈現(xiàn)給用戶。
41、在本發(fā)明的一個(gè)具體實(shí)施例中,所述對(duì)解密計(jì)算代碼簽名和解密用戶數(shù)據(jù)簽名進(jìn)行驗(yàn)證,還包括:
42、若任一驗(yàn)證不通過,則輸出驗(yàn)證失敗的消息作為計(jì)算結(jié)果。
43、在本發(fā)明的一個(gè)具體實(shí)施例中,所述對(duì)解密計(jì)算結(jié)果簽名進(jìn)行驗(yàn)證,還包括:
44、若解密計(jì)算結(jié)果簽名驗(yàn)證不通過,則用戶計(jì)算機(jī)向用戶報(bào)告計(jì)算結(jié)果傳輸錯(cuò)誤。
45、本發(fā)明的特點(diǎn)及有益效果在于:
46、本發(fā)明通過在服務(wù)計(jì)算機(jī)上設(shè)置一具有獨(dú)立計(jì)算和存儲(chǔ)資源的密室計(jì)算安全裝置,避免了現(xiàn)有機(jī)密計(jì)算技術(shù)中可信執(zhí)行環(huán)境因?yàn)榕c用戶普通計(jì)算共享計(jì)算和內(nèi)存資源帶來的側(cè)信道攻擊風(fēng)險(xiǎn),使得服務(wù)計(jì)算機(jī)即使遭受到攻擊后,也可以避免人工智能計(jì)算代碼和數(shù)據(jù)受到安全危險(xiǎn),避免代碼和數(shù)據(jù)隱私泄露,比現(xiàn)有基于硬件隔離的方式具有更好的安全性和兼容性。同時(shí),通過利用加密技術(shù)和數(shù)字簽名技術(shù)對(duì)參與人工智能計(jì)算過程的計(jì)算代碼(包括軟件、程序或者腳本代碼等)、需要處理的數(shù)據(jù)以及數(shù)據(jù)計(jì)算結(jié)果進(jìn)行加密和數(shù)字簽名,保證了在數(shù)據(jù)傳送以及計(jì)算結(jié)果返回過程中數(shù)據(jù)的機(jī)密性和完整性,同時(shí)也保證了參與計(jì)算過程的代碼的機(jī)密性和完整性,同時(shí)還可減少加解密時(shí)間。本發(fā)明在基于硬件隔離的獨(dú)立密室計(jì)算環(huán)境中,將解密后的計(jì)算代碼以及數(shù)據(jù)利用獨(dú)立的計(jì)算和存儲(chǔ)資源進(jìn)行明文計(jì)算,既提高了計(jì)算的效率,也提供了計(jì)算過程的兼容性。本發(fā)明也可用于除人工智能計(jì)算外的其他數(shù)據(jù)處理過程,比如物聯(lián)網(wǎng)或工業(yè)物聯(lián)網(wǎng)中的數(shù)據(jù)處理過程,也適用于金融、醫(yī)療等其他需要進(jìn)行數(shù)據(jù)隱私保護(hù)計(jì)算的應(yīng)用領(lǐng)域。