CN107491497B - 支持任意语言查询的多用户多关键词排序可搜索加密*** - Google Patents

支持任意语言查询的多用户多关键词排序可搜索加密*** Download PDF

Info

Publication number
CN107491497B
CN107491497B CN201710614034.3A CN201710614034A CN107491497B CN 107491497 B CN107491497 B CN 107491497B CN 201710614034 A CN201710614034 A CN 201710614034A CN 107491497 B CN107491497 B CN 107491497B
Authority
CN
China
Prior art keywords
user
key
keyword
cloud platform
document
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
CN201710614034.3A
Other languages
English (en)
Other versions
CN107491497A (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.)
Fuzhou University
Original Assignee
Fuzhou 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 Fuzhou University filed Critical Fuzhou University
Priority to CN201710614034.3A priority Critical patent/CN107491497B/zh
Publication of CN107491497A publication Critical patent/CN107491497A/zh
Application granted granted Critical
Publication of CN107491497B publication Critical patent/CN107491497B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种支持任意语言查询的多用户多关键词排序可搜索加密***,密钥生成中心
Figure DEST_PATH_IMAGE001
,为***中的每个实体生成密钥;云平台
Figure 229794DEST_PATH_IMAGE002
,以加密形式存储用户的文档,响应用户的数据检索请求;计算服务提供商
Figure DEST_PATH_IMAGE003
,提供在线计算的在线计算服务器;数据拥有者,对关键词和文档加密,并将其发送到所述云平台
Figure 569770DEST_PATH_IMAGE004
进行存储;用户,生成关键词陷门向所述云平台
Figure DEST_PATH_IMAGE005
发起数据检索请求。本发明所提出的一种支持任意语言查询的多用户多关键词排序可搜索加密***,存储开销小,支持任意语言,灵活的授权机制和基于时间的用户撤销机制,同时搜索多个数据拥有者的数据,灵活的关键词权重和偏好分数设置,保护用户隐私。

Description

支持任意语言查询的多用户多关键词排序可搜索加密***
技术领域
本发明涉及一种支持任意语言查询的多用户多关键词排序可搜索加密***。
背景技术
云计算提供了丰富的计算和存储资源,吸引越来越多的个人和企业将数据外包存储到云服务器中。数据加密算法可以将数据转换成不可读的密文,但是如何搜索和共享加密数据是一个具有挑战性的问题。可搜索加密(SE)是对加密数据进行关键词搜索的一种有效方法,在医疗、智能电网、物联网等领域有广泛的用途。为了通过SE来实现对加密文档的搜索,数据拥有者需要首先从文档中提取出一组关键词,并将其加密为加密索引。然后,数据拥有者将加密索引和加密文档上传到云服务器进行存储。在数据查询阶段,用户生成关键词陷门,并将陷门提交给云服务器。云服务器使用匹配算法来测试陷门和加密索引之间的关联关系,之后把含有关键词的加密文档返回给用户。
很多现有的SE***只支持单一关键词搜索或联结关键词查询,不能根据相关度分数对搜索到的文档进行排序。为了改善搜索体验,有人提出了多关键词排序可搜索加密机制(MRSE),使得云服务器返回前k篇具有最高相关度分数的文档,而不是所有文档给用户。然而大多数现有的MRSE***都是基于特殊的k-最近邻(KNN)算法设计的,这类***架构简称为KNN-SE。现有的基于KNN-SE架构的MRSE***有许多缺点,具有较大局限性。在保证方案效率和安全性的前提下,需要设计新的MRSE***来克服这些缺陷。
2000年,Song等人首次提出安全可搜索加密的概念。Boneh等人提出了公钥加密和关键词搜索方案。Curtmola和Cash等人利用可搜索对称加密方案来实现高可扩展性的***。2011年,Cao等人提出了支持单用户的MRSE方案,它基于KNN-SE架构。KNN-SE是一种对称加密***,它利用“内积相似度”来量化相似度并对结果进行排序。KNN-SE的安全密钥由两个k×k的矩阵M1、M2和向量S∈{0,1}k组成(k是***建立时预定义的关键词数量)。对于每篇文档,提取的关键词被映射到向量I∈{0,1}k,向量中的每一位都表示预定义的关键词是否存在于文档中。接着根据指示向量S,向量I***成两个向量I'和I”。I'、I”分别与
Figure BDA0001360174970000021
Figure BDA0001360174970000022
相乘来生成加密索引。生成陷门与生成加密索引的过程是类似的,不同之处在于***的查询向量I'和I”分别与
Figure BDA0001360174970000023
相乘。在查询阶段,利用内积来计算相关度分数。
大多数的MRSE***都是基于KNN-SE架构设计的。Yu等人提出了两轮可搜索加密***来实现排序多关键词搜索。他们使用KNN-SE架构和保序加密技术来保证***的安全性。Fu等人提出了支持同义词查询的多关键词排序搜索***,它也基于KNN-SE架构.***支持同义词查询并且在数据检索过程中允许同义词替换。我们在提取关键词时利用了TF-IDF(词频-逆文档频率)作为关键词权重。数据拥有者必须构造索引树来加速搜索算法,这消耗了很多存储空间。后来,他们提出了可验证的基于关键词的语义搜索***,支持搜索结果的可验证性;设计了一个基于符号的索引树来存储“路径”信息,可以使用该索引树来验证搜索结果。
Sun等人还提出了一种可验证的可搜索加密***来支持多关键词搜索和相似度排序。他们利用基于树的索引结构,多维算法和KNN-SE架构来提高搜索效率。Li等人将KNN-SE架构和盲存储方法相结合来设计MRSE***。然后,他们利用超递增序列来设计支持布尔查询的新型MRSE***,例如“AND”、“OR”和“NO”操作。他们还利用分类子字典方法来提高效率。Xia等人设计了基于树的索引结构和“贪心深度优先搜索”算法来提高搜索效率。他们还使用KNN-SE算法加密索引和查询。Chen等人设计了层次聚类方法来实现更多的搜索方式。分层方法是基于最小相关度阈值设计的,它能够聚合加密的文档,并将生成的分组划分为子集,从而实现更快的搜索速度。Fu等人使用局部敏感哈希函数、布隆过滤器和KNN-SE架构来实现多关键词模糊可搜索加密***。虽然大量的MRSE***是基于KNN-SE架构设计的,但是事实上该架构有几个明显的缺点。首先,在***建立阶段,KNN-SE需要预定义一组关键词集合,如果在***运行过程中需要定义新的关键词,整个***都需要重新构建。其次,KNN-SE架构是一种对称密钥加密***,因此,数据拥有者必须向用户透露其私钥从而授予查询权限。第三,为了支持任意语言的关键词检索,需要预定义的关键词数量和矩阵M1、M2的维度都将是天文数字,所以基于KNN-SE架构的MRSE***不能支持任意语言的关键词搜索。第四,计算出的文档相关度分数是明文,云服务器可以得到用户数据的统计信息,例如高度相关的文档和高频率的返回文档。这些信息会泄露用户的隐私。
发明内容
本发明的目的在于提供一种支持任意语言查询的多用户多关键词排序可搜索加密***,以克服现有技术中存在的缺陷。
为实现上述目的,本发明的技术方案是:一种支持任意语言查询的多用户多关键词排序可搜索加密***,包括:
密钥生成中心KGC,为***中的每个实体生成密钥;
云平台CP,以加密形式存储用户的文档,响应用户的数据检索请求;
计算服务提供商CSP,提供在线计算的在线计算服务器;
数据拥有者,对关键词和文档加密,并将其发送到所述云平台CP进行存储;
用户,生成关键词陷门向所述云平台CP发起数据检索请求。
在本发明一实施例中,所述密钥生成中心KGC通过具有门限解密功能的Paillier密码***的KeyGen算法,密钥生成中心KGC生成***公共参数PP=(g,N)、主私钥MSK=λ和用户Ai的公钥/私钥对
Figure BDA0001360174970000031
Figure BDA0001360174970000032
密钥生成中心KGC把私钥
Figure BDA0001360174970000033
发送给用户拥有者中的用户Ai,并公开公钥
Figure BDA0001360174970000034
密钥生成中心KGC计算主公钥MPK=gλ;密钥生成中心KGC存储主私钥MSK,并公开***公共参数PP;密钥生成中心KGC执行具有门限解密功能的Paillier密码***的主密钥***算法,生成部分密钥SK1=λ1和SK2=λ2,并分别秘密发送给所述云平台CP和所述计算服务提供商CSP。
在本发明一实施例中,一用户B将信息(B,AT1)发送给所述数据拥有者A1,申请在授权时间AT1期间内,对数据拥有者A1的数据进行搜索的授权;如果允许授权,所述数据拥有者A1为用户B生成授权证书:
Figure BDA0001360174970000035
其中,
Figure BDA0001360174970000041
私钥skΣ被秘密发送给用户B;
Figure BDA0001360174970000042
被发送给所述密钥生成中心KGC、所述云平台CP、所述计算服务提供商CSP和用户B;当授权时间AT1过期时,授权将自动失效;Sig/Verify是密码上安全的签名/验证算法,记哈希函数H1:{0,1}*→ZN和H2:ZN→K,K为对称密钥空间;
如果数据拥有者A1在授权时间AT1内撤销用户B的特权,则生成撤销证书:
Figure BDA0001360174970000043
其中,RT是撤销时间;撤销证书
Figure BDA0001360174970000044
被发送给所述密钥生成中心KGC、所述云平台CP、所述计算服务提供商CSP和用户B。
在本发明一实施例中,一用户B同时对多个数据拥有者(A1,...,Am)的文档进行查询,则从该多个数据拥有者(A1,...,Am)处得到授权证书
Figure BDA0001360174970000045
用户B向所述密钥生成中心KGC申请查询权限,在确认证书的有效性后,所述密钥生成中心KGC计算授权期限ATΣ=AT1∩...ATm,生成授权证书CERΣ,B
<cer=(A1,...,Am,B,ATΣ,pkΣ),Sig(cer,MSK)>,
其中,
Figure BDA0001360174970000046
skΣ=H1(A1,...,Am,B,ATΣ,MSK);skΣ被发送给用户B,pkΣ对所述云平台CP、所述计算服务提供商CSP和用户B公开;Sig/Verify是密码上安全的签名/验证算法,记哈希函数H1:{0,1}*→ZN和H2:ZN→K,K为对称密钥空间;
如果要在授权有效期ATΣ内撤销
Figure BDA00013601749700000412
所述密钥生成中心KGC生成撤销证书:
RVKΣ,B:<rvk=(CERΣ,B,revoke,RT),Sig(rvk,MSK)>;
其中,RT是撤销时间;所述密钥生成中心KGC把RVKΣ,B发送给所述云平台CP、所述计算服务提供商CSP和用户B。
在本发明一实施例中,数据拥有者Ai按照以下步骤对文档
Figure BDA0001360174970000047
进行加密数据,上传到所述云平台CP:
步骤S11:数据拥有者Ai提取一组描述文档的关键词集合
Figure BDA0001360174970000048
并为关键词设置不同的权重
Figure BDA0001360174970000049
记哈希函数H1:{0,1}*→ZN
Figure BDA00013601749700000410
Figure BDA00013601749700000411
为对称密钥空间;
步骤S12:数据拥有者Ai通过关键词转化密文算法K2C加密关键词得到
Figure BDA0001360174970000051
通过具有门限解密功能的Paillier密码***加密关键词权重得到
Figure BDA0001360174970000052
关键词/关键词权重对表示为
Figure BDA0001360174970000053
Figure BDA0001360174970000054
步骤S13:通过具有门限解密功能的Paillier密码***算法加密文档身份
Figure BDA0001360174970000055
和文档加密密钥
Figure BDA0001360174970000056
得到
Figure BDA0001360174970000057
Figure BDA0001360174970000058
步骤S14:利用哈希函数
Figure BDA0001360174970000059
Figure BDA00013601749700000510
进行计算,得到
Figure BDA00013601749700000511
数据拥有者Ai利用对称加密算法SEnc加密文档
Figure BDA00013601749700000512
得到密文:
Figure BDA00013601749700000513
其中,SEnc/SDec是密码上安全的对称加密/解密算法;
步骤S15:数据拥有者Ai把加密索引
Figure BDA00013601749700000514
和密文
Figure BDA00013601749700000515
外包存储到云平台CP。
在本发明一实施例中,在查询阶段,用户B生成陷门进行查询:
步骤S21:用户B确定查询关键词
Figure BDA00013601749700000516
和查询关键词的偏好分数
Figure BDA00013601749700000517
偏好分数表示查询中关键词的重要性;
步骤S22:用户B通过关键词转化密文算法K2C加密查询关键词得到
Figure BDA00013601749700000518
利用通过具有门限解密功能的Paillier密码***加密偏好分数得到
Figure BDA00013601749700000519
Figure BDA00013601749700000520
步骤S23:用户B使用私钥skB对查询
Figure BDA00013601749700000522
进行签名并生成签名
Figure BDA00013601749700000523
步骤S24:用户B把加密的查询
Figure BDA00013601749700000524
签名
Figure BDA00013601749700000525
和身份UserB发送给云平台CP。
在本发明一实施例中,接收到关键词搜索请求后,云平台CP先核实用户B是否有权访问数据;如果用户B有权限,云平台CP使用用户B的公钥pkB验证查询
Figure BDA00013601749700000526
的签名
Figure BDA00013601749700000527
如果签名
Figure BDA00013601749700000528
无效,云平台CP拒绝用户B查询请求;否则,云平台CP会对搜索请求做出响应,且云平台CP先为每篇文档计算加密查询
Figure BDA00013601749700000529
和加密索引的相关度分数;接着云平台CP返回相关度分数最高的前k篇文档。
在本发明一实施例中,通过采用跨域安全多关键词搜索协议MKS,为每篇文档计算加密查询
Figure BDA0001360174970000061
和加密索引的相关度分数。
在本发明一实施例中,所述云平台CP通过如下步骤返回相关度分数最高的前k篇文档:
步骤S31:通过采用跨域安全最大选取协议MAX,在两篇加密文档中选取出相关度分数最高的文档;
步骤S32:通过采用跨域安全最大n选取协议MAXn,利用胡步骤S31的计算结果,在n篇文档中选取出相关度分数最高的文档;
步骤S33:通过采用跨域安全top-k数据检索协议Top-K,利用步骤S32的计算结果,选取出相关度分数最高的前k篇文档。
在本发明一实施例中,用户B接收到k篇加密文档后,通过公钥pkΣ,恢复相关度分数Ii、文档号IDi和文档加密密钥Ki,1≤i≤k;通过私有信息检索PIR或者不经意内存访问ORAM的方法,用户B从云平台CP处获得加密文件,而不会泄漏访问模式;用户B先恢复出文档加密密钥K,然后计算
Figure BDA0001360174970000062
并利用K'恢复出文档M,哈希函数H1:{0,1}*→ZN
Figure BDA0001360174970000063
Figure BDA0001360174970000064
为对称密钥空间。
相较于现有技术,本发明具有以下有益效果:
1.存储开销小。在***生成阶段不需要预定义关键词集合,在运行过程中可以任意添加新的关键词。
2.支持任意语言。本发明使用Unicode对任意语言的关键词进行编码,并利用有效的方式将其转换为密文。
3.灵活的授权机制和基于时间的用户撤销机制。***允许数据拥有者在一个特定时间段内把搜索和解密权限授予给用户。当授权期限到期时,***会自动撤销这些用户的搜索权限。此外,***也为数据拥有者提供了在授权期限内进行权限撤销的有效方法。
4.同时搜索多个数据拥有者的数据。本发明中,用户只要使用一个陷门就能同时对多个数据拥有者的加密文档进行搜索。
5.灵活的关键词权重和偏好分数设置。在加密阶段,数据拥有者可以根据关键词的重要性来设置不同的关键词权重。在查询阶段,用户可以为查询的多个关键词设置不同的偏好分数。在搜索阶段,云服务器可以根据关键词权重和偏好分数计算得到加密形式的相关度分数,并将前k篇文档返回给数据用户
6.保护用户隐私。在现有的MRSE***中,云服务器能够获取每个搜索文档的相关度分数,并且知道哪些文档是最相关的。在本发明中,由于返回给用户的相关度分数是加密的,云服务器从搜索结果中获取不到任何明文和统计信息。
附图说明
图1为本发明一实施例中***框架图。
图2为本发明一实施例中K2C算法的实例示意图。
图3为本发明一实施例中加密过程示意图示意图。
图4为本发明一实施例中查询过程示意图。
图5为本发明一实施例中计算相关度分数示意图。
图6为本发明一实施例中MAXn协议的示意图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
本发明一种支持任意语言查询的多用户多关键词排序可搜索加密***,如图1为本发明的***架构,***包括以下几种实体:
密钥生成中心。密钥生成中心(KGC)是完全可信的,负责为***中的每个实体生成密钥。
云平台。云平台(CP)有着强大的存储和计算能力,并以加密形式存储用户的文档。CP还响应用户的数据检索请求。
计算服务提供商。计算服务提供商(CSP)是在线计算服务器,具有强大的计算能力。
数据拥有者。数据拥有者加密关键词和文档,并将其发送到CP进行存储。
用户。用户生成关键词陷门向CP发起数据检索请求。
进一步的,***在建立阶段不需要预定义关键词集合,在***运行过程中可以任意添加新的关键词,极大地降低了存储开销。利用Unicode对任意语言的关键词进行编码,并通过有效的方式将其转换为密文。允许用户使用一个陷门来同时搜索多个数据拥有者的文档。提供灵活的授权机制和基于时间的用户撤销机制。***允许数据拥有者在一个特定时间段内把搜索和解密权限授予给用户。当授权期限到期时,***会自动撤销这些用户的搜索权限。此外,***也为数据拥有者提供了在授权期限内进行权限撤销的有效方法。
进一步的,提供灵活的关键词权重和偏好分数设置。在加密阶段,数据拥有者可以根据关键词的重要性来设置不同的关键词权重。在查询阶段,用户可以为查询的多个关键词设置不同的偏好分数。在搜索阶段,云服务器可以根据关键词权重和偏好分数计算得到加密形式的相关度分数,并将相关度最高的前k篇文档返回给数据用户。
在现有的MRSE***中,云服务器能够获取每个搜索文档的相关度分数。由于计算的相关度分数是加密的,云服务器从搜索结果中获取不到任何明文和统计信息,有效地保护了用户隐私。
为了让本领域技术人员进一步了解本发明所提出的***,下面结合具体实施例进行说明。
进一步,在本实施例中,采用具有门限解密功能的Paillier密码***(PCTD:Paillier Cryptosystem with Threshold Decryption),实现了同态加密,可以在云平台中保护外包数据的隐私性。利用同态性质,无需对密文进行解密,就可以直接进行各种计算,从而就能实现安全的外包计算。此外,它的计算开销低于全同态加密***所需的计算开销。令
Figure BDA0001360174970000081
表示X的比特长度。
密钥生成:κ是安全参数,p和q是两个大素数,
Figure BDA0001360174970000082
计算N=pq,λ=lcm(p-1,q-1)/2(lcm表示两个数的最小公倍数)。定义函数
Figure BDA0001360174970000083
选择生成元g并且g的阶为ord(g)=(p-1)(q-1)/2。***公共参数PP=(g,N),主私钥SK=λ。***为每位用户i分配私钥ski∈ZN和公钥
Figure BDA00013601749700000810
加密:对于输入的明文m∈ZN,用户随机选择r∈[1,N/4],使用其公钥pki将明文m加密成密文
Figure BDA0001360174970000084
其中
Figure BDA0001360174970000085
C2=gr mod N2
使用用户私钥ski解密:对于输入的密文
Figure BDA0001360174970000086
和私钥ski,我们通过计算能够得到明文
Figure BDA0001360174970000087
使用主私钥SK进行解密:利用***的主私钥SK=λ,通过
Figure BDA0001360174970000088
计算就能对所有使用公钥加密生成的密文
Figure BDA0001360174970000089
进行解密。若gcd(λ,N)=1(gcd表示两个数的最大公约数)成立,则有
Figure BDA0001360174970000091
主私钥***:主私钥SK=λ可以随机***成两个部分SK1=λ1和SK2=λ2,使得λ12=0modλ,λ12=1modN2
使用SK1进行部分解密(PD1):对于输入的密文
Figure BDA0001360174970000092
可以利用SK1=λ1来计算
Figure BDA0001360174970000093
使用SK2进行部分解密(PD2):对于输入的密文
Figure BDA0001360174970000094
Figure BDA0001360174970000095
可以利用SK2=λ2来计算
Figure BDA0001360174970000096
通过计算可以恢复出明文
Figure BDA0001360174970000097
密文更新(CR):CR算法用于更新密文,将密文
Figure BDA0001360174970000098
转化成新的密文
Figure BDA0001360174970000099
且m=m'。随机选择r'∈ZN,计算
Figure BDA00013601749700000910
C2'=C2·gr'modN2
PCTD具有同态性:对于随机的r∈ZN
Figure BDA00013601749700000911
Figure BDA00013601749700000912
本***使用了下述协议,这些协议都需要CP和CSP交互运算执行。pkA和pkB是用户A和B的公钥。pkΣ是为用户A和B定义的联合公钥。
跨域安全加法协议(SAD):对于给定的
Figure BDA00013601749700000913
Figure BDA00013601749700000914
计算得到
Figure BDA00013601749700000915
跨域安全乘法协议(SMD):对于给定的
Figure BDA00013601749700000916
Figure BDA00013601749700000917
计算得到
Figure BDA00013601749700000918
进一步的,在本实施例中,为了把一个关键词编码成集合ZN中的一个元素,首先把关键词中的每个字母转换成其ASCII码形式,接着把十六进制的ASCII码转化成十进制。根据每个字母在关键词中的位置,每个元素乘以一定的权重,将已加权的元素相加,然后使用PCTD算法对相加后的大整数进行加密。该算法称为关键词转化密文算法(K2C:keyword tociphertext algorithm),如图3所示。
为了将任何语言中的任何关键词转换为密文,而无需预定义关键词集,本实施例提供了安全关键词转化密文算法(K2C),主要包括以下步骤:
1.把关键词中的每个字符(包括特殊字符)都转化成其unicode形式(UTF-16:16位Unicode转换格式)。2.把每个十六进制unicode转换为十进制整数。3.根据每个字母在关键词中的位置,每个元素乘以一定的权重。4.把所有已加权的整数相加成大整数。5.使用PCTD算法和数据拥有者的公钥把关键词的大整数加密成密文。
进一步的,图2中给出了一个例子来说明如何使用K2C算法把英文、中文、韩文和日文的字符串“关键词”转换为密文。值得注意的是,K2C算法可以成功地把关键词转换为唯一的大整数,成功解决了其他可搜索加密算法中使用布隆过滤器所引起的错误概率问题。
进一步的,在本实施例中,还提供一种加密关键词等价测试协议,该协议用于检测两个关键词密文是否包含相同的关键词。以两个由不同公钥加密的关键词
Figure BDA0001360174970000101
Figure BDA0001360174970000102
作为输入,加密关键词等价测试协议KET输出加密结果
Figure BDA0001360174970000103
来表示两个关键词是否相同。如果u*=1,表示两个关键词是相同的;否则u*=0。令
Figure BDA0001360174970000104
CP和CSP交互执行加密关键词等价测试协议KET。按照如下步骤实现:
步骤一:1.CP计算
Figure BDA0001360174970000105
Figure BDA0001360174970000106
Figure BDA0001360174970000107
Figure BDA0001360174970000108
2.CP随机选取r1、r2、r3、r4,使其满足
Figure BDA0001360174970000109
Figure BDA00013601749700001010
接着,CP随机掷硬币s1,s2∈{0,1}。
3.CP和CSP执行以下操作
如果s1=1,
Figure BDA00013601749700001011
如果s1=0,
Figure BDA00013601749700001012
如果s2=1,
Figure BDA00013601749700001013
如果s2=0,
Figure BDA00013601749700001014
4.CP计算
Figure BDA00013601749700001015
把(l1,l1',l2,l2')发送给CSP。
步骤二:CSP解密
Figure BDA00013601749700001016
如果
Figure BDA00013601749700001017
CSP设置u1'=0,否则u1'=1。如果
Figure BDA00013601749700001018
CSP设置u2'=0,否则u2'=1。接着CSP利用公钥pkΣ把u1',u2'加密成
Figure BDA0001360174970000111
并将其发送给CP。
步骤三:接收到
Figure BDA0001360174970000112
后,CP计算如下:
如果s1=1,CP计算
Figure BDA0001360174970000113
否则CP计算
Figure BDA0001360174970000114
如果s2=1,CP计算
Figure BDA0001360174970000115
否则CP计算
Figure BDA0001360174970000116
如果u1=1,表示X≥Y;否则u1=0。如果u2=1,表示Y≥X;否则u2=0。
接着CP和CSP计算
Figure BDA0001360174970000117
进一步的,在本实施例中,密钥生成算法采用通过运行PCTD的KeyGen算法,KGC生成***公共参数PP=(g,N)、主私钥MSK=λ和用户Ai的公钥/私钥对
Figure BDA0001360174970000118
KGC把
Figure BDA0001360174970000119
秘密发送给用户Ai而公开
Figure BDA00013601749700001110
KGC计算主公钥MPK=gλ。KGC秘密存储MSK,公开PP。接着KGC执行PCTD的主密钥***算法来生成部分密钥SK1=λ1和SK2=λ2,并分别把它们秘密发送给CP和CSP。
SEnc/SDec是密码上安全的对称加密/解密算法(对称密钥空间为
Figure BDA00013601749700001111
),Sig/Verify是密码上安全的签名/验证算法(本发明不具体指定该算法)。定义哈希函数H1:{0,1}*→ZN
Figure BDA00013601749700001112
进一步的,为了简化表示,利用将ZN的元素作为Sig算法的私钥。在实际使用中,可以使用哈希函数从ZN的元素中计算出签名密钥。
进一步的,在本实施例中,还提供用户授权和撤销算法。
当处于单个数据拥有者场景时:
假设用户B希望得到授权,能够在2016年1月1日至2017年1月1日(授权时间AT1=“20160101-20170101”)期间内对数据拥有者A1的数据进行搜索,他必须把信息(B,AT1)发送给数据拥有者A1来申请授权。如果允许授权,A1会为B生成授权证书。
Figure BDA00013601749700001113
其中
Figure BDA00013601749700001114
私钥skΣ被秘密发送给用户B。
Figure BDA00013601749700001115
被发送给KGC、CP、CSP和B。当AT1过期时,授权将自动失效。
如果A1想要在AT1时间段内撤销B的特权,它必须生成撤销证书
Figure BDA00013601749700001116
Figure BDA0001360174970000121
其中RT是撤销时间。接着,
Figure BDA0001360174970000122
被发送给KGC、CP、CSP和B。
当处于多个数据拥有者场景时:
假设用户B想要同时对多个数据拥有者(A1,...,Am)的文档进行查询,他首先需要从(A1,...,Am)处得到授权证书
Figure BDA0001360174970000123
接着他向KGC申请查询权限。在确认证书的有效性后,KGC计算授权期限ATΣ=AT1∩...ATm。接着KGC生成授权证书CERΣ,B
<cer=(A1,...,Am,B,ATΣ,pkΣ),Sig(cer,MSK)>,
其中
Figure BDA0001360174970000124
skΣ=H1(A1,...,Am,B,ATΣ,MSK)。skΣ被秘密发送给用户B,pkΣ对CP、CSP和B公开。
如果要在授权有效期ATΣ内撤销
Figure BDA0001360174970000125
KGC生成撤销证书RVKΣ,B:<rvk=(CERΣ,B,revoke,RT),Sig(rvk,MSK)>,其中RT是撤销时间。接着KGC把RVKΣ,B发送给CP、CSP和B。
进一步的,在本实施例中,在加密阶段,假设数据拥有者Ai想要把文档
Figure BDA0001360174970000126
上传到云服务器,按照以下步骤加密数据。图3是加密算法的示意图。
1.数据拥有者首先提取一组关键词集合
Figure BDA0001360174970000127
来描述文档。为了区分关键词的重要性,Ai为关键词设置不同的权重
Figure BDA0001360174970000128
有很多方法来计算关键词权重,例如TF-IDF(词频-逆文档频率)。数据拥有者选择一种定义关键词权重的方法(本发明不指定具体方法)。
2.Ai利用K2C算法加密关键词得到
Figure BDA0001360174970000129
利用PCTD算法加密关键词权重得到
Figure BDA00013601749700001210
关键词/关键词权重对表示为
Figure BDA00013601749700001211
3.利用PCTD算法加密文档身份
Figure BDA00013601749700001212
和文档加密密钥Kγj∈ZN得到
Figure BDA00013601749700001213
Figure BDA00013601749700001214
4.利用哈希函数
Figure BDA00013601749700001215
Figure BDA00013601749700001216
进行计算得到
Figure BDA00013601749700001217
接着Ai利用对称加密算法SEnc加密文档
Figure BDA00013601749700001218
得到密文
Figure BDA00013601749700001219
5.Ai把加密索引
Figure BDA00013601749700001220
和加密文档
Figure BDA00013601749700001221
外包存储到云平台。
进一步的,如果关键词权重是小数(例如TF-IDF值),数据拥有者可以用一个整数(10或者100)分别乘以各个关键词的权重,使得这些小数可以映射到ZN中。
进一步的,在本实施例中,在查询阶段,用户B生成陷门进行查询,如图4所示。
1.B指定查询关键词
Figure BDA0001360174970000131
和查询关键词的偏好分数
Figure BDA0001360174970000132
偏好分数表示查询中关键词的重要性。
2.B利用K2C算法加密查询关键词得到
Figure BDA0001360174970000133
利用PCTD算法加密偏好分数得到
Figure BDA0001360174970000134
Figure BDA0001360174970000135
3.B使用私钥skB对查询
Figure BDA0001360174970000136
进行签名并生成签名
Figure BDA0001360174970000137
4.B把加密的查询
Figure BDA0001360174970000138
签名
Figure BDA0001360174970000139
和身份UserB发送给CP。
进一步的的,在本实施例中,在搜索阶段,接收到关键词搜索请求后,CP先核实用户B是否有权访问数据。如果B有权限,CP使用B的公钥pkB验证查询
Figure BDA00013601749700001310
的签名
Figure BDA00013601749700001311
如果
Figure BDA00013601749700001312
无效,CP会拒绝查询请求。否则,CP会对搜索请求做出响应。
1.CP先为每篇文档计算加密查询
Figure BDA00013601749700001313
和加密索引的相关度分数。
2.接着CP会返回相关度分数较高的前k篇文档。
具体流程包括:
A.相关度分数计算。
为了计算查询和文档索引之间的相关度分数,本发明设计了跨域安全多关键词搜索协议(MKS:secure multiple keyword search protocol across domains)。
Figure BDA00013601749700001314
Figure BDA0001360174970000141
MKS协议的输入为加密索引
Figure BDA0001360174970000142
和加密查询
Figure BDA0001360174970000143
其中
Figure BDA0001360174970000144
输出为加密的相关度分数
Figure BDA0001360174970000145
对于每个查询关键词Yj(1≤j≤n2),MKS协议计算它和加密索引的相关度分数。协议先计算Yj和Xi(1≤i≤n1)的相关度分数(第三行)。
1.第四行,利用KET算法检验Xi是否等于Yj。如果Xi=Yj,输出
Figure BDA0001360174970000146
否则
Figure BDA0001360174970000147
2.第五行,将关键词权重αi与偏好分数βj相乘:
Figure BDA0001360174970000148
3.第六行,如果Xi=Yj,由于
Figure BDA0001360174970000149
Xi和Yj的相关度分数
Figure BDA00013601749700001410
如果Xi≠Yj,由于
Figure BDA00013601749700001411
Figure BDA00013601749700001412
4.第七行,把相关度分数si与I相加:
Figure BDA00013601749700001413
计算相关度分数后,把
Figure BDA00013601749700001414
转化为
Figure BDA00013601749700001415
如图5所示。
B.Top-k排序。
计算相关度分数后,根据相关度分数返回前k篇加密文档。Top-k排序的要求如下所示:在排序过程中,加密的相关度分数信息不能泄露给CP和CSP,即CP和CSP不知道返回给用户的是哪几篇文档。为了实现top-k排序,本发明设计了三个保护隐私的协议。
1.跨域安全最大选取协议(MAX)在两篇加密文档中选取出相关度分数最高的文档。
2.跨域安全最大n选取协议(MAXn)使用MAX协议在n篇文档中选取出相关度分数最高的文档。
3.跨域安全top-k数据检索协议(Top-K)利用MAXn协议选取出相关度分数最高的前k篇文档。
B.1跨域安全最大选取协议(MAX)
给定
Figure BDA0001360174970000151
Figure BDA0001360174970000152
(由不同密钥进行加密),MAX协议输出
Figure BDA0001360174970000153
使得
Figure BDA0001360174970000154
IDU,KU分别对应其文档号和文档加密密钥。在协议中,CP和CSP不能够区分TU的来源,即不能区分TU来自于
Figure BDA0001360174970000155
或是
Figure BDA0001360174970000156
MAX协议有三个步骤,并且需要CP和CSP交互执行。
步骤一:CP计算
Figure BDA0001360174970000157
Figure BDA0001360174970000158
如果
Figure BDA0001360174970000159
Figure BDA00013601749700001510
则有
Figure BDA00013601749700001511
CP随机选取r1,r2,r3,r4∈ZN,其中
Figure BDA00013601749700001512
接着CP随机掷硬币s1,s2∈{0,1}。
如果s=1,CP和CSP计算
Figure BDA00013601749700001513
Figure BDA00013601749700001514
Figure BDA00013601749700001515
Figure BDA00013601749700001516
如果s=0,CP和CSP计算
Figure BDA00013601749700001517
Figure BDA00013601749700001518
Figure BDA0001360174970000161
Figure BDA0001360174970000162
CP利用密钥SK1计算
Figure BDA0001360174970000163
并把C1'、C1、C2、C3、C4发送给CSP。
步骤二:CSP接收到C1'、C1、C2、C3、C4后,利用密钥SK2计算
Figure BDA0001360174970000164
如果
Figure BDA0001360174970000165
CSP设置α=0,计算
Figure BDA0001360174970000166
如果
Figure BDA0001360174970000167
CSP设置α=1,计算C5=CR(C2),C6=CR(C3),C7=CR(C4)。
接着CSP加密
Figure BDA0001360174970000168
并把
Figure BDA0001360174970000169
发送给CP。
步骤三:CP接收到
Figure BDA00013601749700001610
后,会执行以下计算:
如果s=1,CP和CSP计算
Figure BDA00013601749700001611
Figure BDA00013601749700001612
Figure BDA00013601749700001613
如果s=0,CP和CSP计算
Figure BDA00013601749700001614
Figure BDA00013601749700001615
Figure BDA00013601749700001616
其中,IU
Figure BDA00013601749700001617
Figure BDA00013601749700001618
两个数中较大的数。
B.2:跨域安全最大n选取协议(MAXn)。
输入n个加密的文档T1,...,Tn,MAXn协议输出
Figure BDA00013601749700001619
使得IMAX=max(I1,...,In),IDMAX,KMAX分别对应其文档号和文档加密密钥。在协议中,CP和CSP不能够识别TMAX的来源,即不能区分TMAX来自于T1,...,Tn中的那个元组。
如图6所示,MAXn协议需要
Figure BDA00013601749700001620
***作来找出最大元组。在每一轮,利用MAX协议对两个相邻的加密文档进行计算选取出它们中的最大元组。在
Figure BDA00013601749700001621
轮后,就能够得到最大元组TMAX
B.3:跨域安全top-k数据检索协议(Top-K)。
输入n个加密的文档T1,...,Tn,Top-K协议输出相关度分数最高的k篇文档。
首先,初始化空集合Sa来存储k个结果和集合Sb={T1,...,Tn}。Top-K协议需要k***作才能得到结果。每一轮,协议会找出最大元组。每一轮的操作如下所示。
Figure BDA0001360174970000171
Figure BDA0001360174970000181
1.第3-4行,执行MAXn协议得到第i轮的最大元组
Figure BDA0001360174970000182
Figure BDA0001360174970000183
添加到集合Sa中。
2.第5-7行,对于Sb中每一个加密的元组,CP和CSP计算
Figure BDA0001360174970000184
如果
Figure BDA0001360174970000185
则有
Figure BDA0001360174970000186
否则
Figure BDA0001360174970000187
然后CP利用密钥SK1对Vj部分解密得到
Figure BDA0001360174970000188
3.第8行,为了隐藏明文信息,CP利用πi对(Vj,Vj')进行置换得到
Figure BDA0001360174970000189
并将其发送给CSP。
4.第9-14行,CSP对
Figure BDA00013601749700001810
进行解密得到βj(1≤j≤n)。如果βj=0,CSP设置
Figure BDA00013601749700001811
否则
Figure BDA00013601749700001812
5.第15行,CP接收到
Figure BDA00013601749700001813
后,首先利用置换逆运算πi -1恢复出原始序列(A1,...An)。对于
Figure BDA00013601749700001814
的来源元组Tζ,该协议计算出
Figure BDA00013601749700001815
对于其他元组,该协议计算出
Figure BDA00013601749700001816
6.第16-18行,更新
Figure BDA00013601749700001817
通过计算
Figure BDA00013601749700001818
Figure BDA00013601749700001819
的来源元组Tζ中的
Figure BDA00013601749700001820
会被设置成
Figure BDA00013601749700001821
对于其他元组(1≤j≤n和j≠ζ),通过计算
Figure BDA00013601749700001822
Figure BDA00013601749700001823
不会改变。在k***作后,Sa会包含k个相关度分数较高的元组。
进一步的,在本实施例中,在解密阶段,用户B接收到k篇加密文档后。利用公钥pkΣ来恢复相关度分数Ii、文档号IDi和密钥Ki(1≤i≤k)。接着利用私有信息检索(PIR)或者不经意内存访问(ORAM)的方法,用户从CP处安全地获得加密文件,而不会泄漏访问模式。用户B先恢复出文档加密密钥K,然后计算
Figure BDA00013601749700001824
并利用K'恢复出文档M。
进一步的,在本实施例中,在多关键词排序可搜索加密方案(MRSE)中,云服务器收到用户对加密数据进行多关键词搜索的请求后,可以返回相关度最高的前k篇文档。在保护数据可用性的前提下,提供了一种在云存储***中保护数据隐私的有效方式。许多现有的MRSE***是基于KNN-SE(可搜索加密的k最近邻算法)架构设计的。但是KNN-SE架构存在很多缺陷。本发明提出了一种新的MRSE***,克服了基于KNN-SE架构的MRSE***中存在的所有缺陷。新***不需要预定义关键词集合,它支持任意语言的关键词搜索,提供了灵活的搜索权限授予和基于时间控制的用户撤销机制。在本发明中,云服务器无法识别哪些文档是返回给用户的相关性最高的前k篇文档,因此它实现了更好的数据隐私保护。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (9)

1.一种支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,包括:
密钥生成中心KGC,为***中的每个实体生成密钥;
云平台CP,以加密形式存储用户的文档,响应用户的数据检索请求;
计算服务提供商CSP,提供在线计算的在线计算服务器;
数据拥有者,对关键词和文档加密,并将其发送到所述云平台CP进行存储;
用户,生成关键词陷门向所述云平台CP发起数据检索请求;所述密钥生成中心KGC通过具有门限解密功能的Paillier密码***的KeyGen算法,密钥生成中心KGC生成***公共参数PP=(g,N)、主私钥MSK=λ和用户Ai的公钥/私钥对
Figure FDA0002451895530000011
Figure FDA0002451895530000012
密钥生成中心KGC把私钥
Figure FDA0002451895530000013
发送给用户拥有者中的用户Ai,并公开公钥
Figure FDA0002451895530000014
密钥生成中心KGC计算主公钥MPK=gλ;密钥生成中心KGC存储主私钥MSK,并公开***公共参数PP;密钥生成中心KGC执行具有门限解密功能的Paillier密码***的主密钥***算法,生成部分密钥SK1=λ1和SK2=λ2,并分别秘密发送给所述云平台CP和所述计算服务提供商CSP。
2.根据权利要求1所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,一用户B将信息(B,AT1)发送给所述数据拥有者A1,申请在授权时间AT1期间内,对数据拥有者A1的数据进行搜索的授权;如果允许授权,所述数据拥有者A1为用户B生成授权证书:
Figure FDA0002451895530000015
其中,
Figure FDA0002451895530000016
私钥skΣ被秘密发送给用户B;
Figure FDA0002451895530000017
被发送给所述密钥生成中心KGC、所述云平台CP、所述计算服务提供商CSP和用户B;当授权时间AT1过期时,授权将自动失效;Sig/Verify是密码上安全的签名/验证算法,记哈希函数H1:{0,1}*→ZN和H2:ZN→K,K为对称密钥空间;
如果数据拥有者A1在授权时间AT1内撤销用户B的特权,则生成撤销证书:
Figure FDA0002451895530000021
其中,RT是撤销时间;撤销证书
Figure FDA0002451895530000022
被发送给所述密钥生成中心KGC、所述云平台CP、所述计算服务提供商CSP和用户B。
3.根据权利要求1所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,一用户B同时对多个数据拥有者(A1,...,Am)的文档进行查询,则从该多个数据拥有者(A1,...,Am)处得到授权证书
Figure FDA0002451895530000023
用户B向所述密钥生成中心KGC申请查询权限,在确认证书的有效性后,所述密钥生成中心KGC计算授权期限ATΣ=AT1∩...ATm,生成授权证书CERΣ,B
<cer=(A1,...,Am,B,ATΣ,pkΣ),Sig(cer,MSK)>,
其中,
Figure FDA0002451895530000024
skΣ=H1(A1,...,Am,B,ATΣ,MSK);skΣ被发送给用户B,pkΣ对所述云平台CP、所述计算服务提供商CSP和用户B公开;Sig/Verify是密码上安全的签名/验证算法,记哈希函数H1:{0,1}*→ZN和H2:ZN→K,K为对称密钥空间;
如果要在授权有效期ATΣ内撤销
Figure FDA0002451895530000025
所述密钥生成中心KGC生成撤销证书:
RVKΣ,B:〈rvk=(CERΣ,B,revoke,RT),Sig(rvk,MSK)>;
其中,RT是撤销时间;所述密钥生成中心KGC把RVKΣ,B发送给所述云平台CP、所述计算服务提供商CSP和用户B。
4.根据权利要求1所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,数据拥有者Ai按照以下步骤对文档
Figure FDA0002451895530000026
进行加密数据,上传到所述云平台CP:
步骤S11:数据拥有者Ai提取一组描述文档的关键词集合
Figure FDA0002451895530000027
并为关键词设置不同的权重
Figure FDA0002451895530000028
记哈希函数H1:{0,1}*→ZN和H2:ZN→K,K为对称密钥空间;
步骤S12:数据拥有者Ai通过关键词转化密文算法K2C加密关键词得到
Figure FDA0002451895530000029
通过具有门限解密功能的Paillier密码***加密关键词权重得到
Figure FDA0002451895530000031
关键词/关键词权重对表示为
Figure FDA0002451895530000032
Figure FDA0002451895530000033
步骤S13:通过具有门限解密功能的Paillier密码***算法加密文档身份
Figure FDA0002451895530000034
和文档加密密钥
Figure FDA0002451895530000035
得到
Figure FDA0002451895530000036
Figure FDA0002451895530000037
步骤S14:利用哈希函数H2:ZN→K对
Figure FDA0002451895530000038
进行计算,得到
Figure FDA0002451895530000039
数据拥有者Ai利用对称加密算法SEnc加密文档
Figure FDA00024518955300000310
得到密文:
Figure FDA00024518955300000311
其中,SEnc/SDec是密码上安全的对称加密/解密算法;
步骤S15:数据拥有者Ai把加密索引
Figure FDA00024518955300000312
和密文
Figure FDA00024518955300000313
外包存储到云平台CP。
5.根据权利要求1所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,在查询阶段,用户B生成陷门进行查询:
步骤S21:用户B确定查询关键词
Figure FDA00024518955300000314
和查询关键词的偏好分数
Figure FDA00024518955300000315
偏好分数表示查询中关键词的重要性;
步骤S22:用户B通过关键词转化密文算法K2C加密查询关键词得到
Figure FDA00024518955300000316
利用通过具有门限解密功能的Paillier密码***加密偏好分数得到
Figure FDA00024518955300000317
Figure FDA00024518955300000318
步骤S23:用户B使用私钥skB对查询Q进行签名并生成签名SQ=Sig(Q,skB);
步骤S24:用户B把加密的查询Q,签名SQ和身份UserB发送给云平台CP。
6.根据权利要求1所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,接收到关键词搜索请求后,云平台CP先核实用户B是否有权访问数据;如果用户B有权限,云平台CP使用用户B的公钥pkB验证查询Q的签名SQ;如果签名SQ无效,云平台CP拒绝用户B查询请求;否则,云平台CP会对搜索请求做出响应,且云平台CP先为每篇文档计算加密查询Q和加密索引的相关度分数;接着云平台CP返回相关度分数最高的前k篇文档。
7.根据权利要求6所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,通过采用跨域安全多关键词搜索协议MKS,为每篇文档计算加密查询Q和加密索引的相关度分数。
8.根据权利要求7所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,所述云平台CP通过如下步骤返回相关度分数最高的前k篇文档:
步骤S31:通过采用跨域安全最大选取协议MAX,在两篇加密文档中选取出相关度分数最高的文档;
步骤S32:通过采用跨域安全最大n选取协议MAXn,利用步骤S31的计算结果,在n篇文档中选取出相关度分数最高的文档;
步骤S33:通过采用跨域安全top-k数据检索协议Top-K,利用步骤S32的计算结果,选取出相关度分数最高的前k篇文档。
9.根据权利要求1所述的支持任意语言查询的多用户多关键词排序可搜索加密***,其特征在于,用户B接收到k篇加密文档后,通过公钥pkΣ,恢复相关度分数Ii、文档号IDi和文档加密密钥Ki,1≤i≤k;通过私有信息检索PIR或者不经意内存访问ORAM的方法,用户B从云平台CP处获得加密文件,而不会泄漏访问模式;用户B先恢复出文档加密密钥K,然后计算K'=H2(Ki)∈K,并利用K'恢复出文档M,哈希函数H1:{0,1}*→ZN和H2:ZN→K,K为对称密钥空间。
CN201710614034.3A 2017-07-25 2017-07-25 支持任意语言查询的多用户多关键词排序可搜索加密*** Active CN107491497B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710614034.3A CN107491497B (zh) 2017-07-25 2017-07-25 支持任意语言查询的多用户多关键词排序可搜索加密***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710614034.3A CN107491497B (zh) 2017-07-25 2017-07-25 支持任意语言查询的多用户多关键词排序可搜索加密***

Publications (2)

Publication Number Publication Date
CN107491497A CN107491497A (zh) 2017-12-19
CN107491497B true CN107491497B (zh) 2020-08-11

Family

ID=60644947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710614034.3A Active CN107491497B (zh) 2017-07-25 2017-07-25 支持任意语言查询的多用户多关键词排序可搜索加密***

Country Status (1)

Country Link
CN (1) CN107491497B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108156140B (zh) * 2017-12-13 2020-10-30 西安电子科技大学 一种支持数值属性比较的多关键字可搜索加密方法
CN108632032B (zh) * 2018-02-22 2021-11-02 福州大学 无密钥托管的安全多关键词排序检索***
CN108599937B (zh) * 2018-04-20 2020-10-09 西安电子科技大学 一种多关键字可搜索的公钥加密方法
CN108768608B (zh) * 2018-05-25 2020-05-12 电子科技大学 在区块链pki下支持瘦客户端的隐私保护身份认证方法
CN109492410B (zh) * 2018-10-09 2020-09-01 华南农业大学 数据可搜索加密和关键词搜索方法、***及终端、设备
CN109728910A (zh) * 2018-12-27 2019-05-07 北京永恒纪元科技有限公司 一种高效的门限分布式椭圆曲线密钥生成及签名方法和***
CN110245170B (zh) * 2019-04-19 2021-11-16 联通数字科技有限公司 数据处理方法及***
CN110059148A (zh) * 2019-04-24 2019-07-26 上海交通大学 应用于电子地图的空间关键字查询的准确搜索方法
CN110069592A (zh) * 2019-04-24 2019-07-30 上海交通大学 应用于电子地图的空间关键字查询的搜索方法
CN110224978A (zh) * 2019-04-30 2019-09-10 济南汇通远德科技有限公司 一种基于云服务实现视频追溯的方法
CN110162999B (zh) * 2019-05-08 2022-06-07 湖北工业大学 一种基于隐私保护的收入分配差距基尼系数度量方法
CN110222081B (zh) * 2019-06-08 2022-04-19 西安电子科技大学 多用户环境下基于细粒度排序的数据密文查询方法
CN111404679B (zh) * 2020-03-10 2023-08-08 上海市大数据中心 一种面向大数据的安全认证的密文检索方法
CN111913981B (zh) * 2020-06-09 2022-04-22 华南理工大学 在线离线的基于属性的布尔关键字可搜索加密方法及***
CN112733193B (zh) * 2021-01-22 2023-04-07 福州大学 基于时间控制可审计匿名的谓词检索***及方法
CN112765669B (zh) * 2021-02-01 2023-04-18 福州大学 基于时间授权的正则语言可搜索加密***
CN113779597B (zh) * 2021-08-19 2023-08-18 深圳技术大学 加密文档的存储和相似检索方法、装置、设备及介质
CN114357477B (zh) * 2021-12-15 2023-07-18 华南理工大学 支持大规模用户群的布尔关键词可搜索加密方法
CN114884660B (zh) * 2022-07-12 2022-09-20 西南石油大学 一种基于通配符身份的可搜索加密方法
CN115563634B (zh) * 2022-09-29 2023-08-15 北京海泰方圆科技股份有限公司 一种检索方法、装置、设备及介质
CN116127498B (zh) * 2022-11-28 2024-06-07 中国民用航空总局第二研究所 一种密文检索结果可验证的多关键字可搜索加密方法
CN116150795B (zh) * 2023-04-17 2023-07-14 粤港澳大湾区数字经济研究院(福田) 基于同态加密的数据处理方法、***及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955537A (zh) * 2014-05-16 2014-07-30 福州大学 一种语义模糊可搜索加密云盘设计方法及***
CN105024802A (zh) * 2015-07-13 2015-11-04 西安理工大学 云存储中基于双线性对的多用户多关键词可搜索加密方法
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN105915520A (zh) * 2016-04-18 2016-08-31 深圳大学 基于公钥可搜索加密的文件存储、搜索方法及存储***
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130085491A (ko) * 2011-12-09 2013-07-30 한국전자통신연구원 인덱스 검증과 추적이 가능한 다자간 환경에서의 검색 가능 암호 시스템 및 방법
IN2014CH00681A (zh) * 2014-02-13 2015-08-14 Infosys Ltd

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955537A (zh) * 2014-05-16 2014-07-30 福州大学 一种语义模糊可搜索加密云盘设计方法及***
CN105024802A (zh) * 2015-07-13 2015-11-04 西安理工大学 云存储中基于双线性对的多用户多关键词可搜索加密方法
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN105915520A (zh) * 2016-04-18 2016-08-31 深圳大学 基于公钥可搜索加密的文件存储、搜索方法及存储***
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
An Efficient Privacy-Preserving Outsourced Calculation Toolkit With Multiple Keys;ximeng Liu等;《IEEE Transactions on Information Forensics and Security》;20160527;2401-2414页 *
Toward Efficient Multi-Keyword Fuzzy Search Over Encrypted Outsourced Data With Accuracy Improvement;zhangjie FU等;《IEEE Transactions on Information Forensics and Security 》;20160728;2706-2716页 *
具有细粒度访问控制的隐藏关键词可搜索加密方;杨旸等;《工程学报》;20130825;92-100页 *
加密云数据下的关键词模糊搜索方案;吴阳等;《计算机工程与应用》;20140403;90-96页 *
基于云环境下排序的模糊关键字搜索;闫文婷;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170315;I136-815页 *

Also Published As

Publication number Publication date
CN107491497A (zh) 2017-12-19

Similar Documents

Publication Publication Date Title
CN107491497B (zh) 支持任意语言查询的多用户多关键词排序可搜索加密***
CN108632032B (zh) 无密钥托管的安全多关键词排序检索***
CN111835500B (zh) 基于同态加密与区块链的可搜索加密数据安全共享方法
Yang et al. Multi-user multi-keyword rank search over encrypted data in arbitrary language
CN106803784B (zh) 安全多媒体云存储中基于格的多用户模糊可搜索加密方法
Wang et al. Secure ranked keyword search over encrypted cloud data
CN107256248B (zh) 云存储安全中基于通配符的可搜索加密方法
Li et al. Enabling fine-grained multi-keyword search supporting classified sub-dictionaries over encrypted cloud data
CN109450935B (zh) 云存储中可验证的语义安全的多关键词搜索方法
CN110392038B (zh) 一种多用户场景下可验证的多密钥可搜索加密方法
Van Rompay et al. Multi-user searchable encryption in the cloud
Yi et al. Privacy-preserving user profile matching in social networks
Liu et al. EMK-ABSE: Efficient multikeyword attribute-based searchable encryption scheme through cloud-edge coordination
Yang et al. Expressive query over outsourced encrypted data
Fan et al. Verifiable attribute-based multi-keyword search over encrypted cloud data in multi-owner setting
CN111159352B (zh) 一种支持多关键词加权检索和结果排序且可验证的加解密方法
Shu et al. SybSub: Privacy-preserving expressive task subscription with sybil detection in crowdsourcing
Li et al. Multi-user searchable encryption with a designated server
Rajan et al. Dynamic multi-keyword based search algorithm using modified based fully homomorphic encryption and Prim’s algorithm
Verma Secure client-side deduplication scheme for cloud with dual trusted execution environment
Park et al. PKIS: practical keyword index search on cloud datacenter
Cui et al. Towards encrypted in-network storage services with secure near-duplicate detection
Wang et al. Towards practical private processing of database queries over public data
Song et al. An efficient and privacy-preserving multi-user multi-keyword search scheme without key sharing
Zhu et al. A secure data sharing scheme with designated server

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