完全策略隐藏的数据访问控制方法及其相关设备

文档序号:68561 发布日期:2021-10-01 浏览:15次 >En<

阅读说明:本技术 完全策略隐藏的数据访问控制方法及其相关设备 (Data access control method with complete strategy hiding and related equipment thereof ) 是由 罗涛 韩新宇 宋海娜 李剑峰 于 2021-06-07 设计创作,主要内容包括:本公开提供一种完全策略隐藏的数据访问控制方法及其相关设备。所述方法包括:首先初始化访问控制系统并生成各个参数,根据所述参数计算系统中属性的双线性配对参数和同态参数,并进一步计算公钥和主密钥,然后获取用户的属性集合,并计算对应的用户私钥。获取数据拥有者的访问策略,构建同态访问树结构,并根据同态访问树结构和公钥对明文数据加密得到密文数据。最后在解密时,根据用户的私钥和获取的密文进行完全策略隐藏下的属性匹配,当用户的属性集合满足密文数据中数据拥有者设定的访问策略时,解密得到明文数据。(The disclosure provides a data access control method of complete strategy hiding and a related device thereof. The method comprises the following steps: firstly initializing an access control system and generating each parameter, calculating bilinear pairing parameters and homomorphic parameters of attributes in the system according to the parameters, further calculating a public key and a master key, then acquiring an attribute set of a user, and calculating a corresponding private key of the user. And acquiring an access strategy of a data owner, constructing a homomorphic access tree structure, and encrypting plaintext data according to the homomorphic access tree structure and a public key to obtain ciphertext data. And finally, during decryption, performing attribute matching under complete strategy hiding according to the private key of the user and the acquired ciphertext, and when the attribute set of the user meets the access strategy set by the data owner in the ciphertext data, decrypting to obtain plaintext data.)

完全策略隐藏的数据访问控制方法及其相关设备

技术领域

本公开涉及数据安全

技术领域

,尤其涉及一种完全策略隐藏的数据访问控制方法及其相关设备。

背景技术

随着大数据概念的兴起,越来越多的传统行业将目光投向了大数据,希望利用大数据驱动创新,进而推动行业的进步。然而,大数据中可能包含个人的隐私信息,如果直接进行发布和共享,可能会造成隐私信息的泄露,对个人利益造成损害。大数据共享阶段一般对云端的数据采用访问控制技术来控制数据的共享过程,其中CP-ABE(密文策略-基于属性的加密)能够提供细粒度的访问控制,且数据发布者具有较强的数据控制力,因此非常适用于大数据的共享。

在传统的CP-ABE方案中,参考图1,密钥SK与属性集合相关联,密文CT与访问策略相关联,当且仅当用户的属性集合满足密文的访问策略时,才能够对密文进行解密,得到明文数据。

在传统的CP-ABE方案中,访问策略在密文中是直接可见、不加隐藏的,因此用户可以通过推断的方式得知密文中的访问策略。当访问策略中包含敏感信息时,用户可以获取访问策略中的敏感信息,从而造成隐私信息的泄露。以医疗场景为例,某病人设置其病历数据的访问策略为“(门诊:心脏科)AND(医院:AA医院)”,表示病人希望北大医院的心脏科的医生能够查看这份病历。但是,用户在获得病历数据的密文时,可以从密文中推断出病人设置的访问策略,从而知道病人患有心脏方面的疾病,使得病人的隐私信息遭到泄露。

发明内容

有鉴于此,本公开的目的在于提出一种完全策略隐藏的数据访问控制方法及其相关设备。

基于上述目的,本公开提供了一种完全策略隐藏的数据访问控制方法,包括:

生成同态加密的参数,根据所述参数计算每个属性的基础同态参数;

根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构,其中,根据所述基础同态参数计算所述访问策略中每个属性的第一同态密文,并基于所述第一同态密文形成相应的同态节点作为所述同态访问树结构的叶子节点;

基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据;

响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,其中所述解密私钥包括所述用户属性集合中每个属性的第二同态密文,所述第二同态密文是根据所述基础同态参数计算得到的;

对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值;

响应于根据各个所述同态节点的解密值而确定所述用户属性集合满足所述访问策略,允许所述用户设备对所述密文数据进行解密以得到所述明文数据。

进一步,所述根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构包括:

根据所述数据拥有者的访问策略,构建访问树结构;

在所述访问树结构的叶子节点和父节点之间,插入基于所述叶子节点进行同态加密后得到的同态节点,所述同态节点作为所述叶子节点的父节点和原父节点的子节点;

去除所述访问树结构中的原叶子节点,仅保留所述同态节点作为所述访问树结构的叶子节点。

进一步,所述对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与每个所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值,包括:

对所述同态访问树内的每个同态节点进行属性匹配,定义所述同态节点处的匹配函数为Match(Wx,Wy′)=(Wy′Wx oo-WxWy oo)mod O2,当且仅当Match(Wx,Wy′)=0时,所述用户属性集合的属性和所述同态节点所代表的数据拥有者的访问策略中的属性完全匹配,从而得到所述同态节点的解密值,若不存在Match(Wx,Wy′)=0,则所述同态节点的解密值为1,其中,Wy′表示所述用户属性集合中属性的第二同态密文,Wx表示所述同态节点代表的数据拥有者的访问策略中的属性的第一同态密文,Wx oo和Wy oo分别是根据第二校正同态参数、第一校正同态参数计算得到的同态校正值,O为同态加密里两个大素数的乘积。

进一步,所述同态访问树结构中节点类型包括AND门、OR门和threshold门。

进一步,所述基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据,包括:

设置所述同态访问树根节点的秘密共享值,根据所述根节点的秘密共享值和双线性配对参数计算所述同态访问树的密文参数和所述同态节点的秘密共享值;

根据所述同态节点的秘密共享值和双线性配对参数计算所述同态节点的双线性配对密文;

根据所述同态节点的基础同态参数和随机同态参数,计算得到所述同态节点的第一同态密文;

对所述随机同态参数进行第二同态加密,得到第二校正同态参数;

根据总的秘密共享值对明文数据加密,得到密文主体;其中,所述密文数据包括:密文参数、密文主体、第二校正同态参数、第一同态密文和双线性配对密文。

进一步,所述响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,包括:

根据双线性配对参数计算所述用户属性集合的私钥参数和所述用户属性集合中属性的双线性配对私钥;其中,所述双线性配对参数是在初始化阶段根据生成的双线性映射计算得到的;

将每个所述用户属性集合中属性的基础同态参数乘以随机同态参数,得到所述属性的第二同态密文;

对随机同态参数进行第二同态加密,得到第一校正同态参数;其中,所述密文数据包括:私钥参数、第一校正同态参数、同态加密参数、第二同态密文和双线性配对私钥。

进一步,所述设置所述同态访问树根节点的秘密共享值,根据所述根节点的秘密共享值计算所述同态节点的秘密共享值,包括:

设置所述同态访问树根节点的秘密共享值为sroot,从根节点到同态节点,递归计算秘密共享值:

响应于确定节点是AND门,使用(n,n)-Shamir秘密共享方案,对于该节点的每个子节点,设置其秘密共享值si=f(i);

响应于确定节点是OR门,使用(1,n)-Shamir秘密共享方案,对于该节点的每个子节点,设置其秘密共享值si=f(i);

响应于确定节点是threshold门限门,使用(t,n)-Shamir秘密共享方案,其中t是该节点的门限值;对于该节点的每个子节点,设置其秘密共享值si=f(i)。

基于同一发明构思,本说明书一个或多个实施例还提供了一种完全策略隐藏的数据访问控制装置,包括:

初始化模块,被配置为生成同态加密的参数,根据所述参数计算每个属性的基础同态参数。

构建模块,被配置为根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构,其中,根据所述基础同态参数计算所述访问策略中每个属性的第一同态密文,并基于所述第一同态密文形成相应的同态节点作为所述同态访问树结构的叶子节点;

加密模块,被配置为基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据;

响应模块,被配置为响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,其中所述解密私钥包括所述用户属性集合中每个属性的第二同态密文,所述第二同态密文是根据所述基础同态参数计算得到的;

匹配模块,被配置为对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值;

解密模块,被配置为响应于根据各个所述同态节点的解密值而确定所述用户属性集合满足所述访问策略,允许所述用户设备对所述密文数据进行解密以得到所述明文数据。

基于同一发明构思,本说明书一个或多个实施例还提供了一种完全策略隐藏的数据访问控制系统,包括云服务器、权威中心、数据拥有者和用户:

所述云服务器被配置为存储数据拥有者加密得到的密文数据,并将密文数据发送给所述用户;

所述权威中心被配置为生成参数,根据所述参数为属性计算双线性配对参数和基础同态参数,并进一步计算公钥和主密钥;

根据所述用户的的解密私钥的获取请求和所述主密钥计算所述用户属性集合对应的私钥,并将私钥发送给所述用户;

所述数据拥有者被配置为设定明文数据的访问策略,根据所述数据拥有者的访问策略构建同态访问树结构,根据所述同态访问树结构和公钥对明文数据加密得到密文数据,并将所述密文数据发送给所述云服务器;

所述用户被配置为从所述云服务器获取所述密文数据,根据所述钥和密文数据将所述用户属性集合和所述密文的访问策略进行匹配,响应于确定所述用户属性集合满足所述密文数据中数据拥有者的访问策略,解密得到明文数据。

基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。

从上面所述可以看出,本公开提供的一种完全策略隐藏的数据访问控制方法及其相关设备,使用同态加密对访问策略中的属性进行加密处理,从而实现属性名和属性值的隐藏,即完全策略隐藏。确保用户无法从密文数据的访问策略中获取敏感信息。另一方面,当访问策略被隐藏时,为确保解密阶段的属性匹配能够正常进行,本方案构建一种基于同态加密的属性匹配机制,使得在访问策略隐藏的条件下,能够正确地从密文中解密出明文。

附图说明

为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为传统的CP-ABE方案的流程示意图;

图2为本公开实施例的完全策略隐藏的数据访问控制方法流程图;

图3为本公开实施例的同态访问树结构的构建流程图;

图4为本公开实施例的同态访问树结构示意图;

图5为本公开实施例的密文数据加密流程图;

图6为本公开实施例的完全策略隐藏的数据访问控制装置结构示意图;

图7为本公开实施例的电子设备结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。

如背景技术部分所述,现有的CP-ABE方案还难以满足安全需要。申请人在实现本公开的过程中发现,根据CP-ABE的访问结构,策略隐藏方案分为基于与门、基于访问树和基于LSSS矩阵的策略隐藏方案。访问树能够表达复杂的访问策略,且访问策略直观易读,适用于实际环境中的使用。有学者分别提出引入随机数的部分策略隐藏CP-ABE方案和基于末端节点的完全策略隐藏CP-ABE方案。前者通过引入随机数的方式实现访问策略中属性值的隐藏,虽然具有较低的计算复杂度,但没有隐藏访问策略中的属性名,仍然具有隐私泄露的风险。后者在访问树结构中构建末端节点,通过去除叶子节点实现完全策略隐藏,且在解密阶段通过末端节点的匹配机制实现访问策略和属性集合的属性匹配操作,但解密阶段每个末端节点都要与用户的属性集合内的所有属性进行配对,导致计算复杂度较高,不适用于实际环境中。目前,基于访问树的策略隐藏CP-ABE方案的研究仍然较少,缺少一种兼顾完全策略隐藏和低计算复杂度的方案。

有鉴于此,本公开在一些实施例中提供了完全策略隐藏的数据访问控制方案,具体的,首先生成参数,根据所述参数为属性计算双线性配对参数和同态参数,并进一步生成公钥和主密钥,然后获取用户属性集合,并计算对应的私钥。获取数据拥有者的访问策略,构建同态访问树结构,并根据同态访问树结构和公钥对明文加密得到密文。最后在解密时,,根据用户私钥和密文数据将用户属性集合和密文的访问策略进行匹配,当用户属性集合满足密文中数据拥有者的访问策略时,解密得到明文数据。

可见,本公开一个或多个实施例的完全策略隐藏的数据访问控制方案,基于传统的访问树结构,引入同态加密,构建了同态访问树结构,实现了访问策略的完全隐藏。

以下,通过具体的实施例来详细说明本公开一个或多个实施例的技术方案。

参考图2,本公开一个实施例的完全策略隐藏的数据访问控制方法,包括以下步骤:

步骤S201、生成同态加密的参数,根据所述参数计算每个属性的基础同态参数。

步骤S202、根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构,其中,根据所述基础同态参数计算所述访问策略中每个属性的第一同态密文,并基于所述第一同态密文形成相应的同态节点作为所述同态访问树结构的叶子节点。

本步骤中,明文数据包括用户的属性,用于通过若干的要素来刻画一个用户,包括属性名和属性值。具体的,特征数据可以是用户的自然或社会属性,如性别、年龄、职业、居住地、好友关系等,性别、年龄、职业、居住地、好友关系等为用户的属性名,而其具体的内容,如男性、21岁、学生、某某小区、与xx关系密切等为用户的属性值;特征数据也可以是用户的历史行为,如是否去过某医院、是否患有某种疾病等。显然,特征数据所包括的具体内容,可以根据具体的实施需要而选择。

本实施例中对于特征数据的获取方式不做具体限定,可以是用户上传的,也可以是从外部的数据源获取的;例如,用户的性别、年龄等自然属性,可以从用户注册信息数据库获取;用户的就医记录,可以从医院平台的数据库获取。

本步骤中,参考图3,所述同态访问树结构的构建步骤可以通过以下步骤完成:

S301、根据所述数据拥有者的访问策略,构建访问树结构;

本步骤中,构建的访问树结构是传统的访问树结构。

S302、在所述访问树结构的叶子节点和父节点之间,插入基于所述叶子节点进行同态加密后得到的同态节点,所述同态节点作为所述叶子节点的父节点和原父节点的子节点;

S303、去除所述访问树结构中的原叶子节点,仅保留所述同态节点作为所述访问树结构的叶子节点。

可见,参考图4,本实施例中的同态访问树结构,使用与原叶子节点相匹配的同态节点代替原有的叶子节点,在去除原叶子节点的同时,隐藏了原叶子节点中带有的属性值和属性名的信息,保护了用户的隐私。

步骤S203、基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据。

步骤S204、响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,其中所述解密私钥包括所述用户属性集合中每个属性的第二同态密文,所述第二同态密文是根据所述基础同态参数计算得到的。

步骤S205、对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值;

本步骤中,首先对所述同态访问树内的每个同态节点进行属性匹配,定义所述同态节点处的匹配函数为Match(Wx,Wy′)=(Wy′Wx oo-WxWy oo)mod O2,当且仅当Match(Wx,Wy′)=0时,所述用户属性集合的属性和所述同态节点所代表的数据拥有者的访问策略中的属性完全匹配,从而得到所述同态节点的解密值,若不存在Match(Wx,Wy′)=0,则所述同态节点的解密值为1,即所述同态节点没有完成属性匹配,其中,Wy′表示所述用户属性集合中属性的第二同态密文,Wx表示所述同态节点代表的数据拥有者的访问策略中的属性的第一同态密文,Wx oo和Wy oo分别是根据第二校正同态参数、第一校正同态参数计算得到的同态校正值,O为同态加密里两个大素数的乘积。

步骤S206、响应于根据各个所述同态节点的解密值而确定所述用户属性集合满足所述访问策略,允许所述用户设备对所述密文数据进行解密以得到所述明文数据。

可见,在本实施例中,基于同态加密来实现CP-ABE的完全策略隐藏,而且具有较低的计算复杂度。在根据访问策略构建访问树结构时,由于同态访问树结构去除原始的叶子节点,用户无法从访问策略中得知同态节点对应的属性。在解密阶段,通过基于同态加密的属性匹配机制,实现属性隐藏条件下的匹配操作,进而完成密文的解密。同时,由于属性匹配机制是第一同态密文和第二同态密文间的乘法运算,相对于解密阶段需要进行的双线性配对的运算而言,计算复杂度要低很多。因此,相比之下引入新的属性匹配机制的本方案与原始的CP-ABE方案在解密阶段的计算复杂度相近,但是实现了完全的策略隐藏;与已有的策略隐藏CP-ABE方案相比则显著的降低了复杂度。本方案兼顾完全策略隐藏和低计算复杂度,适用于实际环境的应用,具有较强的实际意义。

在一些实施例中,所述同态访问树结构中节点类型包括AND门、OR门和threshold门。

作为一个可选的实施例,参考图5,对于前述实施例中的步骤S203中的基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据,其加密步骤还可以包括:

S501、设置所述同态访问树根节点的秘密共享值,根据所述根节点的秘密共享值和双线性配对参数计算所述同态访问树的密文参数和所述同态节点的秘密共享值;

本步骤中,设置所述同态访问树根节点的秘密共享值为sroot,从根节点到同态节点,递归计算秘密共享值:

如果节点是AND门,使用(n,n)-Shamir秘密共享方案,对于该节点的每个子节点,设置其秘密共享值si=f(i);

如果节点是OR门,使用(1,n)-Shamir秘密共享方案,对于该节点的每个子节点,设置其秘密共享值si=f(i);

如果节点是threshold门限门,使用(t,n)-Shamir秘密共享方案,其中t是该节点的门限值;对于该节点的每个子节点,设置其秘密共享值si=f(i)。

本实施例中,AND门表示与AND相连的所有子节点代表的属性都要满足。例如<医生>AND<心脏科>,就是心脏科的医生。OR门表示与OR相连的所有节点代表的属性只需要满足其中一个。例如<医生>OR<心脏科>,就是医生或者是心脏科的某个人。Threshold门表示与threshold相连的所有节点代表的属性需要满足设定的阈值k,例如threshold门的阈值为k,则子节点中至少要有k个子节点满足。

S502、根据所述同态节点的秘密共享值和双线性配对参数计算所述同态节点的双线性配对密文;

S503、根据所述同态节点的基础同态参数和随机同态参数,计算得到所述同态节点的第一同态密文。

在S201步骤中,系统为每个属性赋予了基础同态参数,在本步骤中为每个叶子节点进行第一同态加密,为每个叶子节点的基础同态参数乘以一个随机同态参数,得到每个叶子节点的第一同态密文。

S504、对所述随机同态参数进行第二同态加密,得到第二校正同态参数。

在本步骤中,第二同态加密的目的是保护随机同态参数的安全。

S505、根据总的秘密共享值对明文数据加密,得到密文主体;其中,所述密文数据包括:密文参数、密文主体、第二校正同态参数、第一同态密文和双线性配对密文。

作为一个具体的示例,给出本实施例的数学流程:

生成双线性映射参数:输入安全参数λ,生成双线性映射e:G×G→GT,其中G的阶N=pqr。Gp、Gq和Gr为G的阶为p、q和r的子群,生成元分别为gp、gq和gr

生成同态加密的参数:随机选择两个大素数O1和O2,二者满足gcd(o1o2,(o1-1)(o2-1))=1。

计算O=o1o2,β=lcm(o1-1,o2-1)。随机选择s,且s满足gcd(L(sβmod O2),O)=1。

随机选择两个大素数o′1和o′2,二者满足gcd(o′1o′2,(o′1-1)(o′2-1))=1。

计算O′=o′1o′2,β′=lcm(o′1-1,o′2-1)。随机选择s′,且s′满足gcd(L(s′β′mod O′2),O′)=1。随机选择γ′∈ZO′,且0<γ′<O′,gcd(γ′,O′)=1。

计算每个属性的双线性配对参数:对于属性集合U={A1,A2,...,An}及每个集合内可能属性值定义所有属性为ui,j,i∈{1,...,n},j∈{1,...,ui}。随机选择α,ti,j∈ZN和R0,Ri,j∈Gq,计算T0=gpR0

计算每个属性的基础同态参数:随机选择γ∈ZO,且0<γ<O,gcd(γ,O)=1。随机选择wi,j∈ZO,计算

输出公钥PK和主密钥MK如下:

密钥生成:输入用户属性集合L={l1,l2,...,lm}和主密钥MK,构造L对应的私钥SKL

随机选择r∈Zp,计算d0=gp α-r(用户属性集合的私钥参数)。对于随机选择(用户属性集合中每个属性的双线性配对私钥),其中对应的ti,j的值。

随机选择hx∈ZO′,计算(随机同态参数)和(第一校正同态参数)。对于(基础同态参数乘以随机同态参数,得到第二同态密文)。

输出私钥SKL如下:

SKL={d0,d′0,{Wx,dx}1≤x≤m,{s,γ,O,s′,γ′,O′,β′}}

加密过程:输入明文M、访问树T和公钥PK,构建隐藏访问策略的密文数据CT。

设置访问树T的根节点的秘密共享值为Sroot。从根节点到同态节点,递归采用如下方式计算秘密共享值:

(a)如果节点是AND门,使用(n,n)-Shamir秘密共享方案。对于该节点的每个子节点,设置其秘密共享值si=f(i)。

(b)如果节点是OR门,使用(1,n)-Shamir秘密共享方案。对于该节点的每个子节点,设置其秘密共享值si=f(i)。

(c)如果节点是threshold门限门,使用(t,n)-Shamir秘密共享方案,其中t是该节点的门限值。对于该节点的每个子节点,设置其秘密共享值si=f(i)。

对于访问树T的叶子节点根据上述方法得到其秘密共享值为sy。随机选择R′y∈Gq,计算(双线性配对密文)。

随机选择hy∈ZO′,计算(随机同态参数)和(第二校正同态参数)。

随机选择R0′∈Gq,计算(密文参数)和(密文主体),有(基础同态参数乘以随机同态参数,得到第一同态密文)。

输出密数据文CT如下:

其中ntree为访问树T的叶子节点数。

解密过程:输入私钥SKL和密文数据CT,解密分为匹配阶段和计算阶段。

在匹配阶段,对同态节点进行属性匹配。

计算(根据第一校正同态参数和第二校正同态参数计算同态校正值)。

定义同态节点nodey处的匹配函数Match(Wx,Wy′)=(Wy′Wx oo-WxWy oo)mod O2。对于计算Match(Wx,Wy′)=(Wy′Wx oo-WxWy oo)mod O2。当且仅当Match(Wx,Wy′)=0时,属性完全匹配,即nodey对应的cy与dx相匹配,定义该同态节点的解密值函数Dec(nodey)=e(cy,dx)。

在计算阶段,首先根据匹配阶段的匹配结果计算同态节点的解密值,然后通过同态节点的解密值计算明文。

对于同态节点nodey,当存在可匹配属性时,计算Dec(nodey)=e(cy,dx),计算过程如下:

通过匹配函数实现用户的属性集合和同态节点的匹配,之后通过私钥中的双线性配对私钥和密文中的双线性配对密文进行双线性配队计算,得到同态节点的解密值。

当不存在可匹配属性时,定义Dec(nodey)=1。

对于根节点,明文计算过程如下:

需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种完全策略隐藏的数据访问控制装置。

参考图6,所述完全策略隐藏的数据访问控制装置,包括:

601、初始化模块,被配置为生成同态加密的参数,根据所述参数计算每个属性的基础同态参数。

602、构建模块,被配置为根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构,其中,根据所述基础同态参数计算所述访问策略中每个属性的第一同态密文,并基于所述第一同态密文形成相应的同态节点作为所述同态访问树结构的叶子节点;

603、加密模块,被配置为基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据;

604、响应模块,被配置为响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,其中所述解密私钥包括所述用户属性集合中每个属性的第二同态密文,所述第二同态密文是根据所述基础同态参数计算得到的;

605、匹配模块,被配置为对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值;

606、解密模块,被配置为响应于根据各个所述同态节点的解密值而确定所述用户属性集合满足所述访问策略,允许所述用户设备对所述密文数据进行解密以得到所述明文数据。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述任一实施例中相应的完全策略隐藏的数据访问控制方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种完全策略隐藏的数据访问控制系统。包括云服务器、权威中心、数据拥有者和用户:

所述云服务器被配置为存储数据拥有者加密得到的密文数据,并将密文数据发送给所述用户。

所述权威中心被配置为生成参数,根据所述参数为属性计算双线性配对参数和基础同态参数,并进一步计算公钥和主密钥;

其中,参数包括p、q、n、λ、g,其中,p和q表示两个大素数,且二者满足gcd(pq,(p-1)(q-1))=1。计算n=pq,λ=lcm((p-1)(q-1))。随机选择g∈Zp,且g满足gcd(L(gλmod N2),N)=1。采用同态加密算法Paillier为属性计算同态参数、公钥和主密钥。

根据所述用户的的解密私钥的获取请求和所述主密钥计算所述用户属性集合对应的私钥,并将私钥发送给所述用户;

所述数据拥有者被配置为设定明文数据的访问策略,根据所述数据拥有者的访问策略构建同态访问树结构,根据所述同态访问树结构和公钥对明文数据加密得到密文数据,并将所述密文数据发送给所述云服务器;

所述用户被配置为从所述云服务器获取所述密文数据,根据所述钥和密文数据将所述用户属性集合和所述密文的访问策略进行匹配,响应于确定所述用户属性集合满足所述密文数据中数据拥有者的访问策略,解密得到明文数据。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的完全策略隐藏的数据访问控制方法。

图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的完全策略隐藏的数据访问控制方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

需要说明的是,本公开的实施例还可以以下方式进一步描述:

一种完全策略隐藏的数据访问控制方法,包括:

生成同态加密的参数,根据所述参数计算每个属性的基础同态参数。

根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构,其中,根据所述基础同态参数计算所述访问策略中每个属性的第一同态密文,并基于所述第一同态密文形成相应的同态节点作为所述同态访问树结构的叶子节点;

基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据;

响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,其中所述解密私钥包括所述用户属性集合中每个属性的第二同态密文,所述第二同态密文是根据所述基础同态参数计算得到的;

对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值;

响应于根据各个所述同态节点的解密值而确定所述用户属性集合满足所述访问策略,允许所述用户设备对所述密文数据进行解密以得到所述明文数据。

进一步,所述根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构包括:

根据所述数据拥有者的访问策略,构建访问树结构;

在所述访问树结构的叶子节点和父节点之间,插入基于所述叶子节点进行同态加密后得到的同态节点,所述同态节点作为所述叶子节点的父节点和原父节点的子节点;

去除所述访问树结构中的原叶子节点,仅保留所述同态节点作为所述访问树结构的叶子节点。

进一步,所述对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与每个所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值,包括:

对所述同态访问树内的每个同态节点进行属性匹配,定义所述同态节点处的匹配函数为Match(Wx,Wy′)=(Wy′Wx oo-WxWy oo)mod O2,当且仅当Match(Wx,Wy′)=0时,所述用户属性集合的属性和所述同态节点所代表的数据拥有者的访问策略中的属性完全匹配,从而得到所述同态节点的解密值,若不存在Match(Wx,Wy′)=0,则所述同态节点的解密值为1,其中,Wy′表示所述用户属性集合中属性的第二同态密文,Wx表示所述同态节点代表的数据拥有者的访问策略中的属性的第一同态密文,Wx oo和Wy oo分别是根据第二校正同态参数、第一校正同态参数计算得到的同态校正值,O为同态加密里两个大素数的乘积。

进一步,所述同态访问树结构中节点类型包括AND门、OR门和threshold门。

进一步,所述基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据,包括:

设置所述同态访问树根节点的秘密共享值,根据所述根节点的秘密共享值和双线性配对参数计算所述同态访问树的密文参数和所述同态节点的秘密共享值;

根据所述同态节点的秘密共享值和双线性配对参数计算所述同态节点的双线性配对密文;

根据所述同态节点的基础同态参数和随机同态参数,计算得到所述同态节点的第一同态密文;

对所述随机同态参数进行第二同态加密,得到第二校正同态参数;

根据总的秘密共享值对明文数据加密,得到密文主体;其中,所述密文数据包括:密文参数、密文主体、第二校正同态参数、第一同态密文和双线性配对密文。

进一步,所述响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,包括:

根据双线性配对参数计算所述用户属性集合的私钥参数和所述用户属性集合中属性的双线性配对私钥;其中,所述双线性配对参数是在初始化阶段根据生成的双线性映射计算得到的;

将每个所述用户属性集合中属性的基础同态参数乘以随机同态参数,得到所述属性的第二同态密文;

对随机同态参数进行第二同态加密,得到第一校正同态参数;其中,所述密文数据包括:私钥参数、第一校正同态参数、同态加密参数、第二同态密文和双线性配对私钥。

进一步,所述设置所述同态访问树根节点的秘密共享值,根据所述根节点的秘密共享值计算所述同态节点的秘密共享值,包括:

设置所述同态访问树根节点的秘密共享值为sroot,从根节点到同态节点,递归计算秘密共享值:

响应于确定节点是AND门,使用(n,n)-Shamir秘密共享方案,对于该节点的每个子节点,设置其秘密共享值si=f(i);

响应于确定节点是OR门,使用(1,n)-Shamir秘密共享方案,对于该节点的每个子节点,设置其秘密共享值si=f(i);

响应于确定节点是threshold门限门,使用(t,n)-Shamir秘密共享方案,其中t是该节点的门限值;对于该节点的每个子节点,设置其秘密共享值si=f(i)。

进一步,一种完全策略隐藏的数据访问控制装置,包括:

初始化模块,被配置为生成同态加密的参数,根据所述参数计算每个属性的基础同态参数。

构建模块,被配置为根据数据拥有者为明文数据设定的访问策略,构建同态访问树结构,其中,根据所述基础同态参数计算所述访问策略中每个属性的第一同态密文,并基于所述第一同态密文形成相应的同态节点作为所述同态访问树结构的叶子节点;

加密模块,被配置为基于所述同态访问树结构,对所述明文数据进行加密,以得到密文数据;

响应模块,被配置为响应于从用户设备接收到对解密私钥的获取请求,提取所述获取请求中携带的用户属性集合,并获取所述用户属性集合的解密私钥,其中所述解密私钥包括所述用户属性集合中每个属性的第二同态密文,所述第二同态密文是根据所述基础同态参数计算得到的;

匹配模块,被配置为对于每个所述同态节点,基于预设的匹配函数来计算该同态节点对应的所述第一同态密文与所述用户属性集合中属性的所述第二同态密文的匹配值,以得到该同态节点的解密值;

解密模块,被配置为响应于根据各个所述同态节点的解密值而确定所述用户属性集合满足所述访问策略,允许所述用户设备对所述密文数据进行解密以得到所述明文数据。

进一步,一种完全策略隐藏的数据访问控制系统,包括云服务器、权威中心、数据拥有者和用户:

所述云服务器被配置为存储数据拥有者加密得到的密文数据,并将密文数据发送给所述用户。

所述权威中心被配置为生成参数,根据所述参数为属性计算双线性配对参数和基础同态参数,并进一步计算公钥和主密钥;

根据所述用户的的解密私钥的获取请求和所述主密钥计算所述用户属性集合对应的私钥,并将私钥发送给所述用户;

所述数据拥有者被配置为设定明文数据的访问策略,根据所述数据拥有者的访问策略构建同态访问树结构,根据所述同态访问树结构和公钥对明文数据加密得到密文数据,并将所述密文数据发送给所述云服务器;

所述用户被配置为从所述云服务器获取所述密文数据,根据所述钥和密文数据将所述用户属性集合和所述密文的访问策略进行匹配,响应于确定所述用户属性集合满足所述密文数据中数据拥有者的访问策略,解密得到明文数据。

进一步,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于区块链技术的数据加密模组

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类