一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

常数级授权计算复杂度的属性基可搜索加密方法及系统与流程

2022-02-20 00:16:58 来源:中国专利 TAG:


1.本发明涉及云服务器的数据加密技术,具体涉及一种常数级授权计算复杂度的属性基可搜索加密方法及系统。


背景技术:

2.随着云计算、大数据、物联网的快速发展,政府机构、企事业单位为了减少本地it基础设施建设投入,他们开始考虑将自己的数据迁移到云计算中心,借助于云计算平台的强大功能存储和处理数据。安全问题一直是困扰机构高层管理人员决策是否采用云计算模式管理内部数据和应用的关键问题之一。因为,数据外包给云计算平台也意味着机构失去了对数据的直接物理控制,数据将面临着被恶意攻击者窃取和篡改的极高风险。保障数据安全的有效措施之一是引入密钥对数据进行加密。然而,传统的加密技术使用密钥对数据进行了随机化,导致了数据必须解密恢复后才能被使用。如果将无法操作和运算的密文存储在云计算平台上,数据使用者必须下载数据并解密后才能访问,一方面极大地限制了云平台本身的数据处理能力,同时也违背了人们使用云计算的初衷。
3.近年来,如何在加密的数据上直接进行运算和操作是研究界炙手可热的话题,也得到了工业界的极大关注。可搜索加密是这个研究领域的重要分支之一。顾名思义,可搜索加密就是支持在加密的数据上直接进行搜索的加密技术。目前,研究者们在增强安全强度和丰富查询功能等核心问题上做出了很多前瞻性工作,提出了前向安全、后向安全,多关键字查询、模糊查询、语义查询等方案。另一方面,在数据充分共享和开放的云计算平台上,对数据进行访问控制是防止数据不被非法下载和访问的重要措施。属性加密技术提供了一种以密码学方式对加密数据进行细粒度访问控制的能力,目前已经在需要对数据进行密码保护的外包模式中得到了极其广泛的应用。属性加密(attribute-based encryption)允许数据发布者根据数据用户的属性(比如指纹、职位信息等)对数据用户的数据解密能力进行控制。其基本原理是在密文或密钥中嵌入访问控制策略,当且仅当解密者的属性集合满足访问控制策略时,才能对密文进行有效解密。由于这种技术解决了传统访问控制技术中访问列表更新困难、访问策略粒度大、无法适用于密文环境等问题,非常适合应用于开放、共享的云计算平台中需要对加密数据进行细粒度访问控制的场景。
4.为了在加密的数据上同时实现细粒度的访问控制和关键字查询,研究者结合属性加密技术和可搜索加密技术,提出了属性基可搜索加密方法。其基本思想是根据搜索索引关键字的访问权限,数据所有者为搜索索引关键字指定访问策略,并使用属性加密技术对索引关键字进行加密;数据查询者的私钥中包含了查询者的属性信息(体现查询者的查询权限),当查询者使用私钥加密查询关键字时,其用户的查询权限信息被蕴含到了查询陷门之中;当查询服务器(如云平台)在安全索引上与查询陷门进行匹配时,当且仅当查询陷门中蕴含的属性信息满足索引关键字中的访问策略,并且索引关键字与查询陷门中的关键字相等时,一个成功的搜索才会被服务器返回。从纯理论研究的角度来看,目前的技术方案能够实现属性基可搜索加密的功能。然而,由于其高搜索复杂度,导致它们无法在真实数据集
中进行应用,原因如下。目前所有的属性基可搜索方案都采用了“查询授权在先,关键字匹配在后”的技术路线,这要求查询算法需要线性地扫描索引关键字列表,检查查询陷门是否具有索引关键字的查询权限。基于属性加密的查询授权过程包含非常耗时的双线性对和指数运算,这意味着耗时的双线性对和指数运算与索引关键字规模成线性正比,这将在真实的数据集中导致不切实际的查询效率,因为真实环境中索引规模往往很大。


技术实现要素:

5.本发明要解决的技术问题:针对现有技术的上述问题,提供一种常数级授权计算复杂度的属性基可搜索加密方法及系统,本发明旨在解决传统属性基可搜索加密方法不切实际的高搜索复杂度问题,本发明推动了属性基可搜索加密技术从理论研究到实际应用,由于其常数级搜索复杂度,能够将其应用于云计算、物联网、大数据平台的真实环境中,实现加密数据的访问控制和高效搜索。
6.为了解决上述技术问题,本发明采用的技术方案为:
7.一种常数级授权计算复杂度的属性基可搜索加密方法,包括:
8.创建包含公钥和私钥的混合加密环境;
9.基于混合加密环境,为待搜索的文档集合d构造加密的可搜索安全索引;
10.基于混合加密环境,为查询者构造嵌入查询者属性信息的私钥;
11.基于混合加密环境,设计概率性的查询陷门加密算法并生成查询陷门,所述查询陷门同时蕴含了查询者的属性信息和查询关键字信息;
12.使用查询陷门加密算法生成的查询陷门,在文档集合d的可搜索安全索引上执行具有常数级授权计算复杂度的隐私搜索。
13.可选地,所述创建包含公钥和私钥的混合加密环境包括:选择两个阶为q的乘法循环群g1和g2,用g表示乘法循环群g1的一个生成元,定义双线性映射e:g1×
g1→
g2,定义两个哈希函数h1和h2,h1为用于把一个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数,模q的乘法群的元素取值为1至q-1之间且与q互素的整数;从模q的乘法群上随机选择两个元素a,b并计算e(g,g)b,ga;生成一个用于存储可搜索安全索引信息的全局key-value键值对map容器e;指定一个安全系数k,从空间{0,1}k随机选择3个二进制位串k1,k2,k3;设置私钥msk={a,b},公钥为p={g1,g2,h1,h2,e,g,q,e(g,g)b,ga},对称密钥sk={k1,k2,k3}。
14.可选地,所述为待搜索的文档集合d构造加密的可搜索安全索引的步骤包括:
15.2.1)针对待搜索的文档集合d,从其中每一个文档中抽取关键词,去掉停用词和无意义的词,并将文档及其对应的各个关键词表示为关键字-文档对,得到文档集合d中所有关键词构成的关键词集合

(d),并使用符号d(w)表示包含关键字w的文档集合;
16.2.2)针对每一个文档集合d(w)生成对应的链表l(w),并将每一个链表l(w)的头节点加密后保存在key-value键值对map容器e中,这样可以得到|δ(d)|个加密链表{l(w)|w∈δ(d)}。|δ(d)|个加密链表{l(w)|w∈δ(d)}和key-value键值对map容器e共同构成文档集合d的可搜索安全索引i=《e,{l(w)|w∈δ(d)}》;数据所有者采用传统语义安全的对称加密算法以及密钥k1加密文档集合d中的各文档得到密文文档集合c,c和i一起上传到云
平台中进行存储。
17.可选地,步骤2.2)中生成对应的链表l(w)的步骤包括:
18.2.2.1)为文档集合d(w)中的每一个文档生成一个包含数据域和指针域的节点,其中数据域中为文档的标识符id,指针域用于指向该节点的后继节点;
19.2.2.2)为文档集合d(w)随机生成一个密钥kw,使用语义安全的对称加密算法和密钥kw加密各个节点的数据域,加密后让当前节点的指针域指向后继节点形成链表,最后一个节点的指针域为空;定义链表的头节点fn,让头结点fn的数据域为密钥kw、指针域指向链表第一个节点;
20.2.2.3)为文档集合d(w)对应的关键词w指定包含属性集合s的访问策略t,为访问策略t生成一个l
×
n的线性秘密共享矩阵(m,ρ),其中l=|s|,l为线性秘密共享矩阵的行数,n为线性秘密共享矩阵的列数,ρ为lsss矩阵(m,ρ)的映射函数,该映射函数用于将矩阵m的每一行映射为某一属性;生成一个向量v=(s,y2,...,yn),其中s,y2,...,yn为在模q的乘法群上随机选择的元素,根据λi=vmi计算矩阵m的第i行向量mi与向量v的内积λi,1≤i≤l;从模q的乘法群上l个随机选择元素r1,...,r
l
,按下式分别计算密文部件a,b,c:
[0021][0022]
上式中,ρ(i)为属性集合s中的第i个属性,ri为从模q的乘法群上l个随机选择元素r1,...,r
l
中的第i个元素,s为向量v中的第一个元素,a,b为从模q的乘法群上随机选择两个元素,h1为用于把一个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数,e(g,g)表示乘法循环群g1的生成元g的双线性映射;
[0023]
2.2.4)将头节点fn加密为从而得到加密的链表l(w),其中fn为头节点fn的原始数据,a,b,c为密文部件,表示异或运算,“||”表示连接运算,将得到计算函数表达式如下式所示:
[0024][0025]
上式中,f为预设的加密算法,k2为预设的对称密钥sk中的元素,其值为从空间{0,1}k随机地选择的二进制位串,k为指定的安全系数,e(g,g)表示乘法循环群g1的生成元g的双线性映射,参数b为预设的私钥msk中的元素,s为向量v中的第一个元素,哈希函数h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数;计算f(k3,w)并其值作为键key,加密后的头节点fn作为值value生成键值对《key,value》并保存在key-value键值对map容器e中。
[0026]
可选地,所述为查询者构造嵌入查询者属性信息的私钥构件的步骤包括:从模q的乘法群中随机选择一个元素t,从私钥msk中取从模q的乘法群上随机选择两个元素a,b,从公钥p中取乘法循环群g1的生成元g,基于k1=gb,k2=g
at
,k3=g
t
计算出私钥构件中的元素k1,k2,k3,针对数据查询者的属性集合u中的每一个属性u计算ku=h1(u)
t
,h1为用于把一
个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,最终得到私钥表达式为:
[0027]
k=(k1=gb,k2=g
at
,k3=g
t
,{ku=h1(u)
t
}
u∈u
)
[0028]
上式中,k为最终得到的私钥,k1,k2,k3,ku为私钥k中的元素。
[0029]
可选地,所述设计概率性的查询陷门加密算法生成的查询陷门结构为:
[0030][0031]
上式中,γ,η,σ,β分别为查询陷门trap(q)中的元素,f为预设的加密算法,k3为预设的对称密钥sk中的元素,其值是从空间{0,1}k随机地选择的二进制位串,k为指定的安全系数,k1,k2,k3,ku为数据查询者的私钥k中的元素,其中ku为数据查询者的属性集合u中的属性u所对应的元素,θ为从模q的乘法群中随机选择的一个元素,h2(q)为哈希函数h2对查询关键字q计算得到的哈希值,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数。
[0032]
可选地,所述在文档集合d的可搜索安全索引上执行具有常数级授权计算复杂度的隐私搜索的步骤包括:
[0033]
7.1)将查询陷门中的元素γ=f(k3,q)作为key值,在key-value键值对map容器e中查询key为f(k3,q)的值value,如果value不存在,则表示文档集合中没有包含关键字为q的文档,搜索算法结束并退出;否则,取出与f(k3,q)对应的值value如下:
[0034][0035]
上式中,fn为头节点,f为预设的加密函数,k2为预设的对称密钥sk中的元素,其值从空间{0,1}k随机地选择的二进制位串,k为指定的安全系数,e(g,g)表示乘法循环群g1的生成元g的双线性映射,a,b为从模q的乘法群上随机选择两个元素,ρ(i)为属性集合s中的第i个属性,ri为从模q的乘法群上l个随机选择元素r1,...,r
l
中的第i个元素,s为向量v中的第一个元素,λi为矩阵m的第i行向量与向量v的内积,h1为用于把一个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数;将取出与f(k3,q)对应的值value采用三部分表示为:
[0036][0037]
其中第一部分x为加密后的头节点,第二部分y为gs,第三部分中的和分别为对应第i个属性的加密值;
[0038]
7.2)根据查询陷门trap(q)中的属性信息和文档集合d的可搜索安全索引i中的查询授权信息,判断查询者是否具有对索引中关键词w的查询权限,如果有查询权限则跳转执行步骤7.3);如果无查询权限,则结束并退出;
[0039]
7.3)进行查询授权计算还原出中间变量基于还原出的中间变量根据预设的加密算法f,使用预设的对称密钥sk中的k2计算后,再与x进行异或运算,得到该链表的头结点fn的信息。所述头结点fn的信息包含了加密
该链表结点的密钥kw,并根据密钥kw解密链表的所有节点,得到包含关键词q的所有文档id号,即查询结果。
[0040]
可选地,步骤7.3)进行查询授权计算还原出中间变量的步骤包括:
[0041]
7.3.1)通过预设的搜索算法寻找一个集合if和一个常数集合{ωi},且满足:
[0042]
if={i:ρ(i)∈u},∑
i∈i
ωimi=(1,0,...,0),
[0043]
上式中,u为蕴含在查询陷门trap(q)中的属性集合,mi为蕴含在文档集合d的可搜索安全索引i中线性秘密共享矩阵m的第i行向量,ρ为线性秘密共享矩阵m的映射函数,用于将矩阵m的每一行映射为某一属性;ωi为从模q的乘法群上随机选择的元素;如果无法找到满足以上条件的集合if和常数集合{ωi},则判定权限匹配失败,则结束并退出;否则,跳转执行步骤7.3.2);
[0044]
7.3.2)基于下式还原出中间变量
[0045][0046]
上式中,e表示双线性映射,y=gs为取出与f(k3,q)对应的值value的第二部分,η为查询陷门trap(q)中的元素,和分别为对应第i个属性的加密值,σ为查询陷门trap(q)中的元素,βρ(i)为查询陷门trap(q)中元素β的一个值ku且属性u=ρ(i),ρ(i)为线性秘密共享矩阵中第i行表示的属性。
[0047]
此外,本发明还提供一种常数级授权计算复杂度的属性基可搜索加密系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述常数级授权计算复杂度的属性基可搜索加密方法的步骤。
[0048]
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述常数级授权计算复杂度的属性基可搜索加密方法的计算机程序。
[0049]
和现有技术相比,本发明具有下述优点:
[0050]
1、对称环境下的可搜索加密技术采用哈希计算,能够用o(1)的搜索复杂度匹配目标结果。从中受到启示,本发明在传统的基于公钥密码体制的属性基可搜索加密技术中,引入对称可搜索密码机制,将属性基授权信息设计到基于对称密码的安全索引中,通过搜索算法的创新设计,使索引与查询之间的隐私匹配发生在属性基授权计算之前,保证关键字搜索复杂度为o(1)和至多进行1次属性基授权计算,使搜索复杂度与索引规模无关。
[0051]
2、本发明创新性地使用混合密码机制解决了传统属性基可搜索加密存在的属性基授权计算的高搜索复杂度问题,推动了属性基可搜索加密在真实环境中的实际应用。
附图说明
[0052]
图1为本发明实施例方法的基本流程图。
[0053]
图2为本发明实施例中执行具有常数级授权计算复杂度的隐私搜索的流程图。
[0054]
图3为本发明实施例方法的系统结构示意图。
具体实施方式
[0055]
如图1所示,本实施例常数级授权计算复杂度的属性基可搜索加密方法包括:
[0056]
创建包含公钥和私钥的混合加密环境;
[0057]
基于混合加密环境,为待搜索的文档集合d构造加密的、可搜索安全索引;
[0058]
基于混合加密环境,为查询者构造嵌入查询者属性信息的私钥构件;
[0059]
基于混合加密环境,设计概率性的查询陷门加密算法生成查询陷门,所述查询陷门加密算法生成的查询陷门同时蕴含了查询者的属性信息和查询关键字信息;
[0060]
使用查询陷门加密算法生成的查询陷门,在文档集合d的可搜索安全索引上执行具有常数级授权计算复杂度的隐私搜索。
[0061]
本实施例中,创建包含公钥和私钥的混合加密环境包括:
[0062]
选择两个阶为q的乘法循环群g1和g2,用g表示乘法循环群g1的一个生成元,定义双线性映射e:g1×
g1→
g2,定义两个哈希函数h1和h2,h1为用于把一个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数,模q的乘法群的元素取值为1至q-1之间且与q互素的整数;从模q的乘法群上随机选择两个元素a,b并计算e(g,g)b,ga;生成一个用于存储可搜索安全索引信息的全局的key-value键值对map容器e;指定一个安全系数k,从空间{0,1}k随机地选择3个二进制位串k1,k2,k3;设置私钥为msk={a,b},公钥为p={g1,g2,h1,h2,e,g,q,e(g,g)b,ga},对称密钥sk={k1,k2,k3}。
[0063]
两个哈希函数h1和h2可表示为:
[0064]
h1:{0,1}
*

g1[0065][0066]
上式中,{0,1}*代表一个任意长度的二进制串。表示模q的乘法群,其元素取值为1至q-1之间且与q互素的整数。
[0067]
双线性映射e具有如下性质:双线性:有e(xa,yb)=e(x,y)
ab
;非退化性:如果g是g1的生成元,则e(g,g)是g2生成元;可计算性:对于总是存在一个有效的多项式时间算法计算e:e(x,y)∈g2。
[0068]
本实施例中,为待搜索的文档集合d构造加密的可搜索安全索引的步骤包括:
[0069]
2.1)针对待搜索的文档集合d,从其中每一个文档中抽取关键词,去掉停用词和无意义的关键词,并将文档及其对应的各个关键词表示为关键字-文档对,得到文档集合d中所有不同关键词构成的关键词集合

(d),并使用符号d(w)表示包含关键字w的文档集合;
[0070]
比如,某个文档的id号为id1,从中抽取了3个关键词w1,w2,w3,则将该文档表示成(w1,id1),(w2,id1),(w3,id1)。最终可得到文档集合d中所有不同关键词构成的关键词集合

(d),及包含关键词w的所有文档集合d(w)。比如示例中d(w)={id1,id2},表示包含关键词w的文档有id1和id2。
[0071]
2.2)针对每一个文档集合d(w)生成对应的链表l(w),并将每一个链表l(w)的头节点加密后保存在key-value键值对map容器e中,共得到|δ(d)|个加密链表{l(w)|w∈δ(d)},|δ(d)|个加密链表{l(w)|w∈δ(d)}和key-value键值对map容器e共同构成文档集
合d的可搜索安全索引i=《e,{l(w)|w∈δ(d)}》;
[0072]
数据拥有采用传统语义安全的对称加密算法以及密钥k1加密文档集合d中的各文档得到密文文档集合c,c和i一起上传到云平台中进行存储。
[0073]
本实施例中,步骤2.2)中生成对应的链表l(w)的步骤包括:
[0074]
2.2.1)为文档集合d(w)中的每一个文档生成一个包含数据域和指针域的节点,且其中数据域中为文档的文档标识符id,指针域用于指向该节点的后继节点;
[0075]
2.2.2)为文档集合d(w)随机生成一个密钥kw,使用语义安全的对称加密算法(如aes算法等)和密钥kw加密各个节点的数据域,加密后让当前节点的指针域指向后继节点形成链表,最后一个节点的指针域为空;最后为生成的链表设置头节点fn,且让头节点fn数据域为密钥kw、指针域指向链表第一个节点;比如示例中,对于d(w)={id1,id2},头结点fn数据域存储kw,指针域指向结点id1,id1的指针域指向id2,id2的指针域为空。id1和id2两个标识符使用aes加密算法和密钥kw进行加密。
[0076]
2.2.3)为文档集合d(w)对应的关键词w指定包含属性集合s的访问策略t,为访问策略t生成一个l
×
n的线性秘密共享矩阵(m,ρ),其中l=|s|,l为线性秘密共享矩阵的行数,n为线性秘密共享矩阵的列数,ρ为lsss矩阵(m,ρ)的映射函数,该映射函数用于将矩阵m的每一行映射为某一属性;生成一个向量v=(s,y2,...,yn),其中s,y2,...,yn分别为在模q的乘法群上随机选择的元素,使用λi=vmi计算矩阵m的第i行向量mi与向量v的内积λi,1≤i≤l;从模q的乘法群上l个随机选择元素r1,...,r
l
,计算密文部件a,b,c:
[0077][0078]
上式中,ρ(i)为属性集合s中的第i个属性,ri为从模q的乘法群上l个随机选择元素r1,...,r
l
中的第i个元素,s为向量v中的第一个元素,a,b为从模q的乘法群上随机选择两个元素,h1为用于把一个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数,e(g,g)表示乘法循环群g1的生成元g的双线性映射;
[0079]
2.2.4)将头节点fn加密为从而得到加密的链表l(w),其中fn为头节点fn的原始数据,a,b,c为上述计算的密文部件,表示异或运算,“||”表示连接运算,将代入f(k2,c),得到计算函数表达式如下式所示::
[0080][0081]
上式中,f为预设的加密算法,k2为预设的对称密钥sk中的元素,其值为从空间{0,1}k随机地选择的二进制位串,k为指定的安全系数,e(g,g)表示乘法循环群g1的生成元g的双线性映射,参数b为预设的私钥msk中的元素,s为向量v中的第一个元素,哈希函数h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数;计算f(k3,w)并其值作为键key,加密后的头节点fn作为值value生成键值对《key,value》并保存在key-value键值对map容器e中。因为f(k2,c)是随机的,所以也是随机的,具有多项式
时间不可区分性。
[0082]
线性秘密共享(linear secret sharing scheme,lsss)矩阵被定义为一个l
×
n矩阵m,以及一个映射函数ρ。ρ将矩阵m的每一行映射为一个实体(在属性加密中,用属性表示实体)。给定一个需要在多个授权实体间共享的秘密s,首先将s扩展成一个n维向量v=(s,r2,...,rn),r2,...,rn是从一个有限域上随机选择的随机值;然后计算mv得到新矩阵m’,秘密s隐藏在m’中每一行中。如果一个实体集合s能够从mv中恢复秘密s,则表示该集合s为授权实体集合。如果s为授权实体集合,那么定义即i表示m中的某一行,使用函数ρ将i映射为s中的某个实体,使两者关联。线性秘密共享告诉我们,能够找到一组常数{ωi:i∈i},满足∑
i∈i
ωimi=(1,0,...,0),如果用隐含秘密s的矩阵m’=mv代替m,我们能够恢复秘密∑
i∈i
ωim
′iv=s。如果s为非授权实体集合,则找不到这样一组常数,无法从m’中恢复秘密s。lsss在属性加密中具有广泛的应用。在属性加密中,实体集合表示为属性集合s,矩阵m由一个访问控制策略转换生成。如果s满足矩阵m(也就是s满足对应的访问控制策略),则能够恢复出秘密s,通过s解密密文;否则,无法恢复出秘密s,不能解密密文,实现密文的细粒度访问控制。如果有一个访问控制策略为a and(d or(b and c)),其中a,b,c,d表示四个属性,可以转换为如下线性秘密共享矩阵(lsss矩阵):
[0083][0084]
使用映射函数ρ将矩阵的每一行映射为一个属性,我们可以得到ρ(1)=a,ρ(2)=b,ρ(3)=c,ρ(4)=d。如果一个访问者具有属性集合{a,d},显然该属性集合满足lsss矩阵,可以找到一组常数{1,1|i=1,4},使得:
[0085]

i∈{1,4}
ωimi=(1,0,...,0)
[0086]
即:
[0087]1·
(1,1,0) 1
·
(1,-1,0)=(1,0,0)。
[0088]
如果一个访问者具有属性集合{d,b,c},则属性集合不满足lsss矩阵,也就是该属性集合不满足访问控制策略,在属性加密中无法解密由此访问控制策略加密的密文。
[0089]
本实施例中,给定一个数据查询者的属性集合u,为查询者构造嵌入查询者属性信息的私钥构件的步骤包括:从模q的乘法群中随机选择一个元素t,从预设的私钥msk中取从模q的乘法群上随机选择两个元素a,b,从预设的公钥p中取乘法循环群g1的生成元g,基于k1=gb,k2=g
at
,k3=g
t
计算出私钥构件中的元素k1,k2,k3,针对数据查询者的属性集合u中的每一个属性u计算ku=h1(u)
t
,h1为用于把一个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,最终得到私钥的表达式为:
[0090]
k=(k1=gb,k2=g
at
,k3=g
t
,{ku=h1(u)
t
}
u∈u
)
[0091]
上式中,k为最终得到的私钥,k1,k2,k3,ku为私钥构件k中的元素。
[0092]
本实施例中设计了概率性的查询陷门加密算法,生成的查询陷门同时蕴含了查询者的属性信息和查询关键字信息。当一个数据查询者希望使用查询关键字q时,设计概率性
的查询陷门加密算法生成的查询陷门结构为:
[0093][0094]
上式中,γ,η,σ,β分别为查询陷门trap(q)中的元素,f为预设的加密算法(本实施例中具体采用hmac-md5算法),k3为预设的对称密钥sk中的元素,其值是从空间{0,1}k随机地选择的二进制位串,k为指定的安全系数,k1,k2,k3,ku为数据查询者的私钥k中的元素,其中ku为数据查询者的属性集合u中的属性u所对应的元素,θ为从模q的乘法群中随机选择的一个元素,h2(q)为哈希函数h2对查询关键字q计算得到的哈希值,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数。
[0095]
在文档集合d的可搜索安全索引上执行具有常数级授权计算复杂度的隐私搜索的主体为存储文档的云服务器。本实施例中,在文档集合d的可搜索安全索引上执行具有常数级授权计算复杂度的隐私搜索的步骤包括:
[0096]
7.1)将查询陷门中的元素γ=f(k3,q)作为key值,在key-value键值对map容器e中查询key为f(k3,q)的值value,如果value不存在,则表示文档集合中没有包含关键字为q的文档,搜索算法直接结束并退出;否则,取出与f(k3,q)对应的值value如下:
[0097][0098]
上式中,fn为头节点,f为预设的加密函数,k2为预设的对称密钥sk中的元素,其值为从空间{0,1}k随机地选择的二进制位串,k为指定的安全系数,e(g,g)表示乘法循环群g1的生成元g的双线性映射,a,b为从模q的乘法群上随机选择两个元素,ρ(i)为属性集合s中的第i个属性,ri为从模q的乘法群上l个随机选择元素r1,...,r
l
中的第i个元素,s为向量v中的第一个元素,λi为矩阵m的第i行向量与向量v的内积,h1为用于把一个任意长度的二进制位串映射为乘法循环群g1上的元素的哈希函数,h2为用于把一个任意长度的二进制位串映射为模q的乘法群的哈希函数;将取出与f(k3,q)对应的值value采用三部分表示为:
[0099]
y=gs,
[0100]
其中第一部分x为加密后的头节点,第二部分y为gs,第三部分中的和分别为对应第i个属性的加密值;显然,如果根据key值γ=f(k3,q)通过查询map容器e能够查询到相应的value,则表明查询关键词q等于索引关键词w,即w=q。以下过程使用符号w或者q,可以表示同一个关键词。
[0101]
7.2)根据查询陷门trap(q)中的属性信息(主要蕴含在β中)和文档集合d的可搜索安全索引i中的查询授权信息(主要蕴含在z中),判断查询者是否具有对索引中关键词w的查询权限,如果有查询权限则跳转执行步骤7.3);如果无查询权限,则结束并退出;
[0102]
7.3)进行查询授权计算还原出中间变量基于还原出的中间变量根据预设的加密算法f,从预设的对称密钥sk中取出k2并计算
后,再与x进行异或运算,得到该链表的头结点fn的信息。所述头结点fn的信息包含了加密该链表结点的密钥kw,根据密钥kw解密链表的所有节点,得到包含关键词q的所有文档id号,即查询结果,即:最后通过文档id号得到加密文档,数据查询者使用aes算法和密钥k1解密文档得到明文查询结果。
[0103]
本实施例中,步骤7.3)进行查询授权计算还原出中间变量的步骤包括:
[0104]
7.3.1)寻找一个集合if和一个常数集合{ωi},且满足:
[0105]
if={i:ρ(i)∈u},∑
i∈i
ωimi=(1,0,...,0),
[0106]
上式中,u为蕴含在查询陷门trap(q)中的属性集合,mi为蕴含在文档集合d的可搜索安全索引i中线性秘密共享矩阵m的第i行向量,ρ为线性秘密共享矩阵m的映射函数,用于将矩阵m的每一行映射为某一属性;ωi为从模q的乘法群z
*q
上随机选择的元素,z
*q
为乘法群;如果无法找到满足以上条件的集合if和常数集合{ωi},则判定权限匹配失败,则结束并退出;否则,跳转执行步骤7.3.2);
[0107]
7.3.2)基于下式还原出中间变量
[0108][0109]
上式中,e表示双线性映射,y=gs为取出与f(k3,q)对应的值value的第二部分,η为查询陷门trap(q)中的元素,和分别为对应第i个属性的加密值,σ为查询陷门trap(q)中的元素,βρ(i)为查询陷门trap(q)中元素β的一个值ku且属性u=ρ(i),ρ(i)为线性秘密共享矩阵中第i行表示的属性。
[0110]
例如本实施例中数据拥有者加密关键词w的访问策略为t=a and(d or(b and c)),为t生成一个4行3列的lsss矩阵为:
[0111][0112]
且有,ρ(1)=a,ρ(2)=b,ρ(3)=c,ρ(4)=d。数据查询者的属性集合为u={a,d},满足访问策略t,如果数据查询者采用的查询关键词q等于w,那么数据查询者能够获得包含关键词q(w)的文档标识符id1和id3。还原过程中,因为属性集合u满足访问策略t,搜索算法能够找到一个集合if={1,4:ρ(1)=a,ρ(4)=d}和{ω1=1,ω4=1}
i∈{1,4}
,λ1=vm1=(s,y2,y3)(1,1,0)=s y2,λ4=vm1=(s,y2,y3)(0,-1,0)=-y2,则有中间变量的分子为:
[0113][0114]
中间变量的分母为:
[0115][0116]
因此可得到中间变量
[0117][0118]
如图3所示,本实施例常数级授权计算复杂度的属性基可搜索加密方法中的系统模型包含三个实体,分别是数据拥有者,数据查询者和云平台。数据拥有者对数据文件和索引关键字分别加密后外包于云平台中(索引关键字从数据文件中抽取,数据文件采用传统的对称加密技术进行加密,索引关键字采用本发明所述的方法进行加密);数据拥有者根据数据查询者的属性生成私钥并分发给此数据查询者。当数据查询者需要查询数据文件时,他利用数据拥有者授予的私钥加密查询关键字并提交给云平台。云平台收到查询用户提交的加密的查询关键字后负责在加密的索引关键字中检索,并返回满足查询要求的数据文件给查询用户。最后,查询用户解密密文,获得明文文件。
[0119]
此外,本实施例还提供一种常数级授权计算复杂度的属性基可搜索加密系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述常数级授权计算复杂度的属性基可搜索加密方法的步骤。
[0120]
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述常数级授权计算复杂度的属性基可搜索加密方法的计算机程序。
[0121]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
[0122]
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域
的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献