《1. 引言》

1. 引言

正如发表在Engineering期刊上的一篇综述性论文 [1]所述,智能制造是最先进的产品开发理念,包括智能制造技术、物联网(IoT)制造和云制造[1,2]。随着云计算的发展和应用[3–5],传统的计算机辅助设计(CAD)、计算机辅助工程(CAE)和计算机辅助制造(CAM)系统正在向基于云的设计和制造(CBDM)[6–8] 转移,给企业带来了新的信息安全问题,尤其对中小企业(SME)而言[9]

由于资金和资源的限制,中小企业无法像大公司那样构建私有云。著名的公共云服务提供商(CSP)经历了各种各样的安全问题,因此,半可信或不可信的公共云在基于云的协同设计过程中挑战了中小企业的信息安全[10–13]。作为协同产品开发的核心组成部分[14–18], CAD模型包含丰富的知识产权,因此会遇到安全问题。信息安全取决于工业云的可靠性[19,20]。CBDM的一个重要安全问题是如何避免在协同设计环境中非法访问 CAD模型中包含的机密信息[21–23]。

一种典型的访问控制方法是应用标准加密技术,如基于属性的加密(ABE)[24]。但是,将ABE访问控制简单地引入CAD装配模型是低效和不灵活的。一些灵活的访问控制方法已经被报道用于云计算[25–28]。因此,如何开发一种高效灵活的访问控制方法来保护外包和协同设计的CAD装配模型仍然是CBDM面临的一个挑战。

本文提出了一种新的基于ABE的CAD装配模型完整性验证方法。与现有的密文策略ABE(CP‐ABE)和相关方法[24–28]相比,提出了一种分层访问控制加密方案,该方案能够为具有不同权限级别的用户提供灵活的身份验证,以合法访问CAD装配模型。

本文的其余部分组织如下:第2节对相关工作进行了回顾;第3节讨论了设计目标,并对问题的构建进行了阐述;第4节提出了一种基于云的装配模型共享体系结构;第5节详细阐述了该方法的加密方案,并对其安全性进行了验证和理论分析;第6节演示了所提出的加密方案的性能;最后,在第7节对论文进行总结。

《2. 相关工作》

2. 相关工作

《2.1. 访问控制》

2.1. 访问控制

访问控制是一种重要的数据保密和隐私保护方法,它起源于访问矩阵的概念[29–33]。一种 CAD 环境中的访问控制框架(FACADE)已经被提出,以保护CAD 模型[34],还提出了一种协同设计和数据管理系统的数据安全模型,将多种安全技术与访问控制相结合[35]。 Chang等[36]报道了一种基于多种方法的访问控制系统,用于共享CAD设计图纸。Speiera等[37]使用混合访问控制进行产品数据安全处理。

基于角色的访问控制是协同设计的主流方法 [38,39]。然而,随着复杂流程的扩展,协同设计用户和产品模型可能出现“角色爆炸”问题。此外,现有的访问控制方法基于单个模型文件,因此是不灵活的。

《2.2. 加密方法》

2.2. 加密方法

加密在多媒体数据中得到了广泛的应用[40]。 Nishchal和Naughton [41]提出了一种基于光学原理的多级加密体系结构,可用于处理具有视差和多重共享的三维(3D)全息图。Huang等[42]报道了一种基于虚拟全息的三维立方体数据加密方法。将该方法应用于计算机模拟全息的三维立方体全息图像的生成,并在此基础上进行了加密处理。Kim与Yoo [43]以及 Chen与Tsai [44]提出了一种装配实体模型的分层加密方法,不同的用户可以访问装配模型文件不同部分的数据。文件的每一级都用不同的密钥加密,每个密钥只授权给指定的用户使用。研究人员还将加密的概念扩展到形状变形[45–48]。

《2.3. 基于属性的加密》

2.3. 基于属性的加密

基于模糊身份的加密(即ABE)是支持细粒度访问控制的最有前途的加密原语[24]。目前,ABE主要分为两类:CP‐ABE [28]和关键政策ABE(KP‐ABE) [49]。在CP‐ABE中,密文与数据所有者定义的访问结构相关联,而密钥与属性相关联。相反,在KP‐ABE中,密文与属性相关联,而密钥与数据所有者定义的访问结构相关联。这两个方案都是在单个文件场景中构建的。

针对多文件场景,一些基于层次属性的解决方案已经被研究出来。Miao等[25]将层次数据的思想引入云计算中基于属性的密钥搜索。Wan等[26]在基于属性集的加密方案的基础上,提出了一种基于层次属性集的加密(HASBE)方案,以实现多文件场景下更精确的属性满足策略。然而,分层访问结构过于复杂,无法应用于大型CAD模型。Wang等[27]提出了一种文件层次结构CPABE(FH‐CP‐ABE),其中密文装配体递归公式中的漏洞可能导致非法访问。

《2.4. 贡献》

2.4. 贡献

对于访问控制认证,本文提出了一种新的CAD装配模型的ABE方案,称为CAD装配层次文件CP‐ABE (CAD‐CP‐ABE)方案。该技术方法采用对称加密算法进行明文加密,采用CAD‐CP‐ABE方案进行内容密钥管理。

与现有的CP‐ABE技术不同,该方案中上层节点的接入结构比下层节点更简洁。因此,我们重新定义节点定义并提交一组新的生成规则,以避免过多的冗余节点。该方法使层次访问结构装配层次访问树(AHAT)适用于CAD装配模型。AHAT包含文件节点、属性节点和阈值节点。部件密文(ACT)文件包含AHAT和所有密文元素,将由具有合法访问权限的共同设计用户使用。

在完整性验证方面,在修改原有默克尔树(MT)后,本文提出了一种装配体MT技术,以防止CAD文件被非法删除或添加到云服务中。我们还采用了基于变形的技术来保护形状信息。这两种方法结合在一起以增强我们的方法。

《3. 问题表述》

3. 问题表述

在介绍体系结构(第4节)之前,我们分析了有关设计链管理(DCM)和协作设计的信息安全问题 [38,50–52]。文献[50]讨论了一个典型的DCM协作模型。该模型为协作建立了6个层次。协作问题包括信任通信、协商和权限分配。

在基于云的协作过程中,协作者不仅要与他人协商,还要处理安全问题。因此,身份验证、完整性和信息隐私是信息共享的关键方面。

基于以上分析,我们正式定义了我们的问题,并指出了我们的设计目标。

《3.1. 威胁模型》

3.1. 威胁模型

提出的体系结构包括4个实体:数据所有者、数据用户、授权中心和CSP。数据所有者是可信的,数据用户是由权威机构授权和协作的。授权中心是一个完全可信的实体,负责生成和分发公钥和密钥(SK)。CSP是云系统中一个半可信的外包实体;因此,数据可能被非法访问,或云服务可能会偏离规定的协议并发起数据完整性攻击。为了加强信息的机密性和层次访问控制,数据所有者首先对CAD模型的私有特征进行变形,然后使用基于属性的访问策略对数据文件进行加密,最后将数据文件外包到CSP中。为了解密来自不同数据所有者的共享数据文件,数据用户向管理局提交其属性以获得SK。

《3.2. 设计目标》

3.2. 设计目标

提出的方法旨在实现以下功能和安全目标:

身份验证。应通过有效的访问权限访问每个CAD模型数据文件。我们的方法可确保明文数据不会被泄露。对手无法从ACT文件中获得任何有用的信息。除了实现授权之外,我们还确保上层特权用户可以访问其所有下层特权用户文件。

完整性。CAD装配模型通常由一组数据文件组成。必须确保模型的任何文件都不会被篡改、添加或删除。有了ABE,文件的明文可以完全隐藏。这种完整性确保了CAD模型的固定树结构不会被CSP或恶意访问者通过装配体MT技术篡改。

保密。由于机密信息与合作者共享,而合作者可能是潜在的竞争对手,因此可能会发生信息泄漏。通过在共享CAD模型草图之前对其进行变形,可以解决此问题。

《3.3. 预备工作》

3.3. 预备工作

双线性映射:设p是素数,G0GT是模p的两个乘法整数组。G0的生成元是g

双线性映射 eG0 × G0GT满足以下特性。

• 双线性——对于任何u, vG0 a, bZp, Zp = {0, 1, 2, ..., p−1},有e(ua , vb ) = e(u, v)ab

• 非退化性——存在u, vG0,使得 e(u, v) ≠ 1 。

• 可计算性——对于u, vG0,存在一个有效计算 e(u, v)。

定义1:双线性Diffie‐Hellman(BDH)生成器。如果一个随机算法Γ 以一个安全参数kk > 0)作为输入,并输出对两个乘法循环群G0GT的描述、公共素数阶p,以及在次多项式时间内可以有效计算的双线性映射e,即G0 × G0GT ,那么该算法称为BDH参数生成器。

定义2:行列式双线性Diffie‐Hellman(DBDH)问题。设G0GT以及e是上述参数生成器的输出,并令gG0的生成元。那么,DBDH问题定义为,给定< g, ga , gb , gc , T >,其中随机元素a, b, cZpTGT,判断等式e(g, g) abc=是否成立在多项式时间内是计算困难的。

MT:在计算机科学中,哈希树(hash tree)是一种类似树的数据结构,也称为MT [53]。如图1所示,每个叶节点使用其自身的哈希值作为其标签[如H3 = hash(A)],而非叶节点使用其子节点标签的加密哈希作为其标签。MT可以验证具有以下特征的大型数据结构的内容。

• MT是一种树状结构,具有所有树状结构特征。

• 在不检查整个数据集的情况下,可以简洁地证明一个数据是否属于一个数据组。

• MT中每个节点的哈希值将证明数据内容的完整性和正确性。

《图1》

图1. 一个MT的例子。A、B、C和D是4个需要被MT加密的文件;H0、H1、H2、H3、H4、H5和H6是MT中节点的标签。

《4. 方法概述》

4. 方法概述

《4.1. 系统组织架构》

4.1. 系统组织架构

图2展示了我们为CBDM提出的方法的系统架构。授权中心:授权中心是一个完全受信任的实体,可以验证用户的身份属性。

《图2》

图2. CBDM装配体MT的方法的体系结构。A、B、C、D和R是M的5个文件。M0:初始的CAD装配体模型;M:变形的CAD装配模型;M’M 的密文;Id:装配体MT中每个文件节点的标识。

数据所有者:数据所有者将通过CSP存储和共享 CAD装配模型。该实体负责创建装配体MT和AHAT,变形草图以及执行加密功能。它将一个模型的加密文件、一个ACT文件和一个装配体MT加载到CSP。

用户:用户将从一台云服务器(B)下载ACT文件以及加密文件的全部或部分。云服务器B执行解密功能。用户将通过另一个云服务器(A)验证下载文件的结构完整性。

CSP:CSP是提供密文存储和传输服务的半信任外包实体。

《4.2. 方法基础》

4.2. 方法基础

CAD装配模型的安全协同设计涉及三个构建块:装配体MT、基于变形的保护和CAD-CP-ABE方案。

如图所示。如图3(a)、(b)所示,装配体Assem02 具有固定的结构,可以抽象地显示为树形图。每个零部件(零件和装配体的统称)成为该树形图的一个节点。

《图3》

图3. Assem02的说明性示例。(a)SolidWorks中Assem02的装配结构;(b)Assem02的抽象结构树;(c)Assem02的装配体MT。

我们构建了一个装配体MT以支持完整性验证,如图3所示。在装配体MT中有两种类型的节点。部分(叶)节点表示为[identity (Id), value]对,其中,value是通过抗冲突哈希函数[如消息摘要算法5(MD5)和安全哈希算法]计算出的叶子文件的哈希(SHA)。装配体(非叶)节点表示为[Id, value1, value2]对,其中value1等于其哈希值,而value2等于由所有子级哈希顺序连接的字符串的哈希值。

当用户可以特权访问Assem6的所有文件并将Id Assem6-1提交给CSP时,云生成的正确哈希值文件的内容应为:[Assem6-1, H4, hash(H1 + H2)];[Part004-1, H1]; [Part003-1, H2],如图3(c)所示。用户将计算下载文件的哈希并将它们与接收到的哈希进行比较。如果文件已被修改或结构已被破坏,则用户可以很容易地发现这些问题。

4.2.1. 基于变形的保护

典型的CAD模型由各种特征{Fi }(一组模型特征)组成,如图4(a)所示。基于一系列约束和草图{Si }(一组模型特征草图)创建特征,这两个约束和草图都确定了模型形状。如果将变形方法应用于特征和基准,则 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模型恢复为原始状态。

二维和三维特征的转换矩阵定义如下:

式中,表示在0.9和1.1之间随机选择的一个十进制数;η λ是两个系数,满足0 < η, λ < 1;n是从0开始的整数。图4对变形进行了说明。图4(a)中,Cyt-Extrude1是一个私有功能,不能与其他人共享。我们用变换矩阵修改其Sketch4,以获得变形的Part003,如图4(c)所示。

《图4》

图4. Part003的特征草图变形的示例。(a)SolidWorks中Part003的FeatureManager;(b)原始Part003;(c)变形的Part003。

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的数量。

《4.3. 系统安全的协同设计过程》

4.3. 系统安全的协同设计过程

安全的共同设计过程包括以下步骤:

(1)变形私有特征。对于数据所有者(D)拥有的CAD装配模型M0,将使用基于变形的方法隐藏装配内部零部件的私有形状特征(Fi )。共享之前,将M0转移到新的CAD装配模型M中。

(2)构造一个装配体MT。D将构造一个装配体 MT,如图3所示。

(3)制定加密过程。M的文件(即明文)将通过加密算法用CK = {ck1, ..., cki , ...}加密为模型密文M′ = {m1, ..., mi, ...}。D将首先生成一个AHAT,然后通过CADCP-ABE方案中的加密功能(即CAD-CP-ABE加密过程)为CK= {ck1, ..., cki , ...}计算ACT文件。

(4)共享数据文件。D将装配体MT、M′ 和CK ACT 文件上传到CSP。装配体MT分别存储在云服务器A上。 M′ 和ACT存储在云服务器B上。

(5)验证结构完整性。协同设计者(U)可以向 CSP发送一组文件,该CSP将装配体MT与其他共享文件一起存储在云服务器中。该服务器将返回一组哈希值以进行完整性验证。

(6)获得明文。U将其身份属性发送给受信任的授权中心以检索SK。ACT文件中的密文元素与SK组合以评估CK。然后,用CK对加密的模型文件M′ 解密。

《5. CAD-CP-ABE 方案的详细过程》

5. CAD-CP-ABE 方案的详细过程

《5.1. CAD-AP-ABE 方案的层次访问结构构造》

5.1. CAD-AP-ABE 方案的层次访问结构构造

图5(a)中的访问结构T1基于CP-ABE方案来解密源文件m1。每个非叶节点都是一个阈值节点,并且每个叶节点都与属性关联。根节点代表一个源文件。阈值为num1/num2,其中num1表示“需要满足条件的节点数”,而num2表示“子项总数”。

对于CAD装配模型结构,如图5(b)所示,较少用户将访问较高级别的节点。如果将属性节点插入模型结构,则重复的属性节点将增加不必要的开销,如图5 (b)所示。同时,重复的装配体节点也将增加开销。

《图5》

图5. CP-ABE方案中的访问结构示例。(a)访问结构树的示例。T1是m1的访问结构。(b)Assem02和Part004的分层访问结构。Attri:属性节点(attribute node)。

因此,我们在方案中指定以下规则来生成AHAT:

(1)提取用于AHAT生成的集成装配模型结构。

(2)将结构分为组成节点和隐藏节点。由于节点2 和节点3表示相同的属性,因此,如果它们具有相同的父节点1,或者如果节点2的父节点是节点3的祖先,则将节点2及其子节点设置为AHAT中的隐藏节点。

(3)为装配中的每个零部件插入属性节点和(或)阈值节点,以构造AHAT。为了降低AHAT的复杂性,有必要修剪属性结构。如果任何装配体节点与其父/祖先节点具有相同的访问属性结构,则切断这些属性并更改访问结构。

身份属性按层次结构定义如下:总工程师、副总工程师、项目工程师、工程师和助理工程师。对应的属性集合为AT = {1, 2, 3, 4, 5}。例如,我们将三个公司C1、 C2和C3列为公司属性,并将它们的值分别定义为6、7 和8。总属性设置为AT = {1, 2, 3, 4, 5, 6, 7, 8}。

如图6所示,存在一个描述访问结构并包含几个访问级别的AHAT。AHAT和节点的术语和功能如下:

《图6》

图6. AHAT是装配模型的集成层次访问结构。

(x, y):此二进制表示AHAT中的非隐藏节点。x代表节点的行(从上到下),y代表节点的列(从左到右)。例如,在图6中,节点Assem02的二进制是(1, 1),节点 Part005-1的二进制是(2, 1),并且级别3上的属性3的二进制是(3, 5)。

num(x, y):HAT中(x, y)子级集合中非隐藏节点的数量。如图6中的 num(2, 2) = 2。

k(x, y):非隐藏节点(x, y)的阈值,其中0 < k(x, y) ≤ num(x, y)。如果(x, y)是叶节点,则k(x, y) = 1。例如,k(1, 1) = k(2, 2) = 2。

parent(x, y):AHAT中节点(x, y)的父级。例如,图6中的parent(5, 1)= (4, 3)。

att(x, y):与AHAT中的叶节点(x, y)关联的属性。

index(x, y):返回与节点(x, y)关联的唯一值。对于给定密钥,索引值以任意方式唯一地分配给AHAT中的节点。

《5.2. CK 的加密和解密过程》

5.2. CK 的加密和解密过程

DBDH是一个双线性参数生成器。假定数据所有者与num个响应的CK(CK = {ck1, ..., cknum})共享文件。此外,在CAD-CP-ABE方案中使用了两个哈希函数 H1:{0,1}* → G0H2:{0,1}* → GT

Setup(1k ):权限在安全参数k和随机数α, βZp内执行此功能。DBDH将输出PK和MSK,分别如式(2)和式(3)所示。

KeyGen(PK, MSK, S):授权机构使用一个用户S的一组属性执行此功能,并创建SK,如式(4)所示,其中rZprjZp是为该用户随机选择的。D是正常的关键参数,DDj ′是属于属性j的关键参数。DDj Dj ′ 组成SK。

在所提出的方法中,一个用户的属性集具有两个元素:职位属性和公司属性。因此,S通常是两个元组。

Encrypt( PK, CK, A ):数据所有者为CK = {ck1, ..., cknum}选择num个随机数{s1, ..., snum}∈Zp,并为所有组成节点(i = 1, 2, ..., num)计算CCi ′,如式(5)所示。 CCi ′是属于cki 的关键参数。

以自上而下的方式为每个非隐藏节点生成具有多项式规则的多项式q(x, y),如下所示:

(1)从根节点开始。

(2)q(x, y)的度为k(x, y) − 1

(3)如果(x, y)是组成节点,则q(x, y)(0) = si 。否则, q(x, y)(0) = qparent(x, y)(index(x, y))。q(x, y)的其他多项式信息是随机选择的。

对于每个叶节点,数据所有者将计算C1(x, y)C2(x, y),如式(6)所示。C1(x, y)C2(x, y)是用于解密节点(x, y)的两个关键参数。

对于每个组成节点,数据所有者计算C(x, y),l ,如式(7)所示,其中子项子集是{child1, …, childl , …}。C(x, y),l 是在父节点和子节点之间使用的关键参数。

数据所有者输出集成的ACT文件,如式(8)所示。

Decrypt(PK, ACT, SK):用户需要由S描述的PK和 SK来解密ACT。

对于叶节点(x, y),我们将DecryptNode(ACT, SK, (x, y))定义为式(9),其中j = att(x, y),且如果j S,则 DecryptNode(ACT, SK, (x, y)) = null。

对于每个装配体/阈值节点,我们定义DecryptNode(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)的随机数s与其父级的随机数无关,因此z不能作为装配体节点。

接下来,e(g,g) αsi 可以通过式(11)进行计算,其中 是组成节点(x, y)的编号。

由于父文件需要使用所有子文件,因此(x, y)有权解密所有子文件。F(x, y),是解密的中间参数。我们可以使用式(12)为AHAT中的装配体节点(x, y)计算装配体 childF(x, y),

然后,通过执行式(13)解密相应的CK,即cki ,其中i是组成节点(x, y)的编号。

最后,使用cki 解密相应的文件。

《5.3. CAD-CP-ABE 方案的安全性证明》

5.3. CAD-CP-ABE 方案的安全性证明

5.3.1. 安全性模型

在该方案中,用户的SK与属性集相关联,而ACT 与访问结构相关联。我们方案的安全模型应该抵抗 CPA。敌手A1和挑战者B1之间的CPA安全博弈要求A1 挑选一个挑战性结构AT*,并且A1可以要求获得所有不满足AT*子结构的SK。

(1)初始化。A1在AT*处选择一个具有挑战性的结构并将其交付给B1。

(2)设置。B1运行Setup(1k )算法并且发送PK给A1。

(3)查询阶段。A1选择一系列属性集(S, ..., Sw, ∈[1, w], Si ∉AT*)来重复地为SK询问B1。B1通过运行KeyGen(PK, MSK, Si )算法来回答这些提问。

(4)挑战。A1选择两个长度相等的信息,即m0m1作为挑战。然后B1随机选择一个比特µ∈{0, 1}以及带有访问结构AT*的密文mμ。最后,B1将密文ACT*交付给A1。

(5)查询阶段2。与查询阶段1相同。

(6)预测。A1输出一个预测比特µ′∈{0, 1}。如果µ′ = µ,A1赢得安全性博弈;否则博弈失败。A1赢得CPA博弈的好处被定义为AdvA1CPA(1k ) = |Pr [µ′ = µ] – l/2| 。

定义3:如果没有概率多项式时间敌手A1能够赢得安全博弈,则CAD‐CP‐ABE方案对CPA是安全的。

5.3.2. 方案的安全性证明

定理1:假设DBDH的假设在<G0,GT>成立,那么任何多项式敌手都不能有选择地破坏该方案。

证明:假设敌手A1在选择性安全博弈中以不可忽视的优势ε = AdvA1CPA(1k )来反对我们的构建。挑战者B1能够以不可忽略的概率(ε/2)来区分DBDH元组Dbdh和随机元组Drand。令: G0 × G0GT是一个高效可计算双线性映射,其中G0是具有带着一个生成器g的素数阶p。挑战者随机选取参数(a, b, c) ∈Zp,随机值µ∈{0, 1},以及随机元素θRGT。如果u = 0,那么挑战者B1设置(g, A, B, C, T) = (g, ga , gb , gc , e(g, g) abc) ∈ Dbdh;否则挑战者设置(g, A, B, C, T) = (g, ga , gb , gc , θ) ∈ Drand。ACT根据式(8)计算。

(1)初始化。敌手A1选择一个具有挑战性的结构 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′ = ra。B1 可以获得D = g( + r′)/β = g ( + ra )/β 。然后,对于每个属性 ajWj ,B1需要随机选择rjZp。B1按如下方式,即Dj = g (ra ) ·H1(j) rjDj ′ = grj 构造剩余的SK。最后,B1向A1 发送SK。

(4)挑战。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*发送给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在与挑战者B1的比赛中获胜的概率计算如下:

如果(g, ga , gb , gc , )∈Dbdh,也就是说T = gabc,那么ACT*是一个有效的密文;在这种情况下,敌手A1的优势是ε

Pr[B1(g, A, B, C, T)∈Dbdh = 0] = 1/2 + ε

如果(g, ga , gb , gc , )∈Drand,不等式µ′µ成立。敌手A1拥有1/2的优势,且与µ′上的分布无关。在这种情况下,敌手A1没有优势。

Pr[B1(g, A, B, C, T)∈Drand= 0] = 1/2。

最后,挑战者B1的优势如下:

Adv B1 = 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

《5.4. 理论分析》

5.4. 理论分析

Cee运算(双线性对)。假设|Aa|是属性节点数, Ac是将装配体节点作为子节点的装配体节点集,Au是用户U的属性集。

存在k个CK,其中每个节点Ac都包含n个装配体节点作为子节点。在CAD-CP-ABE方案中,在生成AHAT 的过程中切断了底层构件节点的一些属性节点。因此,当CK的数目固定时,加密时间与kn|Ac|和|Aa|有关。

在我们的方法中,|Au = 2|是常数,这使得解密时间独立于叶节点。假设用户U有权访问根节点。因为满足根访问结构的内部节点的最小数量是两个,所以只有两个属性节点。根节点的计算如式(9)所示。解密时间与kn|Ac|有关。

此外,可通过式(8)获得ACT的大小,如表1所示,其中L是元素Gi , i∈{0, T}的长度。

《表1》

表1 CAD-CP-ABE (CK ={ck1, ..., ckk})的特征

《6. 实验》

6. 实验

《6.1. 实验仿真》

6.1. 实验仿真

这种方法执行两个加密过程:明文加密和CK加密。对于明文加密,我们使用高级加密系统(AES)算法对装配体文件进行加密和解密。对于CK加密,我们基于Java配对密码(JPBC)库[54]实现了CK的CAD-CPABE方案。我们使用A型双线性映射。A型对构造在Fq 域上的曲线y2 = x3 + x上。这种配对是对称的,阶是q + 1的某个素数因子。A型需要两个参数rBits = 160。所有结果都是20个实验的平均值。

《6.2. 实验结果》

6.2. 实验结果

如图7所示,我们使用AES算法对汇编格式进行加密并转换为文本格式,解密过程与加密过程相反。实验验证了一种加密算法在装配体文件上的实用性,加密和解密过程不会破坏内容完整性。

《图7》

图7. 装配体文件使用AES算法进行加密和解密的示例。

如图8(a)所示,SK的生成时间近似线性。由于每次实验会选择一些新的参数,因此在线性关系中会产生轻微的计算误差。基于Pairing对象使用newElement() 方法生成SK的时间低于2 s,整个过程的总时间不超过 50 s。我们选择使用newRandomElement()方法加强SK 生成的安全性,这会导致额外的时间成本。

图8(b)~(d)给出了加密和解密实验结果。如图 8(b)所示,我们假设有不同的叶节点,每个叶节点具有两个层次文件。根据AHAT生成规则,CAD-CP-ABE 中的叶节点数等于CP-ABE中的|Aa2|。如图8(c)所示,存在固定叶节点(N = 30)的各种层次文件。图8(b)、(c)表明,结果越来越近似地遵循线性关系。显然,叶片节点的数量对CAD-CP-ABE中的时间成本影响较大。

《图8》

图8. CK加密和解密的实验结果。(a)SK生成时间和所有属性数;(b)两个CK的加密时间成本;(c)30个叶节点的加密时间成本;(d)来自根节点的所有CK的解密时间成本。

CK的解密时间从根节点开始计算。在我们的方法中,对于CAD-CP-ABE中的根节点和CP‐ABE中的每个装配体节点,只需要满足两个叶节点。当用户U获得文件A的CK时,U可以通过ACT文件逐层导出文件A下面的所有其他装配体节点的CK。如图8(d)所示,解密时间成本仅与CK的数目有关。实验表明,该方案提高了加密和解密效率。

《7. 结论》

7. 结论

本文提出了一种层次化的装配体文件共享方法,以保护云设计和制造时代面向外包和协同设计的CAD模型。这种方法结合了ABE方案、结构完整性检查和基于变形的CAD装配模型形状保护。仿真实验表明,该方法在计算效率和灵活性方面是可行的。

对于未来的工作,第一个方向是确定如何将形状加密从基于草图的CAD零件变形扩展到CAD装配变形。第二个方向是采用多核计算技术和优化方法[55–61],以加速CAD大数据的加密和解密。第三个方向是将建议的方法扩展到其他多媒体数据[62–67]。最后,我们将把一个可搜索的加密方案集成到所提出的方法中[68,69]。

《致谢》

致谢

本课题得到了国家自然科学基金(62072348)和湖北省科技重大专项(下一代人工智能技术; 2019AEA170)的支持。

《Compliance with ethics guidelines》

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.