CN108471417B - 一种云环境下基于层次属性的关键字查询方法 - Google Patents
一种云环境下基于层次属性的关键字查询方法 Download PDFInfo
- Publication number
- CN108471417B CN108471417B CN201810264897.7A CN201810264897A CN108471417B CN 108471417 B CN108471417 B CN 108471417B CN 201810264897 A CN201810264897 A CN 201810264897A CN 108471417 B CN108471417 B CN 108471417B
- Authority
- CN
- China
- Prior art keywords
- attribute
- node
- parameter
- keyword
- ciphertext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013507 mapping Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 21
- 125000004122 cyclic group Chemical group 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000009795 derivation Methods 0.000 claims description 13
- 239000002131 composite material Substances 0.000 claims description 9
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims description 3
- 235000006629 Prosopis spicigera Nutrition 0.000 claims description 3
- 240000000037 Prosopis spicigera Species 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012946 outsourcing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种云环境下基于层次属性的关键字查询方法,包括:数据所有者利用预设的属性层次树以及加密参数加密数据文件集,第二访问树的叶子节点属性为属性层次树的下层属性用来加密关键字;可信第三方分配属性集给新用户,并生成解密密钥和搜索密钥;属性集中的所有属性均来自于属性层次树中的属性;新用户依据搜索密钥以及待搜索的关键字生成搜索令牌;云端依据搜索令牌对每个关键字密文进行匹配判断,若存在相匹配的关键字密文,将关键字密文对应的文件密文发送给新用户;再利用解密密钥解密文件密文。通过构造属性层次树使拥有上层属性的数据用户可以获取到由下层属性加密的密文,极大地降低访问策略中的属性个数,降低加密开销。
Description
技术领域
本发明属于云通讯技术领域,具体涉及一种云环境下基于层次属性的关键字查询方法。
背景技术
随着过去几年全球网络在不断创新,网络规模越来越大,网速也越来越高,这使得云计算有了生根发芽的土壤。云计算通过互联网动态提供计算机资源,为用户提供了许多好处,如快速部署、无处不在的网络访问、位置无关资源池、可扩展性和弹性,其现已成为一个重要的技术趋势。从用户的角度,包括个人和IT企业,通过将其数据和查询服务外包给云,可以以较低的价格来实现极大的灵活性。尽管有好处,但数据外包使数据所有者无法直接控制其外包数据。为了缓解问题,数据所有者应该在将数据外包给云之前对其数据进行加密。然而,加密可能阻碍一些有用的功能,例如在实施访问控制策略的同时搜索外包的加密数据。因此,现如今云用户面临的主要问题是:在搜索加密数据时,如何实现细粒度搜索授权。现有的基于属性的关键字搜索(Attribute-Based Keyword Search,ABKS)方案可以解决这一个问题,其允许数据所有者根据访问策略控制对外包的加密数据的搜索。然而,由于传统的ABKS方案采用单调的树形访问结构,数据所有者的加密开销与访问策略中的属性个数成正比,即数据所有者的加密开销与访问策略中的属性个数成线性增长,这对于一个拥有大量用户和属性集的系统来说,加密开销非常大,给数据所有者带来了大量的计算开销和通信开销。
发明内容
本发明的目的是提供一种云环境下基于层次属性的关键字查询方法,通过构造属性层次树将建立属性之间的关联,进而使拥有上层属性的数据用户可以获取到由下层属性加密的密文,极大地降低访问策略中的属性个数,降低加密开销。
本发明提供的一种云环境下基于层次属性的关键字查询方法,包括如下步骤:
其中,所述数据文件集由至少两个数据文件Fi组成,每个数据文件Fi中存在一个由至少两个不同关键字w组成的关键字集;
步骤1的执行过程如下:
Setp A:数据所有者利用所述文件密钥和预设第一访问树加密数据文件得到文件密文,并发送给云端;
步骤2:可信第三方依据数据用户的搜索、访问权限分配属性集Su给数据用户,并生成解密密钥SKu和搜索密钥sku,再将所述解密密钥SKu和搜索密钥sku发送给数据用户;
步骤3:数据用户依据步骤2中的搜索密钥sku以及待搜索的关键字kw生成搜索令牌Tokkw,并发送给云端;
步骤4:所述云端依据步骤3中的搜索令牌Tokkw依次对存储的关键字密文集中的每个关键字密文进行匹配判断,若存在相匹配的关键字密文,将所述相匹配的关键字密文对应的文件密文发送给数据用户;若不存在,查找失败;
其中,所述属性集Su是关键字密文中第二访问树Tw中叶子节点属性的上层属性时,则基于节点属性的编码值采用前向导出函数来获取所述第二访问树Tw中叶子节点属性的关联参数,再利用所述关联参数查询关键字密文来判断该关键字密文是否是所匹配的关键字密文;
步骤5:判断属性集Su是否满足步骤4中所述文件密文的第一访问树的访问策略,若满足,则利用步骤2中的解密密钥SKu解密文件密文;若不满足,查询失败。
本发明引入了属性层次树并利用正/逆向深度优先编码来对属性层次树中的每个节点进行编码,再然后利用前向导出函数,让祖先属性(上层泛化属性)节点推导出它的子孙属性(下层具体属性)节点所关联的参数,而不需要一对一进行配对操作,因此,拥有上层泛化属性的数据用户可以成功解密出用下层具体属性所加密的密文。因此,本方案中用于加密关键字的第二访问树Tw的叶子节点属性是由属性层次树中的下层属性构成的,即利用属性层次树中的下层属性对关键字进行加密,使得待数据用户查询关键字时,若数据用户的属性是关键字密文中第二访问树Tw中叶子节点属性的上层属性时,则基于节点属性的编码值采用前向导出函数来获取所述第二访问树Tw中叶子节点属性的关联参数,再利用所述关联参数查询关键字密文来判断该关键字密文是否是所需的关键字密文,若是,则对关键字密文对应的文件密文进行解密得到目标信息。
本发明通过上述技术手段可以极大地缩短了访问路径,降低了加密成本。
进一步优选,步骤4中按照如下Step a和Step b进行所述匹配判断:
Step a:判断所述搜索令牌Tokkw中的属性集Su中是否存在一个子集合S满足关键字密文中第二访问树Tw的访问策略,若存在,执行Step b;否则,所述关键字密文与数据用户不匹配;
Step b:判断所述待搜索的关键字kw与所述关键字密文中的关键字w是否为同一关键字,若是,则所述关键字密文为与数据用户相匹配的关键字密文;否则,所述关键字密文与数据用户不匹配。
进一步优选,所述前向导出函数的定义如下:
式中,f1(.)为正向编码值对应的前向导出函数,f2(.)为逆向编码值对应的前向导出函数,Pcodei、Pcodej为属性Ai、Aj的正向编码值,Ncodei、Ncodej为属性Ai、Aj的逆向编码值,为正向编码值Pcodei、Pcodej的映射值,为逆向编码值Ncodei、Ncodej映射值,节点属性i是节点属性j的子孙节点,θ1、θ2为小于n'的所有正整数集合Zn*'中的随机数,其中,编码值与映射值的关系如下:
Um={(Pcode1,Ncode1),...,(Pcodem,Ncodem)}
n'=p'q'
式中,Um为属性层次树的节点属性的编码值集合,Vm为属性层次树的节点属性的编码值集合的映射集合,m为属性层次树的节点属性的数量,φ1(.),φ2(.)为将整数集Um到集合Vm的映射函数,为循环群Gn'中随机选取的生成元,循环群Gn'是阶为合数n'的循环群,合数阶n'为RSA类型,优选合数阶n'的长度设置为1024比特,p',q'是两个不同的大素数,优选p',q'的长度为512比特。
应当理解,属性层次树中节点的层次编码可以用一组离散值来表示,故形成集合Um,进一步定义从集合Um到集合Vm的映射函数φ1(.),φ2(.),再根据映射函数的定义得到如上的前向导出函数f1(.)、f2(.)的定义,从上述表达可知,前向导出函数f1(.)、f2(.)是表达两个关联节点属性之间编码值或映射值的转换关系。
进一步优选,Step a中判断子集合S是否满足关键字密文中第二访问树Tw的访问策略是通过判断所述第二访问树Tw的根节点参数为1,若为1,所述子集合S满足关键字密文中的第二访问数Tw的访问策略,否则,则不满足;
其中,所述第二访问树Tw的根节点参数是通过递归计算获取根节点下所有子节点的节点参数得出的,所述第二访问树Tw中节点x的节点参数的计算过程如下:
C:第二访问树Tw的节点x为非叶子节点属性时,则计算节点x的所有子节点的节点参数,再依据所有子节点的节点参数判断是否kx个子节点的计算结果为1,若是,所述节点x的节点参数为1,否则,不为1;
其中,节点x为“OR”门时,kx为1;节点x为“AND”门时,kx为Nx,Nx为节点x的子节点个数;
D:第二访问树Tw的节点x为叶子节点属性,则判断节点x的属性是否与所述子集合S中一个节点的属性相同或者是否是所述子集合S中一个节点属性的下层属性,若是,所述节点x的节点参数为1,否则,不为1。
依据C、D依次对第二访问树Tw中各个节点的节点参数进行计算,最终得到第二访问树Tw的根节点参数是否为1的结论。
进一步优选,Step b的执行过程如下:
式中,tk1、tk2、tk3为搜索令牌Tokkw的参数;
Step f:利用Step e中的所述参数ERoot以及搜索令牌Tokkw中的参数tk1,tk2,tk3和关键字密文中的参数K1,K2,K3,验证如下等式是否成立,若成立,则为数据用户要查询的关键字kw与该关键字密文所指的是同一个关键字,查找成功;否则,则为数据用户要查询的关键字kw与该关键字密文所指的不是同一个关键字,查找失败;
e(K2,tk2)=e(K1,tk1)e(tk3,K3)ERoot。
进一步优选,所述正向和逆向深度优先编码规则如下:
所述正向深度优先编码规则为:以根节点为起始点,采用先左后右和编码值从小到大的原则依次遍历从左至右的子树上的每个节点进行编码直至每个节点上均设有正向编码值;
所述逆向深度优先编码规则为:以根节点为起始点,采用先右后左和编码值从小到大的原则依次遍历从右至左的子树上的每个节点进行编码直至每个节点上均设有逆向编码值;
其中,祖先节点上的正向编码值和逆向编码值分别小于子孙节点上对应的正向编码值和逆向编码值。
例如,A、B为兄弟节点,节点C、D为节点A的子节点时,若节点A位于节点B的左侧,节点C位于节点D的左侧,则正向编码时节点A、B、C、D的编码顺序为A、C、D、B,逆向编码时节点A、B、C、D的编码顺序为B、A、D、C。
其中,执行过程如下:
Step E:从小于n的所有非负整数集合Zn中选择两个随机数r1,σ,并按照如下公式计算参数K1、K2、K3;
K3=gbσ
MK=(a,b,c,p,q,n')
其中,
Ai[Pcodei,Ncodei]∈Tw
Step G,根据步骤1和步骤2的参数得到关键字w的关键字密文:
式中,cphw为关键字w的关键字密文。
其中,生成过程如下:
SN=(N=pq,G0,G1,e)
n=kn'
e:G0×G0→G1
e(g,g)≠1
式中,N是RSA模数,N的长度一般设为1024比特,p和q是两个不同的大素数,p和q的长度设为512比特,e表示双线性映射,G0,G1是阶为合数n的循环群,k、n'为两个不同的大素数,k的长度至少为160比特;
Step J:定义哈希函数H1(R)、H2(w)与根属性以及关键字之间存下如下关联;
H1(R):{0,1}*→G0
H2(w):{0,1}*→Zn
其中,H1(R):{0,1}*→G0表示使用哈希函数H1将二进制字符串所为的根属性R映射为循环群G0中一个随机的元素,以及H2(w):{0,1}*→Zn表示使用单向哈希函数H2将二进制字符串所为的关键字w映射为一个随机的整数;
MK=(a,b,c,p,q,n')
其中,执行过程如下:
Step L:从小于n的所有非负整数集合Zn中选择一个随机数r,并计算参数D;
D=g(ac-r)/b
MK=(a,b,c,p,q,n')
Step N:依据Step L和Step M并按照如下格式输出数据用户的搜索密钥sku:
进一步优选,步骤3中所述搜索令牌Tokkw是利用第一主密钥MK、搜索密钥sku以及待搜索的关键字kw并采用搜索令牌生成算法(TokenGen)生成的;
其中,执行过程如下:
Step l:从小于n的所有非负整数集合Zn中选择一个随机数s,并按照如下公式计算参数tk1、tk2、tk3;
tk2=gcs
tk3=Ds=g(ac-r)s/b
B'j1=(Bj1)s
B'j2=(Bj2)s
Step n:根据Step l和Step m的参数以及如下格式输出搜索令牌Tokkw;
进一步优选,所述文件密钥包括第二公共参数pk和第二主密钥mk;
所述第二公共参数pk和第二主密钥mk是采用密文策略的基于属性的加密(CP-ABE)方案中初始化算法(Setup)生成的;
所述解密密钥SKu是利用所述属性集Su采用密文策略的基于属性的加密(CP-ABE)方案中的解密密钥生成算法(KeyGen)生成的。
有益效果
与现有技术相比,本发明引入了属性层次树并利用正/逆向深度优先编码来对属性层次树中的每个节点进行编码,再然后利用前向导出函数,让祖先属性(上层泛化属性)节点推导出它的子孙属性(下层具体属性)节点所关联的参数,而不需要一对一进行配对操作,用于加密关键字的第二访问树Tw的叶子节点属性是由属性层次树中的下层属性构成的,即利用属性层次树中的下层属性对关键字进行加密,使得待数据用户查询关键字时,若数据用户的属性是关键字密文中第二访问树Tw中叶子节点属性的上层属性时,则基于节点属性的编码值采用前向导出函数来获取所述第二访问树Tw中叶子节点属性的关联参数,再利用所述关联参数查询关键字密文来判断该关键字密文是否是所需的关键字密文,若是,则对关键字密文对应的文件密文进行解密得到目标信息。通过上述技术手段可以极大地缩短了访问路径,尤其是针对上层属性节点,可以直接利用前向导出函数对上层属性进行推导来获取参数,降低了加密成本。
附图说明
图1是属性层次树的编码图,其中(a)图为正向编码值的示意图,(b)图为逆向编码值的示意图;
图2是本发明实施例提供的一种云环境下基于层次属性的关键字查询方法的流程示意图;
图3是访问树的示意图,其中(a)图为访问树的访问策略的示意图,(b)图为访问树的示秘密共享的示意图。
具体实施方案
下面将结合实施例对本发明做进一步的说明。
本发明将系统中的属性集A={A1,...,AM}构成为一个K层的属性层次树M为属性集中属性个数,其中采用正/逆向深度优先编码规则对属性层次树中的每个节点进行编码,这样树中的每个属性节点都分别有两个编码值,分别为正向编码值Pcode和逆向编码值Ncode。
其中,正向和逆向深度优先编码规则为:
正向深度优先编码规则:以根节点为起始点,采用先左后右和编码值从小到大的原则依次遍历从左至右的子树上的每个节点进行编码直至每个节点上均设有正向编码值;逆向深度优先编码规则:以根节点为起始点,采用先右后左和编码值从小到大的原则依次遍历从右至左的子树上的每个节点进行编码直至每个节点上均设有逆向编码值。
因此,祖先节点上的正向编码值和逆向编码值分别小于子孙节点上对应的正向编码值和逆向编码值。下述将以图1中的(a)图和(b)图为例解释编码过程:
首先:定义两个栈,PcodeStack和NcodeStack。
如图1的(a)图所示,在PcodeStack中,先将根节点R压入到栈中;然后,遍历该节点的左子树;最后,遍历该节点的右子树。当遍历左子树和右子树时,递归地重复上述三个步骤直到子树为空。此时,对于每个节点,其右子树的正向编码要大于左子树的正向编码。
如图1的(b)图所示,在NcodeStack中,我们首先将根节点R压入到栈中;然后,遍历该节点的右子树;最后,遍历该节点的左子树。当遍历右子树和左子树时,递归地重复上述三个步骤直到子树为空。此时,对于每个节点,其左子树的逆向编码要大于右子树的逆向编码。
由上可知,正/逆向深度优先编码的特征是祖先节点的层次编码值都分别小于子孙节点的层次编码值,即存在如下关系:
Pcodei<Pcodej
Ncodei<Ncodej
其中,Pcodei、Pcodej为节点属性Ai、Aj的正向编码值,Ncodei、Ncodej为节点属性Ai、Aj的逆向编码值,节点属性Ai是节点属性Aj的上层属性,即节点i是节点j的祖先节点。
Um={(Pcode1,Ncode1),...,(Pcodem,Ncodem)}
首先,设定参数Gn'是阶为合数n'=p'q'的循环群,其中,p',q'是两个不同的大素数。
接着,定义两个映射函数φ1(.),φ2(.),利用该两个映射函数φ1(.),φ2(.)将整数集Um映射到集合Vm;
最后,根据映射函数φ1(.),φ2(.)的定义得到如下定义的前向导出函数f1(.)、f2(.)。
上述中节点i是节点j的子孙节点。
基于上述原理,如图2所示,本发明提供一种云环境下基于层次属性的关键字查询方法,包括如下步骤S1-S6:
S1:可信第三方生成加密参数并发送给云端和数据所有者。
其中,数据所有者有一个数据文件集Ω={F1,...,Fn},其中每个数据文件Fi都有一组不同关键字组成的关键字集。数据所有者在将自己的数据文件集Ω上传云端时,对于数据文件集Ω中的每个数据文件Fi进行如下Setp A-Setp B处理:
Setp A:数据所有者利用第二公共参数pk和第二主密钥mk和预设第一访问树采用密文策略的基于属性的加密(CP-ABE)方案的加密算法(Encrypt)加密数据文件得到文件密文,并发送给云端;
S3:可信第三方依据数据用户的搜索、访问权限分配属性集Su给数据用户,并生成解密密钥SKu和搜索密钥sku,再将所述解密密钥SKu和搜索密钥sku发送给数据用户。
S4:数据用户依据搜索密钥sku以及待搜索的关键字kw生成搜索令牌Tokkw,并发送给云端。
S5:所述云端依据搜索令牌Tokkw依次对存储的关键字密文集中的每个关键字密文进行匹配判断,若存在相匹配的关键字密文,将所述相匹配的关键字密文对应的文件密文发送给数据用户;若不存在,查找失败。
S6:判断属性集Su是否满足所述文件密文的第一访问树的访问策略,若满足,则利用解密密钥SKu解密文件密文;若不满足,查询失败。
1、关于S1中生成加密参数:
本实施例中,采用密文策略的基于属性的加密(CP-ABE)方案的初始化算法(Setup)来生成系统的文件密钥,第二公共参数pk和第二主密钥mk用于对数据文件进行加密。
双线性映射系统SN设置为:
SN=(N=pq,G0,G1,e)
其中,N是RSA模数,N的长度一般设为1024比特,p和q是两个不同的大素数,p和q的长度设为512比特;
n=kn'
e:G0×G0→G1
式中,e表示双线性映射,G0,G1是阶为合数n的循环群,k、n'为两个不同的大素数,k的长度至少为160比特;
根据合数阶双线性映射的性质,存在以下关系:
e(g,g)≠1
Step J:定义哈希函数H1(R)、H2(w)与根属性以及关键字之间存下如下关联;
H1(R):{0,1}*→G0
H2(w):{0,1}*→Zn其中,H1(R):{0,1}*→G0表示使用哈希函数H1将二进制字符串所为的根属性R映射为循环群G0中一个随机的元素,以及H2(w):{0,1}*→Zn表示使用单向哈希函数H2将二进制字符串所为的关键字w映射为一个随机的整数;
MK=(a,b,c,p,q,n')
2、关于S2中加密数据文件集:
其中,访问树是用于表示访问策略,其中,非叶子节点表示一个AND/OR门限,叶子结点表示一个属性,如图3中的(a)图所示的一个访问树,其访问策略为(A1∨A2)∧A3。定义lev(T)表示访问树T中的叶子节点,parent(x)表示访问树T中节点x的父节点。当且仅当x为叶子节点的时候,即x∈lev(T),att(x)表示与x相关联的属性。访问树中对每个节点的所有子节点从1开始分别按顺序编号,index(x)表示x在兄弟节点之间的序号。
在访问树T中,每个节点x与kx和Nx相关联,其中,kx表示x的阀值,Nx表示x的子节点数量,0<kx≤Nx。当x为“OR”门时,kx=1;当x为“AND”门时,kx=Nx;当x为叶子节点时,kx=1。
基于上述访问树T的定义,若是判断任意属性集合是否满足访问树的访问策略时是依据访问树的根节点参数为1,若为1,满足访问策略,否则,则不满足。
如图3中的(b)图所示,基于上述访问树T的定义,为了共享访问树T中的秘密σ,可通过秘密共享方案(SSS)实现。
其中,Setp B中生成关键字密文的过程如下Step E-Step G:
Step E:从小于n的所有非负整数集合Zn中选择两个随机数r1,σ,并按照如下公式计算参数K1、K2、K3;
K3=gbσ
Ai[Pcodei,Ncodei]∈Tw
Step G,根据步骤1和步骤2的参数得到关键字w的关键字密文:
式中,cphw为关键字w的关键字密文。
3、关于S3中的解密密钥SKu和搜索密钥sku:
其中,解密密钥SKu是利用所述属性集Su采用密文策略的基于属性的加密(CP-ABE)方案中的解密密钥生成算法(KeyGen)生成的。
Step L:从小于n的所有非负整数集合Zn中选择一个随机数r,并计算参数D;
D=g(ac-r)/b
Step N:依据Step L和Step M并按照如下格式输出数据用户的搜索密钥sku:
4、关于S4中搜索令牌Tokkw的生成过程:
搜索令牌Tokkw是利用第一主密钥MK、搜索密钥sku以及待搜索的关键字kw并采用搜索令牌生成算法(TokenGen)生成的,其中,执行过程如Step l-Step n:
Step l:从小于n的所有非负整数集合Zn中选择一个随机数s,并按照如下公式计算参数tk1、tk2、tk3;
tk2=gcs
tk3=Ds=g(ac-r)s/b
B'j1=(Bj1)s
B'j2=(Bj2)s
Step n:根据Step l和Step m的参数以及如下格式输出搜索令牌Tokkw;
5、S5中关于依据搜索令牌对关键字密文进行匹配判断的过程为Step a-Step b:
Step a:判断所述搜索令牌Tokkw中的属性集Su中是否存在一个子集合S满足关键字密文中第二访问树Tw的访问策略,若存在,执行Step b;否则,所述关键字密文与数据用户不匹配;
Step b:判断所述待搜索的关键字kw与所述关键字密文中的关键字w是否为同一关键字,若是,则所述关键字密文为与数据用户相匹配的关键字密文;否则,所述关键字密文与数据用户不匹配。
其中,Step a中判断子集合S是否满足关键字密文中第二访问树Tw的访问策略是通过判断所述第二访问树Tw的根节点参数为1,若为1,所述子集合S满足关键字密文中的第二访问数Tw的访问策略,否则,则不满足。
其中,依据上文中有关访问树T的描述可知,第二访问树Tw的根节点参数是通过递归计算获取根节点下所有子节点的节点参数得出的,第二访问树Tw中节点x的节点参数的计算过程如下C-D:
C:第二访问树Tw的节点x为非叶子节点属性时,则计算节点x的所有子节点的节点参数,再依据所有子节点的节点参数判断是否是kx个子节点的计算结果为1,若是,所述节点x的节点参数为1,否则,不为1;
其中,节点x为“OR”门时,kx为1;节点x为“AND”门时,kx为Nx,Nx为节点x的子节点个数;
D:第二访问树Tw的节点x为叶子节点属性,则判断节点x的属性是否与所述子集合S中一个节点的属性相同或者是否是所述子集合S中一个节点属性的下层属性,若是,所述节点x的节点参数为1,否则,不为1。
Step b的执行过程如下Step c-Step f:
第二访问树Tw根节点的参数ERoot的计算公式如下:
ERoot=e(g,g)rsσ
Step f:利用Step e中的所述参数ERoot以及搜索令牌Tokkw中的参数tk1,tk2,tk3和关键密文中的参数K1,K2,K3,验证如下等式是否成立,若成立,则为数据用户要查询的关键字kw与该关键字密文所指的是同一个关键字,查找成功,输出1;否则,则为数据用户要查询的关键字kw与该关键字密文所指的不是同一个关键字,查找失败,输出0。
6、S6中关于属性集Su是否满足所述文件密文的第一访问树的访问策略参照访问树以及第二访问树Tw的访问策略处的描述,应当理解,属性集Su是否满足所述文件密文的第一访问树也是依据第一访问树的根节点参数是否为1来进行判定的,其中,根节点参数为1,则满足,否则,不满足。其中节点参数的计算规则请参照第二访问树Tw。
综上所述,本方案引入了属性层次树用于加密关键字的访问树的叶子属性节点是由属性层次树中的下层属性构成的,即利用下层属性对关键字进行加密。在没有引入属性层次树之前,假设访问策略为a∨b∨c∨d,属性a,b,c,d之间没有任何的关联;在引入属性层次树之后,属性之间有了关联,假设a是c的祖先节点,b是d的祖先节点,因为树中的上层属性比下层属性具有更高的级别,即祖先结点具备其所有子孙结点中的属性,因此在搜索过程中就不需要一对一的配对操作。通过前向导出函数,让上层属性推导出下层属性所关联的密钥,从而拥有上层属性的数据用户可以查询由下层属性加密的关键字密文,故访问策略可以简化为c∨d,这样大大提高了加密的效率。
需要强调的是,本发明所述的实例是说明性的,而不是限定性的,因此本发明不限于具体实施方式中所述的实例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,不脱离本发明宗旨和范围的,不论是修改还是替换,同样属于本发明的保护范围。
Claims (6)
1.一种云环境下基于层次属性的关键字查询方法,其特征在于:包括如下步骤:
步骤1的执行过程如下:
Setp A:数据所有者利用所述文件密钥和预设第一访问树加密数据文件得到文件密文,并发送给云端;Setp B:数据所有者利用第一公共参数第一主密钥MK以及预设第二访问树Tw加密数据文件中每个关键字w得到关键字密文,并发送给云端;
所述正向深度优先编码规则为:以根节点为起始点,采用先左后右和编码值从小到大的原则依次遍历从左至右的子树上的每个节点进行编码直至每个节点上均设有正向编码值;所述逆向深度优先编码规则:以根节点为起始点,采用先右后左和编码值从小到大的原则依次遍历从右至左的子树上的每个节点进行编码直至每个节点上均设有逆向编码值;
其中,祖先节点上的正向编码值和逆向编码值分别小于子孙节点上对应的正向编码值和逆向编码值;
步骤2:可信第三方依据数据用户的搜索、访问权限分配属性集Su给数据用户,并生成解密密钥SKu和搜索密钥sku,再将所述解密密钥SKu和搜索密钥sku发送给数据用户;
步骤3:数据用户依据步骤2中的第一主密钥MK、搜索密钥sku以及待搜索的关键字kw生成搜索令牌Tokkw,并发送给云端;
步骤4:所述云端依据步骤3中的搜索令牌Tokkw依次对存储的关键字密文集中的每个关键字密文进行匹配判断,若存在相匹配的关键字密文,将所述相匹配的关键字密文对应的文件密文发送给数据用户;若不存在,查找失败;
其中,所述属性集Su是关键字密文中第二访问树Tw中叶子节点属性的上层属性时,则基于节点属性的编码值采用前向导出函数来获取所述第二访问树Tw中叶子节点属性的关联参数,再利用所述关联参数查询关键字密文来判断该关键字密文是否是所匹配的关键字密文;
步骤5:判断属性集Su是否满足步骤4中所述文件密文的第一访问树的访问策略,若满足,则利用步骤2中的解密密钥SKu解密文件密文;若不满足,查询失败;
其中,步骤4中按照如下Step a和Step b进行所述匹配判断:
Step a:判断所述搜索令牌Tokkw中的属性集Su中是否存在一个子集合S满足关键字密文中第二访问树Tw的访问策略,若存在,执行Step b;否则,所述关键字密文与数据用户不匹配;
Step b:判断所述待搜索的关键字kw与所述关键字密文中的关键字w是否为同一关键字,若是,则所述关键字密文为与数据用户相匹配的关键字密文;否则,所述关键字密文与数据用户不匹配,Step b按照如下Step c-Step f执行:
Step c:利用前向导出函数以及所述子集合S中每个属性Aj对应在搜索令牌Tokkw中的搜索参数B'j、B'j1、B'j2计算出节点属性Aj的子孙节点属性Ai的搜索参数B'i,其中,Step b中所述关键字密文的第二访问树Tw包括所述节点属性Aj的子孙节点属性Ai,所述搜索参数B'i、的计算公式如下;
式中,f1(.)为正向编码值对应的前向导出函数,f2(.)为逆向编码值对应的前向导出函数;
式中,e表示双线性映射,cphw表示关键字w的关键字密文,K1、K2、K3为关键字密文cphw的参数,Ci表示所述子孙节点属性Ai的属性参数的集合,Pcodei、Ncodei表示属性Ai的正向编码值和逆向编码值;
Step e:利用Step d中所有所述子孙节点属性Ai的参数Exi进行拉格朗日插值函数计算得到第二访问树Tw根节点的参数ERoot;
Step f:利用Step e中的所述参数ERoot以及搜索令牌Tokkw中的参数tk1,tk2,tk3和关键字密文中的参数K1,K2,K3,验证如下等式是否成立,若成立,则为数据用户要查询的关键字kw与该关键字密文所指的是同一个关键字,查找成功;否则,则为数据用户要查询的关键字kw与该关键字密文所指的不是同一个关键字,查找失败;
e(K2,tk2)=e(K1,tk1)e(tk3,K3)ERoot;
其中,所述前向导出函数的定义如下:
式中,f1(.)为正向编码值对应的前向导出函数,f2(.)为逆向编码值对应的前向导出函数,Pcodei、Pcodej为属性Ai、Aj的正向编码值,Ncodei、Ncodej为属性Ai、Aj的逆向编码值,为正向编码值Pcodei、Pcodej的映射值,为逆向编码值Ncodei、Ncodej映射值,节点属性i是节点属性j的子孙节点,θ1、θ2为小于n'的所有正整数集合中的随机数,其中,编码值与映射值的关系如下:
Um={(Pcode1,Ncode1),...,(Pcodem,Ncodem)}
n'=p'q'
2.根据权利要求1所述的方法,其特征在于:Step a中判断子集合S是否满足关键字密文中第二访问树Tw的访问策略是通过判断所述第二访问树Tw的根节点参数为1,若为1,所述子集合S满足关键字密文中的第二访问数Tw的访问策略,否则,则不满足;
其中,所述第二访问树Tw的根节点参数是通过递归计算获取根节点下所有子节点的节点参数得出的,所述第二访问树Tw中节点x的节点参数的计算过程如下:
C:第二访问树Tw的节点x为非叶子节点属性时,则计算节点x的所有子节点的节点参数,再依据所有子节点的节点参数判断是否kx个子节点的计算结果为1,若是,所述节点x的节点参数为1,否则,不为1;
其中,节点x为“OR”门时,kx为1;节点x为“AND”门时,kx为Nx,Nx为节点x的子节点个数;
D:第二访问树Tw的节点x为叶子节点属性,则判断节点x的属性是否与所述子集合S中一个节点的属性相同或者是否是所述子集合S中一个节点属性的下层属性,若是,所述节点x的节点参数为1,否则,不为1。
3.根据权利要求1所述的方法,其特征在于:Setp B的执行过程如下:
Step E:从小于n的所有非负整数集合Zn中选择两个随机数r1,σ,并按照如下公式计算参数K1、K2、K3;
K3=gbσ
MK=(a,b,c,p,q,n')
Ai[Pcodei,Ncodei]∈Tw
Step G,根据步骤1和步骤2的参数得到关键字w的关键字密文:
式中,cphw为关键字w的关键字密文。
其中,生成过程如下:
SN=(N=pq,G0,G1,e)
n=kn'
e:G0×G0→G1
e(g,g)≠1
式中,N是RSA模数,p和q是两个不同的大素数,e表示双线性映射,G0,G1是阶为合数n的循环群,k、n'是两个不同的大素数;
Step J:定义哈希函数H1(R)、H2(w)与根属性以及关键字之间存下如下关联;
H1(R):{0,1}*→G0
H2(w):{0,1}*→Zn
其中,H1(R):{0,1}*→G0表示使用哈希函数H1将二进制字符串所为的根属性R映射为循环群G0中一个随机的元素,以及H2(w):{0,1}*→Zn表示使用单向哈希函数H2将二进制字符串所为的关键字w映射为一个随机的整数;
MK=(a,b,c,p,q,n')
5.根据权利要求1所述的方法,其特征在于:步骤2中所述搜索密钥sku生成过程如下:
Step L:从小于n的所有非负整数集合Zn中选择一个随机数r,并计算参数D;
D=g(ac-r)/b
MK=(a,b,c,p,q,n')
Step N:依据Step L和Step M并按照如下格式输出数据用户的搜索密钥sku:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810264897.7A CN108471417B (zh) | 2018-03-28 | 2018-03-28 | 一种云环境下基于层次属性的关键字查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810264897.7A CN108471417B (zh) | 2018-03-28 | 2018-03-28 | 一种云环境下基于层次属性的关键字查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108471417A CN108471417A (zh) | 2018-08-31 |
CN108471417B true CN108471417B (zh) | 2021-05-04 |
Family
ID=63264913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810264897.7A Active CN108471417B (zh) | 2018-03-28 | 2018-03-28 | 一种云环境下基于层次属性的关键字查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108471417B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680062B (zh) * | 2020-05-15 | 2021-05-25 | 江西师范大学 | 一种安全多目标数据对象查询方法及存储介质 |
WO2022099496A1 (zh) * | 2020-11-11 | 2022-05-19 | 深圳技术大学 | 一种密文搜索方法、装置、系统及计算机可读存储介质 |
CN114826736A (zh) * | 2022-04-26 | 2022-07-29 | 平安普惠企业管理有限公司 | 信息共享方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
CN103329184A (zh) * | 2011-01-13 | 2013-09-25 | 三菱电机株式会社 | 数据处理装置以及数据保管装置 |
-
2018
- 2018-03-28 CN CN201810264897.7A patent/CN108471417B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
CN103329184A (zh) * | 2011-01-13 | 2013-09-25 | 三菱电机株式会社 | 数据处理装置以及数据保管装置 |
Non-Patent Citations (4)
Title |
---|
Comparison-based encryption for fine-grained access control in clouds;ZHU Y,HU H,G J;《Proceedings of the Second ACM Conference on Data and Application Security and Privacy》;20120229;全文 * |
DABKS: Dynamic Attribute-based Keyword Search in Cloud Computing;Baishuang Hu,Qin Liu,Xuhui Liu,Tao Peng,Guojun Wang,Jie Wu;《2017 IEEE International Conference on Communications(ICC)》;IEEE;20170731;第2页第3段-第3页第3段及图1-3 * |
Dynamic Access Policy in Cloud-Based Personal Health Record(PHR) Systems;Xuhui Liu, Qin Liu, Tao Peng, Jie Wu;《Information Sciences》;20160623;第4页第2段-第16页第1段 * |
个人健康记录云管理系统中支持用户撤销的细粒度访问控制;刘琴,刘旭辉,胡柏霜,张少波;《电子与信息学报》;20170531;第39卷(第5期);1206-1212 * |
Also Published As
Publication number | Publication date |
---|---|
CN108471417A (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Enabling fine-grained multi-keyword search supporting classified sub-dictionaries over encrypted cloud data | |
Liang et al. | Searchable attribute-based mechanism with efficient data sharing for secure cloud storage | |
Jung et al. | Privacy preserving cloud data access with multi-authorities | |
CN108989026B (zh) | 一种发布/订阅环境下用户属性可撤销的方法 | |
CN103701833B (zh) | 一种基于云计算平台的密文访问控制方法及系统 | |
WO2022099495A1 (zh) | 云计算环境中的密文搜索方法及系统、设备 | |
CN111143471B (zh) | 一种基于区块链的密文检索方法 | |
US7340054B2 (en) | Information processing method, decrypting method, information processing apparatus, and computer program | |
CN112332979B (zh) | 云计算环境中的密文搜索方法及系统、设备 | |
CN108471417B (zh) | 一种云环境下基于层次属性的关键字查询方法 | |
CN109714157B (zh) | 一种抗密钥暴露属性加密的sdn跨域访问控制方法 | |
De Santis et al. | Efficient provably-secure hierarchical key assignment schemes | |
CN114244838A (zh) | 区块链数据的加密方法及系统、解密方法、装置及设备 | |
CN114142996B (zh) | 一种基于sm9密码算法的可搜索加密方法 | |
Dua et al. | A study of applications based on elliptic curve cryptography | |
Lee et al. | A generic approach to build revocable hierarchical identity-based encryption | |
Lee et al. | Identity-based revocation from subset difference methods under simple assumptions | |
Yang et al. | A fine-grained access control scheme for big data based on classification attributes | |
Hu et al. | Multi-keyword ranked searchable public-key encryption | |
Bethencourt et al. | Anonymous multi-attribute encryption with range query and conditional decryption | |
Meng | Directly revocable ciphertext-policy attribute-based encryption from lattices | |
CN115643016A (zh) | 基于cp-abe的关键字隐藏搜索方法 | |
CN115664656A (zh) | 支持叛逆者追踪和树形访问结构的密文策略属性基加密法 | |
Chen et al. | HAC: Enable high efficient access control for information-centric Internet of Things | |
Shen et al. | Ensuring query completeness in outsourced database using order-preserving encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |