CN114357477B - Boolean Keyword Searchable Encryption Method Supporting Large-Scale User Groups - Google Patents
Boolean Keyword Searchable Encryption Method Supporting Large-Scale User Groups Download PDFInfo
- Publication number
- CN114357477B CN114357477B CN202111561029.3A CN202111561029A CN114357477B CN 114357477 B CN114357477 B CN 114357477B CN 202111561029 A CN202111561029 A CN 202111561029A CN 114357477 B CN114357477 B CN 114357477B
- Authority
- CN
- China
- Prior art keywords
- keyword
- node
- attribute
- matching
- calculation
- 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 43
- 238000004364 calculation method Methods 0.000 claims description 91
- 238000012795 verification Methods 0.000 claims description 26
- 230000014509 gene expression Effects 0.000 claims description 23
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 12
- 230000007704 transition Effects 0.000 claims description 12
- 125000004122 cyclic group Chemical group 0.000 claims description 10
- 230000008520 organization Effects 0.000 abstract description 11
- 229940079593 drug Drugs 0.000 description 12
- 239000003814 drug Substances 0.000 description 12
- 201000010099 disease Diseases 0.000 description 9
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 9
- SNIOPGDIGTZGOP-UHFFFAOYSA-N Nitroglycerin Chemical compound [O-][N+](=O)OCC(O[N+]([O-])=O)CO[N+]([O-])=O SNIOPGDIGTZGOP-UHFFFAOYSA-N 0.000 description 5
- 239000000006 Nitroglycerin Substances 0.000 description 5
- 229960003711 glyceryl trinitrate Drugs 0.000 description 5
- 208000019622 heart disease Diseases 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- FQCKMBLVYCEXJB-MNSAWQCASA-L atorvastatin calcium Chemical compound [Ca+2].C=1C=CC=CC=1C1=C(C=2C=CC(F)=CC=2)N(CC[C@@H](O)C[C@@H](O)CC([O-])=O)C(C(C)C)=C1C(=O)NC1=CC=CC=C1.C=1C=CC=CC=1C1=C(C=2C=CC(F)=CC=2)N(CC[C@@H](O)C[C@@H](O)CC([O-])=O)C(C(C)C)=C1C(=O)NC1=CC=CC=C1 FQCKMBLVYCEXJB-MNSAWQCASA-L 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 229940002661 lipitor Drugs 0.000 description 3
- 206010020772 Hypertension Diseases 0.000 description 2
- XSDQTOBWRPYKKA-UHFFFAOYSA-N amiloride Chemical compound NC(=N)NC(=O)C1=NC(Cl)=C(N)N=C1N XSDQTOBWRPYKKA-UHFFFAOYSA-N 0.000 description 2
- 229960002576 amiloride Drugs 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- BSYNRYMUTXBXSQ-UHFFFAOYSA-N Aspirin Chemical compound CC(=O)OC1=CC=CC=C1C(O)=O BSYNRYMUTXBXSQ-UHFFFAOYSA-N 0.000 description 1
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 206010052568 Urticaria chronic Diseases 0.000 description 1
- 229960001138 acetylsalicylic acid Drugs 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 208000024376 chronic urticaria Diseases 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 208000029078 coronary artery disease Diseases 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 206010012601 diabetes mellitus Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 229960003088 loratadine Drugs 0.000 description 1
- JCCNYMKQOSZNPW-UHFFFAOYSA-N loratadine Chemical compound C1CN(C(=O)OCC)CCC1=C1C2=NC=CC=C2CCC2=CC(Cl)=CC=C21 JCCNYMKQOSZNPW-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
Description
技术领域Technical Field
本发明涉及密码学技术领域,具体涉及一种支持大规模用户群的布尔关键词可搜索加密方法。The present invention relates to the technical field of cryptography, and in particular to a Boolean keyword searchable encryption method supporting a large-scale user group.
背景技术Background Art
为了能够提供给用户在密文数据上进行关键词搜索的能力,可搜索加密(Searchable Encryption,简称SE)技术作为一种解决方案被提出。根据不同的加密方法,可将现有的可搜索加密方案分为两种,对称可搜索加密(Symmetric SearchableEncryption,简称SSE)和公钥可搜索加密(Public-key Encryption with KeywordSearch,简称PEKS)。在公钥可搜索加密方案中,数据拥有者将数据上传到云服务器之前使用指定用户的公钥加密数据,之后这些用户可以使用其私钥对数据进行搜索和解密。In order to provide users with the ability to perform keyword searches on ciphertext data, searchable encryption (SE) technology has been proposed as a solution. According to different encryption methods, existing searchable encryption schemes can be divided into two types: symmetric searchable encryption (SSE) and public-key encryption with keyword search (PEKS). In the public-key searchable encryption scheme, the data owner encrypts the data using the public key of the specified user before uploading it to the cloud server, and then these users can use their private keys to search and decrypt the data.
但是,基本的PEKS方案在一些实际的应用场景中存在局限性。比如在医疗保健系统中,患者的个人健康信息只能由一些指定身份的授权医生检索。在这种情况下,为了能在加密的数据上同时实现关键词查询和细粒度的访问控制,研究者提出了基于属性的可搜索加密方法,现有许多的工作中对此也有了相应的研究。However, the basic PEKS scheme has limitations in some practical application scenarios. For example, in the healthcare system, the patient's personal health information can only be retrieved by some authorized doctors with specified identities. In this case, in order to achieve keyword query and fine-grained access control on encrypted data at the same time, researchers proposed attribute-based searchable encryption methods, and many existing works have also conducted corresponding research on this.
虽然现有的工作为基于属性的关键词搜索提供了解决方案,但是目前还没有一个方案能在面向大规模用户的前提下,同时支持灵活的访问策略匹配、用户属性的灵活性表达以及灵活的关键词搜索这三方面内容。因此,如何在如今大数据和云计算飞速发展的背景下针对上述三方面内容设计一个完善的,能够支持大规模用户的基于属性的关键词搜索方法成为亟待解决的问题。Although existing work provides solutions for attribute-based keyword search, there is currently no solution that can simultaneously support flexible access policy matching, flexible expression of user attributes, and flexible keyword search for large-scale users. Therefore, how to design a complete attribute-based keyword search method that can support large-scale users in the context of the rapid development of big data and cloud computing has become an urgent problem to be solved.
发明内容Summary of the invention
本发明的目的是为了解决现有技术中的上述缺陷,提供一种支持大规模用户群的布尔关键词可搜索加密方法。在云计算的背景下,本发明基于递归属性集结构、访问树结构和递归关键词集结构,在面向大规模用户的前提下实现了灵活的访问策略匹配和细粒度的访问控制。通过使用布尔搜索来支持多关键词搜索,能有效且灵活地定位到用户感兴趣的数据,同时满足灵活的访问策略匹配、用户属性的灵活性表达以及灵活的关键词搜索这三方面内容。The purpose of the present invention is to solve the above-mentioned defects in the prior art and provide a Boolean keyword searchable encryption method that supports a large-scale user group. In the context of cloud computing, the present invention is based on a recursive attribute set structure, an access tree structure, and a recursive keyword set structure, and realizes flexible access policy matching and fine-grained access control on the premise of facing a large number of users. By using Boolean search to support multi-keyword search, it can effectively and flexibly locate the data of interest to the user, while satisfying the three aspects of flexible access policy matching, flexible expression of user attributes, and flexible keyword search.
本发明的目的可以通过采取如下技术方案达到:The purpose of the present invention can be achieved by adopting the following technical solutions:
一种支持大规模用户群的布尔关键词可搜索加密方法,所述加密方法包括以下步骤:A Boolean keyword searchable encryption method supporting a large user group, the encryption method comprising the following steps:
S1、系统初始化:可信权威机构TA根据安全参数K生成公共密钥pk以及主密钥mk,并将公共密钥pk公开发布于云服务器;S1. System initialization: The trusted authority TA generates a public key pk and a master key mk based on the security parameter K, and publishes the public key pk to the cloud server;
S2、生成私钥:数据用户将自己的属性组织成递归属性集然后将其发送给可信权威机构TA,可信权威机构TA使用主密钥mk和递归属性集生成私钥sk,并将私钥sk发送给数据用户,其中,属性集被解析为{A0,A1,...,An},Ai表示中的第i个子属性集,假设子属性集Ai含有mi个属性,其中ai,j表示子属性集Ai中的第j个属性;S2. Generate private key: Data users organize their attributes into recursive attribute sets It is then sent to the trusted authority TA, which uses the master key mk and the recursive attribute set Generate a private key sk and send it to the data user, where the attribute set is parsed as {A 0 , A 1 , ..., An }, where A i represents The i-th sub-attribute set in , assuming that the sub-attribute set Ai contains mi attributes, Where a i,j represents the jth attribute in the sub-attribute set A i ;
S3、加密:数据拥有者使用系统公开密钥pk、递归关键词集合 和访问树为文档生成密文C,并将密文C上传至云服务器,递归关键词集合WV中的元素表示的是递归关键词集合中的第i′个子集,被解析为(wρ(i′,1),wρ(i′,2),...,),递归关键词名称集合和递归关键词集合WV具有相同的结构,集合中的元素表示的是递归关键词名称集合中的第i′个子集,被解析为(ρ(i′,1),ρ(i′,2),...ρ(i′,m′i′)),其中,m′i′表示的是第i′个关键词子集中关键词的数目,ρ(i′,j′)表示第i′个关键词子集中第j′个关键词的名称,wρ(i′,j′)表示第i′个关键词子集中第j′个关键词的值;S3, encryption: the data owner uses the system public key pk and recursive keyword set and visit tree Generate ciphertext C for the document and upload it to the cloud server. Recursively search for elements in the keyword set W V represents the i′th subset of the recursive keyword set, which is parsed as (w ρ(i′, 1) , w ρ(i′, 2) , ..., ), a set of recursive keyword names The recursive keyword set W V has the same structure, and the elements in the set represents the i′th subset in the recursive keyword name set, which is parsed as (ρ(i′, 1), ρ(i′, 2), ... ρ(i′, m′ i′ )), where m′ i′ represents the number of keywords in the i′th keyword subset, ρ(i′, j′) represents the name of the j′th keyword in the i′th keyword subset, and w ρ(i′, j′) represents the value of the j′th keyword in the i′th keyword subset;
S4、检索令牌生成:数据用户使用步骤S2中获得的私钥,结合数据用户本地的布尔关键词值表达式BV,生成检索令牌TK,其中,BV是访问树结构,BN表示的是布尔关键词名称表达式,具有和BV相同的访问树结构,对于BV中的叶子结点关键词值表示为其中表示对应的关键词名称;S4. Retrieval token generation: The data user uses the private key obtained in step S2 and the data user's local Boolean keyword value expression B V to generate a retrieval token TK, where B V is an access tree structure, and B N represents a Boolean keyword name expression with the same access tree structure as B V. For the leaf nodes in B V , Keyword values are represented as in Indicates the corresponding keyword name;
S5、密文搜索:数据用户将步骤S4生成的检索令牌TK发送至云服务器,云服务器接收后,使用检索令牌TK和存放在云服务器上的密文C进行校验,检查密文C是否匹配,并将满足匹配条件的密文C发送给数据用户。S5. Ciphertext search: The data user sends the retrieval token TK generated in step S4 to the cloud server. After receiving it, the cloud server uses the retrieval token TK and the ciphertext C stored on the cloud server to verify whether the ciphertext C matches, and sends the ciphertext C that meets the matching conditions to the data user.
进一步地,所述步骤S1过程如下:Furthermore, the process of step S1 is as follows:
S1a、可信权威机构TA使用群生成器执行生成(p,g,G,GT,e),其中,p是一个素数,G和GT为p阶的循环群,g是G的生成元,e:G×G→GT是一个双线性映射;S1a, Trusted authority TA uses group generator implement Generate (p, g, G, GT , e), where p is a prime number, G and GT are cyclic groups of order p, g is a generator of G, and e: G×G→ GT is a bilinear map;
S1b、可信权威机构TA选择两个抗碰撞的哈希函数H0(·)和H1(·),其中,哈希函数H0(·)满足以下映射:其中,是与素数p互素的所有数的集合,哈希函数H1(·)满足以下映射:{0,1}*→G;S1b. The trusted authority TA selects two collision-resistant hash functions H 0 (·) and H 1 (·), where the hash function H 0 (·) satisfies the following mapping: in, is the set of all numbers that are coprime with the prime number p, and the hash function H 1 (·) satisfies the following mapping: {0, 1} * →G;
S1c、可信权威机构TA随机选择后续用于实现私钥生成、文档加密和生成检索令牌的第一、第二、第三、第四参数β1,β2,α,并通过计算得 S1c, the trusted authority TA randomly selects the first, second, third, and fourth parameters β 1 , β 2 , α, which are subsequently used to generate private keys, encrypt documents, and generate retrieval tokens. And by calculating
S1d、可信权威机构TA根据以上变量得到系统公开密钥 主密钥mk=<β1,β2,α>。S1d, the trusted authority TA obtains the system public key based on the above variables Master key mk=<β 1 , β 2 , α>.
进一步地,所述步骤S2过程如下:Furthermore, the process of step S2 is as follows:
S2a、可信权威机构TA为递归属性集随机选择为递归属性集的每个子集Ai选择ri,其中,r是属性集用于后续和访问树进行匹配验证的参数,ri是属性集的子集Ai用于后续和访问树进行匹配验证的参数,假设递归属性集共有n+1个子集,对第2到第n+1个子集,它们的参数ri满足令第1个子集A0的参数r0=r,是与素数p互素的所有数的集合;S2a, the trusted authority TA is a recursive attribute set Random Selection is a recursive attribute set Each subset A i of selects r i , where r is the attribute set Parameters used for subsequent and access tree matching verification, ri is the attribute set The subset Ai of is used for subsequent and access tree matching verification parameters, assuming the recursive attribute set There are n+1 subsets in total. For the 2nd to n+1th subsets, their parameters ri satisfy Let the parameter of the first subset A 0 be r 0 = r, is the set of all numbers that are coprime with the prime number p;
S2b、可信权威机构TA还需要为递归属性集中的每个属性ai,j选择一个参数ri,j用于后续的匹配计算,其中 S2b, the trusted authority TA also needs to be a recursive attribute set Each attribute a i,j in selects a parameter ri,j for subsequent matching calculations, where
S2c、可信权威机构TA计算用于后续生成计算 和用于后续生成和其中0≤i≤n,1≤j≤mi;S2c, trusted authority TA calculation For subsequent generation calculate and For subsequent generation and Where 0≤i≤n, 1≤j≤m i ;
S2d、可信权威机构TA计算用于后续生成其中1≤i≤n;S2d, trusted authority TA calculation For subsequent generation Where 1≤i≤n;
S2e、可信权威机构TA根据以上变量得到数据用户的私钥并将其发送给数据用户。S2e, the trusted authority TA obtains the data user's private key based on the above variables and send it to the data user.
进一步地,所述步骤S3过程如下:Furthermore, the process of step S3 is as follows:
S3a、数据拥有者随机选择递归关键词集合WV用于进行匹配验证的参数是与素数p互素的所有数的集合,并且计算用于密文与关键词匹配验证计算的参数和用于转换结点处的转换计算的参数 S3a, the data owner randomly selects the recursive keyword set W V for matching verification parameters is the set of all numbers that are coprime with the prime number p, and calculates the parameters used for the ciphertext and keyword matching verification calculation and parameters used for transformation calculations at transformation nodes
S3b、数据拥有者生成含有n′个随机参数的集合其中,si′是递归关键词集合WV的子集用于进行匹配验证的参数,令s0=s,是子集用于进行匹配验证的参数;S3b, the data owner generates a set of n′ random parameters Where si ′ is a subset of the recursive keyword set W V Parameters used for matching verification, let s0 = s, is a subset Parameters used for matching verification;
S3c、数据拥有者生成一个用于后续进行匹配计算的随机参数集合其中,si′,j′对应关键词wρ(i′,j′);S3c, the data owner generates a random parameter set for subsequent matching calculations Among them, s i′, j′ corresponds to the keyword w ρ(i′, j′) ;
S3d、数据拥有者计算用于关键词匹配算法DecryptNodeII计算的参数和其中0≤i′≤n′,1≤j′≤m′i′,关键词匹配算法DecryptNodeII用于密文和检索令牌关键词匹配计算,接着计算能使递归关键词集合的子集的si′转换成子集的s0的参数其中1≤i′≤n′;S3d, the data owner calculates the parameters used for the keyword matching algorithm DecryptNodeII calculation and Where 0≤i′≤n′, 1≤j′≤m′ i′ , the keyword matching algorithm DecryptNodeII is used to calculate the ciphertext and retrieval token keyword matching, and then calculate the subset that can make the recursive keyword set s i′ is converted into a subset The parameters of s 0 Where 1≤i′≤n′;
S3e、数据拥有者使用秘密分享算法 计算s的秘密分享,其中qv(0)表示结点v的秘密共享多项式中常数的值,表示访问树的叶子结点,表示根据s和访问树运行秘密分享算法;S3e, data owner uses secret sharing algorithm Compute the secret sharing of s, where q v (0) represents the value of the constant in the secret sharing polynomial of node v, Represents a visit tree The leaf nodes of Indicates that according to s and access tree Run the secret sharing algorithm;
S3f、数据拥有者针对访问树的每个叶子结点v计算用于属性匹配算法DecryptNodeI计算的参数和属性匹配算法DecryptNodeI用于用户属性集和访问树匹配计算;S3f, data owner for access tree Each leaf node v calculates the parameters used for the attribute matching algorithm DecryptNodeI calculation and The attribute matching algorithm DecryptNodeI is used for matching calculation between user attribute set and access tree;
S3g、将访问树的转换结点集合表示为对每个结点 数据拥有者计算其中,支持集合在转换结点x处相互转换;S3g, will visit the tree The set of transition nodes is represented as For each node Data Owner Computing in, Supports mutual conversion of sets at conversion node x;
S3h、数据拥有者根据上述步骤得到的变量,得到密文S3h, the data owner obtains the ciphertext according to the variables obtained in the above steps
进一步地,所述步骤S4过程如下:Furthermore, the process of step S4 is as follows:
S4a、数据用户随机选择一个值用于后续参数生成,并计算用于转换结点处的转换计算的参数 S4a, data user randomly selects a value Used for subsequent parameter generation and calculation of parameters used for conversion calculations at conversion nodes
S4b、数据用户使用秘密分享算法计算t的秘密分享,对于每个叶子结点数据用户计算用于后续关键词匹配算法DecryptNodeII计算的参数和 对于每个转换结点数据用户计算用于转换结点处的转换计算的参数 S4b, data users use secret sharing algorithm Calculate the secret share of t, for each leaf node Data users calculate the parameters used for subsequent keyword matching algorithm DecryptNodeII calculation and For each transition node Data User Compute Parameters used for transformation calculations at transformation nodes
S4c、数据用户将私钥sk解析为 并计算用于密文与关键词匹配验证计算的参数 用于属性匹配算法DecryptNodeI计算的参数和其中0≤i≤n,1≤j≤mi;和能使子集Ai的ri转换成子集A0的r0的参数其中1≤i≤n;S4c, the data user parses the private key sk into And calculate the parameters used for ciphertext and keyword matching verification calculation Parameters used for calculation of attribute matching algorithm DecryptNodeI and where 0≤i≤n, 1≤j≤m i ; and the parameter that can transform the ri of subset A i into the r 0 of subset A 0 Where 1≤i≤n;
S4d、数据用户根据上述步骤得到的变量,得到检索令牌 S4d, the data user obtains the retrieval token based on the variables obtained in the above steps
进一步地,所述步骤S5过程如下:Furthermore, the process of step S5 is as follows:
S5a、云服务器将密文C解析为 将检索令牌TK解析为S5a, the cloud server parses the ciphertext C into Parse the retrieval token TK into
S5b、根据访问树和属性集针对访问树中的每个结点τ,云服务器会返回一个集合Sτ,其中,Sτ的元素是结点τ的标签,每个标签u对应一个集合Au,每个集合Au都能满足子访问树对于根结点R,则存在 对应的集合为SR;S5b, according to the access tree and attribute sets For access tree For each node τ in the cloud server, the cloud server returns a set S τ , where the elements of S τ are the labels of the nodes τ , and each label u corresponds to a set Au , and each set Au can satisfy the sub-access tree For the root node R, there exists The corresponding set is S R ;
S5c、如果属性集满足访问树则对于每个结点τ,随机从集合Sτ中挑选一个标签,标记为u,并运行属性匹配算法DecryptNodeI(C,TK,τ,u),该算法输入密文C,检索令牌TK,结点τ和标签u,通过计算输出结点τ的计算结果Fτ,其中,Cτ和C′τ是密文C中结点τ对应的参数,和是检索令牌TK结点τ在子集Au中对应属性的参数;若不存在满足访问树的属性集则返回“0”;S5c, if the attribute set Satisfy access tree Then for each node τ, a label is randomly selected from the set S τ , marked as u, and the attribute matching algorithm DecryptNodeI(C, TK, τ, u) is run. The algorithm inputs the ciphertext C, retrieves the token TK, the node τ and the label u, and calculates Output the calculation result F τ of node τ, where C τ and C′ τ are the parameters corresponding to node τ in the ciphertext C. and It is the parameter for retrieving the corresponding attribute of the token TK node τ in the subset Au ; if there is no node that satisfies the access tree The property set Then it returns "0";
S5d、对给定的递归关键词名称集合WN和布尔关键词名称表达式BN,对于BN的每个结点云服务器计算一个标签集合每个标签h对应一个WN的子集每个子集合都能满足BN的子树对于根结点则存在对应的集合为 S5d, for a given recursive keyword name set W N and a Boolean keyword name expression B N , for each node of B N The cloud server calculates a tag set Each label h corresponds to a subset of WN Each sub-collection All subtrees that satisfy BN For the root node then exists The corresponding set is
S5e、如果递归关键词名称结构WN满足布尔关键词名称表达式BN,则对于每个结点随机从集合中挑选一个标签,标记为h,并运行关键词匹配算法该算法输入密文C,检索令牌TK,结点和标签h,通过计算输出结点的计算结果其中,和是检索令牌TK中结点对应的参数,Cρ(h,j′)和C′ρ(h,j′)是密文C中结点在子集中对应关键词名称的参数;若不存在满足布尔关键词名称表达式BN的递归关键词名称结构WN,则返回“0”;S5e. If the recursive keyword name structure W N satisfies the Boolean keyword name expression B N , then for each node Random from the set Select a tag, label it as h, and run the keyword matching algorithm The algorithm inputs the ciphertext C, retrieves the token TK, and the node and label h, by calculating Output Node The calculation results in, and It is the node in the retrieval token TK The corresponding parameters, C ρ(h, j′) and C′ ρ(h, j′) are the nodes in the ciphertext C In the subset The parameter corresponding to the keyword name in; if there is no recursive keyword name structure W N that satisfies the Boolean keyword name expression B N , then "0" is returned;
S5f、云服务器计算用于验证匹配计算的参数并判断是否成立,其中,是密文关键词和用户检索关键词匹配计算的结果,F是访问树和用户属性匹配计算的结果,如果成立则输出“0”;如果不成立,则输出“1”;其中,e(g,g)表示的是将循环群G中的两个元素映射为乘法循环群GT中的元素。S5f, cloud server calculation is used to verify the parameters of the matching calculation And judge Is it established, among which, is the result of the matching calculation between the ciphertext keyword and the user search keyword, F is the result of the matching calculation between the access tree and the user attribute, if it is established, output "0"; if it is not established, output "1"; where e(g, g) represents mapping two elements in the cyclic group G to elements in the multiplication cyclic group GT .
本发明相对于现有技术具有如下的优点及效果:Compared with the prior art, the present invention has the following advantages and effects:
1、灵活的访问策略表达。本发明允许数据拥有者对其数据实施访问策略,其中访问策略的表示采用了带有转换结点的访问树的形式,不仅支持AND、OR等逻辑词嵌套的布尔表达式,还能选择性地允许数据用户组合属性集里的属性来满足访问策略,可帮助数据拥有者灵活地对数据进行控制和授权。1. Flexible access policy expression. The present invention allows data owners to implement access policies on their data, where the access policies are expressed in the form of an access tree with conversion nodes. It not only supports Boolean expressions with nested logical terms such as AND and OR, but also selectively allows data users to combine attributes in the attribute set to meet the access policy, which can help data owners flexibly control and authorize data.
2、灵活的关键词和数据用户属性组织形式。本发明将关键词及数据用户的属性以递归集的形式组织起来,能解决复合关键词以及数据用户拥有复合属性的情况。2. Flexible organization of keywords and data user attributes. The present invention organizes keywords and data user attributes in the form of recursive sets, which can solve the problem of compound keywords and data users having compound attributes.
3、支持布尔关键词搜索。本发明同时支持将关键词组织成访问树形式的布尔关键词搜索,它为数据用户在加密数据的搜索上带来了更大的灵活性,支持AND、OR、NOT等逻辑词嵌套的搜索策略。帮助用户精确找到所需数据的同时降低了传输代价和计算代价。3. Support Boolean keyword search. The present invention also supports Boolean keyword search by organizing keywords into an access tree, which brings greater flexibility to data users in searching encrypted data and supports search strategies with nested logical words such as AND, OR, and NOT. It helps users find the required data accurately while reducing transmission and computation costs.
4、实用性和安全性。本发明采用合数阶群、双线性映射、访问树以及递归属性集进行构造,兼具策略隐藏、抗泄露的特性,有较强的安全性,且提供了灵活的访问策略表达、高效的访问策略匹配、关键词搜索的灵活表达性,具有较好的实用性。4. Practicality and security. The present invention is constructed using composite order groups, bilinear mappings, access trees, and recursive attribute sets. It has the characteristics of strategy hiding and anti-leakage, has strong security, and provides flexible access strategy expression, efficient access strategy matching, and flexible expression of keyword search, and has good practicality.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:The drawings described herein are used to provide a further understanding of the present invention and constitute a part of this application. The exemplary embodiments of the present invention and their descriptions are used to explain the present invention and do not constitute an improper limitation of the present invention. In the drawings:
图1是本发明中公开的支持细粒度的基于访问树结构的访问控制和布尔关键词搜索的可搜索加密方法流程图;FIG1 is a flow chart of a searchable encryption method supporting fine-grained access control based on an access tree structure and Boolean keyword search disclosed in the present invention;
图2是本发明中公开的支持细粒度布尔访问控制和布尔关键词检索的可搜索加密方法的应用环境示意图;2 is a schematic diagram of an application environment of the searchable encryption method supporting fine-grained Boolean access control and Boolean keyword retrieval disclosed in the present invention;
图3是本发明中公开的支持细粒度布尔访问控制和布尔关键词检索的可搜索加密系统结构框图;FIG3 is a structural block diagram of a searchable encryption system supporting fine-grained Boolean access control and Boolean keyword retrieval disclosed in the present invention;
图4是数据拥有者设定的一访问策略图;FIG4 is an access strategy diagram set by a data owner;
图5是数据拥有者设定的另一访问策略图。FIG. 5 is another access policy diagram set by the data owner.
具体实施方式DETAILED DESCRIPTION
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
实施例1Example 1
灵活的访问策略匹配可以帮助数据拥有者灵活地对数据进行管理,现有的大部分工作采用了访问树(Access Tree)或者线性密码共享方案(Linear Secret SharingSchemes,简称LSSS)表示的访问策略;用户属性的表达方式能够支持更加细粒度的访问控制,现有的大部分工作中将用户属性以字符串的形式组合起来,或者将属性组合成单属性集合或递归属性集结构;灵活的关键词搜索可以为数据用户的搜索带来灵活的选择,现有的方案主要支持以下的三种搜索方式之一:匹配搜索、连接关键词搜索和布尔关键词搜索,其中匹配搜索的灵活性最差,布尔关键词搜索灵活性最好。Flexible access policy matching can help data owners manage data flexibly. Most of the existing work uses access policies represented by access trees (Access Tree) or linear secret sharing schemes (LSSS). The expression of user attributes can support more fine-grained access control. Most of the existing work combines user attributes in the form of strings, or combines attributes into single attribute sets or recursive attribute set structures. Flexible keyword search can provide flexible choices for data users' searches. Existing solutions mainly support one of the following three search methods: matching search, connection keyword search and Boolean keyword search, among which matching search has the worst flexibility and Boolean keyword search has the best flexibility.
在实际的应用场景中,数据用户的属性是十分复杂的,比如数据用户A,他可以既是大学A的一名研究员,又是某制药部门的主任和化学部门的教授。因此,在面向大规模用户的场景下,用户属性的合理组织以及灵活的访问控制匹配也成为了方案实现的关键。在这种前提下,灵活的关键词组织和高效的关键词搜索方法也成为了提高整体性能的关键。In actual application scenarios, the attributes of data users are very complex. For example, data user A can be a researcher at University A, the director of a pharmaceutical department, and a professor at a chemistry department. Therefore, in scenarios facing large-scale users, the reasonable organization of user attributes and flexible access control matching have also become the key to implementing the solution. Under this premise, flexible keyword organization and efficient keyword search methods have also become the key to improving overall performance.
本实施例在面向大规模用户的前提下,同时支持灵活的访问策略匹配、用户属性的灵活性表达以及灵活的关键词搜索这三方面内容的布尔关键词可搜索加密方法。Under the premise of being oriented to large-scale users, this embodiment simultaneously supports a Boolean keyword searchable encryption method for three aspects: flexible access policy matching, flexible expression of user attributes, and flexible keyword search.
介绍技术方案前,首先对本发明涉及的数学基础和定义进行如下说明:Before introducing the technical solution, the mathematical basis and definitions involved in the present invention are first explained as follows:
双线性对Bilinear pairing
假设G和GT是两个p阶循环群,且g为G的生成元。一个双线性映射e:G×G→GT满足以下性质:Assume that G and GT are two p-order cyclic groups, and g is a generator of G. A bilinear map e:G×G→ GT satisfies the following properties:
(1)双线性:对任意g,h∈G,a,b∈Zp,有e(ga,hb)=e(g,h)ab。(1) Bilinear: For any g, h∈G, a, b∈Z p , e( ga , hb )=e(g, h) ab .
(2)非退化性:e(g,g)≠1。(2) Non-degeneracy: e(g, g)≠1.
其中,e(g,g)表示的是将循环群G中的两个元素映射为乘法循环群GT中的元素,而不失其同构性。Here, e(g, g) means mapping two elements in the cyclic group G to elements in the multiplicative cyclic group GT without losing their isomorphism.
本实施例提供的技术方案是一种支持细粒度布尔访问控制,灵活的属性集结构和关键词结构的布尔可搜索加密方案,包括以下步骤:The technical solution provided in this embodiment is a Boolean searchable encryption solution that supports fine-grained Boolean access control, flexible attribute set structure and keyword structure, including the following steps:
S 1、系统初始化:可信权威机构TA根据安全参数K生成公共密钥pk以及主密钥mk,并将公共密钥pk公开发布于云服务器。S 1. System initialization: The trusted authority TA generates a public key pk and a master key mk based on the security parameter K, and publishes the public key pk to the cloud server.
上述可信权威机构TA为一个完全可信的第三方安全机构,负责生成一对系统公开密钥pk和主密钥mk,以及根据数据用户的属性集生成对应的私钥sk,其中系统公开密钥pk、主密钥mk和私钥sk均是一定长度的二进制码。The above-mentioned trusted authority TA is a fully trusted third-party security organization, responsible for generating a pair of system public keys pk and master keys mk, and generating the corresponding private key sk according to the attribute set of the data user, where the system public key pk, master key mk and private key sk are all binary codes of a certain length.
可信权威机构TA生成公共密钥pk和主密钥mk后,将公共密钥pk公开发布在云存储服务器或广播给系统中所有用户,系统中的所有用户均有访问公共密钥pk的权限;主密钥mk妥善保存于可信权威机构TA中,只有可信权威机构TA具有访问主密钥mk的权限。After the trusted authority TA generates the public key pk and the master key mk, the public key pk is published publicly on the cloud storage server or broadcast to all users in the system. All users in the system have the right to access the public key pk; the master key mk is properly stored in the trusted authority TA, and only the trusted authority TA has the right to access the master key mk.
该步骤的具体过程如下:The specific process of this step is as follows:
S1a、可信权威机构TA使用群生成器执行生成(p,g,G,GT,e),其中,p是一个素数,G和GT为p阶的循环群,g是G的生成元,e:G×G→GT是一个双线性映射;S1a, Trusted authority TA uses group generator implement Generate (p, g, G, GT , e), where p is a prime number, G and GT are cyclic groups of order p, g is a generator of G, and e: G×G→ GT is a bilinear map;
S1b、可信权威机构TA选择两个抗碰撞的哈希函数H0(·)和H1(·),其中,哈希函数H0(·)满足以下映射:其中,是与素数p互素的所有数的集合,哈希函数H1(·)满足以下映射:{0,1}*→G;S1b. The trusted authority TA selects two collision-resistant hash functions H 0 (·) and H 1 (·), where the hash function H 0 (·) satisfies the following mapping: in, is the set of all numbers that are coprime with the prime number p, and the hash function H 1 (·) satisfies the following mapping: {0, 1} * →G;
S1c、可信权威机构TA随机选择后续用于实现私钥生成、文档加密和生成检索令牌的第一、第二、第三、第四参数β1,β2,α,并通过计算得 S1c, the trusted authority TA randomly selects the first, second, third, and fourth parameters β 1 , β 2 , α, which are subsequently used to generate private keys, encrypt documents, and generate retrieval tokens. And by calculating
S1d、可信权威机构TA根据以上变量得到系统公开密钥 主密钥mk=<β1,β2,α>。S1d, the trusted authority TA obtains the system public key based on the above variables Master key mk=<β 1 , β 2 , α>.
S2、生成私钥:数据用户将自己的属性组织成递归属性集然后将其发送给可信权威机构TA,可信权威机构TA使用主密钥mk和递归属性集生成私钥sk,并将私钥sk发送给数据用户,其中,属性集被解析为{A0,A1,...,An},Ai表示中的第i个子属性集,假设子属性集Ai含有mi个属性,则可以将其表示为其中ai,j表示子属性集Ai中的第j个属性。S2. Generate private key: Data users organize their attributes into recursive attribute sets It is then sent to the trusted authority TA, which uses the master key mk and the recursive attribute set Generate a private key sk and send it to the data user, where the attribute set is parsed as {A 0 , A 1 , ..., An }, where A i represents The i-th sub-attribute set in , assuming that the sub-attribute set Ai contains mi attributes, can be expressed as Where a i,j represents the j-th attribute in the sub-attribute set A i .
该步骤的具体过程如下:The specific process of this step is as follows:
S2a、可信权威机构TA为递归属性集随机选择为递归属性集的每个子集Ai选择ri,其中,r是属性集用于后续和访问树进行匹配验证的参数,ri是属性集的子集Ai用于后续和访问树进行匹配验证的参数,假设递归属性集共有n+1个子集,对第2到第n+1个子集,它们的参数ri满足令第1个子集A0的参数r0=r;S2a, the trusted authority TA is a recursive attribute set Random Selection is a recursive attribute set Each subset A i of selects r i , where r is the attribute set Parameters used for subsequent and access tree matching verification, ri is the attribute set The subset Ai of is used for subsequent and access tree matching verification parameters, assuming the recursive attribute set There are n+1 subsets in total. For the 2nd to n+1th subsets, their parameters ri satisfy Let the parameter of the first subset A 0 be r 0 = r;
S2b、可信权威机构TA还需要为递归属性集中的每个属性ai,j选择一个参数ri,j用于后续的匹配计算,其中 S2b, the trusted authority TA also needs to be a recursive attribute set Each attribute a i,j in selects a parameter ri ,j for subsequent matching calculations, where
S2c、可信权威机构TA计算用于后续生成计算 和用于后续生成和其中0≤i≤n,1≤j≤mi;S2c, trusted authority TA calculation For subsequent generation calculate and For subsequent generation and Where 0≤i≤n, 1≤j≤m i ;
S2d、可信权威机构TA计算用于后续生成其中1≤i≤n;S2d, trusted authority TA calculation For subsequent generation Where 1≤i≤n;
S2e、可信权威机构TA根据以上变量得到数据用户的私钥并将其发送给数据用户。S2e, the trusted authority TA obtains the data user's private key based on the above variables and send it to the data user.
S3、加密:数据拥有者使用系统公开密钥pk、递归关键词集合 和访问树为文档生成密文C,并将密文C上传至云服务器,递归关键词集合WV中的元素表示的是递归关键词集合中的第i′个子集,被解析为递归关键词名称集合和递归关键词集合WV具有相同的结构,集合中的元素表示的是递归关键词名称集合中的第i′个子集,被解析为(ρ(i′,1),ρ(i′,2),...ρ(i′,m′i′)),其中,m′i′表示的是第i′个关键词子集中关键词的数目,ρ(i′,j′)表示第i′个关键词子集中第j′个关键词的名称,wρ(i′,j′)表示第i′个关键词子集中第j′个关键词的值;S3, encryption: the data owner uses the system public key pk and recursive keyword set and visit tree Generate ciphertext C for the document and upload it to the cloud server. Recursively search for elements in the keyword set W V represents the i′th subset of the recursive keyword set, which is parsed as Recursive keyword name set The recursive keyword set W V has the same structure, and the elements in the set represents the i′th subset in the recursive keyword name set, which is parsed as (ρ(i′, 1), ρ(i′, 2), ... ρ(i′, m′ i′ )), where m′ i′ represents the number of keywords in the i′th keyword subset, ρ(i′, j′) represents the name of the j′th keyword in the i′th keyword subset, and w ρ(i′, j′) represents the value of the j′th keyword in the i′th keyword subset;
该步骤的具体过程如下:The specific process of this step is as follows:
S3a、数据拥有者随机选择递归关键词集合WV用于进行匹配验证的参数并且计算用于密文与关键词匹配验证计算的参数和用于转换结点处的转换计算的参数 S3a, the data owner randomly selects the recursive keyword set W V for matching verification parameters And calculate the parameters used for ciphertext and keyword matching verification calculation and parameters used for transformation calculations at transformation nodes
S3b、数据拥有者生成含有n′个随机参数的集合si′是递归关键词集合WV的子集用于进行匹配验证的参数,令s0=s,是子集用于进行匹配验证的参数;S3b, the data owner generates a set of n′ random parameters s i′ is a subset of the recursive keyword set W V Parameters used for matching verification, let s 0 = s, is a subset Parameters used for matching verification;
S3c、数据拥有者生成一个用于后续进行匹配计算的随机参数集合其中,si′,j′对应关键词wρ(i′,j′);S3c, the data owner generates a random parameter set for subsequent matching calculations Among them, s i′, j′ corresponds to the keyword w ρ(i′, j′) ;
S3d、数据拥有者计算用于关键词匹配算法DecryptNodeII计算的参数其中0≤i′≤n′,1≤j′≤m′i′,关键词匹配算法DecryptNodeII是用于密文和检索令牌关键词匹配计算的算法,接着计算能使递归关键词集合的子集的si′转换成子集的s0的参数其中1≤i′≤n;S3d, the data owner calculates the parameters used for the keyword matching algorithm DecryptNodeII calculation Where 0≤i′≤n′, 1≤j′≤m′ i′ , the keyword matching algorithm DecryptNodeII is an algorithm used to calculate the matching of ciphertext and retrieval token keywords, and then calculate the subset that can make the recursive keyword set s i′ is converted into a subset The parameters of s0 Where 1≤i′≤n;
S3e、数据拥有者使用秘密分享算法 计算s的秘密分享,其中qv(0)表示结点v的秘密共享多项式中常数的值,表示访问树的叶子结点,表示根据s和访问树运行秘密分享算法;S3e, data owner uses secret sharing algorithm Compute the secret sharing of s, where q v (0) represents the value of the constant in the secret sharing polynomial of node v, Represents a visit tree The leaf nodes of Indicates that according to s and access tree Run the secret sharing algorithm;
S3f、数据拥有者针对访问树的每个叶子结点计算用于属性匹配算法DecryptNodeI计算的参数和和属性匹配算法DecryptNodeI是用于用户属性集和访问树匹配计算的算法;S3f, data owner for access tree Each leaf node of the calculation is used to calculate the parameters and and The attribute matching algorithm DecryptNodeI is an algorithm used for matching calculation between user attribute set and access tree;
S3g、将访问树的转换结点集合表示为对每个结点 数据拥有者计算其中,支持集合在转换结点x处相互转换;S3g, will visit the tree The set of transition nodes is represented as For each node Data Owner Computing in, Supports mutual conversion of sets at conversion node x;
S3h、数据拥有者根据上述步骤得到的变量,得到密文S3h, the data owner obtains the ciphertext according to the variables obtained in the above steps
S4、检索令牌生成:数据用户使用步骤S2中获得的私钥,结合数据用户本地的布尔关键词值表达式BV,生成检索令牌TK,其中,BV是访问树结构,BN表示的是布尔关键词名称表达式,具有和BV相同的访问树结构,对于BV中的叶子结点关键词值表示为其中表示对应的关键词名称;该步骤的具体过程如下:S4. Retrieval token generation: The data user uses the private key obtained in step S2 and the data user's local Boolean keyword value expression B V to generate a retrieval token TK, where B V is an access tree structure, and B N represents a Boolean keyword name expression with the same access tree structure as B V. For the leaf nodes in B V , Keyword values are represented as in Indicates the corresponding keyword name; the specific process of this step is as follows:
S4a、数据用户随机选择一个值用于后续参数生成,并计算用于转换结点处的转换计算的参数 S4a, data user randomly selects a value Used for subsequent parameter generation and calculation of parameters used for conversion calculations at conversion nodes
S4b、数据用户使用秘密分享算法计算t的秘密分享,对于每个叶子结点数据用户计算用于后续关键词匹配算法DecryptNodeII计算的参数和 对于每个转换结点数据用户计算用于转换结点处的转换计算的参数 S4b, data users use secret sharing algorithm Calculate the secret share of t, for each leaf node Data users calculate the parameters used for subsequent keyword matching algorithm DecryptNodeII calculation and For each transition node Data User Compute Parameters used for transformation calculations at transformation nodes
S4c、数据用户将私钥sk解析为 并计算用于密文与关键词匹配验证计算的参数 用于属性匹配算法DecryptNodeI计算的参数和其中0≤i≤n,1≤j≤mi;和能使子集Ai的ri转换成子集A0的r0的参数其中1≤i≤n;S4c, the data user parses the private key sk into And calculate the parameters used for ciphertext and keyword matching verification calculation Parameters used for calculation of attribute matching algorithm DecryptNodeI and where 0≤i≤n, 1≤j≤m i ; and the parameter that can transform the ri of subset A i into the r 0 of subset A 0 Where 1≤i≤n;
S4d、数据用户根据上述步骤得到的变量,得到检索令牌 S4d, the data user obtains the retrieval token based on the variables obtained in the above steps
S5、密文搜索:数据用户将步骤S4生成的检索令牌TK发送至云服务器,云服务器接收后,使用检索令牌TK和存放在云服务器上的密文C进行校验,检查密文C是否匹配,并将满足匹配条件的密文C发送给数据用户。S5. Ciphertext search: The data user sends the retrieval token TK generated in step S4 to the cloud server. After receiving it, the cloud server uses the retrieval token TK and the ciphertext C stored on the cloud server to verify whether the ciphertext C matches, and sends the ciphertext C that meets the matching conditions to the data user.
该步骤的具体过程如下:The specific process of this step is as follows:
S5a、云服务器将密文C解析为 将检索令牌TK解析为S5a, the cloud server parses the ciphertext C into Parse the retrieval token TK into
S5b、根据访问树和属性集针对访问树中的每个结点τ,云服务器会返回一个集合Sτ,其中,Sτ的元素是结点τ的标签,每个标签u对应一个集合Au,每个集合Au都能满足子访问树对于根结点R,则存在 对应的集合为SR;S5b, according to the access tree and attribute sets For access tree For each node τ in the cloud server, the cloud server returns a set S τ , where the elements of S τ are the labels of the nodes τ , and each label u corresponds to a set Au , and each set Au can satisfy the sub-access tree For the root node R, there exists The corresponding set is S R ;
S5c、如果属性集满足访问树则对于每个结点τ,随机从集合Sτ中挑选一个标签,标记为u,并运行属性匹配算法DecryptNodeI(C,TK,τ,u),该算法输入密文C,检索令牌TK,结点τ和标签u,通过计算输出结点τ的计算结果返回Fτ,其中,Cτ,和C′τ是密文C中结点τ对应的参数,和是检索令牌TK结点τ在子集Au中对应属性的参数;若不存在满足访问树的属性集则返回“0”。S5c, if the attribute set Satisfy access tree Then for each node τ, a label is randomly selected from the set S τ , marked as u, and the attribute matching algorithm DecryptNodeI(C, TK, τ, u) is run. The algorithm inputs the ciphertext C, retrieves the token TK, the node τ and the label u, and calculates The calculation result of the output node τ returns F τ , where C τ and C′ τ are the parameters corresponding to the node τ in the ciphertext C. and is the parameter for retrieving the corresponding attribute of the token TK node τ in the subset Au ; if there is no node that satisfies the access tree The property set It returns "0".
根据τ的结点类型,属性匹配算法DecryptNodeI(C,TK,τ,u)中u有以下两种不同的计算方式:According to the node type of τ, u in the attribute matching algorithm DecryptNodeI(C, TK, τ, u) has the following two different calculation methods:
当结点τ是叶子结点时,如果结点τ对应的属性att(τ)∈Ai,则运行属性匹配算法DecryptNodeI(C,TK,τ,u),输出否则,算法返回“⊥”;When node τ is a leaf node, if the attribute att(τ)∈A i corresponding to node τ is, then the attribute matching algorithm DecryptNodeI(C, TK, τ, u) is run, and the output is Otherwise, the algorithm returns “⊥”;
当结点τ是非叶子结点时,云服务器首先计算一个包含有结点τ的kτ个子结点的集合Eτ,Eτ中每个结点z必须满足标签u属于z的标签集合Sz,u∈Sz或z是一个转换结点,且至少存在一个标签u′∈Sz;接着运行属性匹配算法DecryptNodeI(C,TK,z,u′),输出接着,根据标签u的值对F′z使用转换公式进行转换,当u=0时,计算输出计算结果其中是标签u′在检索令牌TK中对应的参数,是密文C中结点z对应的参数;当u≠0时,计算输出计算结果其中是标签u在检索令牌TK中对应的参数;When node τ is a non-leaf node, the cloud server first calculates a set E τ of k τ child nodes of node τ. Each node z in E τ must satisfy that label u belongs to z's label set S z , u∈S z or z is a transition node and there is at least one label u′∈S z ; then runs the attribute matching algorithm DecryptNodeI(C, TK, z, u′) and outputs Next, according to the value of label u, F′ z is converted using the conversion formula. When u = 0, calculate Output calculation results in is the parameter corresponding to the tag u′ in the retrieval token TK, is the parameter corresponding to node z in the ciphertext C; when u≠0, calculate Output calculation results in is the parameter corresponding to the tag u in the retrieval token TK;
计算完Eτ中每个结点后,使用下面式子计算Fτ:After calculating each node in E τ , use the following formula to calculate F τ :
其中,k=index(z),Uz={index(z):z∈Eτ},index(·)函数的作用是获取结点的标签;in, k=index(z), U z ={index(z):z∈E τ }, the index(·) function is used to obtain the label of the node;
接着,运行属性匹配算法DecryptNodeI(C,TK,R,u)对根结点R进行计算,当R的标签u=0时,输出计算结果FR=e(g,g)trs;当u≠0时,输出计算结果最后,根据标签u计算出F,当标签u=0时,令F=FR;当u≠0时,计算输出计算结果F=e(g,g)trs。Next, run the attribute matching algorithm DecryptNodeI(C, TK, R, u) to calculate the root node R. When the label u of R is 0, output the calculation result F R = e(g, g) trs ; when u≠0, output the calculation result Finally, F is calculated based on the label u. When the label u=0, let F= FR ; when u≠0, calculate The calculation result F=e(g, g) trs is output.
S5d、对给定的递归关键词名称集合WN和布尔关键词名称表达式BN,对于BN的每个结点云服务器计算一个标签集合每个标签h对应一个WN的子集每个子集合都能满足BN的子树对于根结点则存在对应的集合为 S5d, for a given recursive keyword name set W N and a Boolean keyword name expression B N , for each node of B N The cloud server calculates a tag set Each label h corresponds to a subset of WN Each sub-collection All subtrees that satisfy BN For the root node then exists The corresponding set is
S5e、如果递归关键词名称结构WN满足布尔关键词名称表达式BN,则对于每个结点随机从集合中挑选一个标签,标记为h,并运行关键词匹配算法该算法输入密文C,检索令牌TK,结点和标签h,通过计算输出结点的计算结果其中,和是检索令牌TK中结点对应的参数,Cρ(h,j′)和C′ρ(h,j′)是密文C中结点在子集中对应关键词名称的参数;若不存在满足布尔关键词名称表达式BN的递归关键词名称结构WN,则返回“0”。根据的结点类型,关键词匹配算法有以下两种不同的计算方式:S5e. If the recursive keyword name structure W N satisfies the Boolean keyword name expression B N , then for each node Random from the set Select a tag, label it as h, and run the keyword matching algorithm The algorithm inputs the ciphertext C, retrieves the token TK, and the node and label h, by calculating Output Node The calculation results in, and It is the node in the retrieval token TK The corresponding parameters, C ρ(h, j′) and C′ ρ(h, j′) are the nodes in the ciphertext C In the subset The parameter corresponding to the keyword name in ; if there is no recursive keyword name structure WN that satisfies the Boolean keyword name expression B N , then "0" is returned. Node type, keyword matching algorithm There are two different calculation methods:
当结点是叶子结点时,如果关键词匹配算法返回“⊥”;否则,假设则并运行关键词匹配算法输出结果其中sh表示子集对应的匹配验证随机数,表示结点τ的秘密共享多项式中的常数;当结点是非叶子结点时,云服务器首先计算一个包含有结点的个子结点的集合中的每个结点必须满足标签h属于的标签集合 或是一个转换结点,且至少存在一个标签接着运行关键词匹配算法输出接着,根据标签h的值对使用转换公式进行转换,当h=0时,计算输出计算结果其中是结点在检索令牌TK中对应的参数,Kh′是标签h′在密文C中对应的参数;当h≠0时,计算 输出计算结果其中Kh是标签h在密文C中对应的参数。When the node If it is a leaf node, Keyword matching algorithm Returns "⊥"; otherwise, assume but And run the keyword matching algorithm Output Where sh represents the subset The corresponding matching verification random number, represents the constant in the secret sharing polynomial of node τ; when node When it is a non-leaf node, the cloud server first calculates a node containing of The set of child nodes Each node in The label h must belong to Collection of tags or is a transition node with at least one label Then run the keyword matching algorithm Output Next, according to the value of label h Use the conversion formula to convert. When h = 0, calculate Output calculation results in It is a node The corresponding parameter in the retrieval token TK, K h′ is the parameter corresponding to the tag h′ in the ciphertext C; when h≠0, calculate Output calculation results Where K h is the parameter corresponding to the label h in the ciphertext C.
计算完中每个结点后,使用下面式子计算 Calculation completed After each node is found, use the following formula to calculate
其中,接着,运行关键词匹配算法对根结点进行计算,当的标签h=0时,输出计算结果当h≠0时,输出计算结果最后,根据标签h计算出当标签h=0时,令当h≠0时,计算输出计算结果 in, Next, run the keyword matching algorithm For the root node Calculate when When the label h=0, output the calculation result When h≠0, output the calculation result Finally, according to the label h, When label h = 0, let When h≠0, calculate Output calculation results
S5f、云服务器计算用于验证匹配计算的参数并判断是否成立,其中,是密文关键词和用户检索关键词匹配计算的结果,F是访问树和用户属性匹配计算的结果,如果成立则输出“0”;如果不成立,则输出“1”。S5f, cloud server calculation is used to verify the parameters of the matching calculation And judge Is it established, among which, is the result of the matching calculation between the ciphertext keyword and the user search keyword, and F is the result of the matching calculation between the access tree and the user attribute. If it is true, output "0"; if it is not true, output "1".
实施例2Example 2
如图3所示,本实施例继续提供一种面向大规模用户的布尔关键词密文检索系统,包括以下四部分:运行于云服务器上的云存储子系统;运行于数据拥有者端的加密子系统;运行于数据用户端的用户检索令牌生成及解密子系统;运行于可信权威机构TA的初始化及私钥生成子系统。As shown in Figure 3, this embodiment continues to provide a Boolean keyword ciphertext retrieval system for large-scale users, including the following four parts: a cloud storage subsystem running on a cloud server; an encryption subsystem running on the data owner's side; a user retrieval token generation and decryption subsystem running on the data user's side; and an initialization and private key generation subsystem running on a trusted authority TA.
其中,运行于可信权威机构TA的初始化及私钥生成子系统包括以下模块:初始化模块、主密钥存储模块和私钥生成模块。其中,初始化模块用于生成系统公开密钥和主密钥,并将系统公开密钥公开发布于云服务器,将主密钥保存至主密钥存储模块,主密钥存储模块用于存储主密钥,只允许可信权威机构TA访问;私钥生成模块用于接收数据用户的属性集使用主密钥生成用户私钥sk,并将用户私钥sk发送给数据用户。The initialization and private key generation subsystem running on the trusted authority TA includes the following modules: initialization module, master key storage module and private key generation module. The initialization module is used to generate the system public key and master key, and publish the system public key to the cloud server, save the master key to the master key storage module, and the master key storage module is used to store the master key, which is only accessible to the trusted authority TA; the private key generation module is used to receive the attribute set of the data user. The master key is used to generate the user private key sk, and the user private key sk is sent to the data user.
运行于云服务器上的云存储子系统包括以下模块:系统公开密钥公开模块、存储模块和检索模块。其中系统公开密钥模块将可信权威机构TA生成的系统公开密钥pk公开发布;存储模块用于存储数据拥有者加密后的数据密文;检索模块将检索令牌和数据密文进行一一匹配运算,从存储模块取得符合匹配条件的数据密文后,将其发送至数据用户。The cloud storage subsystem running on the cloud server includes the following modules: system public key disclosure module, storage module and retrieval module. The system public key module publicly releases the system public key pk generated by the trusted authority TA; the storage module is used to store the data ciphertext encrypted by the data owner; the retrieval module performs a one-to-one matching operation between the retrieval token and the data ciphertext, obtains the data ciphertext that meets the matching conditions from the storage module, and sends it to the data user.
运行于数据拥有者端的加密子系统包括数据加密模块,数据加密模块从云服务器中取得系统公开密钥,并使用该密钥和数据拥有者自行定义的访问策略加密文件,得到数据密文,并将数据密文发送至云服务器。The encryption subsystem running on the data owner's side includes a data encryption module, which obtains the system public key from the cloud server, encrypts the file using the key and the access policy defined by the data owner, obtains the data ciphertext, and sends the data ciphertext to the cloud server.
运行于数据用户端的用户检索令牌生成及解密子系统包括以下模块:检索令牌生成模块、用户检索模块和数据解密模块。其中,检索令牌生成模块负责使用数据用户的私钥和用户查询关键词谓词,生成检索令牌;用户检索模块负责将检索令牌发送至云服务器以完成检索操作;数据解密模块利用用户私钥,对检索得到的数据密文进行解密,恢复出明文内容。The user retrieval token generation and decryption subsystem running on the data user side includes the following modules: retrieval token generation module, user retrieval module and data decryption module. Among them, the retrieval token generation module is responsible for using the data user's private key and the user's query keyword predicate to generate a retrieval token; the user retrieval module is responsible for sending the retrieval token to the cloud server to complete the retrieval operation; the data decryption module uses the user's private key to decrypt the retrieved data ciphertext and restore the plaintext content.
为进一步说明该方案,以下结合图2描述根据本发明实施例的应用于医疗保健场景的支持灵活访问策略匹配、灵活的用户属性组织和布尔关键词检索的可搜索加密方法。To further illustrate the solution, the following describes a searchable encryption method supporting flexible access policy matching, flexible user attribute organization, and Boolean keyword retrieval applied to a healthcare scenario according to an embodiment of the present invention in conjunction with FIG. 2 .
在本实施例中,文件的关键词集结构高度为2;数据拥有者的访问策略访问树高度为2;数据用户的属性集结构高度为2。在本实例的具体流程如下:In this embodiment, the height of the keyword set structure of the file is 2; the height of the access policy access tree of the data owner is 2; and the height of the attribute set structure of the data user is 2. The specific process of this example is as follows:
T1、可信权威机构TA运行初始化模块,根据安全参数K,生成系统公开密钥pk、主密钥mk,并将系统公开密钥pk公开发布于云服务器;同时,数据用户向可信权威机构TA发送自己的属性集数据用户1的属性集表示为:{机构:大学A,职位:研究员,{部门:制药,职位:主任},{部门:化学,职位:教授}};可信权威机构TA根据主密钥mk和数据用户属性集生成数据用户的私钥sk,并将私钥sk发送至数据用户。而主密钥mk则保存至主密钥存储模块。T1. The trusted authority TA runs the initialization module, generates the system public key pk and the master key mk according to the security parameter K, and publishes the system public key pk to the cloud server; at the same time, the data user sends his attribute set to the trusted authority TA. The attribute set of data user 1 is represented as: {Institution: University A, Position: Researcher, {Department: Pharmaceutical, Position: Director}, {Department: Chemistry, Position: Professor}}; the trusted authority TA uses the master key mk and the data user attribute set to Generate the data user's private key sk and send it to the data user. The master key mk is saved in the master key storage module.
T2、数据拥有者1拥有三个文档1、2、3,其中:T2. Data owner 1 owns three documents 1, 2, and 3, among which:
文档1的递归关键词集合表示为:{姓名:李小明,疾病:心脏病,用药:立普妥,{姓名:李小明,疾病:高血压,用药:阿米洛利},{姓名:李小明,疾病:心脏病,用药:硝酸甘油}},实施的访问策略访问树结构如图4所示;The recursive keyword set of document 1 is represented as: {name: Li Xiaoming, disease: heart disease, medication: Lipitor, {name: Li Xiaoming, disease: hypertension, medication: amiloride}, {name: Li Xiaoming, disease: heart disease, medication: nitroglycerin}}, and the access tree structure of the implemented access strategy is shown in Figure 4;
文档2的递归关键词集合表示为:{姓名:王小美,疾病:冠心病,用药:阿司匹林,{姓名:王小美,疾病:高血压,用药:阿米洛利},{姓名:王小美,疾病:心脏病,用药:硝酸甘油}},实施的访问策略访问树结构如图5所示;The recursive keyword set of document 2 is represented as: {name: Wang Xiaomei, disease: coronary heart disease, medication: aspirin, {name: Wang Xiaomei, disease: hypertension, medication: amiloride}, {name: Wang Xiaomei, disease: heart disease, medication: nitroglycerin}}, and the access tree structure of the implemented access strategy is shown in Figure 5;
文档3递归关键词集合表示为:{姓名:张小刚,疾病:慢性荨麻疹,用药:氯雷他定,{姓名:张小刚,疾病:糖尿病,用药:百达扬},{姓名:张小刚,疾病:心脏病,用药:硝酸甘油}},实施的访问策略访问树结构如图4所示;The recursive keyword set of document 3 is represented as: {name: Zhang Xiaogang, disease: chronic urticaria, medication: loratadine, {name: Zhang Xiaogang, disease: diabetes, medication: Baidayan}, {name: Zhang Xiaogang, disease: heart disease, medication: nitroglycerin}}, and the access tree structure of the implemented access strategy is shown in Figure 4;
为加密以上文档,数据拥有者1首先运行加密子系统,从云服务器上的云存储子系统中取得系统公开密钥pk。然后该子系统使用系统公开密钥pk,依次对三个文档进行加密,生成密文{Ci}i=1,2,3上传至云服务器。To encrypt the above documents, data owner 1 first runs the encryption subsystem to obtain the system public key pk from the cloud storage subsystem on the cloud server. Then the subsystem uses the system public key pk to encrypt the three documents in turn, generating ciphertext {C i } i=1,2,3 and uploading it to the cloud server.
T3、云服务器接收数据拥有者1的密文集后,将其存储在云存储子系统的存储模块中。为简化说明,这里假定当前存储模块只存储了数据拥有者1的上述三个密文{Ci}i=1,2,3。T3. After receiving the ciphertext set of data owner 1, the cloud server stores it in the storage module of the cloud storage subsystem. To simplify the description, it is assumed here that the current storage module only stores the above three ciphertexts {C i } i=1,2,3 of data owner 1.
T4、若该数据用户想查询疾病为心脏病且使用的药物为立普妥或者硝酸甘油的有关文档,则运行用户检索令牌生成及解密子系统的检索令牌生成模块,该模块使用户私钥sk和查询关键词谓词AND((用药=“立普妥”)OR(用药=“硝酸甘油))来生成检索令牌TK,并将检索令牌TK发送至用户检索模块。用户检索模块将检索令牌TK发送至云服务器,以进行下一步检索操作。T4. If the data user wants to search for documents related to heart disease and the drugs used are Lipitor or nitroglycerin, the retrieval token generation module of the user retrieval token generation and decryption subsystem is run. This module uses the user private key sk and the query keyword predicate AND((medication = "Lipitor") OR(medication = "nitroglycerin)) is used to generate a search token TK, and the search token TK is sent to the user search module. The user search module sends the search token TK to the cloud server for the next search operation.
T5、云服务器接收到数据用户1的查询请求后,运行检索模块,该模块将检索令牌TK与存储模块中的密文C1、C2、C3依次进行匹配运算。匹配运算完成后,云服务器将符合条件的密文C1和C3返回至数据用户1。T5. After receiving the query request from data user 1, the cloud server runs the retrieval module, which matches the retrieval token TK with the ciphertexts C 1 , C 2 , and C 3 in the storage module in sequence. After the matching operation is completed, the cloud server returns the qualified ciphertexts C 1 and C 3 to data user 1.
T6数据用户1接收到返回的数据密文C1和C3后,运行用户检索及解密子系统的解密模块,该模块使用私钥sk解密密文C1和C3,得到文档1和文档3的明文内容。T6 After receiving the returned data ciphertexts C 1 and C 3 , data user 1 runs the decryption module of the user retrieval and decryption subsystem, which uses the private key sk to decrypt the ciphertexts C 1 and C 3 to obtain the plaintext contents of document 1 and document 3.
综上所述,本实施例公开的支持大规模用户群的布尔关键词可搜索加密方法,支持更灵活的数据用户属性组织方式以及更灵活的访问策略匹配,实现了更高效的访问控制。在现有技术中,多数技术基于ABE(attribute-based encryption,属性基加密)方案或PEKS(public-key encryption with keyword search,公钥可搜索加密)方案进行改进或扩展工作。目前该两类方案虽然能实现细粒度的访问控制,但数据用户的属性仍被整合成一个单独的属性集,不符合实际使用场景。本发明使用访问树来表示访问策略,并将数据用户属性以递归集结构组织起来,实现了更加高效的访问策略匹配。另外,该加密方法还支持更灵活的关键词组织方式以及布尔关键词检索。在现有技术中,一些技术仅支持数据拥有者针对单关键词对数据进行加密,数据用户使用单关键词进行检索,而不支持AND、OR等逻辑词嵌套的布尔关键词搜索;同时,现有技术中关键词都是组织在一个集合中,在有些实际使用场景中无法做到高效地关键词匹配。在本发明中,通过采用将关键词组织成递归集的形式,并通过布尔匹配运算的方法,实现了灵活的关键词组织及布尔关键词搜索。In summary, the Boolean keyword searchable encryption method supporting a large user group disclosed in this embodiment supports a more flexible data user attribute organization method and a more flexible access policy matching, thereby achieving more efficient access control. In the prior art, most technologies are based on the ABE (attribute-based encryption) scheme or the PEKS (public-key encryption with keyword search) scheme for improvement or expansion. Although the two schemes can currently achieve fine-grained access control, the attributes of data users are still integrated into a separate attribute set, which does not conform to the actual usage scenario. The present invention uses an access tree to represent the access policy, and organizes the data user attributes in a recursive set structure to achieve more efficient access policy matching. In addition, the encryption method also supports a more flexible keyword organization method and Boolean keyword retrieval. In the prior art, some technologies only support data owners to encrypt data for a single keyword, and data users use a single keyword for retrieval, but do not support Boolean keyword searches with nested logical words such as AND and OR; at the same time, the keywords in the prior art are organized in a set, and efficient keyword matching cannot be achieved in some actual usage scenarios. In the present invention, by organizing keywords into a recursive set and using a Boolean matching operation method, flexible keyword organization and Boolean keyword search are achieved.
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。The above embodiments are preferred implementation modes of the present invention, but the implementation modes of the present invention are not limited to the above embodiments. Any other changes, modifications, substitutions, combinations, and simplifications that do not deviate from the spirit and principles of the present invention should be equivalent replacement methods and are included in the protection scope of the present invention.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111561029.3A CN114357477B (en) | 2021-12-15 | 2021-12-15 | Boolean Keyword Searchable Encryption Method Supporting Large-Scale User Groups |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111561029.3A CN114357477B (en) | 2021-12-15 | 2021-12-15 | Boolean Keyword Searchable Encryption Method Supporting Large-Scale User Groups |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114357477A CN114357477A (en) | 2022-04-15 |
CN114357477B true CN114357477B (en) | 2023-07-18 |
Family
ID=81101833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111561029.3A Active CN114357477B (en) | 2021-12-15 | 2021-12-15 | Boolean Keyword Searchable Encryption Method Supporting Large-Scale User Groups |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114357477B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910788B (en) * | 2023-08-15 | 2024-06-11 | 广州粤建三和软件股份有限公司 | Searchable encryption management method and device for service data and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491497A (en) * | 2017-07-25 | 2017-12-19 | 福州大学 | Multi-user's multi-key word sequence of any language inquiry is supported to can search for encryption system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2709306B1 (en) * | 2012-09-14 | 2019-03-06 | Alcatel Lucent | Method and system to perform secure boolean search over encrypted documents |
CN111913981B (en) * | 2020-06-09 | 2022-04-22 | 华南理工大学 | Online and offline attribute-based boolean keyword searchable encryption method and system |
CN111966802A (en) * | 2020-07-31 | 2020-11-20 | 河海大学 | Attribute-based encryption method and system supporting keyword Boolean search |
CN112100649B (en) * | 2020-08-06 | 2022-12-16 | 华南理工大学 | Multi-keyword searchable encryption method and system supporting Boolean access control strategy |
-
2021
- 2021-12-15 CN CN202111561029.3A patent/CN114357477B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491497A (en) * | 2017-07-25 | 2017-12-19 | 福州大学 | Multi-user's multi-key word sequence of any language inquiry is supported to can search for encryption system |
Also Published As
Publication number | Publication date |
---|---|
CN114357477A (en) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shen et al. | Secure phrase search for intelligent processing of encrypted data in cloud-based IoT | |
Lu | A new communication-efficient privacy-preserving range query scheme in fog-enhanced IoT | |
Wang et al. | An efficient file hierarchy attribute-based encryption scheme in cloud computing | |
Zheng et al. | Achieving efficient and privacy-preserving k-NN query for outsourced ehealthcare data | |
Fan et al. | TraceChain: A blockchain‐based scheme to protect data confidentiality and traceability | |
CN111913981B (en) | Online and offline attribute-based boolean keyword searchable encryption method and system | |
CN112100649B (en) | Multi-keyword searchable encryption method and system supporting Boolean access control strategy | |
Yao et al. | Privacy-preserving search over encrypted personal health record in multi-source cloud | |
Zhang et al. | Privacy-preserving and dynamic multi-attribute conjunctive keyword search over encrypted cloud data | |
Li et al. | Fuzzy encryption in cloud computation: efficient verifiable outsourced attribute-based encryption | |
WO2018070932A1 (en) | System and method for querying an encrypted database for documents satisfying an expressive keyword access structure | |
Zarezadeh et al. | Multi-keyword ranked searchable encryption scheme with access control for cloud storage | |
Peng et al. | Dynamic keyword search with hierarchical attributes in cloud computing | |
CN117194516A (en) | A keyword-oriented privacy-preserving similarity query method in smart medical care | |
Fu et al. | A practical attribute-based document collection hierarchical encryption scheme in cloud computing | |
Yubin et al. | A solution for privacy-preserving data manipulation and query on NoSQL database | |
CN116469501A (en) | Electronic medical record sharing method, system, equipment and storage medium based on blockchain | |
CN116611083A (en) | Medical data sharing method and system | |
CN114357477B (en) | Boolean Keyword Searchable Encryption Method Supporting Large-Scale User Groups | |
CN115694974B (en) | Ciphertext data sharing method and system based on collaborative searchable | |
CN111177787B (en) | Attribute-based connection keyword searching method in multi-data owner environment | |
Cao et al. | A Lightweight Fine‐Grained Search Scheme over Encrypted Data in Cloud‐Assisted Wireless Body Area Networks | |
Akavia et al. | Secure search via multi-ring fully homomorphic encryption | |
Zarezadeh et al. | Attribute-based Access Control for Cloud-based Electronic Health Record (EHR) Systems. | |
CN109672525B (en) | Searchable public key encryption method and system with forward index |
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 |