CN108471417B - 一种云环境下基于层次属性的关键字查询方法 - Google Patents

一种云环境下基于层次属性的关键字查询方法 Download PDF

Info

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
Application number
CN201810264897.7A
Other languages
English (en)
Other versions
CN108471417A (zh
Inventor
刘琴
胡柏霜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN201810264897.7A priority Critical patent/CN108471417B/zh
Publication of CN108471417A publication Critical patent/CN108471417A/zh
Application granted granted Critical
Publication of CN108471417B publication Critical patent/CN108471417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0478Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种云环境下基于层次属性的关键字查询方法,包括:数据所有者利用预设的属性层次树以及加密参数加密数据文件集,第二访问树的叶子节点属性为属性层次树的下层属性用来加密关键字;可信第三方分配属性集给新用户,并生成解密密钥和搜索密钥;属性集中的所有属性均来自于属性层次树中的属性;新用户依据搜索密钥以及待搜索的关键字生成搜索令牌;云端依据搜索令牌对每个关键字密文进行匹配判断,若存在相匹配的关键字密文,将关键字密文对应的文件密文发送给新用户;再利用解密密钥解密文件密文。通过构造属性层次树使拥有上层属性的数据用户可以获取到由下层属性加密的密文,极大地降低访问策略中的属性个数,降低加密开销。

Description

一种云环境下基于层次属性的关键字查询方法
技术领域
本发明属于云通讯技术领域,具体涉及一种云环境下基于层次属性的关键字查询方法。
背景技术
随着过去几年全球网络在不断创新,网络规模越来越大,网速也越来越高,这使得云计算有了生根发芽的土壤。云计算通过互联网动态提供计算机资源,为用户提供了许多好处,如快速部署、无处不在的网络访问、位置无关资源池、可扩展性和弹性,其现已成为一个重要的技术趋势。从用户的角度,包括个人和IT企业,通过将其数据和查询服务外包给云,可以以较低的价格来实现极大的灵活性。尽管有好处,但数据外包使数据所有者无法直接控制其外包数据。为了缓解问题,数据所有者应该在将数据外包给云之前对其数据进行加密。然而,加密可能阻碍一些有用的功能,例如在实施访问控制策略的同时搜索外包的加密数据。因此,现如今云用户面临的主要问题是:在搜索加密数据时,如何实现细粒度搜索授权。现有的基于属性的关键字搜索(Attribute-Based Keyword Search,ABKS)方案可以解决这一个问题,其允许数据所有者根据访问策略控制对外包的加密数据的搜索。然而,由于传统的ABKS方案采用单调的树形访问结构,数据所有者的加密开销与访问策略中的属性个数成正比,即数据所有者的加密开销与访问策略中的属性个数成线性增长,这对于一个拥有大量用户和属性集的系统来说,加密开销非常大,给数据所有者带来了大量的计算开销和通信开销。
发明内容
本发明的目的是提供一种云环境下基于层次属性的关键字查询方法,通过构造属性层次树将建立属性之间的关联,进而使拥有上层属性的数据用户可以获取到由下层属性加密的密文,极大地降低访问策略中的属性个数,降低加密开销。
本发明提供的一种云环境下基于层次属性的关键字查询方法,包括如下步骤:
步骤1:数据所有者从可信第三方获取加密参数,以及利用预设的属性层次树
Figure BDA0001611163720000011
以及所述加密参数加密数据文件集并发送给云端;
其中,所述数据文件集由至少两个数据文件Fi组成,每个数据文件Fi中存在一个由至少两个不同关键字w组成的关键字集;
所述加密参数包括文件密钥、第一公共参数
Figure BDA0001611163720000012
以及第一主密钥MK;
步骤1的执行过程如下:
Setp A:数据所有者利用所述文件密钥和预设第一访问树加密数据文件得到文件密文,并发送给云端;
Setp B:数据所有者利用第一公共参数
Figure BDA0001611163720000021
第一主密钥MK以及预设第二访问树Tw加密数据文件中每个关键字w得到关键字密文,并发送给云端;
其中,所述第二访问树Tw的叶子节点属性为所述属性层次树
Figure BDA0001611163720000022
的下层属性,所述属性层次树
Figure BDA0001611163720000023
中每个节点属性均利用正向和逆向深度优先编码规则分别设有正向编码值和逆向编码值;
步骤2:可信第三方依据数据用户的搜索、访问权限分配属性集Su给数据用户,并生成解密密钥SKu和搜索密钥sku,再将所述解密密钥SKu和搜索密钥sku发送给数据用户;
其中,所述搜索密钥sku是依据所述属性集Su、所述第一公共参数
Figure BDA0001611163720000024
和所述第一主密钥MK生成的;所述属性集Su中的所有属性均来自于所述属性层次树
Figure BDA0001611163720000025
中的属性;
步骤3:数据用户依据步骤2中的搜索密钥sku以及待搜索的关键字kw生成搜索令牌Tokkw,并发送给云端;
步骤4:所述云端依据步骤3中的搜索令牌Tokkw依次对存储的关键字密文集中的每个关键字密文进行匹配判断,若存在相匹配的关键字密文,将所述相匹配的关键字密文对应的文件密文发送给数据用户;若不存在,查找失败;
其中,所述属性集Su是关键字密文中第二访问树Tw中叶子节点属性的上层属性时,则基于节点属性的编码值采用前向导出函数来获取所述第二访问树Tw中叶子节点属性的关联参数,再利用所述关联参数查询关键字密文来判断该关键字密文是否是所匹配的关键字密文;
步骤5:判断属性集Su是否满足步骤4中所述文件密文的第一访问树的访问策略,若满足,则利用步骤2中的解密密钥SKu解密文件密文;若不满足,查询失败。
本发明引入了属性层次树
Figure BDA0001611163720000026
并利用正/逆向深度优先编码来对属性层次树
Figure BDA0001611163720000027
中的每个节点进行编码,再然后利用前向导出函数,让祖先属性(上层泛化属性)节点推导出它的子孙属性(下层具体属性)节点所关联的参数,而不需要一对一进行配对操作,因此,拥有上层泛化属性的数据用户可以成功解密出用下层具体属性所加密的密文。因此,本方案中用于加密关键字的第二访问树Tw的叶子节点属性是由属性层次树
Figure BDA0001611163720000028
中的下层属性构成的,即利用属性层次树
Figure BDA0001611163720000036
中的下层属性对关键字进行加密,使得待数据用户查询关键字时,若数据用户的属性是关键字密文中第二访问树Tw中叶子节点属性的上层属性时,则基于节点属性的编码值采用前向导出函数来获取所述第二访问树Tw中叶子节点属性的关联参数,再利用所述关联参数查询关键字密文来判断该关键字密文是否是所需的关键字密文,若是,则对关键字密文对应的文件密文进行解密得到目标信息。
本发明通过上述技术手段可以极大地缩短了访问路径,降低了加密成本。
进一步优选,步骤4中按照如下Step a和Step b进行所述匹配判断:
Step a:判断所述搜索令牌Tokkw中的属性集Su中是否存在一个子集合S满足关键字密文中第二访问树Tw的访问策略,若存在,执行Step b;否则,所述关键字密文与数据用户不匹配;
Step b:判断所述待搜索的关键字kw与所述关键字密文中的关键字w是否为同一关键字,若是,则所述关键字密文为与数据用户相匹配的关键字密文;否则,所述关键字密文与数据用户不匹配。
进一步优选,所述前向导出函数的定义如下:
Figure BDA0001611163720000031
Figure BDA0001611163720000032
Figure BDA0001611163720000033
式中,f1(.)为正向编码值对应的前向导出函数,f2(.)为逆向编码值对应的前向导出函数,Pcodei、Pcodej为属性Ai、Aj的正向编码值,Ncodei、Ncodej为属性Ai、Aj的逆向编码值,
Figure BDA0001611163720000037
为正向编码值Pcodei、Pcodej的映射值,
Figure BDA0001611163720000038
为逆向编码值Ncodei、Ncodej映射值,节点属性i是节点属性j的子孙节点,θ1、θ2为小于n'的所有正整数集合Zn*'中的随机数,其中,编码值与映射值的关系如下:
Figure BDA0001611163720000034
Figure BDA0001611163720000035
Um={(Pcode1,Ncode1),...,(Pcodem,Ncodem)}
Figure BDA0001611163720000041
Figure BDA0001611163720000042
n'=p'q'
式中,Um为属性层次树
Figure BDA0001611163720000043
的节点属性的编码值集合,Vm为属性层次树
Figure BDA0001611163720000044
的节点属性的编码值集合的映射集合,m为属性层次树
Figure BDA0001611163720000045
的节点属性的数量,φ1(.),φ2(.)为将整数集Um到集合Vm的映射函数,
Figure BDA0001611163720000046
为循环群Gn'中随机选取的生成元,循环群Gn'是阶为合数n'的循环群,合数阶n'为RSA类型,优选合数阶n'的长度设置为1024比特,p',q'是两个不同的大素数,优选p',q'的长度为512比特。
应当理解,属性层次树
Figure BDA0001611163720000047
中节点的层次编码可以用一组离散值来表示,故形成集合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的执行过程如下:
Step c:利用前向导出函数以及所述子集合S中每个属性Aj对应在搜索令牌Tokkw中的搜索参数B'j
Figure BDA0001611163720000056
B'j1、B'j2计算出节点属性Aj的子孙节点属性Ai的搜索参数B'i,
Figure BDA0001611163720000057
其中,Step b中所述关键字密文的第二访问树Tw包括所述节点属性Aj的子孙节点属性Ai,所述搜索参数B'i
Figure BDA0001611163720000058
的计算公式如下;
Figure BDA0001611163720000051
Figure BDA0001611163720000052
Figure BDA0001611163720000053
式中,tk1、tk2、tk3为搜索令牌Tokkw的参数;
Step d:利用Step c中所述子孙节点属性Ai的搜索参数B'i,
Figure BDA0001611163720000059
和所述关键字密文中的属性参数
Figure BDA00016111637200000510
计算得到所述子孙节点属性Ai的参数
Figure BDA00016111637200000511
其中,所述参数
Figure BDA00016111637200000512
的计算公式如下:
Figure BDA0001611163720000054
Figure BDA0001611163720000055
式中,e表示双线性映射,cphw表示关键字w的关键字密文,K1、K2、K3为关键字密文cphw的参数,Ci表示所述子孙节点属性Ai的属性参数
Figure BDA00016111637200000513
的集合;
Step e:利用Step d中所有所述子孙节点属性Ai的参数
Figure BDA00016111637200000514
进行拉格朗日插值函数计算得到第二访问树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
利用前向导出函数获取的第二访问树Tw中叶子节点属性的关联参数为子孙节点属性Ai的搜索参数B'i,
Figure BDA0001611163720000064
进一步优选,所述正向和逆向深度优先编码规则如下:
所述正向深度优先编码规则为:以根节点为起始点,采用先左后右和编码值从小到大的原则依次遍历从左至右的子树上的每个节点进行编码直至每个节点上均设有正向编码值;
所述逆向深度优先编码规则为:以根节点为起始点,采用先右后左和编码值从小到大的原则依次遍历从右至左的子树上的每个节点进行编码直至每个节点上均设有逆向编码值;
其中,祖先节点上的正向编码值和逆向编码值分别小于子孙节点上对应的正向编码值和逆向编码值。
例如,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。
进一步优选,Setp B是利用第一公共参数
Figure BDA0001611163720000065
第一主密钥MK以及预设第二访问树Tw并采用关键字加密算法(EncKW)加密关键字w得到关键字密文;
其中,执行过程如下:
Step E:从小于n的所有非负整数集合Zn中选择两个随机数r1,σ,并按照如下公式计算参数K1、K2、K3
Figure BDA0001611163720000061
Figure BDA0001611163720000062
K3=g
MK=(a,b,c,p,q,n')
Figure BDA0001611163720000063
式中,a,b,c,p,q,n'为第一主密钥MK的参数,H1(R),H2(w),SN,g,
Figure BDA0001611163720000066
θ12,ga,gb,gc为第一公共参数
Figure BDA0001611163720000067
的参数,n表示循环群G0的阶,循环群Gn'为循环群G0的子群;
Step F:按照如下公式计算所述第二访问树Tw中每个属性Ai对应的属性参数
Figure BDA0001611163720000077
其中,
Figure BDA0001611163720000071
Figure BDA0001611163720000072
Figure BDA0001611163720000073
Ai[Pcodei,Ncodei]∈Tw
式中,
Figure BDA0001611163720000078
为属性参数
Figure BDA0001611163720000079
的底数,
Figure BDA00016111637200000710
是第二访问树Tw中属性Ai的秘密分享值
Figure BDA00016111637200000711
由秘密共享方案(SSS)算法生成,R为属性层次树
Figure BDA00016111637200000712
的根节点属性;
Step G,根据步骤1和步骤2的参数得到关键字w的关键字密文:
Figure BDA00016111637200000713
式中,cphw为关键字w的关键字密文。
进一步优选所述第一公共参数
Figure BDA00016111637200000714
和所述第一主密钥MK是利用预设的双线性映射系统SN并采用初始化算法(Init)生成的;
其中,生成过程如下:
Step H:获取预设的双线性映射系统SN,并从所述双线性映射系统SN的循环群G0的两个子群Gk、Gn'中随机选取生成元g、
Figure BDA0001611163720000074
SN=(N=pq,G0,G1,e)
n=kn'
e:G0×G0→G1
Figure BDA0001611163720000075
e(g,g)≠1
Figure BDA0001611163720000076
式中,N是RSA模数,N的长度一般设为1024比特,p和q是两个不同的大素数,p和q的长度设为512比特,e表示双线性映射,G0,G1是阶为合数n的循环群,k、n'为两个不同的大素数,k的长度至少为160比特;
Step I:从小于参数n'的所有正整数集合
Figure BDA0001611163720000085
中选择五个随机数θ1、θ2、a、b、c并计算出参数ga,gb,gc
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映射为一个随机的整数;
Step K:根据Step H-Step J的参数得到第一公共参数
Figure BDA0001611163720000086
和所述第一主密钥MK;
MK=(a,b,c,p,q,n')
Figure BDA0001611163720000081
进一步优选,步骤2中所述搜索密钥sku是依据所述属性集Su、所述第一公共参数
Figure BDA0001611163720000087
和所述第一主密钥MK并采用搜索密钥生成算法(GenKey)生成的;
其中,执行过程如下:
Step L:从小于n的所有非负整数集合Zn中选择一个随机数r,并计算参数D;
D=g(ac-r)/b
MK=(a,b,c,p,q,n')
Figure BDA0001611163720000082
式中,a,b,c,p,q,n'为第一主密钥MK的参数,H1(R),H2(w),SN,g,
Figure BDA0001611163720000088
θ12,ga,gb,gc为第一公共参数
Figure BDA00016111637200000810
的参数,n表示循环群G0的阶,循环群Gn'为循环群G0的子群;
Step M:从小于n的所有非负整数集合Zn中选择一个随机数rj,按照如下公式计算所述属性集Su中每个属性Aj的参数Bj
Figure BDA0001611163720000089
Bj1、Bj2
Figure BDA0001611163720000083
Figure BDA0001611163720000084
Figure BDA0001611163720000091
Figure BDA0001611163720000092
Figure BDA0001611163720000093
式中,HAj为参数Bj的底数,R为属性层次树
Figure BDA0001611163720000099
的根节点属性;
Step N:依据Step L和Step M并按照如下格式输出数据用户的搜索密钥sku
Figure BDA0001611163720000094
进一步优选,步骤3中所述搜索令牌Tokkw是利用第一主密钥MK、搜索密钥sku以及待搜索的关键字kw并采用搜索令牌生成算法(TokenGen)生成的;
其中,执行过程如下:
Step l:从小于n的所有非负整数集合Zn中选择一个随机数s,并按照如下公式计算参数tk1、tk2、tk3
Figure BDA0001611163720000095
tk2=gcs
tk3=Ds=g(ac-r)s/b
Step m:按照如下公式计算所述属性集Su中每个属性Aj的搜索参数B'j
Figure BDA00016111637200000910
B'j1、B'j2
Figure BDA0001611163720000096
Figure BDA0001611163720000097
B'j1=(Bj1)s
B'j2=(Bj2)s
Step n:根据Step l和Step m的参数以及如下格式输出搜索令牌Tokkw
Figure BDA0001611163720000098
进一步优选,所述文件密钥包括第二公共参数pk和第二主密钥mk;
所述第二公共参数pk和第二主密钥mk是采用密文策略的基于属性的加密(CP-ABE)方案中初始化算法(Setup)生成的;
所述解密密钥SKu是利用所述属性集Su采用密文策略的基于属性的加密(CP-ABE)方案中的解密密钥生成算法(KeyGen)生成的。
有益效果
与现有技术相比,本发明引入了属性层次树
Figure BDA0001611163720000101
并利用正/逆向深度优先编码来对属性层次树
Figure BDA0001611163720000102
中的每个节点进行编码,再然后利用前向导出函数,让祖先属性(上层泛化属性)节点推导出它的子孙属性(下层具体属性)节点所关联的参数,而不需要一对一进行配对操作,用于加密关键字的第二访问树Tw的叶子节点属性是由属性层次树
Figure BDA0001611163720000103
中的下层属性构成的,即利用属性层次树
Figure BDA0001611163720000104
中的下层属性对关键字进行加密,使得待数据用户查询关键字时,若数据用户的属性是关键字密文中第二访问树Tw中叶子节点属性的上层属性时,则基于节点属性的编码值采用前向导出函数来获取所述第二访问树Tw中叶子节点属性的关联参数,再利用所述关联参数查询关键字密文来判断该关键字密文是否是所需的关键字密文,若是,则对关键字密文对应的文件密文进行解密得到目标信息。通过上述技术手段可以极大地缩短了访问路径,尤其是针对上层属性节点,可以直接利用前向导出函数对上层属性进行推导来获取参数,降低了加密成本。
附图说明
图1是属性层次树的编码图,其中(a)图为正向编码值的示意图,(b)图为逆向编码值的示意图;
图2是本发明实施例提供的一种云环境下基于层次属性的关键字查询方法的流程示意图;
图3是访问树的示意图,其中(a)图为访问树的访问策略的示意图,(b)图为访问树的示秘密共享的示意图。
具体实施方案
下面将结合实施例对本发明做进一步的说明。
本发明将系统中的属性集A={A1,...,AM}构成为一个K层的属性层次树
Figure BDA0001611163720000105
M为属性集中属性个数,其中采用正/逆向深度优先编码规则对属性层次树
Figure BDA0001611163720000106
中的每个节点进行编码,这样树中的每个属性节点都分别有两个编码值,分别为正向编码值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的祖先节点。
基于上述节点的编码值,本发明通过前向导出函数定义节点之间的数学联系,其中,属性层次树
Figure BDA0001611163720000111
的节点属性的编码值用一组离散值表示,下述Um为属性层次树
Figure BDA0001611163720000112
的编码值集合;
Um={(Pcode1,Ncode1),...,(Pcodem,Ncodem)}
首先,设定参数Gn'是阶为合数n'=p'q'的循环群,其中,p',q'是两个不同的大素数。
然后,从循环群Gn'中随机选取两个唯一的生成元
Figure BDA0001611163720000113
以及从小于n'的所有正整数集合
Figure BDA0001611163720000114
中选取两个唯一的随机数θ1、θ2,即
Figure BDA0001611163720000115
接着,定义两个映射函数φ1(.),φ2(.),利用该两个映射函数φ1(.),φ2(.)将整数集Um映射到集合Vm
Figure BDA0001611163720000121
式中,
Figure BDA0001611163720000124
为正向编码值Pcodei、Pcodej的映射值,
Figure BDA0001611163720000125
为逆向编码值Ncodei、Ncodej映射值。
最后,根据映射函数φ1(.),φ2(.)的定义得到如下定义的前向导出函数f1(.)、f2(.)。
Figure BDA0001611163720000122
Figure BDA0001611163720000123
上述中节点i是节点j的子孙节点。
基于上述原理,如图2所示,本发明提供一种云环境下基于层次属性的关键字查询方法,包括如下步骤S1-S6:
S1:可信第三方生成加密参数并发送给云端和数据所有者。
其中,加密参数包括文件密钥、第一公共参数
Figure BDA0001611163720000126
以及第一主密钥MK,文件密钥包括第二公共参数pk和第二主密钥mk。
S2:数据所有者从可信第三方获取加密参数,以及利用预设的属性层次树
Figure BDA0001611163720000127
以及所述加密参数加密数据文件集并发送给云端。
其中,数据所有者有一个数据文件集Ω={F1,...,Fn},其中每个数据文件Fi都有一组不同关键字组成的关键字集。数据所有者在将自己的数据文件集Ω上传云端时,对于数据文件集Ω中的每个数据文件Fi进行如下Setp A-Setp B处理:
Setp A:数据所有者利用第二公共参数pk和第二主密钥mk和预设第一访问树采用密文策略的基于属性的加密(CP-ABE)方案的加密算法(Encrypt)加密数据文件得到文件密文,并发送给云端;
Setp B:数据所有者利用第一公共参数
Figure BDA0001611163720000128
第一主密钥MK以及预设第二访问树Tw采用关键字加密算法(EncKW)加密数据文件中每个关键字w得到关键字密文,并发送给云端。
其中,第二访问树Tw的叶子节点属性为所述属性层次树
Figure BDA0001611163720000129
的下层属性。
S3:可信第三方依据数据用户的搜索、访问权限分配属性集Su给数据用户,并生成解密密钥SKu和搜索密钥sku,再将所述解密密钥SKu和搜索密钥sku发送给数据用户。
其中,所述搜索密钥sku是依据所述属性集Su、所述第一公共参数
Figure BDA0001611163720000133
和所述第一主密钥MK生成的;所述属性集Su中的所有属性均来自于所述属性层次树
Figure BDA0001611163720000132
中的属性。
S4:数据用户依据搜索密钥sku以及待搜索的关键字kw生成搜索令牌Tokkw,并发送给云端。
S5:所述云端依据搜索令牌Tokkw依次对存储的关键字密文集中的每个关键字密文进行匹配判断,若存在相匹配的关键字密文,将所述相匹配的关键字密文对应的文件密文发送给数据用户;若不存在,查找失败。
S6:判断属性集Su是否满足所述文件密文的第一访问树的访问策略,若满足,则利用解密密钥SKu解密文件密文;若不满足,查询失败。
1、关于S1中生成加密参数:
本实施例中,采用密文策略的基于属性的加密(CP-ABE)方案的初始化算法(Setup)来生成系统的文件密钥,第二公共参数pk和第二主密钥mk用于对数据文件进行加密。
其中,利用预设的双线性映射系统SN并采用初始化算法(Init)生成的第一公共参数
Figure BDA0001611163720000134
和第一主密钥MK。生成过程如下Step H-Step K:
Step H:获取预设的双线性映射系统SN,并从所述双线性映射系统SN的循环群G0的两个子群Gk、Gn'中随机选取生成元g、
Figure BDA0001611163720000135
双线性映射系统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比特;
根据合数阶双线性映射的性质,存在以下关系:
Figure BDA0001611163720000131
e(g,g)≠1
Figure BDA0001611163720000141
Step I:从小于参数n'的所有正整数集合
Figure BDA0001611163720000144
中选择五个随机数θ1、θ2、a、b、c并计算出参数ga,gb,gc
Figure BDA0001611163720000142
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映射为一个随机的整数;
Step K:根据Step H-Step J的参数得到第一公共参数
Figure BDA0001611163720000145
和所述第一主密钥MK;
MK=(a,b,c,p,q,n')
Figure BDA0001611163720000143
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
Figure BDA0001611163720000151
Figure BDA0001611163720000152
K3=g
Step F:按照如下公式计算所述第二访问树Tw中每个属性Ai对应的属性参数
Figure BDA0001611163720000157
Figure BDA0001611163720000153
Figure BDA0001611163720000154
Figure BDA0001611163720000155
Ai[Pcodei,Ncodei]∈Tw
式中,
Figure BDA0001611163720000158
为属性参数
Figure BDA0001611163720000159
的底数,
Figure BDA00016111637200001510
是第二访问树Tw中属性Ai的秘密分享值,是利用秘密共享方案(SSS)算法生成,R为属性层次树
Figure BDA00016111637200001511
的根节点属性;
Step G,根据步骤1和步骤2的参数得到关键字w的关键字密文:
Figure BDA0001611163720000156
式中,cphw为关键字w的关键字密文。
3、关于S3中的解密密钥SKu和搜索密钥sku
其中,解密密钥SKu是利用所述属性集Su采用密文策略的基于属性的加密(CP-ABE)方案中的解密密钥生成算法(KeyGen)生成的。
搜索密钥sku是依据所述属性集Su、所述第一公共参数
Figure BDA00016111637200001512
和所述第一主密钥MK并采用搜索密钥生成算法(GenKey)生成的,其中,生成过程如下Step L-Step N
Step L:从小于n的所有非负整数集合Zn中选择一个随机数r,并计算参数D;
D=g(ac-r)/b
Step M:从小于n的所有非负整数集合Zn中选择一个随机数rj,按照如下公式计算所述属性集Su中每个属性Aj的参数Bj
Figure BDA00016111637200001610
Bj1、Bj2
Figure BDA0001611163720000161
Figure BDA0001611163720000162
Figure BDA0001611163720000163
Figure BDA0001611163720000164
Figure BDA0001611163720000165
式中,
Figure BDA00016111637200001611
为参数Bj的底数,R为属性层次树
Figure BDA00016111637200001612
的根节点属性;
Step N:依据Step L和Step M并按照如下格式输出数据用户的搜索密钥sku
Figure BDA0001611163720000166
4、关于S4中搜索令牌Tokkw的生成过程:
搜索令牌Tokkw是利用第一主密钥MK、搜索密钥sku以及待搜索的关键字kw并采用搜索令牌生成算法(TokenGen)生成的,其中,执行过程如Step l-Step n:
Step l:从小于n的所有非负整数集合Zn中选择一个随机数s,并按照如下公式计算参数tk1、tk2、tk3
Figure BDA0001611163720000167
tk2=gcs
tk3=Ds=g(ac-r)s/b
Step m:按照如下公式计算所述属性集Su中每个属性Aj的搜索参数B'j
Figure BDA00016111637200001613
B'j1、B'j2
Figure BDA0001611163720000168
Figure BDA0001611163720000169
B'j1=(Bj1)s
B'j2=(Bj2)s
Step n:根据Step l和Step m的参数以及如下格式输出搜索令牌Tokkw
Figure BDA0001611163720000171
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:
Step c:利用前向导出函数以及所述子集合S中每个属性Aj对应在搜索令牌Tokkw中的搜索参数B'j
Figure BDA0001611163720000172
B'j1、B'j2计算出节点属性Aj的子孙节点属性Ai的搜索参数B'i,
Figure BDA0001611163720000173
其中,Step b中所述关键字密文的第二访问树Tw包括所述节点属性Aj的子孙节点属性Ai,通过Step c的计算可以得到
Figure BDA0001611163720000186
所述搜索参数B'i
Figure BDA0001611163720000187
的计算公式如下;
Figure BDA0001611163720000181
Figure BDA0001611163720000182
Step d:利用Step c中所述子孙节点属性Ai的搜索参数B'i,
Figure BDA0001611163720000188
和所述关键字密文中的属性参数计算得到所述子孙节点属性Ai的参数
Figure BDA0001611163720000189
其中,利用计算得到的参数
Figure BDA00016111637200001810
和关键字密文cphw中的属性参数
Figure BDA00016111637200001811
计算得到属性Ai所对应的
Figure BDA00016111637200001812
其中,所述参数
Figure BDA00016111637200001813
的计算公式如下:
Figure BDA0001611163720000183
Figure BDA0001611163720000184
Step e:利用Step d中所有所述子孙节点属性Ai的参数
Figure BDA00016111637200001814
进行拉格朗日插值函数计算得到第二访问树Tw根节点的参数ERoot
所有所述子孙节点属性Ai的参数
Figure BDA00016111637200001815
表示为如下:
Figure BDA0001611163720000185
第二访问树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
综上所述,本方案引入了属性层次树
Figure BDA0001611163720000191
用于加密关键字的访问树的叶子属性节点是由属性层次树
Figure BDA0001611163720000192
中的下层属性构成的,即利用下层属性对关键字进行加密。在没有引入属性层次树
Figure BDA0001611163720000193
之前,假设访问策略为a∨b∨c∨d,属性a,b,c,d之间没有任何的关联;在引入属性层次树
Figure BDA0001611163720000194
之后,属性之间有了关联,假设a是c的祖先节点,b是d的祖先节点,因为树中的上层属性比下层属性具有更高的级别,即祖先结点具备其所有子孙结点中的属性,因此在搜索过程中就不需要一对一的配对操作。通过前向导出函数,让上层属性推导出下层属性所关联的密钥,从而拥有上层属性的数据用户可以查询由下层属性加密的关键字密文,故访问策略可以简化为c∨d,这样大大提高了加密的效率。
需要强调的是,本发明所述的实例是说明性的,而不是限定性的,因此本发明不限于具体实施方式中所述的实例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,不脱离本发明宗旨和范围的,不论是修改还是替换,同样属于本发明的保护范围。

Claims (6)

1.一种云环境下基于层次属性的关键字查询方法,其特征在于:包括如下步骤:
步骤1:数据所有者从可信第三方获取加密参数,以及利用预设的属性层次树
Figure FDA0002987690380000011
以及所述加密参数加密数据文件集并发送给云端;
其中,所述数据文件集由至少两个数据文件Fi组成,每个数据文件Fi中存在一个由至少两个不同关键字w组成的关键字集;所述加密参数包括文件密钥、第一公共参数
Figure FDA0002987690380000012
以及第一主密钥MK;
步骤1的执行过程如下:
Setp A:数据所有者利用所述文件密钥和预设第一访问树加密数据文件得到文件密文,并发送给云端;Setp B:数据所有者利用第一公共参数
Figure FDA0002987690380000013
第一主密钥MK以及预设第二访问树Tw加密数据文件中每个关键字w得到关键字密文,并发送给云端;
其中,所述第二访问树Tw的叶子节点属性为所述属性层次树
Figure FDA0002987690380000014
的下层属性,所述属性层次树
Figure FDA0002987690380000015
中每个节点属性均利用正向和逆向深度优先编码规则分别设有正向编码值和逆向编码值;
所述正向深度优先编码规则为:以根节点为起始点,采用先左后右和编码值从小到大的原则依次遍历从左至右的子树上的每个节点进行编码直至每个节点上均设有正向编码值;所述逆向深度优先编码规则:以根节点为起始点,采用先右后左和编码值从小到大的原则依次遍历从右至左的子树上的每个节点进行编码直至每个节点上均设有逆向编码值;
其中,祖先节点上的正向编码值和逆向编码值分别小于子孙节点上对应的正向编码值和逆向编码值;
步骤2:可信第三方依据数据用户的搜索、访问权限分配属性集Su给数据用户,并生成解密密钥SKu和搜索密钥sku,再将所述解密密钥SKu和搜索密钥sku发送给数据用户;
其中,所述搜索密钥sku是依据所述属性集Su、所述第一公共参数
Figure FDA0002987690380000016
和所述第一主密钥MK生成的;所述属性集Su中的所有属性均来自于所述属性层次树
Figure FDA0002987690380000017
中的属性;
步骤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
Figure FDA0002987690380000021
B'j1、B'j2计算出节点属性Aj的子孙节点属性Ai的搜索参数B'i,
Figure FDA0002987690380000022
其中,Step b中所述关键字密文的第二访问树Tw包括所述节点属性Aj的子孙节点属性Ai,所述搜索参数B'i
Figure FDA0002987690380000023
的计算公式如下;
Figure FDA0002987690380000024
式中,f1(.)为正向编码值对应的前向导出函数,f2(.)为逆向编码值对应的前向导出函数;
Step d:利用Step c中所述子孙节点属性Ai的搜索参数B'i,
Figure FDA0002987690380000025
和所述关键字密文中的属性参数计算得到所述子孙节点属性Ai的参数
Figure FDA0002987690380000026
Figure FDA0002987690380000027
Figure FDA0002987690380000028
式中,e表示双线性映射,cphw表示关键字w的关键字密文,K1、K2、K3为关键字密文cphw的参数,Ci表示所述子孙节点属性Ai的属性参数
Figure FDA0002987690380000031
的集合,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
其中,所述前向导出函数的定义如下:
Figure FDA0002987690380000032
Figure FDA0002987690380000033
Figure FDA0002987690380000034
式中,f1(.)为正向编码值对应的前向导出函数,f2(.)为逆向编码值对应的前向导出函数,Pcodei、Pcodej为属性Ai、Aj的正向编码值,Ncodei、Ncodej为属性Ai、Aj的逆向编码值,
Figure FDA0002987690380000035
为正向编码值Pcodei、Pcodej的映射值,
Figure FDA0002987690380000036
为逆向编码值Ncodei、Ncodej映射值,节点属性i是节点属性j的子孙节点,θ1、θ2为小于n'的所有正整数集合
Figure FDA0002987690380000037
中的随机数,其中,编码值与映射值的关系如下:
Figure FDA0002987690380000038
Figure FDA0002987690380000039
Um={(Pcode1,Ncode1),...,(Pcodem,Ncodem)}
Figure FDA00029876903800000310
Figure FDA00029876903800000311
n'=p'q'
式中,Um为属性层次树
Figure FDA0002987690380000041
的节点属性的编码值集合,Vm为属性层次树
Figure FDA0002987690380000042
的节点属性的编码值集合的映射集合,m为属性层次树
Figure FDA0002987690380000043
的节点属性的数量,φ1(.),φ2(.)为将整数集Um到集合Vm的映射函数,
Figure FDA0002987690380000044
为循环群Gn'中随机选取的生成元,循环群Gn'是阶为合数n'的循环群,合数阶n'为RSA类型,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
Figure FDA0002987690380000045
Figure FDA0002987690380000046
K3=g
MK=(a,b,c,p,q,n')
Figure FDA0002987690380000051
式中,a,b,c,p,q,n'为第一主密钥MK的参数,H1(R),H2(w),SN,g,
Figure FDA0002987690380000052
θ12,ga,gb,gc为第一公共参数
Figure FDA0002987690380000053
的参数,n表示循环群G0的阶,循环群Gn'为循环群G0的子群;
Step F:按照如下公式计算所述第二访问树Tw中每个属性Ai对应的属性参数
Figure FDA0002987690380000054
Figure FDA0002987690380000055
Figure FDA0002987690380000056
Figure FDA0002987690380000057
Ai[Pcodei,Ncodei]∈Tw
式中,
Figure FDA0002987690380000058
为属性参数
Figure FDA0002987690380000059
的底数,
Figure FDA00029876903800000510
是第二访问树Tw中属性Ai的秘密分享值,R为属性层次树
Figure FDA00029876903800000511
的根节点属性;
Step G,根据步骤1和步骤2的参数得到关键字w的关键字密文:
Figure FDA00029876903800000512
式中,cphw为关键字w的关键字密文。
4.根据权利要求1所述的方法,其特征在于:所述第一公共参数
Figure FDA00029876903800000513
和所述第一主密钥MK是利用预设的双线性映射系统SN生成的;
其中,生成过程如下:
Step H:获取预设的双线性映射系统SN,并从所述双线性映射系统SN的循环群G0的两个子群Gk、Gn'中随机选取生成元g、
Figure FDA00029876903800000514
SN=(N=pq,G0,G1,e)
n=kn'
e:G0×G0→G1
Figure FDA00029876903800000515
e(g,g)≠1
Figure FDA00029876903800000516
式中,N是RSA模数,p和q是两个不同的大素数,e表示双线性映射,G0,G1是阶为合数n的循环群,k、n'是两个不同的大素数;
Step I:从小于参数n'的所有正整数集合
Figure FDA0002987690380000069
中选择五个随机数θ1、θ2、a、b、c并计算出参数ga,gb,gc
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映射为一个随机的整数;
Step K:根据Step H-Step J的参数得到第一公共参数
Figure FDA0002987690380000061
和所述第一主密钥MK;
MK=(a,b,c,p,q,n')
Figure FDA0002987690380000062
5.根据权利要求1所述的方法,其特征在于:步骤2中所述搜索密钥sku生成过程如下:
Step L:从小于n的所有非负整数集合Zn中选择一个随机数r,并计算参数D;
D=g(ac-r)/b
MK=(a,b,c,p,q,n')
Figure FDA0002987690380000063
式中,a,b,c,p,q,n'为第一主密钥MK的参数,H1(R),H2(w),SN,g,
Figure FDA0002987690380000064
θ12,ga,gb,gc为第一公共参数
Figure FDA0002987690380000065
的参数,n表示循环群G0的阶,循环群Gn'为循环群G0的子群;
Step M:从小于n的所有非负整数集合Zn中选择一个随机数rj,按照如下公式计算所述属性集Su中每个属性Aj的参数Bj
Figure FDA0002987690380000066
Bj1、Bj2
Figure FDA0002987690380000067
Figure FDA0002987690380000068
Figure FDA0002987690380000071
Figure FDA0002987690380000072
Figure FDA0002987690380000073
式中,
Figure FDA0002987690380000074
为参数Bj的底数,R为属性层次树
Figure FDA0002987690380000075
的根节点属性;
Step N:依据Step L和Step M并按照如下格式输出数据用户的搜索密钥sku
Figure FDA0002987690380000076
6.根据权利要求5所述的方法,其特征在于:步骤3中所述搜索令牌Tokkw是利用第一主密钥MK、搜索密钥sku以及待搜索的关键字kw生成的;
其中,执行过程如下:
Step l:从小于n的所有非负整数集合Zn中选择一个随机数s,并按照如下公式计算参数tk1、tk2、tk3
Figure FDA0002987690380000077
tk2=gcs
tk3=Ds=g(ac-r)s/b
Step m:按照如下公式计算所述属性集Su中每个属性Aj的搜索参数B'j
Figure FDA0002987690380000078
B'j1、B'j2
Figure FDA0002987690380000079
Figure FDA00029876903800000710
B'j1=(Bj1)s
B'j2=(Bj2)s
Step n:根据Step l和Step m的参数以及如下格式输出搜索令牌Tokkw
Figure FDA00029876903800000711
CN201810264897.7A 2018-03-28 2018-03-28 一种云环境下基于层次属性的关键字查询方法 Active CN108471417B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 三菱电机株式会社 数据处理装置以及数据保管装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
Curtmola et al. Searchable symmetric encryption: improved definitions and efficient constructions
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
CN103701833B (zh) 一种基于云计算平台的密文访问控制方法及系统
CN108989026B (zh) 一种发布/订阅环境下用户属性可撤销的方法
US7340054B2 (en) Information processing method, decrypting method, information processing apparatus, and computer program
CN111143471B (zh) 一种基于区块链的密文检索方法
WO2022099495A1 (zh) 云计算环境中的密文搜索方法及系统、设备
CN108471417B (zh) 一种云环境下基于层次属性的关键字查询方法
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
De Santis et al. Efficient provably-secure hierarchical key assignment schemes
CN114142996B (zh) 一种基于sm9密码算法的可搜索加密方法
Lee et al. A generic approach to build revocable hierarchical identity-based encryption
Yang et al. A fine-grained access control scheme for big data based on classification attributes
Lee et al. Identity-based revocation from subset difference methods under simple assumptions
Hu et al. Multi-keyword ranked searchable public-key encryption
Bethencourt et al. Anonymous multi-attribute encryption with range query and conditional decryption
CN114430321B (zh) 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置
Meng Directly revocable ciphertext-policy attribute-based encryption from lattices
Chen et al. HAC: Enable high efficient access control for information-centric Internet of Things
Xu et al. Graph encryption for all‐path queries
Hou et al. Public-key searchable encryption from lattices
Lang et al. Extending the ciphertext-policy attribute based encryption scheme for supporting flexible access control
Vaanchig et al. Public key encryption with temporary and fuzzy keyword search

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