楊月婷 ,何發(fā)智 ,b,*,Soonhung Hn ,梁亞倩 ,程媛
a School of Computer Science, Wuhan University, Wuhan 430072, China
b State Key Laboratory of Digital Manufacturing Equipment and Technology, Huazhong University of Science and Technology, Wuhan 430074, China c Division of Ocean Engineering, Korea Advanced Institute of Science and Technology, Daejeon 34141, Republic of Korea
d School of Information Management, Wuhan University, Wuhan 430072, China
正如發(fā)表在Engineering期刊上的一篇綜述性論文[1]所述,智能制造是最先進的產品開發(fā)理念,包括智能制造技術、物聯(lián)網(IoT)制造和云制造[1,2]。隨著云計算的發(fā)展和應用[3-5],傳統(tǒng)的計算機輔助設計(CAD)、計算機輔助工程(CAE)和計算機輔助制造(CAM)系統(tǒng)正在向基于云的設計和制造(CBDM)[6-8]轉移,給企業(yè)帶來了新的信息安全問題,尤其對中小企業(yè)(SME)而言[9]。
由于資金和資源的限制,中小企業(yè)無法像大公司那樣構建私有云。著名的公共云服務提供商(CSP)經歷了各種各樣的安全問題,因此,半可信或不可信的公共云在基于云的協(xié)同設計過程中挑戰(zhàn)了中小企業(yè)的信息安全[10-13]。作為協(xié)同產品開發(fā)的核心組成部分[14-18],CAD模型包含豐富的知識產權,因此會遇到安全問題。信息安全取決于工業(yè)云的可靠性[19,20]。CBDM的一個重要安全問題是如何避免在協(xié)同設計環(huán)境中非法訪問CAD模型中包含的機密信息[21-23]。
一種典型的訪問控制方法是應用標準加密技術,如基于屬性的加密(ABE)[24]。但是,將ABE訪問控制簡單地引入CAD裝配模型是低效和不靈活的。一些靈活的訪問控制方法已經被報道用于云計算[25-28]。因此,如何開發(fā)一種高效靈活的訪問控制方法來保護外包和協(xié)同設計的CAD裝配模型仍然是CBDM面臨的一個挑戰(zhàn)。
本文提出了一種新的基于ABE的CAD裝配模型完整性驗證方法。與現有的密文策略ABE(CP-ABE)和相關方法[24-28]相比,提出了一種分層訪問控制加密方案,該方案能夠為具有不同權限級別的用戶提供靈活的身份驗證,以合法訪問CAD裝配模型。
本文的其余部分組織如下:第2節(jié)對相關工作進行了回顧;第3節(jié)討論了設計目標,并對問題的構建進行了闡述;第4節(jié)提出了一種基于云的裝配模型共享體系結構;第5節(jié)詳細闡述了該方法的加密方案,并對其安全性進行了驗證和理論分析;第6節(jié)演示了所提出的加密方案的性能;最后,在第7節(jié)對論文進行總結。
訪問控制是一種重要的數據保密和隱私保護方法,它起源于訪問矩陣的概念[29-33]。一種 CAD 環(huán)境中的訪問控制框架(FACADE)已經被提出,以保護CAD模型[34],還提出了一種協(xié)同設計和數據管理系統(tǒng)的數據安全模型,將多種安全技術與訪問控制相結合[35]。Chang等[36]報道了一種基于多種方法的訪問控制系統(tǒng),用于共享CAD設計圖紙。Speiera等[37]使用混合訪問控制進行產品數據安全處理。
基于角色的訪問控制是協(xié)同設計的主流方法[38,39]。然而,隨著復雜流程的擴展,協(xié)同設計用戶和產品模型可能出現“角色爆炸”問題。此外,現有的訪問控制方法基于單個模型文件,因此是不靈活的。
加密在多媒體數據中得到了廣泛的應用[40]。Nishchal和Naughton [41]提出了一種基于光學原理的多級加密體系結構,可用于處理具有視差和多重共享的三維(3D)全息圖。Huang等[42]報道了一種基于虛擬全息的三維立方體數據加密方法。將該方法應用于計算機模擬全息的三維立方體全息圖像的生成,并在此基礎上進行了加密處理。Kim與Yoo [43]以及Chen與Tsai [44]提出了一種裝配實體模型的分層加密方法,不同的用戶可以訪問裝配模型文件不同部分的數據。文件的每一級都用不同的密鑰加密,每個密鑰只授權給指定的用戶使用。研究人員還將加密的概念擴展到形狀變形[45-48]。
基于模糊身份的加密(即ABE)是支持細粒度訪問控制的最有前途的加密原語[24]。目前,ABE主要分為兩類:CP-ABE [28]和關鍵政策ABE(KP-ABE)[49]。在CP-ABE中,密文與數據所有者定義的訪問結構相關聯(lián),而密鑰與屬性相關聯(lián)。相反,在KP-ABE中,密文與屬性相關聯(lián),而密鑰與數據所有者定義的訪問結構相關聯(lián)。這兩個方案都是在單個文件場景中構 建的。
針對多文件場景,一些基于層次屬性的解決方案已經被研究出來。Miao等[25]將層次數據的思想引入云計算中基于屬性的密鑰搜索。Wan等[26]在基于屬性集的加密方案的基礎上,提出了一種基于層次屬性集的加密(HASBE)方案,以實現多文件場景下更精確的屬性滿足策略。然而,分層訪問結構過于復雜,無法應用于大型CAD模型。Wang等[27]提出了一種文件層次結構CPABE(FH-CP-ABE),其中密文裝配體遞歸公式中的漏洞可能導致非法訪問。
對于訪問控制認證,本文提出了一種新的CAD裝配模型的ABE方案,稱為CAD裝配層次文件CP-ABE(CAD-CP-ABE)方案。該技術方法采用對稱加密算法進行明文加密,采用CAD-CP-ABE方案進行內容密鑰管理。
與現有的CP-ABE技術不同,該方案中上層節(jié)點的接入結構比下層節(jié)點更簡潔。因此,我們重新定義節(jié)點定義并提交一組新的生成規(guī)則,以避免過多的冗余節(jié)點。該方法使層次訪問結構裝配層次訪問樹(AHAT)適用于CAD裝配模型。AHAT包含文件節(jié)點、屬性節(jié)點和閾值節(jié)點。部件密文(ACT)文件包含AHAT和所有密文元素,將由具有合法訪問權限的共同設計用戶使用。
在完整性驗證方面,在修改原有默克爾樹(MT)后,本文提出了一種裝配體MT技術,以防止CAD文件被非法刪除或添加到云服務中。我們還采用了基于變形的技術來保護形狀信息。這兩種方法結合在一起以增強我們的方法。
在介紹體系結構(第4節(jié))之前,我們分析了有關設計鏈管理(DCM)和協(xié)作設計的信息安全問題[38,50-52]。文獻[50]討論了一個典型的DCM協(xié)作模型。該模型為協(xié)作建立了6個層次。協(xié)作問題包括信任通信、協(xié)商和權限分配。
在基于云的協(xié)作過程中,協(xié)作者不僅要與他人協(xié)商,還要處理安全問題。因此,身份驗證、完整性和信息隱私是信息共享的關鍵方面。
基于以上分析,我們正式定義了我們的問題,并指出了我們的設計目標。
提出的體系結構包括4個實體:數據所有者、數據用戶、授權中心和CSP。數據所有者是可信的,數據用戶是由權威機構授權和協(xié)作的。授權中心是一個完全可信的實體,負責生成和分發(fā)公鑰和密鑰(SK)。CSP是云系統(tǒng)中一個半可信的外包實體;因此,數據可能被非法訪問,或云服務可能會偏離規(guī)定的協(xié)議并發(fā)起數據完整性攻擊。為了加強信息的機密性和層次訪問控制,數據所有者首先對CAD模型的私有特征進行變形,然后使用基于屬性的訪問策略對數據文件進行加密,最后將數據文件外包到CSP中。為了解密來自不同數據所有者的共享數據文件,數據用戶向管理局提交其屬性以獲得SK。
提出的方法旨在實現以下功能和安全目標:
身份驗證。應通過有效的訪問權限訪問每個CAD模型數據文件。我們的方法可確保明文數據不會被泄露。對手無法從ACT文件中獲得任何有用的信息。除了實現授權之外,我們還確保上層特權用戶可以訪問其所有下層特權用戶文件。
完整性。CAD裝配模型通常由一組數據文件組成。必須確保模型的任何文件都不會被篡改、添加或刪除。有了ABE,文件的明文可以完全隱藏。這種完整性確保了CAD模型的固定樹結構不會被CSP或惡意訪問者通過裝配體MT技術篡改。
保密。由于機密信息與合作者共享,而合作者可能是潛在的競爭對手,因此可能會發(fā)生信息泄漏。通過在共享CAD模型草圖之前對其進行變形,可以解決此問題。
雙線性映射:設p是素數,G0和GT是模p的兩個乘法整數組。G0的生成元是g。
雙線性映射 e:G0× G0→ GT滿足以下特性。
? 雙線性——對于任何u, v ∈ G0及 a, b ∈ Zp, Zp= {0, 1, 2, ..., p?1},有e(ua, vb) = e(u, v)ab。
? 非退化性——存在u, v ∈ G0,使得 e(u, v) ≠ 1 。
? 可計算性——對于u, v∈ G0,存在一個有效計算 e(u, v)。
定義1:雙線性Diきe-Hellman(BDH)生成器。如果一個隨機算法Γ以一個安全參數k (k > 0)作為輸入,并輸出對兩個乘法循環(huán)群G0和GT的描述、公共素數階p,以及在k次多項式時間內可以有效計算的雙線性映射e,即G0× G0→ GT,那么該算法稱為BDH參數生成器。
定義2:行列式雙線性Diffie-Hellman(DBDH)問題。設G0、GT以及e是上述參數生成器的輸出,并令g是G0的生成元。那么,DBDH問題定義為,給定< g, ga, gb, gc, T >,其中隨機元素a, b, c ∈ Zp,T∈GT,判斷等式e(g, g)abc=T是否成立在多項式時間內是計算困難的。
MT:在計算機科學中,哈希樹(hash tree)是一種類似樹的數據結構,也稱為MT [53]。如圖1所示,每個葉節(jié)點使用其自身的哈希值作為其標簽[如H3 = hash(A)],而非葉節(jié)點使用其子節(jié)點標簽的加密哈希作為其標簽。MT可以驗證具有以下特征的大型數據結構的內容。
? MT是一種樹狀結構,具有所有樹狀結構特征。
? 在不檢查整個數據集的情況下,可以簡潔地證明一個數據是否屬于一個數據組。
? MT中每個節(jié)點的哈希值將證明數據內容的完整性和正確性。
圖2展示了我們?yōu)镃BDM提出的方法的系統(tǒng)架構。
授權中心:授權中心是一個完全受信任的實體,可以驗證用戶的身份屬性。
數據所有者:數據所有者將通過CSP存儲和共享CAD裝配模型。該實體負責創(chuàng)建裝配體MT和AHAT,變形草圖以及執(zhí)行加密功能。它將一個模型的加密文件、一個ACT文件和一個裝配體MT加載到CSP。
圖1. 一個MT的例子。A、B、C和D是4個需要被MT加密的文件;H0、H1、H2、H3、H4、H5和H6是MT中節(jié)點的標簽。
圖2. CBDM裝配體MT的方法的體系結構。A、B、C、D和R是M的5個文件。M0:初始的CAD裝配體模型;M:變形的CAD裝配模型;M’:M的密文;Id:裝配體MT中每個文件節(jié)點的標識。
用戶:用戶將從一臺云服務器(B)下載ACT文件以及加密文件的全部或部分。云服務器B執(zhí)行解密功能。用戶將通過另一個云服務器(A)驗證下載文件的結構完整性。
CSP:CSP是提供密文存儲和傳輸服務的半信任外包實體。
CAD裝配模型的安全協(xié)同設計涉及三個構建塊:裝配體MT、基于變形的保護和CAD-CP-ABE方案。
如圖所示。如圖3(a)、(b)所示,裝配體Assem02具有固定的結構,可以抽象地顯示為樹形圖。每個零部件(零件和裝配體的統(tǒng)稱)成為該樹形圖的一個節(jié)點。
我們構建了一個裝配體MT以支持完整性驗證,如圖3所示。在裝配體MT中有兩種類型的節(jié)點。部分(葉)節(jié)點表示為[identity (Id), value]對,其中,value是通過抗沖突哈希函數[如消息摘要算法5(MD5)和安全哈希算法]計算出的葉子文件的哈希(SHA)。裝配體(非葉)節(jié)點表示為[Id, value1, value2]對,其中value1等于其哈希值,而value2等于由所有子級哈希順序連接的字符串的哈希值。
當用戶可以特權訪問Assem6的所有文件并將Id Assem6-1提交給CSP時,云生成的正確哈希值文件的內容應為:[Assem6-1, H4, hash(H1 + H2)];[Part004-1, H1];[Part003-1, H2],如圖3(c)所示。用戶將計算下載文件的哈希并將它們與接收到的哈希進行比較。如果文件已被修改或結構已被破壞,則用戶可以很容易地發(fā)現這些問題。
圖3. Assem02的說明性示例。(a)SolidWorks中Assem02的裝配結構;(b)Assem02的抽象結構樹;(c)Assem02的裝配體MT。
4.2.1. 基于變形的保護
典型的CAD模型由各種特征{Fi}(一組模型特征)組成,如圖4(a)所示?;谝幌盗屑s束和草圖{Si}(一組模型特征草圖)創(chuàng)建特征,這兩個約束和草圖都確定了模型形狀。如果將變形方法應用于特征和基準,則CAD模型的有效性將受到影響。我們采用基于草圖的變形方法來隱藏CAD模型的機密信息。草圖Si由草圖元素和約束元素組成。每個草圖Si具有表示為(xi,1, xi,2)或(xi,1, xi,2, xi,3)的草圖點,并將其合成為草圖矩陣SM。
我們使用變換矩陣TM實現參數變形。選擇矩陣TM的參數后,我們將n的值從0逐漸增加,直到草圖通過TM變形不會破壞模型約束。通過將SM乘以TM可以得到一個新的草圖矩陣SM′,如式(1)所示。
這種變形方法對于CAD模型來說是魯棒且靈活的,因為可以根據加密矩陣TM將草圖恢復為原始形狀,并且還可以輕松地將CAD模型恢復為原始狀態(tài)。
二維和三維特征的轉換矩陣定義如下:
圖4. Part003的特征草圖變形的示例。(a)SolidWorks中Part003的FeatureManager;(b)原始Part003;(c)變形的Part003。
式中,ai,j表示在0.9和1.1之間隨機選擇的一個十進制數;η和λ是兩個系數,滿足0 < η, λ < 1;n是從0開始的整數。圖4對變形進行了說明。圖4(a)中,Cyt-Extrude1是一個私有功能,不能與其他人共享。我們用變換矩陣修改其Sketch4,以獲得變形的Part003,如圖4(c)所示。
4.2.2. CAD-CP-ABE方案
CK管理方案是基于雙線性映射定義和CP-ABE加密策略的,它由4個功能組成:Setup、KeyGen、Encrypt和Decrypt。
(1)(PK, MSK) ← Setup(1k)。此功能輸入安全參數k和素數p,并輸出公共密鑰(PK)和主控SK(MSK)。
(2)(SK) ← KeyGen(PK, MSK, S)。此函數輸入PK、MSK和一個用戶S的一組屬性,并為屬性集S生成SK。
(3)(ACT) ← Encrypt(PK, CK, AT)。此函數輸入PK、CK和一個含有所有屬性的集合AT,并輸出CK的ACT。
(4)(cki(i∈[1, num])) ← Derypt(PK, ACT, SK)。該功能輸入用戶的PK、ACT文件和SK文件。SK由S描述。如果S滿足AHAT的訪問結構,則cki(i∈[1, num])可以解密部分或全部CK。然后,使用相應的CK,即cki解密相應的文件mi(i ∈[1, num]),其中num表示所有CK的數量。
安全的共同設計過程包括以下步驟:
(1)變形私有特征。對于數據所有者(D)擁有的CAD裝配模型M0,將使用基于變形的方法隱藏裝配內部零部件的私有形狀特征(Fi)。共享之前,將M0轉移到新的CAD裝配模型M中。
(2)構造一個裝配體MT。D將構造一個裝配體MT,如圖3所示。
(3)制定加密過程。M的文件(即明文)將通過加密算法用CK = {ck1, ..., cki, ...}加密為模型密文M′ = {m′1, ..., m′i, ...}。D將首先生成一個AHAT,然后通過CADCP-ABE方案中的加密功能(即CAD-CP-ABE加密過程)為CK= {ck1, ..., cki, ...}計算ACT文件。
(4)共享數據文件。D將裝配體MT、M′和CK ACT文件上傳到CSP。裝配體MT分別存儲在云服務器A上。M′和ACT存儲在云服務器B上。
(5)驗證結構完整性。協(xié)同設計者(U)可以向CSP發(fā)送一組文件,該CSP將裝配體MT與其他共享文件一起存儲在云服務器中。該服務器將返回一組哈希值以進行完整性驗證。
(6)獲得明文。U將其身份屬性發(fā)送給受信任的授權中心以檢索SK。ACT文件中的密文元素與SK組合以評估CK。然后,用CK對加密的模型文件M′解密。
圖5(a)中的訪問結構T1基于CP-ABE方案來解密源文件m1。每個非葉節(jié)點都是一個閾值節(jié)點,并且每個葉節(jié)點都與屬性關聯(lián)。根節(jié)點代表一個源文件。閾值為num1/num2,其中num1表示“需要滿足條件的節(jié)點數”,而num2表示“子項總數”。
圖5. CP-ABE方案中的訪問結構示例。(a)訪問結構樹的示例。T1是m1的訪問結構。(b)Assem02和Part004的分層訪問結構。Attri:屬性節(jié)點(attribute node)。
對于CAD裝配模型結構,如圖5(b)所示,較少用戶將訪問較高級別的節(jié)點。如果將屬性節(jié)點插入模型結構,則重復的屬性節(jié)點將增加不必要的開銷,如圖5(b)所示。同時,重復的裝配體節(jié)點也將增加開銷。
因此,我們在方案中指定以下規(guī)則來生成AHAT:
(1)提取用于AHAT生成的集成裝配模型結構。
(2)將結構分為組成節(jié)點和隱藏節(jié)點。由于節(jié)點2和節(jié)點3表示相同的屬性,因此,如果它們具有相同的父節(jié)點1,或者如果節(jié)點2的父節(jié)點是節(jié)點3的祖先,則將節(jié)點2及其子節(jié)點設置為AHAT中的隱藏節(jié)點。
(3)為裝配中的每個零部件插入屬性節(jié)點和(或)閾值節(jié)點,以構造AHAT。為了降低AHAT的復雜性,有必要修剪屬性結構。如果任何裝配體節(jié)點與其父/祖先節(jié)點具有相同的訪問屬性結構,則切斷這些屬性并更改訪問結構。
身份屬性按層次結構定義如下:總工程師、副總工程師、項目工程師、工程師和助理工程師。對應的屬性集合為AT = {1, 2, 3, 4, 5}。例如,我們將三個公司C1、C2和C3列為公司屬性,并將它們的值分別定義為6、7和8。總屬性設置為AT = {1, 2, 3, 4, 5, 6, 7, 8}。
如圖6所示,存在一個描述訪問結構并包含幾個訪問級別的AHAT。AHAT和節(jié)點的術語和功能如下:
(x, y):此二進制表示AHAT中的非隱藏節(jié)點。x代表節(jié)點的行(從上到下),y代表節(jié)點的列(從左到右)。例如,在圖6中,節(jié)點Assem02的二進制是(1, 1),節(jié)點Part005-1的二進制是(2, 1),并且級別3上的屬性3的二進制是(3, 5)。
num(x,y):HAT中(x, y)子級集合中非隱藏節(jié)點的數量。如圖6中的 num(2,2)= 2。
k(x,y):非隱藏節(jié)點(x, y)的閾值,其中0 < k(x,y)≤ num(x,y)。如果(x, y)是葉節(jié)點,則k(x,y)= 1。例如,k(1,1)= k(2,2)= 2。
parent(x, y):AHAT中節(jié)點(x, y)的父級。例如,圖6中的parent(5, 1)= (4, 3)。
圖 6. AHAT是裝配模型的集成層次訪問結構。
att(x, y):與AHAT中的葉節(jié)點(x, y)關聯(lián)的屬性。
index(x, y):返回與節(jié)點(x, y)關聯(lián)的唯一值。對于給定密鑰,索引值以任意方式唯一地分配給AHAT中的節(jié)點。
DBDH是一個雙線性參數生成器。假定數據所有者與num個響應的CK(CK = {ck1, ..., cknum})共享文件。此外,在CAD-CP-ABE方案中使用了兩個哈希函數H1:{0,1}* → G0和H2:{0,1}* → GT。
Setup(1k):權限在安全參數k和隨機數α, β∈Zp內執(zhí)行此功能。DBDH將輸出PK和MSK,分別如式(2)和式(3)所示。
KeyGen(PK, MSK, S):授權機構使用一個用戶S的一組屬性執(zhí)行此功能,并創(chuàng)建SK,如式(4)所示,其中r∈Zp且 rj∈Zp是為該用戶隨機選擇的。D是正常的關鍵參數,Dj和Dj′是屬于屬性j的關鍵參數。D、Dj和Dj′組成SK。
在所提出的方法中,一個用戶的屬性集具有兩個元素:職位屬性和公司屬性。因此,S通常是兩個元組。
Encrypt( PK, CK, A ):數據所有者為CK = {ck1, ..., cknum}選擇num個隨機數{s1, ..., snum}∈Zp,并為所有組成節(jié)點(i = 1, 2, ..., num)計算Ci和Ci′,如式(5)所示。Ci和Ci′是屬于cki的關鍵參數。
以自上而下的方式為每個非隱藏節(jié)點生成具有多項式規(guī)則的多項式q(x,y),如下所示:
(1)從根節(jié)點開始。
(2)q(x,y)的度為k(x,y)?1。
(3)如果(x, y)是組成節(jié)點,則q(x,y)(0) = si。否則, q(x,y)(0) = qparent(x,y)(index(x, y))。q(x,y)的其他多項式信息是隨機選擇的。
對于每個葉節(jié)點,數據所有者將計算C1
(x, y)和C2(x, y),如式(6)所示。是用于解密節(jié)點(x, y)的兩個關鍵參數。
對于每個組成節(jié)點,數據所有者計算C(x,y),l,如式(7)所示,其中子項子集是{child1, …, childl, …}。C(x,y),l是在父節(jié)點和子節(jié)點之間使用的關鍵參數。
數據所有者輸出集成的ACT文件,如式(8)所示。
Decrypt(PK, ACT, SK):用戶需要由S描述的PK和SK來解密ACT。
對于葉節(jié)點(x, y),我們將DecryptNode(ACT, SK, (x, y))定義為式(9),其中j = att(x, y),且如果j ?S,則DecryptNode(ACT, SK, (x, y)) = null。
對于每個裝配體/閾值節(jié)點,我們定義Decrypt-Node(ACT, SK, (x, y)),如式(10)所示,其中z是(x, y)的屬性/閾值子集,S(x,y)是AHAT中(x, y)的任意k(x,y)大小的屬性/閾值子集,S′(x,y)= {index(z) : z ∈ S(x,y)},以及val=index(z)。
由于裝配體(x, y)的隨機數si與其父級的隨機數無關,因此z不能作為裝配體節(jié)點。
接下來,e(g,g)αsi可以通過式(11)進行計算,其中i是組成節(jié)點(x, y)的編號。
由于父文件需要使用所有子文件,因此(x, y)有權解密所有子文件。F(x,y),l是解密的中間參數。我們可以使用式(12)為AHAT中的裝配體節(jié)點(x, y)計算裝配體childl的F(x,y),l。
然后,通過執(zhí)行式(13)解密相應的CK,即cki,其中i是組成節(jié)點(x, y)的編號。
最后,使用cki解密相應的文件。
5.3.1. 安全性模型
在該方案中,用戶的SK與屬性集相關聯(lián),而ACT與訪問結構相關聯(lián)。我們方案的安全模型應該抵抗CPA。敵手A1和挑戰(zhàn)者B1之間的CPA安全博弈要求A1挑選一個挑戰(zhàn)性結構AT*,并且A1可以要求獲得所有不滿足AT*子結構的SK。
(1)初始化。A1在AT*處選擇一個具有挑戰(zhàn)性的結構并將其交付給B1。
(2)設置。B1運行Setup(1k)算法并且發(fā)送PK給A1。
(3)查詢階段。A1選擇一系列屬性集(S, ..., Sw, ?i∈[1, w], Si?AT*)來重復地為SK詢問B1。B1通過運行KeyGen(PK, MSK, Si)算法來回答這些提問。
(4)挑戰(zhàn)。A1選擇兩個長度相等的信息,即m0和m1作為挑戰(zhàn)。然后B1隨機選擇一個比特μ∈{0, 1}以及帶有訪問結構AT*的密文mμ。最后,B1將密文ACT*交付給A1。
(5)查詢階段2。與查詢階段1相同。
(6)預測。A1輸出一個預測比特μ′∈{0, 1}。如果μ′ = μ,A1贏得安全性博弈;否則博弈失敗。A1贏得CPA博弈的好處被定義為
定義3:如果沒有概率多項式時間敵手A1能夠贏得安全博弈,則CAD-CP-ABE方案對CPA是安全的。
5.3.2. 方案的安全性證明
定理1:假設DBDH的假設在
證明:假設敵手A1在選擇性安全博弈中以不可忽視的優(yōu)勢來反對我們的構建。挑戰(zhàn)者B1能夠以不可忽略的概率(ε/2)來區(qū)分DBDH元組Dbdh和隨機元組Drand。令e: G0× G0→ GT是一個高效可計算雙線性映射,其中G0是具有帶著一個生成器g的素數階p。挑戰(zhàn)者隨機選取參數(a, b, c) ∈Zp,隨機值μ∈{0, 1},以及隨機元素θ∈RGT。如果u = 0,那么挑戰(zhàn)者B1設置(g, A, B, C, T) = (g, ga, gb, gc, e(g, g)abc) ∈ Dbdh;否則挑戰(zhàn)者設置(g, A, B, C, T) = (g, ga, gb, gc, θ) ∈ Drand。ACT根據式(8)計算。
(1)初始化。敵手A1選擇一個具有挑戰(zhàn)性的結構AT*并將其交付給B1。
(2)設置。為了提供一個PK給A1,B1隨機選擇一個數a′∈Zp,并且定義? = a′ + ab。然后計算e(g, g)?= e(g, g)a· e(g, g)ab,同時設置h = gβ= gb。對于給定的β,gβ= gb。最后B1將PK交給A1。
(3)查詢階段。在這個階段,A1可以通過向B1提交一個屬性集Wj= {aj, aj∈AT}(aj? AT*)來詢問SK。隨后,B1隨機選擇一個數字r′∈Zp并設置r′ = r ? a。B1可以獲得D = g(?+r′)/β= g(?+r?a)/β。然后,對于每個屬性aj∈Wj,B1需要隨機選擇rj∈Zp。B1按如下方式,即Dj= g(r?a)·H1(j)rj,Dj′ = grj構造剩余的SK。最后,B1向A1發(fā)送SK。
(4)挑戰(zhàn)。A1向B1提交兩條長度相等的消息,即mess0和mess1。B1隨機生成一個比特,μ∈{0, 1}。經過AT*下的加密操作,B1以C′ = hs= gβc, C = mμ· e(g, g )?s= mμ· e(g, g )(a′+ab)c計算ACT*。最后,B1將ACT*發(fā)送給A1。
(5)查詢階段2。與查詢階段1相同。
(6)預測。A1輸出一個預測比特μ′∈{0, 1}。如果μ′ = μ,那么B1輸出0以顯示(g, A, B, C, T)∈Dbdh。否則,B1輸出1以顯示(g, A, B, C, T)∈Drand。敵手A1在與挑戰(zhàn)者B1的比賽中獲勝的概率計算如下:
如果(g, ga, gb, gc, T)∈Dbdh,也就是說T = gabc,那么ACT*是一個有效的密文;在這種情況下,敵手A1的優(yōu)勢是ε。
如果(g, ga, gb, gc, T)∈Drand,不等式μ′ ≠ μ成立。敵手A1擁有1/2的優(yōu)勢,且與μ′上的分布無關。在這種情況下,敵手A1沒有優(yōu)勢。
最后,挑戰(zhàn)者B1的優(yōu)勢如下:
AdvB1= 1/2{Pr[B1(g, A, B, C, T)∈Dbdh= 0] + Pr[B1(g, A, B, C, T)∈Drand= 0]} ? 1/2 = 1/2(1/2 + ε + 1/2) ? 1/2 = ε/2
設Ce為e運算(雙線性對)。假設|Aa|是屬性節(jié)點數,Ac是將裝配體節(jié)點作為子節(jié)點的裝配體節(jié)點集,Au是用戶U的屬性集。
存在k個CK,其中每個節(jié)點Ac都包含n個裝配體節(jié)點作為子節(jié)點。在CAD-CP-ABE方案中,在生成AHAT的過程中切斷了底層構件節(jié)點的一些屬性節(jié)點。因此,當CK的數目固定時,加密時間與k、n|Ac|和|Aa|有關。
在我們的方法中,|Au= 2|是常數,這使得解密時間獨立于葉節(jié)點。假設用戶U有權訪問根節(jié)點。因為滿足根訪問結構的內部節(jié)點的最小數量是兩個,所以只有兩個屬性節(jié)點。根節(jié)點的計算如式(9)所示。解密時間與k和n|Ac|有關。
此外,可通過式(8)獲得ACT的大小,如表1所示,其中L是元素Gi, i∈{0, T}的長度。
表1 CAD-CP-ABE (CK ={ck1, ..., ckk})的特征
這種方法執(zhí)行兩個加密過程:明文加密和CK加密。對于明文加密,我們使用高級加密系統(tǒng)(AES)算法對裝配體文件進行加密和解密。對于CK加密,我們基于Java配對密碼(JPBC)庫[54]實現了CK的CAD-CPABE方案。我們使用A型雙線性映射。A型對構造在Fq域上的曲線y2= x3+ x上。這種配對是對稱的,r階是q + 1的某個素數因子。A型需要兩個參數rBits = 160。所有結果都是20個實驗的平均值。
如圖7所示,我們使用AES算法對匯編格式進行加密并轉換為文本格式,解密過程與加密過程相反。實驗驗證了一種加密算法在裝配體文件上的實用性,加密和解密過程不會破壞內容完整性。
如圖8(a)所示,SK的生成時間近似線性。由于每次實驗會選擇一些新的參數,因此在線性關系中會產生輕微的計算誤差?;赑airing對象使用newElement()方法生成SK的時間低于2 s,整個過程的總時間不超過50 s。我們選擇使用newRandomElement()方法加強SK生成的安全性,這會導致額外的時間成本。
圖8(b)~(d)給出了加密和解密實驗結果。如圖8(b)所示,我們假設有不同的葉節(jié)點,每個葉節(jié)點具有兩個層次文件。根據AHAT生成規(guī)則,CAD-CP-ABE中的葉節(jié)點數等于CP-ABE中的|Aa2|。如圖8(c)所示,存在固定葉節(jié)點(N = 30)的各種層次文件。圖8(b)、(c)表明,結果越來越近似地遵循線性關系。顯然,葉片節(jié)點的數量對CAD-CP-ABE中的時間成本影響較大。
圖7. 裝配體文件使用AES算法進行加密和解密的示例。
圖8. CK加密和解密的實驗結果。(a)SK生成時間和所有屬性數;(b)兩個CK的加密時間成本;(c)30個葉節(jié)點的加密時間成本;(d)來自根節(jié)點的所有CK的解密時間成本。
CK的解密時間從根節(jié)點開始計算。在我們的方法中,對于CAD-CP-ABE中的根節(jié)點和CP-ABE中的每個裝配體節(jié)點,只需要滿足兩個葉節(jié)點。當用戶U獲得文件A的CK時,U可以通過ACT文件逐層導出文件A下面的所有其他裝配體節(jié)點的CK。如圖8(d)所示,解密時間成本僅與CK的數目有關。實驗表明,該方案提高了加密和解密效率。
本文提出了一種層次化的裝配體文件共享方法,以保護云設計和制造時代面向外包和協(xié)同設計的CAD模型。這種方法結合了ABE方案、結構完整性檢查和基于變形的CAD裝配模型形狀保護。仿真實驗表明,該方法在計算效率和靈活性方面是可行的。
對于未來的工作,第一個方向是確定如何將形狀加密從基于草圖的CAD零件變形擴展到CAD裝配變形。第二個方向是采用多核計算技術和優(yōu)化方法[55-61],以加速CAD大數據的加密和解密。第三個方向是將建議的方法擴展到其他多媒體數據[62-67]。最后,我們將把一個可搜索的加密方案集成到所提出的方法中[68,69]。
致謝
本課題得到了國家自然科學基金(62072348)和湖北省科技重大專項(下一代人工智能技術;2019AEA170)的支持。
Compliance with ethics guidelines
Yueting Yang, Fazhi He, Soonhung Han, Yaqian Liang, and Yuan Cheng declare that they have no conflict of interest or financial conflicts to disclose.