CN107256248B - 云存储安全中基于通配符的可搜索加密方法 - Google Patents
云存储安全中基于通配符的可搜索加密方法 Download PDFInfo
- Publication number
- CN107256248B CN107256248B CN201710422815.2A CN201710422815A CN107256248B CN 107256248 B CN107256248 B CN 107256248B CN 201710422815 A CN201710422815 A CN 201710422815A CN 107256248 B CN107256248 B CN 107256248B
- Authority
- CN
- China
- Prior art keywords
- wildcard
- user
- keyword
- protocol
- keywords
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种云存储安全中基于通配符的可搜索加密方法,包括以下步骤:设置待上传文档;提取关键词集合;将所述关键词集合加密;选择随机数作为文档加密密钥,将文档加密密钥进行加密;加密待上传文档得到密文后发送给云计算平台;输入查询关键词集合,生成查询陷门并进行签名,发送给云计算平台;云计算平台对查询签名进行验证,云计算平台执行搜索算法;将关键词索引和查询陷门传入到关键词匹配协议中,得到加密的匹配结果;进行解密得到搜索结果;云计算平台根据所述搜索结果返回对应的密文;先恢复出文档加密密钥,然后恢复出文档。本发明支持至多两个通配符的关键词搜索,通配符可以出现在关键词的任何位置,且可以表示任意多个字符。
Description
技术领域
本发明涉及一种云存储安全中基于通配符的可搜索加密方法
背景技术
云存储为用户提供无处不在的、动态的、可扩展的和按需存储的服务。云存储在给用户带来更多便利的同时也给用户的数据带来了严重的安全威胁。为了保护公有云服务器中的外包数据的隐私性,数据加密是防止内部/外部攻击者访问敏感信息的有效方法。同时,为了便于数据的使用,我们有必要支持用户在密文上进行关键词查询(无需解密)。这种机制称为可搜索加密。
把电子健康记录(EHR)存储系统作为可搜索加密的应用示例。假设用户Alice想把敏感的EHR数据存储在公共卫生云服务器中,她首先需要提取一组关键词集合来描述EHR,接着使用加密这些关键词来生成索引。接着将关键词加密索引和加密的EHR数据上传到云服务器。在数据检索阶段,用户Bob(如:Alice的医生或家属)生成陷门来进行关键词查询。云服务器使用陷门对加密的EHR数据进行搜索,最终返回匹配的文件给Bob。在搜索过程中,与关键词和EHR有关的明文信息不能泄露给云服务器。
2004年,Boneh等人提出公钥关键词可搜索加密(PEKS)的概念,来实现用户对加密数据进行关键词查询。之后,有人对不同应用场景中支持联结关键词和单关键词的PEKS进行了研究。为了实现多用户之间的查询权限共享,可搜索加密采用了不同的访问控制方法,例如代理重加密和基于属性的加密(ABE)。有人提出模糊关键词可搜索加密方案来实现对拼写错误的校正。然而这些方案只能进行精确关键词搜索或基于编辑距离的相似性搜索。
为了实现灵活的搜索功能,有人提出通配符可搜索加密的概念来支持含有通配符的关键词安全搜索。在查询阶段,用户输入关键词,关键词中包含一个通配符(可能代表一个或多个字符)。例如Alice的医生Bob可能使用关键词“05/**/2016”来搜索2016年5月Alice所有的EHR数据。他也可以使用关键词“ache”来搜索包含“headache”、“stomachache”或者“heartache”的EHR数据。然而,文献中大多数现有的通配符可搜索加密方案都是基于布隆过滤器(BF:Bloom Filter)构建的。布隆过滤器的缺点是:假阳性概率(falsepositive probability)是不可忽略的。这些基于布隆过滤器的通配符可搜索加密方案将会以不可忽略的概率向用户返回错误结果。此外,这些方案都是基于对称密钥机制设计的,因此数据拥有者必须泄露其私钥才能授予其他用户搜索权限,并且该授权是不可撤销的。
Jarecki等人研究了加密数据库的安全搜索,它支持任意的布尔查询。后来Sepehri等人提出了数据库中基于安全多方计算的查询方法和具有安全等式查询功能的代理重加密方案。Sun等人提出了数据库中支持布尔查询的多用户可搜索加密方案。除了面向数据库的可搜索加密方案,学者们也对非结构化加密数据的安全关键词查询进行了研究。
Li等人提出了云计算中加密数据的模糊关键词搜索方案。他们利用编辑距离来衡量关键词的相似度,并设计了两种构造模糊关键词集的方法,并用符号树来加速搜索算法。2013年,Li等人把方案推广到了基于ABE的多用户场景。2014年,Wang等人提出了多关键词模糊可搜索加密方案,方案构造基于布隆过滤器和局部敏感哈希函数。该方案可以校正较小的编辑距离错误,并支持多关键词搜索。随后,Fu等人提出可以校正更多拼写错误的方案。
现有的模糊可搜索加密方案的局限性在于:只能校正较小的编辑距离误差,例如拼写错误。如果查询关键词与精确关键词之间的编辑距离较大,则现有方案无法校正相关的错误。2010年,Sedghi等人在公钥密码架构中提出了带有通配符的可搜索加密方案,它的方案构造基于双线性对。隐藏向量加密(HVE)是Sedghi方案的构造核心,而HVE源于基于身份的加密。Sedghi的方案需要指定通配符的位置,每个通配符只能代表一个字符。在加密、生成陷门和测试算法中,Sedghi的方案需要大量的幂指数运算;其测试算法还需要大量耗时的双线性对运算。
2011年,Bosch等人在对称密码架构中引入了联结通配符可搜索加密方案,方案构造基于伪随机函数和布隆过滤器。与Sedghi的方案相比,Bosch的方案提高了效率。然而,它仅仅枚举了通配符关键词在词典中可以表示的常用关键词。然后,这些扩展的关键词都被插入到布隆过滤器中。由于Bosch的方案无法从有限的词典定义中提取出世界上所有的关键词,所以该方案的实用性非常有限。
2012年,Suga等人提出了基于布隆过滤器的通配符可搜索加密方案,其中每个关键词都配有单独的布隆过滤器。存储开销随着文档中提取的关键词数量的增加而增加。该方案的缺点是:一个通配符只能代表一个字符。例如,如果用户希望搜索所有以“acid”开头的关键词,他需要分别提交通配符关键词“acid**”、“acid***”和“acid********”才能够匹配关键词“acidic”、“acidity”和“acidification”。为了解决这个难题,Hu等人提出了一种改进的方案,其中一个通配符可以代表任意数量的字符。Hu的方案以Suga的方案为基础,并使用不同的方法把关键词插入到布隆过滤器中。
基于布隆过滤器的可搜索加密方案的缺点是:假阳性概率是不可忽略的。布隆过滤器是一种数据结构,可用于检测一个指定元素是否存在于一个集合中。它由一个长度为m位的数组表示,数组中每个元素初始值设置为0。布隆过滤器需要r个独立的哈希函数(ht:{0,1}*→[1,m](1≤t≤r)),每个哈希函数把一个元素映射到m个位置中的其中一个,也就是把集合中S={s1,...sn}的每个元素映射到布隆过滤器BF中。为了验证一个元素a是否属于S,需要检验BF中所有位置ht(a)(1≤t≤r)的值是否被设为1。如果不是,元素a不属于S。否则,元素a可能属于S。因为哈希函数可能把一个或者多个元素映射到BF的同一位置上,因此布隆过滤器存在假阳性概率。假阳性概率fp=[1-(1-1/m)rn]r≈e-m/nln(p)ln(1-p),其中p=(1-1/m)rn≈e-rn/m,它随着n/m的增长而增长。
发明内容
有鉴于此,本发明的目的在于提供一种云存储安全中基于通配符的可搜索加密方法支持至多两个通配符的关键词搜索,且通配符可以出现在关键词的任何位置。
为实现上述目的,本发明采用如下技术方案:
一种云存储安全中基于通配符的可搜索加密方法,其特征在于:包括上传过程和搜索过程;
所述上传过程包括以下步骤:
所述搜索过程包括以下步骤:
步骤B6:云计算平台根据所述搜索结果u*返回对应的密文C;
本发明与现有技术相比具有以下有益效果:首先,本发明支持多关键词搜索,任何查询关键词可以包含零个、一个或者两个通配符,其中通配符可以出现在关键词的任何位置并且代表任何数量的符号;其次,本发明支持使用一个陷门来同时搜索多个数据拥有者的数据;第三,本发明提供灵活的用户授权和撤销来有效地管理搜索和解密权限;第四,本发明是基于同态加密而不是基于布隆过滤器构建的,因此完全消除了由布隆过滤器引起的错误概率;最后,返回的匹配结果对云服务器完全保密,实现了更好的隐私保护。
附图说明
图1是本发明一实施例的系统结构框图。
图2是本发明的云服务结构。
图3是本发明K2C算法的示例图。
图4是本发明SCP协议的示例图。
图5是本发明FW协议的示例图。
图6是本发明MW协议的示例图。
图7是本发明BW协议的示例图。
图8是本发明FMW协议的示例图。
图9是本发明FBW协议的示例图。
图10是本发明MMW协议的示例图。
图11是本发明MBW协议的示例图。
图12是本发明八个协议的参数对比图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示为本发明一实施例的系统结构框图,其中:
密钥生成中心(KGC)是完全可信的,负责管理和分发系统中生成的公钥/私钥。KGC包括注册单元、密钥生成单元、证书单元和存储单元。注册单元为系统用户提供注册服务。密钥生成单元为系统和用户生成公钥/密钥。证书单元负责提供证书生成和吊销服务。存储单元负责存储证书和撤销列表。
云计算平台(CP)存储用户的加密文档并负责执行数据检索操作。CP包括存储单元、计算单元和元数据单元。存储单元提供存储服务,其中包括存储加密文档和安全关键词索引。计算单元提供计算服务,其中包括安全搜索操作。元数据单元提供元数据服务,其中元数据包括数据拥有者的信息、授权证书、文档位置以及文档上传和访问日期。元数据服务器还为系统用户提供通知服务,这项服务专门用于监测数据拥有者账户是否进行了更改。这些信息存储在数据库中,目的在于为用户提供更好的服务。
计算服务提供商(CSP)拥有丰富的计算资源,包括计算单元和元数据单元。CSP的计算单元与CP中的计算单元相互作用来执行安全计算。元数据单元负责存储CSP的授权证书,并通过查询授权证书来进行授权计算。假设CP和CSP不共谋。
数据拥有者加密关键词和文档,并将其发送到CP进行存储。用户生成关键词陷门,CP利用陷门来搜索加密数据。
安全套接层(SSL)或者传输层安全(TLS)协议用于保护CP和CSP、数据拥有者和CP、用户和CP以及KGC和其他实体之间的所有通信。SSL/TLS协议的主要目的在于提供两个通信实体之间的隐私保护和并保证数据完整性。
请结合图2,云计算为用户提供各种服务。最著名的服务包括基础架构即服务(IaaS),平台即服务(PaaS)和软件即服务(SooS)。信息服务、计算服务和存储服务属于PaaS。为了向云服务器提供安全保护,安全服务是云计算中的一项重要服务。安全搜索是云服务器中的安全服务之一,被称为安全搜索即服务(secure search as a service),它为信息服务、计算服务和存储服务提供了安全性。本发明属于云计算中安全搜索即服务的范畴。
该系统包括以下基础部件:具有门限解密功能的Paillier密码系统、关键词表示和加密、安全大于或等于协议和加密关键词等价测试协议,具体如下:
具有门限解密功能的Paillier密码系统(PCTD:Paillier Cryptosystem withThreshold Decryption)实现了同态性加密,可以在云平台中提供外包数据的隐私性性。利用同态性质,我们无需对密文进行解密,就可以直接进行各种计算,从而就能实现安全的外包计算。此外,它的计算开销低于全同态加密系统所需的计算开销。令表示X的比特长度。
密钥生成:κ是安全参数,p和q是两个大素数,计算N=pq,λ=lcm(p-1,q-1)/2(lcm表示两个数的最小公倍数)。定义函数选择生成元g并且g的阶为ord(g)=(p-1)(q-1)/2。系统公共参数PP=(g,N),主私钥SK=λ。系统为每位用户i分配私钥ski∈ZN和公钥
主私钥分裂:主私钥SK=λ可以随机分裂成两个部分SK1=λ1和SK2=λ2,使得λ1+λ2=0modλ,λ1+λ2=1modN2。
具有门限解密功能的Paillier密码系统使用到了下述协议,这些协议都需要CP和CSP交互运算执行。pkA和pkB是用户A和B的公钥。pkΣ是为用户A和B定义的联合公钥。
关键词表示和加密:请参照图3,为了把一个关键词编码成集合ZN中的一个元素,首先把关键词中的每个字母转换成其ASCII码形式,接着把十六进制的ASCII码转化成十进制。根据每个字母在关键词中的位置,每个元素乘以一定的权重,使用PCTD算法对这些十进制数进行相加和加密。该算法称为K2C关键词转化密文算法。
KET加密关键词等价测试协议:
如果u*=1,表示两个关键词相同。如果u*=0,表示两个关键词不相同。
本发明提供一种云存储安全中基于通配符的可搜索加密方法,包括上传过程和搜索过程;
所述上传过程包括以下步骤:
所述搜索过程包括以下步骤:
步骤B1:用户B输入查询关键词集合查询关键词可能包含零个,一个或者两个通配符。如果通配符出现在关键词的头部或者中部,B指定一个正整数来表示该通配符能代表的最大字符数。B根据关键词的类型把查询关键词qwi(1≤i≤n2)加密成Qi,令用户B指定查询(即AND或OR)关系来进行联结(conjunctive)或分离(disjunctive)关键词查询。
步骤B3:所述云计算平台接收到查询陷门和查询关系(AND或OR)后,首先核实用户B是否有权访问数据,若有权限,则云计算平台使用公钥pkB验证的签名若签名被验证是假的,则拒绝该查询请求,否则,云计算平台执行搜索算法;
步骤B4:根据Qj中的参数,云计算平台以W中的和中的Qj为输入,将其传入到关键词匹配协议中,所述关键词匹配协议包括KET,FW,MW,BW,FMW,FBW,MMW和MBW,云计算平台可根据图12选择相应的协议,云计算平台和计算服务提供商交互运算得到加密的匹配结果如果果kwi与qwj匹配,则ui,j=1;否则ui,j=0;
步骤B5:用户B收到匹配结果后,解密得到搜索结果u*;如果B进行OR查询,B会对u*进行排列并要求CP返回前k篇u*值(相关度分数)较高的文档。如果B进行AND查询,B会要求CP返回所有或者部分u*=1的文档,B会把发送给CP来进行文档查询;
步骤B6:云计算平台根据所述搜索结果u*返回对应的密文C;
于本实施例,所述关键词匹配协议包括KET,FW,MW,BW,FMW,FBW,MMW和MBW,其中:
FW,MW,BW属于单通配符搜索,单通配符搜索是指搜索的关键词中只含有一个通配符,并且该通配符可以表示任意数量的字符。由于单通配符可能出现在字符串的头部、中部或尾部,我们设计了三个协议来处理这些情况。CP和CSP负责执行这些协议,并且它们都不知道匹配结果的明文信息。
假设数据拥有者A的文档包含关键词X,A使用公钥pkA将其加密成用户B生成具有通配符的关键词来进行查询。以下协议将测试提交的查询是否与匹配。我们用*表示通配符。当通配符出现在关键词的头部或者中部时,用户B指定正整数v1来表示通配符可以代表的最大字符数。当通配符出现在关键词的尾部时,通配符可以表示任意数量的字符。
FMW,FBW,MMW,MBW属于双通配符搜索,双通配符搜索是指搜索的关键词中只含有两个通配符,并且每个通配符都可以表示任意数量的字符。由于通配符可能出现在字符串的头部、中部或尾部,我们设计了四个协议来处理不同的情况。CP和CSP负责执行这些协议,并且它们都不知道匹配结果的明文信息。当通配符出现在关键词的头部或中部时,用户B用一个正整数来表示该通配符可以替代的最大字符数。令v1,v2分别表示两个通配符所能替代的最大字符数。当通配符出现在关键词的尾部时,可以代表任意数量的字符。
通配符搜索中重要的工具包括:安全多比特提取协议和安全密文划分协议,
MBE安全多比特提取协议:
MBE协议的工作原理解释说明如下。
(1)为了保护X的隐私,CP首先选择随机数r∈ZN,然后通过计算Y=[X]·[r]=[X+r]来隐藏X的明文信息。
SCP安全密文划分协议:
SCP协议的示例如图4所示。如果[X]是关键词“privacy”的密文且SCP协议输出[X1]和[X2],使得[X1]是“pri”的加密形式,[X2]是“vacy”的加密形式。SCP协议把加密的关键词安全地划分成两个加密的字符串。
八个关键词匹配协议的具体内容如下:
如果u*=1,表示两个关键词相同;如果u*=0,表示两个关键词不相同;
FW为安全头部通配符匹配协议,用户B首先生成一个“*+Y1”形式的通配符型关键词,其中Y1是字符串;用户B利用K2C算法将Y1加密成输入和v1,FW协议输出如果通配符关键词“*+Y1”与X匹配,则u=1;否则,u=0;
首先,初始化协议包括v1+1轮。在第i轮,被划分成两个部分和的明文包含i个字符。X1是通配符代表的字符串。如果X2=Y1,有ui=1;否则ui=0。然后,计算在v1+1轮后,如果u>0,协议输出否则FW的示例如图5所示。
MW为安全中部通配符匹配协议,用户B首先生成一个“Y1+*+Y2”形式的通配符型关键词,其中Y1,Y2是字符串,Y1中包含η1个符号,用户B利用K2C算法把Y1,Y2加密成输入v1和η1,MW协议输出密文如果通配符关键词“Y1+*+Y2”与X匹配,则有u=1;否则,u=0;
首先,初始化然后,被划分成两个部分和的明文包含η1个符号。如果X1=Y1,则有u1=1;否则,u1=0。通过FW协议检测“*+Y2”是否与X2匹配。如果匹配,则有u2=1;否则,u2=0。然后,计算如果u1=1,u2=1,则有u=1,否则u=0。MW的示例如图6所示。
BW为安全尾部通配符匹配协议,用户B生成一个“Y1+*”形式的通配符关键词,其中,Y1是字符串并包含η1个符号;然后,用户B利用K2C算法将Y1加密成输入和η1,BW协议输出密文如果通配符关键词“Y1+*”与X匹配,则有u=1;否则,u=0;
FMW为安全头部和中部通配符匹配协议,用户B生成一个“*+Y1+*+Y2”形式的通配符关键词,其中Y1,Y2是字符串,Y1包含η1个符号,用户B利用K2C算法将Y1,Y2加密成输入 v1、v2和η1,FMW协议输出密文如果通配符关键词“*+Y1+*+Y2”与X匹配,则有u=1;否则,u=0;
首先初始化FMW协议使用两层循环来进行关键词测试:外层循环遍历第一个通配符所能代表的不同字符(或字符串);内层循环遍历第二个通配符所能代表的不同字符(或字符串)。被划分成两个部分和其中X1包含i个符号(0≤i≤v1),并且X1是第一个通配符代表的字符串。然后,被划分成两个部分和其中X3包含η1个符号。如果X3=Y1,则有si=1;否则,si=0。接着,被划分成两个部分和其中X5包含j个符号(0≤j≤v2),并且X5是第二个通配符代表的字符串。如果X6=Y2,则有tj=1;否则,tj=0。计算如果si=1,tj=1,则有ui,j=1;否则,ui,j=0。然后,将ui,j与u相加。最后,如果u>0,协议输出否则,FMW的示例如图8所示。
FBW为安全头部和尾部通配符匹配协议,用户B生成一个“*+Y1+*”形式的通配符关键词,其中Y1是字符串并且包含η1个符号;用户B利用K2C算法将Y1加密成输入v1和η1,FBW协议输出密文如果通配符关键词“*+Y1+*”与X匹配,则有u=1;否则,u=0;
首先初始化FBW协议使用遍历算法来测试关键词,它遍历了第一个通配符所能代表的不同字符(或字符串)。分成两个部分和其中X1包含i个符号(0≤i≤v1),X1是第一个通配符代表的字符串。然后,分成两个部分和其中X3包含η1个符号。如果X3=Y1,则有si=1;否则,si=0。然后,将si与u相加。如果u>0,则协议最终输出否则,输出FBW的示例如图9所示。
MMW为安全中部和中部通配符匹配协议,用户B生成一个“Y1+*+Y2+*+Y3”形式的通配符关键词,其中Y1,Y2,Y3是字符串,并且Y1,Y2分别包含η1,η2个符号,用户B利用K2C算法将Y1,Y2加密成输入v1、v2、η1和η2,MMW协议输出密文如果通配符关键词“Y1+*+Y2+*+Y3”与X匹配,则有u=1;否则,u=0;
首先,初始化MMW协议使用两层循环来进行关键词测试:外层循环遍历第一个通配符所能代表的不同字符(或字符串);内层循环遍历第二个通配符所能代表的不同字符(或字符串)。被划分成两个部分和其中X1包含η1个符号。如果X1=Y1,有u1=1,否则u1=0。被划分成两个部分和其中X3包含i个符号(0≤i≤v1),X3是第一个通配符代表的字符串。然后,被划分成两个部分和其中X5包含η2个符号。如果X5=Y2,则有si=1;否则,si=0。被划分成两个部分和其中X7包含j个符号(0≤j≤v2),X7是第二个通配符代表的字符串。如果X8=Y3,则有tj=1;否则,tj=0。计算如果si=1,tj=1,则有ui,j=1;否则,ui,j=0。计算如果ui,j=1,tj=1,则否则,然后,将与相加。如果u>0,协议最终输出否则,输出MMW的示例如图10所示。
MBW为安全中部和尾部通配符匹配协议,用户B生成一个“Y1+*+Y2+*”形式的通配符关键词,其中Y1,Y2是字符串,Y1,Y2分别包含η1,η2个符号;B利用K2C算法将Y1,Y2加密成输入v1,η1和η2,MBW协议输出密文如果通配符关键词“Y1+*+Y2+*”与X匹配,则有u=1;否则,u=0。
首先初始化MBW协议使用循环遍历的方式来进行关键词测试:循环遍历第一个通配符所能代表的不同字符(或字符串)。被划分成两个部分和其中X1包含η1个符号。如果X1=Y1,则有u1=1;否则u1=0。被划分成两个部分和其中X3包含i个符号(0≤i≤v1),X3是第一个通配符代表的字符串。被划分成两个部分和其中X5包含η2个符号。如果X5=Y2,则有si=1;否则,si=0。计算如果si=1,u1=1,输出否则然后,计算如果u>0,协议最终输出否则,MBW的示例如图11所示。
本发明还涉及密钥生成算法和用户撤销和授权算法。
密钥生成算法:
通过运行PCTD的KeyGen算法,KGC生成系统公共参数PP=(g,N)、主私钥MSK=λ和用户Ai的公钥/私钥对 KGC计算主公钥MPK=gλ。KGC秘密保管MSK,公开MPK。接着KGC执行PCTD的主密钥分裂算法来生成部分主密钥SK1=λ1和SK2=λ2,并分别把它们秘密发送给CP和CSP,把秘密发送给用户Ai并公开为了保证用户Ai身份的隐私性,KGC为用户生成匿名身份其中是正整数并且的值大于系统中的总用户数量。
用户撤销和授权算法:
如果用户A想要把搜索和加密权限授予用户B,A会设置授权有效期VP来表示授权的开始和结束时间(例如VP=“20170101-20180101”)。A为B生成带有证书号CN的授权证书。为了保证CN的唯一性,CN号是由AIDA开头,从而表明该该证书是由用户A生成的。生成的授权证书CERA,B为:
<cer=(CN,AIDB,VP,pkΣ),Sig(cer,skA)>,
其中skΣ=H1(CN,skA)。为了简便表述,我们将ZN的元素作为Sig算法的私钥。在实际使用中,可以使用哈希函数从ZN的元素中计算出签名密钥。产生的授权私钥skΣ被秘密发送给B。授权证书CERA,B被发送给KGC、CP、CSP和B。当VP过期时,授权将自动失效。
如果A想要在VP时间段内撤销B的授权,需要生成撤销证书RVKA,B:<rvk=(revoke,CN),Sig(rvk,skA)>。接着,RVKA,B被发送给KGC、CP、CSP和B。
如果B想要同时对数据拥有者(A1,...,Am)的文档进行查询,他必须向每一位数据拥有者(A1,...,Am)申请授权证书然后向KGC申请授权证书。在验证证书的有效性后,KGC计算有效期VPΣ=VP1∩...∩VPm,并生成证书CERΣ,B:<cer=(CN,AIDB,VPΣ,pkΣ),Sig(cer,MSK)>,其中skΣ=H1(CN,MSK)。证书的CN号应该由KGC的身份(IDKGC可能设置为个0)开头,表明该证书是由KGC生成。skΣ被秘密发送给用户B,pkΣ对CP、CSP和B公开。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (3)
1.一种云存储安全中基于通配符的可搜索加密方法,其特征在于:包括上传过程和搜索过程;
所述上传过程包括以下步骤:
步骤A5:加密所述待上传文档M得到密文C=SEnc(M,K'),其中,K'=H2(K)∈K;
所述搜索过程包括以下步骤:
步骤B3:所述云计算平台接收到查询陷门后,首先核实用户B是否有权访问数据,若有权限,则云计算平台使用公钥pkB验证Q的签名Sig(Q,skB),若签名被验证是假的,则拒绝该查询请求,否则,云计算平台执行搜索算法;
步骤B4:云计算平台以W中的和Q中的Qj为输入,将其传入到关键词匹配协议中,云计算平台和计算服务提供商交互运算得到加密的匹配结果如果kwi与qwj匹配,则ui,j=1;否则ui,j=0;所述关键词匹配协议包括KET,FW,MW,BW,FMW,FBW,MMW和MBW;
步骤B6:云计算平台根据所述搜索结果u*返回对应的密文C;
步骤B7:用户B先恢复出文档加密密钥K,然后计算K'=H2(Ki)∈K,并利用K'恢复出文档;
其中,哈希函数H2:ZN→K,K为对称密钥空间;
其中,pkA是用户A的公钥;pk∑是用户A和B定义的联合公钥。
2.根据权利要求1所述的云存储安全中基于通配符的可搜索加密方法,其特征在于:所述关键词匹配协议KET,FW,MW,BW,FMW,FBW,MMW和MBW的具体内容如下:
如果u*=1,表示两个关键词相同;如果u*=0,表示两个关键词不相同;
FW为安全头部通配符匹配协议,用户B首先生成一个“*+Y1”形式的通配符型关键词,其中Y1是字符串;用户B利用K2C算法将Y1加密成输入和v1,FW协议输出如果通配符关键词“*+Y1”与X匹配,则u=1;否则,u=0;
MW为安全中部通配符匹配协议,用户B首先生成一个“Y1+*+Y2”形式的通配符型关键词,其中Y1,Y2是字符串,Y1中包含η1个符号,用户B利用K2C算法把Y1,Y2加密成输入v1和η1,MW协议输出密文如果通配符关键词“Y1+*+Y2”与X匹配,则有u=1;否则,u=0;
BW为安全尾部通配符匹配协议,用户B生成一个“Y1+*”形式的通配符关键词,其中,Y1是字符串并包含η1个符号;然后,用户B利用K2C算法将Y1加密成输入和η1,BW协议输出密文如果通配符关键词“Y1+*”与X匹配,则有u=1;否则,u=0;
FMW为安全头部和中部通配符匹配协议,用户B生成一个“*+Y1+*+Y2”形式的通配符关键词,其中Y1,Y2是字符串,Y1包含η1个符号,用户B利用K2C算法将Y1,Y2加密成输入 v1、v2和η1,FMW协议输出密文如果通配符关键词“*+Y1+*+Y2”与X匹配,则有u=1;否则,u=0;
FBW为安全头部和尾部通配符匹配协议,用户B生成一个“*+Y1+*”形式的通配符关键词,其中Y1是字符串并且包含η1个符号;用户B利用K2C算法将Y1加密成输入v1和η1,FBW协议输出密文如果通配符关键词“*+Y1+*”与X匹配,则有u=1;否则,u=0;
MMW为安全中部和中部通配符匹配协议,用户B生成一个“Y1+*+Y2+*+Y3”形式的通配符关键词,其中Y1,Y2,Y3是字符串,并且Y1,Y2分别包含η1,η2个符号,用户B利用K2C算法将Y1,Y2加密成输入v1、v2、η1和η2,MMW协议输出密文如果通配符关键词“Y1+*+Y2+*+Y3”与X匹配,则有u=1;否则,u=0;
3.根据权利要求2所述的云存储安全中基于通配符的可搜索加密方法,其特征在于:所述K2C算法为关键词转化密文算法,把关键词中的每个字母转换成其ASCII码形式,接着把十六进制的ASCII码转化成十进制,根据每个字母在关键词中的位置,每个元素乘以一定的权重,使用PCTD算法对这些十进制数进行相加和加密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710422815.2A CN107256248B (zh) | 2017-06-07 | 2017-06-07 | 云存储安全中基于通配符的可搜索加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710422815.2A CN107256248B (zh) | 2017-06-07 | 2017-06-07 | 云存储安全中基于通配符的可搜索加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107256248A CN107256248A (zh) | 2017-10-17 |
CN107256248B true CN107256248B (zh) | 2020-05-08 |
Family
ID=60023525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710422815.2A Active CN107256248B (zh) | 2017-06-07 | 2017-06-07 | 云存储安全中基于通配符的可搜索加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107256248B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107734054A (zh) * | 2017-11-06 | 2018-02-23 | 福州大学 | 安全云存储中的加密数据检索系统 |
CN108021677A (zh) * | 2017-12-07 | 2018-05-11 | 成都博睿德科技有限公司 | 云计算分布式检索引擎的控制方法 |
CN108494768B (zh) * | 2018-03-22 | 2021-07-23 | 深圳大学 | 一种支持访问控制的密文搜索方法及系统 |
CN109446828B (zh) * | 2018-11-07 | 2020-10-13 | 北京邮电大学 | 一种安全多方计算方法及装置 |
US10984052B2 (en) * | 2018-11-19 | 2021-04-20 | Beijing Jingdong Shangke Information Technology Co., Ltd. | System and method for multiple-character wildcard search over encrypted data |
CN109660555B (zh) * | 2019-01-09 | 2020-07-14 | 上海交通大学 | 基于代理重加密的内容安全分享方法和系统 |
CN110276204B (zh) * | 2019-05-22 | 2022-05-13 | 湖北工业大学 | 一种隐私保护下的球员配置方法 |
CN110445756B (zh) * | 2019-07-04 | 2021-07-09 | 中国电子科技集团公司第三十研究所 | 云存储中可搜索加密审计日志的实现方法 |
CN110390203B (zh) * | 2019-07-25 | 2023-03-24 | 西南交通大学 | 一种可验证解密权限的策略隐藏属性基加密方法 |
CN111327620B (zh) * | 2020-02-27 | 2021-04-27 | 福州大学 | 云雾计算框架下的数据安全溯源及访问控制系统 |
CN111404679B (zh) * | 2020-03-10 | 2023-08-08 | 上海市大数据中心 | 一种面向大数据的安全认证的密文检索方法 |
WO2022099495A1 (zh) * | 2020-11-11 | 2022-05-19 | 深圳技术大学 | 云计算环境中的密文搜索方法及系统、设备 |
CN113704571B (zh) * | 2021-07-14 | 2024-10-18 | 山东师范大学 | 带查询功能的安全通配符模式匹配方法及系统 |
CN114116758B (zh) * | 2021-11-16 | 2024-08-16 | 富途网络科技(深圳)有限公司 | 基于资源管理系统的字段搜索方法及相关设备 |
CN114257446B (zh) * | 2021-12-20 | 2023-05-23 | 湖北工业大学 | 基于可搜索加密的数据访问控制方法、计算机设备 |
CN117278216B (zh) * | 2023-11-23 | 2024-02-13 | 三亚学院 | 一种基于云计算虚拟化与网络存储文件的加密系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104023051A (zh) * | 2014-05-22 | 2014-09-03 | 西安理工大学 | 云存储中多用户多个关键词可搜索的加密方法 |
CN104038349A (zh) * | 2014-07-03 | 2014-09-10 | 西安电子科技大学 | 一种基于kp-abe的有效可验证的公钥可搜索加密方法 |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN105610910A (zh) * | 2015-12-18 | 2016-05-25 | 中南民族大学 | 面向云存储并基于全同态密码的密文全文检索方法及系统 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10404669B2 (en) * | 2015-06-09 | 2019-09-03 | Skyhigh Networks, Llc | Wildcard search in encrypted text |
-
2017
- 2017-06-07 CN CN201710422815.2A patent/CN107256248B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104023051A (zh) * | 2014-05-22 | 2014-09-03 | 西安理工大学 | 云存储中多用户多个关键词可搜索的加密方法 |
CN104038349A (zh) * | 2014-07-03 | 2014-09-10 | 西安电子科技大学 | 一种基于kp-abe的有效可验证的公钥可搜索加密方法 |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN105610910A (zh) * | 2015-12-18 | 2016-05-25 | 中南民族大学 | 面向云存储并基于全同态密码的密文全文检索方法及系统 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
Non-Patent Citations (1)
Title |
---|
可验证的多用户云加密关键字搜索方案;李诗旸,王晓明;《计算机工程与应用》;20160430(第7期);132-138 * |
Also Published As
Publication number | Publication date |
---|---|
CN107256248A (zh) | 2017-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107256248B (zh) | 云存储安全中基于通配符的可搜索加密方法 | |
CN108632032B (zh) | 无密钥托管的安全多关键词排序检索系统 | |
CN107491497B (zh) | 支持任意语言查询的多用户多关键词排序可搜索加密系统 | |
CN110224986B (zh) | 一种基于隐藏策略cp-abe的高效可搜索访问控制方法 | |
CN112367169A (zh) | 数据加解密方法、装置、设备及存储介质 | |
CN111639361A (zh) | 一种区块链密钥管理方法、多人共同签名方法及电子装置 | |
CN106803784A (zh) | 安全多媒体云存储中基于格的多用户模糊可搜索加密方法 | |
CN112989375B (zh) | 一种分级优化加密无损隐私保护方法 | |
Yang et al. | Flexible wildcard searchable encryption system | |
CN110866135B (zh) | 一种基于响应长度隐藏的k-NN图像检索方法及系统 | |
CN107547530A (zh) | 移动云环境下基于属性的在线/离线关键字搜索方法及其云计算应用系统 | |
CN112560075B (zh) | 一种基于椭圆曲线的轻量级可搜索加密方法及装置 | |
CN115314295A (zh) | 一种基于区块链的可搜索加密技术方法 | |
CN114900301A (zh) | 一种满足mci安全且指定服务器的公钥可搜索加密方法 | |
CN115174600A (zh) | 一种用于云存储系统的密文数据加密、安全检索方法及装置 | |
CN114021006A (zh) | 一种多维数据的安全查询方法及装置 | |
Salvakkam et al. | Design of fully homomorphic multikey encryption scheme for secured cloud access and storage environment | |
Ibrahim et al. | Approximate keyword-based search over encrypted cloud data | |
Yan et al. | Secure and efficient big data deduplication in fog computing | |
CN108920968B (zh) | 一种基于连接关键词的文件可搜索加密方法 | |
CN116663046A (zh) | 基于区块链的隐私数据共享和检索方法、系统及设备 | |
CN115048432A (zh) | 基于布隆过滤器的模糊关键词公共审计方法 | |
Hou et al. | Public-key searchable encryption from lattices | |
Ocansey et al. | Searchable Encryption for Integrating Cloud and Sensor Networks with Secure Updates. | |
Pillai et al. | Blockchain-Based Searchable Asymmetric Encryption Scheme in Cloud Environment |
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 |