CN113194078B - 一种云端支持隐私保护的排序多关键字搜索加密方法 - Google Patents

一种云端支持隐私保护的排序多关键字搜索加密方法 Download PDF

Info

Publication number
CN113194078B
CN113194078B CN202110437759.6A CN202110437759A CN113194078B CN 113194078 B CN113194078 B CN 113194078B CN 202110437759 A CN202110437759 A CN 202110437759A CN 113194078 B CN113194078 B CN 113194078B
Authority
CN
China
Prior art keywords
ciphertext
user
index
key
keyword
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
CN202110437759.6A
Other languages
English (en)
Other versions
CN113194078A (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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN202110437759.6A priority Critical patent/CN113194078B/zh
Publication of CN113194078A publication Critical patent/CN113194078A/zh
Application granted granted Critical
Publication of CN113194078B publication Critical patent/CN113194078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

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

Abstract

本发明公开了一种云端支持隐私保护的排序多关键字搜索加密方法,其主要实现步骤是:1、构建排序可搜索加密系统;2、初始化系统,获取系统的公共参数以及系统主密钥;3、生成用户私钥;4、数据拥有者采用对称加密算法对明文消息进行加密,生成密文数据;5、生成密文索引;6、生成查询陷门以及查询向量;7、搜索;8、验证;9、外包解密;10、本地解密。本发明的方法在保护用户隐私的基础上使解密效率、云存储开销以及密文检索准确度方面大幅度提升,解决了现有技术中存在的隐私泄露、用户计算代价大等问题。

Description

一种云端支持隐私保护的排序多关键字搜索加密方法
技术领域
本发明属于云存储安全和密文数据安全共享技术领域,尤其涉及一种云端支持隐私保护的排序多关键字搜索加密方法。
背景技术
随着物联网、5G及人工智能等新技术的迅速发展,越来越多的智能终端被人们使用,与之而来产生的数据量愈发庞大,促进了大数据时代的到来。大数据对整个国家、社会的各个行业具有巨大的推动作用,但是也带来了严峻的问题:
其一,用户个人隐私泄露问题,而个人的隐私泄露会造成很严重的安全隐患,所以数据的安全处理是非常重要的;
其二,近年来由于云存储具有高资源利用率、节约成本等诸多优点,被得到广泛重视。越来越多的企业和个人将数据加密储存在云端,成为主流的方式,不仅可以对个人的隐私进行良好的保护,而且减少了本地的存储开销。
其三,加密云服务虽然可以保护数据机密性,但是如何实现对密文数据进行细粒度访问控制,以及数据使用者在云端存储的海量密文数据中有效检索到目标文件也是需要解决的一个重要问题。
基于属性的可搜索加密技术能够很好的解决上述这些问题,可以满足数据拥有者既可以确保个人隐私不被泄露又可以通过索引搜索到存储在云端的数据。可搜索加密技术可以达到只有合法用户才具备基于关键词检索的能力,提供了加密和检索两种服务。加密保证了数据拥有者信息的机密性,在数据传输过程和云端都不会被泄露;检索保证了数据拥有者自身的隐私,同时提供了查询检索功能。
但是,基于属性的可搜索加密技术在实际应用中仍然存在以下两个缺陷:
一是云服务器会将所有与特定关键字相匹配的文件返回给用户,这其中必然会包含一些和用户请求相关度不大的文件,浪费了网络资源和数据使用者的计算开销,不符合如今“按需付费”的生活模式。
二是一个访问策略是由一系列的属性构成,由于某些组成策略的属性本身包含敏感的信息,如在电子医疗领域,“心脏病”这个属性就属于敏感的,它能同时暴露数据拥有者的健康信息和数据使用者的身份信息。为此,隐藏访问策略保护隐私成为一个重要的研究内容。
发明内容
本发明的目的是提出一种云端支持隐私保护的排序多关键字搜索加密方法,解决了传统方案中云服务器返回的文件中包含冗余文件导致资源浪费,访问策略的保密程度高,从而避免泄密隐患的问题。
本发明在兼具访问策略灵活性的同时还增加了更快速准确的密文检索,结果可验证和外包解密等实用功能,能够有效的减轻用户的计算压力。
为此,本发明所采用的技术方案为:
一种云端支持隐私保护的排序多关键字搜索加密方法,包括如下步骤:
步骤1:构建排序可搜索加密系统;
排序可搜索加密系统包括授权中心、数据拥有者、云服务器、区块链以及解密云服务助手;
授权中心负责生成系统公共参数、系统主秘钥以及数据拥有者的公私钥对;
数据拥有者负责密文数据、密文索引的生成以及访问策略的制定;
云服务器负责存储数据拥有者上传的密文数据,并将对应的密文索引发送给区块链;
区块链负责存储数据拥有者上传的密文索引,并利用搜索智能合约检测查询陷门与关键字索引是否匹配;利用验证智能合约检验用户的属性集是否满足数据拥有者制定的加密访问策略以及云端返回结果的正确性;
解密云服务助手负责利用转换秘钥对密文数据进行初步解密,并将得到的部分解密密文返回给用户;
步骤2、初始化排序可搜索加密系统,获取排序可搜索加密系统的公共参数以及系统主密钥;
步骤3、生成用户私钥;用户私钥包括检索秘钥和索引秘钥;
步骤4、数据拥有者采用对称加密算法对明文消息进行加密,生成密文数据,同时对对称秘钥进行加密生成对称秘钥的密文,并将密文数据和对称秘钥的密文上传至云服务器;
步骤5、生成密文索引;所述密文索引包括关键字索引和索引向量;
数据拥有者基于明文文件中提取的关键字生成关键字索引,同时基于索引秘钥生成索引向量,并将关键字索引和索引向量上传至区块链;
步骤6、生成查询陷门以及查询向量;
用户基于感兴趣的关键字集生成查询陷门,并利用索引秘钥生成查询向量,并将查询陷门和查询向量上传至区块链;
步骤7、搜索;
用户提交查询陷门,区块链中的搜索智能合约检测查询陷门与关键字索引是否能够成功匹配,并将匹配成功的文件标识符发送给云服务器;
步骤8、验证;
利用区块链中的验证智能合约验证用户是否满足访问策略,如果不满足,拒绝用户请求,否则验证返回密文的正确性,然后基于索引向量和查询向量计算相关分数;
步骤9、外包解密;
用户根据检索秘钥和选取的随机值,生成转换私钥,解密云服务助手计算部分解密密文;
步骤10、本地解密;
用户得到对称秘钥,进而恢复出明文消息。
进一步地,上述步骤2的具体实现过程为:
步骤2.1:设置系统的安全参数κ以及整个系统中的属性全集U,选择阶为p的两个循环群G1和G2,其中p为素数,并定义一个双线性映射 e:G1×G1→G2
步骤2.2:从群G1中随机选取生成元g∈RG1,从群中随机选取α,α1,a∈RZp以及为每一个属性i∈U选择vi∈Zp,计算并选取一个哈希函数H以及一个对称加密算法其中H将一个属性值或GT中的元素映射到群中,H可看作是一个伪随机函数,表示模p的余数集合;
步骤2.3:系统预处理,计算Y=e(g,g)α,然后生成系统的公共参数为 PP={G1,G2,g,e,H,Y,gai},系统主密钥为MSK={α,α1,{vi}i∈U};
步骤2.4:授权中心随机选择r'∈RZp,并计算数据拥有者的公私钥对为 (pko,sko)={pko=gr',sko=r'}。
进一步地,上述步骤3的具体实现过程为:
步骤3.1:用户首先向授权中心注册信息,提交自身的属性集Suid,授权中心从群中随机选取t∈RZp,计算用户的检索秘钥,其具体计算公式为:
步骤3.2:数据拥有者随机选择两个可逆矩阵M1,M2∈Rd*d和一个d-维二进制向量S作为索引秘钥IK,其中d表示关键字列表的大小,然后用户通过安全可信的信道获取到用户私钥SK=(RK,IK)。
进一步地,上述步骤4的具体实现过程为:
步骤4.1:数据拥有者选择一个随机数χ∈RZp,并计算以替代访问策略(A,ρ)中的每一个属性attri
步骤4.2:对于给定的明文文件集F={f1,…,fn},数据拥有者选择对称秘钥利用对称加密算法对明文文件集中的每一个文件进行加密得到密文文件Cσ(1≤σ≤n);
输入数据拥有者制定的访问策略(A,ρ),加密文件的对称秘钥对于访问策略(A,ρ)中任意一行i满足i∈[1,l],数据拥有者随机选择riRZp,得到对称秘钥的密文CT={C,C0,C1,C1,i,C2,i,C3,i}:
步骤4.3:数据拥有者为每一个文件fσ(1≤σ≤n)计算其中idσ表示文件标识符;
步骤4.4:数据拥有者将生成的密文文件Cσ以及对称秘钥的密文CT以 (Cσ,CT)形式上传到云服务器。
进一步地,上述步骤5的具体实现过程为:
步骤5.1:生成关键字索引;
数据拥有者为关键字列表WL={w1,…,wt}中的每一个关键字选取随机值γ∈RZp,再选择r∈RZp,并计算I0=(ga)γ,I1=gγ,I2=(C1)r,如果文件fσ包含关键字wj|j∈[1,t],计算否则Iσj=1,最终,得到关键字索引为
Iw=(I0,I1,I2,{Iσj}σ∈[1,n]j∈[1,t])
步骤5.2:生成索引向量;
数据拥有者基于随机的d-维二进制向量S计算d-维向量P,其中P的每一维都是归一化的TF值,然后利用S基于第一拆分规则将P拆分两个随机向量{P',P”};所述第一拆分规则为:
步骤5.3:数据拥有者设置索引向量为P={M1 TP',M2 TP”},与关键字索引一同作为密文索引发送至区块链;
进一步地,上述步骤6的具体实现过程为:
步骤6.1:用户选择感兴趣的关键字集合W={w1,…,wτ},随机选择υ∈RZp,计算查询陷门为:
步骤6.2:用户生成d-维向量Q,其中Q的每一维是归一化的IDF(逆文档频率)值wq,t,然后用户基于随机的d-维二进制向量S将向量Q按照第二拆分规则拆分为两个随机向量{Q',Q”};
所述第二拆分规则为:
步骤6.3:用户计算查询向量为与查询陷门一同发送至区块链。
进一步地,上述步骤7的具体实现过程为:
步骤7.1:用户提交查询陷门,根据区块链中的搜索智能合约根据匹配规则检测查询陷门与关键字索引是否能够成功匹配;
所述匹配规则为:
步骤7.2:搜索智能合约将匹配成功的文件标识符发送给云服务器。
进一步地,上述步骤8的具体实现过程为:
步骤8.1:区块链中的验证智能合约接收来自云服务器的密文后,计算并验证qi=qi'是否成立;
如果不成立,说明用户不满足访问策略,拒绝访问密文文件;否则,为每一个密文文件Cσ文件选择随机数然后与云服务器进行交互;
步骤8.2:区块链中的验证智能合约将发送给云服务器,云服务器计算以及并将发送给区块链中的验证智能合约,然后验证智能合约通过检验规则计算检测密文的正确性,
如果检测不正确,就将密文舍弃,否则验证智能合约利用索引向量和查询向量计算相关分数,具体计算公式如下:
Score=P·Q
={M1 TP',M2 TP”}·{M1 -1Q',M2 -1Q”}
将计算得到的相关分数结果排序,仅将top-k文件返回给用户。
进一步地,上述步骤9的具体实现过程为:
步骤9.1:生成转换秘钥对;
用户输入检索秘钥,并且选择随机值z,y∈RZp,获得转换密钥对 tk=(tpk,tsk),
步骤9.2:向解密云服务助手输入tpk={tpk1,tpk2,tpk3}和密文 CT={C,C0,C1,C1,i,C2,i,C3,i},解密云服务助手计算部分解密密文IC:
进一步地,上述步骤10的具体实现过程为:
步骤10.1:根据部分解密密文IC和转换秘钥tsk,用户利用解密规则得到对称秘钥:
步骤10.2:用户利用对称解密算法得到所需要的明文文件。
本发明的有益效果是:
1、本发明基于以太区块链,引入了两种智能合约,分别是搜索智能合约和验证智能合约。密文索引存储在区块链中,利用搜索合约检测查询陷门与索引是否匹配,以减少云服务器的存储空间和搜索成本。另外,验证智能合约可以测试云服务器返回结果的正确性。只要按照规则诚实地执行,用户就可以获得正确的检索结果,而不需要进行本地额外的验证。
2、本发明实现了对多关键字搜索的排序,只返回满足数据使用者请求的前k个文件,节省了网络资源,进一步提高了搜索的准确性。
3、本发明在加密阶段制定访问策略时,数据拥有者选取随机值来盲化访问策略中的属性,以隐藏访问策略中的关键信息,保护了用户的隐私,实现了用户的匿名性。
4、本发明在解密阶段利用外包解密,将大量的解密运算分担给解密云服务助手,进行初步解密,减轻了用户的计算开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的工作流程图。
图2为本发明中生成密文和索引的工作流程图;
图3为本发明中消息解密工作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明中的相关技术进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1~3,一种云中支持隐私保护的排序多关键字搜索加密方法,包括如下步骤:
步骤1:构建排序可搜索加密系统;
如图1所示,排序可搜索加密系统包括授权中心、数据拥有者、云服务器、区块链以及解密云服务助手;
其每个部分的基本功能如下:
授权中心
在初始化系统之后,授权中心生成系统公共参数、系统主秘钥以及授权中心负责生成系统公共参数、系统主秘钥以及数据拥有者的公私钥对;其中系统公共参数可以公布,其用于进行系统中的加密操作;系统主秘钥必须秘密保存,其用于生成用户的检索秘钥;
数据拥有者
数据拥有者负责密文数据和密文索引的生成,并将密文数据上传到云服务器,以及将密文索引上传到区块链;在生成密文数据时,数据拥有者可以制定加密数据的访问策略,即指定数据访问的对象;
云服务器
云服务器具备强大的存储能力,负责存储数据拥有者上传的密文数据,并将对应的密文发送给验证智能合约;
区块链
区块链用于存储数据拥有者上传的密文索引,当用户提交查询陷门时,区块链中的搜索智能合约会验证查询陷门与关键字索引是否匹配,当匹配成功,则将对应的文件标识符发送给云服务器,云服务器将对应的密文返回给区块链中的验证智能合约;验证智能合约检验用户的属性集是否满足数据拥有者制定的加密访问策略,如果满足,对云服务器返回文件进行验证,最后根据查询关键字集合与文件的相关分数排序,将top-k文件返回给用户。
解密云服务助手
解密云服务助手利用转换秘钥对密文数据进行初步解密,并将得到的部分解密密文返回给用户;
步骤2:初始化排序可搜索加密系统,获取排序可搜索加密系统的公共参数PP以及系统主密钥MSK;
步骤2.1:设置系统的安全参数κ以及整个系统中的属性全集U,选择阶为p的两个循环群G1和G2,其中p为素数,并定义一个双线性映射 e:G1×G1→G2
步骤2.2:从群G1中随机选取生成元g∈RG1,从群中随机选取α,α1,a∈RZp以及为每一个属性i∈U选择vi∈Zp,计算并选取一个哈希函数H以及一个对称加密算法其中H将一个属性值或GT中的元素映射到群中,H可看作是一个伪随机函数,表示模p的余数集合;
步骤2.3:系统预处理,计算Y=e(g,g)α,然后生成系统的公共参数为 PP={G1,G2,g,e,H,Y,gai},系统主密钥为MSK={α,α1,{vi}i∈U};
步骤2.4:授权中心随机选择r'∈RZp,并计算数据拥有者的公私钥对为 (pko,sko)={pko=gr',sko=r'}。
步骤3:生成用户私钥:用户私钥包括检索秘钥和索引秘钥
步骤3.1:用户首先向授权中心注册信息,提交自身的属性集Suid,授权中心从群中随机选取t∈RZp,计算用户的检索秘钥,其具体计算公式为:
步骤3.2:数据拥有者随机选择两个可逆矩阵M1,M2∈Rd*d和一个d-维二进制向量S作为索引秘钥IK,其中d表示关键字列表的大小,然后用户通过安全可信的信道获取到用户私钥SK=(RK,IK);
如图2所示,步骤4:加密明文消息,生成密文数据;
首先利用对称加密算法对明文消息进行加密,然后选取合适的访问策略加密对称秘钥;所设置的策略元组用于控制解密对象,只有满足访问策略的用户才能正常解密,恢复出对称秘钥,进而得到明文消息;加密过程中选取随机值用于盲化访问策略中的属性值,实现访问策略中关键信息的隐藏,进而实现用户的匿名性,保护用户的隐私安全;
步骤4.1:数据拥有者选择一个随机数χ∈RZp,并计算以替代访问策略(A,ρ)中的每一个属性attri
步骤4.2:对于给定的明文文件集F={f1,…,fn},数据拥有者选择对称秘钥利用对称加密算法对明文文件集中的每一个文件进行加密得到密文文件Cσ
输入数据拥有者制定的访问策略(A,ρ),加密文件的对称秘钥对于访问策略(A,ρ)中任意一行i满足i∈[1,l],数据拥有者随机选择riRZp,得到对称秘钥的密文CT={C,C0,C1,C1,i,C2,i,C3,i}:
步骤4.3:数据拥有者为每一个文件fσ(1≤σ≤n)计算其中idσ表示文件标识符;
步骤4.4:数据拥有者将生成的密文文件Cσ以及对称秘钥的密文CT以(Cσ,CT)形式上传到云服务器。
步骤5:生成密文索引;
所述生成密文索引中,数据拥有者基于明文文件中提取的关键字生成关键字索引,用于定位目标文件,并且基于索引秘钥生成索引向量,用于计算关键字与文件的相关分数;
步骤5.1:生成关键字索引;
数据拥有者为关键字列表WL={w1,…,wt}中的每一个关键字选取随机值γ∈RZp,再选择r∈RZp,并计算I0=(ga)γ,I1=gγ,I2=(C1)r,如果文件fσ包含关键字wj|j∈[1,t],计算否则Iσj=1,最终,得到关键字索引为
Iw=(I0,I1,I2,{Iσj}σ∈[1,n]j∈[1,t])
步骤5.2:生成索引向量;
数据拥有者基于随机的d-维二进制向量S计算d-维向量P,其中P的每一维都是归一化的TF(词频)值,然后利用S基于第一拆分规则将P拆分两个随机向量{P',P”},
步骤5.3:数据拥有者设置索引向量为P={M1 TP',M2 TP”},与关键字索引一同作为密文索引发送至区块链;
步骤6:生成查询陷门以及查询向量;
用户基于感兴趣的关键字集合生成查询陷门,并利用索引秘钥生成查询向量;
步骤6.1:用户选择感兴趣的关键字集合W={w1,…,wτ},随机选择υ∈RZp,计算查询陷门为:
步骤6.2:用户生成d-维向量Q,其中Q的每一维是归一化的IDF(逆文档频率)值wq,t,然后用户基于随机的d-维二进制向量S将向量Q按照第二拆分规则拆分为两个随机向量{Q',Q”},
步骤6.3:用户计算查询向量为与查询陷门一同发送至区块链;
如图3所述,步骤7:搜索;
步骤7.1:用户提交查询陷门,根据区块链中的搜索智能合约根据匹配规则检测查询陷门与关键字索引是否能够成功匹配;
所述匹配规则为:
步骤7.2:搜索智能合约将匹配成功的文件标识符发送给云服务器;
步骤8:验证;
利用区块链中的验证智能合约验证用户的属性集是否满足数据拥有者制定的访问策略,如果不满足,终止用户请求,否则验证云服务器返回密文的正确性,并计算相关分数,将top-k密文返回给用户;
步骤8.1:区块链中的验证智能合约接收来自云服务器的密文后,计算并验证qi=qi'是否成立;
如果不成立,说明用户不满足访问策略,拒绝访问密文文件;否则,为每一个密文文件Cσ文件选择随机数然后与云服务器进行交互;
步骤8.2:区块链中的验证智能合约将发送给云服务器,云服务器计算以及并将发送给区块链中的验证智能合约,然后验证智能合约通过检验规则(16)计算检测密文的正确性,
如果检测不正确,就将密文舍弃,否则验证智能合约利用索引向量和查询向量计算相关分数,具体计算公式如下:
Score=P·Q
={M1 TP',M2 TP”}·{M1 -1Q',M2 -1Q”}
将计算得到的相关分数结果排序,仅将top-k文件返回给用户。
步骤9:外包解密;
用户选取随机值,生成能够部分解密的转换秘钥,实现将解密阶段大量的计算开销转移到第三方解密云服务助手端操作,外包解密的结果既不会泄露任何关于明文的信息,又能帮助用户顺利完成解密;
步骤9.1:生成转换秘钥对;
用户输入检索秘钥,并且选择随机值z,y∈RZp,获得转换密钥对 tk=(tpk,tsk),
步骤9.2:向解密云服务助手输入tpk={tpk1,tpk2,tpk3}和密文 CT={C,C0,C1,C1,i,C2,i,C3,i},解密云服务助手计算部分解密密文IC:
步骤10:本地解密,用户得到对称秘钥,进而恢复得到明文;
步骤10.1:根据部分解密密文IC和转换秘钥tsk,用户利用解密规则得到对称秘钥:
步骤10.2:用户利用对称解密算法得到所需要的明文文件。

Claims (9)

1.一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于,包括如下步骤:
步骤1:构建排序可搜索加密系统;
排序可搜索加密系统包括授权中心、数据拥有者、云服务器、区块链以及解密云服务助手;
授权中心负责生成系统公共参数、系统主秘钥以及数据拥有者的公私钥对;
数据拥有者负责密文数据、密文索引的生成以及访问策略的制定;
云服务器负责存储数据拥有者上传的密文数据,并将对应的密文索引发送给区块链;
区块链负责存储数据拥有者上传的密文索引,并利用搜索智能合约检测查询陷门与关键字索引是否匹配;利用验证智能合约检验用户的属性集是否满足数据拥有者制定的加密访问策略以及云端返回结果的正确性;
解密云服务助手负责利用转换秘钥对密文数据进行初步解密,并将得到的部分解密密文返回给用户;
步骤2、初始化排序可搜索加密系统,获取排序可搜索加密系统的公共参数以及系统主密钥;
步骤3、生成用户私钥;用户私钥包括检索秘钥和索引秘钥;
步骤4、数据拥有者采用对称加密算法对明文消息进行加密,生成密文数据,同时对对称秘钥进行加密生成对称秘钥的密文,并将密文数据和对称秘钥的密文上传至云服务器;
所述步骤4的具体实现过程为:
步骤4.1:数据拥有者选择一个随机数χ∈RZp,并计算
Figure FDA0004053782040000021
以替代访问策略(A,ρ)中的每一个属性attri;其中e是双线性对,H是哈希函数,g∈RG1为G1的生成元,a1RZp
步骤4.2:对于给定的明文文件集F={f1,…,fn},数据拥有者选择对称秘钥
Figure FDA0004053782040000022
利用对称加密算法
Figure FDA0004053782040000023
对明文文件集中的每一个文件进行加密得到密文文件Cσ(1≤σ≤n);
输入数据拥有者制定的访问策略(A,ρ),加密文件的对称秘钥
Figure FDA0004053782040000027
对于访问策略(A,ρ)中任意一行i满足i∈[1,l],数据拥有者随机选择riRZp,得到对称秘钥
Figure FDA0004053782040000024
的密文CT={C,C0,C1,C1,i,C2,i,C3,i}:
Figure FDA0004053782040000025
其中,(a,s,x,vi)∈RZp,λi是秘密值s的第i个共享;
步骤4.3:数据拥有者为每一个文件fσ(1≤σ≤n)计算
Figure FDA0004053782040000026
其中idσ表示文件标识符;
步骤4.4:数据拥有者将生成的密文文件Cσ以及对称秘钥
Figure FDA0004053782040000028
的密文CT以(Cσ,CT)形式上传到云服务器;
步骤5、生成密文索引;所述密文索引包括关键字索引和索引向量;
数据拥有者基于明文文件中提取的关键字生成关键字索引,同时基于索引秘钥生成索引向量,并将关键字索引和索引向量上传至区块链;
步骤6、生成查询陷门以及查询向量;
用户基于感兴趣的关键字集生成查询陷门,并利用索引秘钥生成查询向量,并将查询陷门和查询向量上传至区块链;
步骤7、搜索;
用户提交查询陷门,区块链中的搜索智能合约检测查询陷门与关键字索引是否能够成功匹配,并将匹配成功的文件标识符发送给云服务器;
步骤8、验证;
利用区块链中的验证智能合约验证用户是否满足访问策略,如果不满足,拒绝用户请求,否则验证返回密文的正确性,然后基于索引向量和查询向量计算相关分数;
步骤9、外包解密;
用户根据检索秘钥和选取的随机值,生成转换私钥,解密云服务助手计算部分解密密文;
步骤10、本地解密;
用户得到对称秘钥,进而恢复出明文消息。
2.根据权利要求1所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤2的具体实现过程为:
步骤2.1:设置系统的安全参数κ以及整个系统中的属性全集U,选择阶为p的两个循环群G1和G2,其中p为素数,并定义一个双线性映射e:G1×G1→G2
步骤2.2:从群G1中随机选取生成元g∈RG1,从群Zp中随机选取α,α1,a∈RZp以及为每一个属性i∈U选择vi∈Zp,计算Θi=gvi,并选取一个哈希函数H以及一个对称加密算法EEnc/Dec(*,*),其中H将一个属性值或GT中的元素映射到Zp群中,H为一个伪随机函数,Zp表示模p的余数集合;
步骤2.3:系统预处理,计算Y=e(g,g)α,然后生成系统的公共参数为PP={G1,G2,g,e,H,Y,gai},系统主密钥为MSK={α,α1,{vi}i∈U};
步骤2.4:授权中心随机选择r'∈RZp,并计算数据拥有者的公私钥对为(pko,sko)={pko=gr',sko=r'}。
3.根据权利要求2所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤3的具体实现过程为:
步骤3.1:用户首先向授权中心注册信息,提交自身的属性集Suid,授权中心从群Zp中随机选取t∈RZp,计算用户uid的检索秘钥,其具体计算公式为:
Figure FDA0004053782040000041
步骤3.2:数据拥有者随机选择两个可逆矩阵M1,M2∈Rd*d和一个d-维二进制向量S作为索引秘钥IK,其中d表示关键字列表的大小,然后用户通过安全可信的信道获取到用户私钥SK=(RK,IK)。
4.根据权利要求3所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤5的具体实现过程为:
步骤5.1:生成关键字索引;
数据拥有者为关键字列表WL={w1,…,wt}中的每一个关键字选取随机值γ∈RZp,再选择r∈RZp,并计算I0=(ga)γ,I1=gγ,I2=(C1)r,如果文件fσ包含关键字wj|j∈[1,t],计算
Figure FDA0004053782040000051
否则Iσj=1,最终,得到关键字索引为
Iw=(I0,I1,I2,{Iσj}σ∈[1,n]j∈[1,t])
步骤5.2:生成索引向量;
数据拥有者基于随机的d-维二进制向量S计算d-维向量P,其中P的每一维都是归一化的TF值,然后利用S基于第一拆分规则将P拆分两个随机向量{P',P”};所述第一拆分规则为:
Figure FDA0004053782040000052
步骤5.3:数据拥有者设置索引向量为P={M1 TP',M2 TP”},与关键字索引一同作为密文索引发送至区块链。
5.根据权利要求4所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤6的具体实现过程为:
步骤6.1:用户选择感兴趣的关键字集合W={w1,…,wτ},随机选择υ∈RZp,计算查询陷门为:
Figure FDA0004053782040000053
步骤6.2:用户生成d-维向量Q,其中Q的每一维是归一化的IDF(逆文档频率)值wq,t,然后用户基于随机的d-维二进制向量S将向量Q按照第二拆分规则拆分为两个随机向量{Q',Q”};
所述第二拆分规则为:
Figure FDA0004053782040000054
步骤6.3:用户计算查询向量为
Figure FDA0004053782040000061
与查询陷门一同发送至区块链。
6.根据权利要求5所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤7的具体实现过程为:
步骤7.1:用户提交查询陷门,根据区块链中的搜索智能合约根据匹配规则检测查询陷门与关键字索引是否能够成功匹配;
所述匹配规则为:
Figure FDA0004053782040000062
步骤7.2:搜索智能合约将匹配成功的文件标识符发送给云服务器。
7.根据权利要求6所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤8的具体实现过程为:
步骤8.1:区块链中的验证智能合约接收来自云服务器的密文后,计算
Figure FDA0004053782040000063
并验证
Figure FDA0004053782040000064
是否成立;
如果不成立,说明用户不满足访问策略,拒绝访问密文文件;否则,为每一个密文文件Cσ文件选择随机数
Figure FDA0004053782040000065
然后与云服务器进行交互;
步骤8.2:区块链中的验证智能合约将
Figure FDA0004053782040000066
发送给云服务器,云服务器计算
Figure FDA0004053782040000067
以及
Figure FDA0004053782040000068
并将
Figure FDA0004053782040000069
发送给区块链中的验证智能合约,然后验证智能合约通过检验规则计算检测密文的正确性,
Figure FDA00040537820400000610
如果检测不正确,就将密文舍弃,否则验证智能合约利用索引向量和查询向量计算相关分数,具体计算公式如下:
Score=P·Q
={M1 TP',M2 TP”}·{M1 -1Q',M2 -1Q”}
将计算得到的相关分数结果排序,仅将搜索的前k个文件返回给用户。
8.根据权利要求7所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤9的具体实现过程为:
步骤9.1:生成转换秘钥对;
用户输入检索秘钥,并且选择随机值z,y∈RZp,获得转换密钥对tk=(tpk,tsk),
Figure FDA0004053782040000071
步骤9.2:向解密云服务助手输入tpk={tpk1,tpk2,tpk3}和密文CT={C,C0,C1,C1,i,C2,i,C3,i},解密云服务助手计算部分解密密文IC:
Figure FDA0004053782040000072
Figure FDA0004053782040000073
9.根据权利要求8所述一种云端支持隐私保护的排序多关键字搜索加密方法,其特征在于:所述步骤10的具体实现过程为:
步骤10.1:根据部分解密密文IC和转换秘钥tsk,用户利用解密规则得到对称秘钥:
Figure FDA0004053782040000074
步骤10.2:用户利用对称解密算法
Figure FDA0004053782040000081
得到所需要的明文文件。
CN202110437759.6A 2021-04-22 2021-04-22 一种云端支持隐私保护的排序多关键字搜索加密方法 Active CN113194078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110437759.6A CN113194078B (zh) 2021-04-22 2021-04-22 一种云端支持隐私保护的排序多关键字搜索加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110437759.6A CN113194078B (zh) 2021-04-22 2021-04-22 一种云端支持隐私保护的排序多关键字搜索加密方法

Publications (2)

Publication Number Publication Date
CN113194078A CN113194078A (zh) 2021-07-30
CN113194078B true CN113194078B (zh) 2023-04-07

Family

ID=76978459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110437759.6A Active CN113194078B (zh) 2021-04-22 2021-04-22 一种云端支持隐私保护的排序多关键字搜索加密方法

Country Status (1)

Country Link
CN (1) CN113194078B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609502B (zh) * 2021-08-06 2023-09-26 东北大学 一种基于区块链的空间众包系统及方法
CN113783682B (zh) * 2021-08-25 2023-09-29 华东师范大学 一种支持打包的门限全同态数据封装方法
CN113779612B (zh) * 2021-09-30 2023-06-13 国网湖南省电力有限公司 一种基于区块链与隐藏策略属性加密的数据共享方法与系统
CN114254344B (zh) * 2021-12-14 2024-03-08 北京师范大学 一种基于区块链的共享数据库的隐私数据范围查询方法
CN114567465B (zh) * 2022-02-17 2024-05-24 安徽师范大学 基于区块链的分类医疗数据可搜索加密方法
CN115189903B (zh) * 2022-02-22 2023-09-15 西安电子科技大学 一种车联网中支持隐私保护的分布式访问控制方法
CN115002754B (zh) * 2022-02-24 2023-03-31 华东师范大学 一种基于车辆社交网络的轻量级数据分享方法
CN114710357B (zh) * 2022-04-12 2023-07-21 河北大学 一种可编辑区块链中支持分块验证的动态可搜索加密方法
CN115603934B (zh) * 2022-05-06 2024-04-19 中国人民解放军国防科技大学 基于区块链的多用户可搜索加密方法和装置
CN114978744B (zh) * 2022-06-08 2024-05-17 北京多正科技有限公司 一种基于区块链的安防信息传输方法及系统
CN114827212B (zh) * 2022-06-27 2022-09-16 浙江省邮电工程建设有限公司 智慧交通的车辆通信管理方法
CN114884660B (zh) * 2022-07-12 2022-09-20 西南石油大学 一种基于通配符身份的可搜索加密方法
CN115033908B (zh) * 2022-08-11 2022-10-21 西南石油大学 基于云存储的油气勘探细粒度密态数据的检索方法
CN115361218B (zh) * 2022-08-23 2024-02-23 西安电子科技大学 一种具有查询隐匿特性的云端数据存在性验证方法
CN116127498B (zh) * 2022-11-28 2024-06-07 中国民用航空总局第二研究所 一种密文检索结果可验证的多关键字可搜索加密方法
CN115622700B (zh) * 2022-11-28 2023-03-31 南方电网数字电网研究院有限公司 用电数据加密搜索方法、装置、计算机设备和存储介质
CN115758468B (zh) * 2022-12-05 2023-07-07 北京理工大学 具有前后向隐私支持非交互多用户可搜索加密方法及系统
CN117033790A (zh) * 2023-08-14 2023-11-10 西南石油大学 一种基于多关键词搜索的数据共享系统
CN117077179B (zh) * 2023-10-11 2024-01-02 中国移动紫金(江苏)创新研究院有限公司 基于差分隐私排序的可搜索加密方法、装置、设备及介质
CN117521149B (zh) * 2024-01-03 2024-03-19 中电信量子科技有限公司 基于量子密码设备的文件系统流加解密方法及系统
CN117828673B (zh) * 2024-03-05 2024-06-21 北京全景智联科技有限公司 基于区块链的数据流通与隐私保护方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104022868A (zh) * 2014-02-18 2014-09-03 杭州师范大学 一种基于密文策略的属性基加密的外包解密方法
WO2018096237A1 (fr) * 2016-11-28 2018-05-31 Orange Procédé de chiffrement cherchable
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104022868A (zh) * 2014-02-18 2014-09-03 杭州师范大学 一种基于密文策略的属性基加密的外包解密方法
WO2018096237A1 (fr) * 2016-11-28 2018-05-31 Orange Procédé de chiffrement cherchable
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Outsourcing Attributed-Based Ranked Searchable Encryption With Revocation for Cloud Storage;LEYOU ZHANG;《IEEE》;20200615;全文 *
基于区块链的公钥可搜索加密方案;杜瑞忠;《通信学报》;20200430;正文第四-五部分 *

Also Published As

Publication number Publication date
CN113194078A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
CN113194078B (zh) 一种云端支持隐私保护的排序多关键字搜索加密方法
US11973889B2 (en) Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption
CN108632032B (zh) 无密钥托管的安全多关键词排序检索系统
CN107491497B (zh) 支持任意语言查询的多用户多关键词排序可搜索加密系统
CN106921674B (zh) 抗后量子攻击的代理重加密语义可搜索加密方法
CN104021157B (zh) 云存储中基于双线性对的关键词可搜索加密方法
CN106803784A (zh) 安全多媒体云存储中基于格的多用户模糊可搜索加密方法
CN108171066A (zh) 一种医疗云中隐私保护下的关键词跨域搜索方法及系统
CN108092972B (zh) 一种多授权中心基于属性的可搜索加密方法
CN112989375B (zh) 一种分级优化加密无损隐私保护方法
CN109361644B (zh) 一种支持快速搜索和解密的模糊属性基加密方法
CN104022866A (zh) 云存储中多用户密文关键词可搜索的加密方法
CN104052740A (zh) 云存储中可验证的基于词典的可搜索加密方法
Zhang et al. Enabling proxy-free privacy-preserving and federated crowdsourcing by using blockchain
CN111404679A (zh) 一种面向大数据的安全认证的密文检索方法
CN110866135A (zh) 一种基于响应长度隐藏的k-NN图像检索方法及系统
Wang et al. Reliable and privacy-preserving task matching in blockchain-based crowdsourcing
Majumdar et al. DNA based cloud storage security framework using fuzzy decision making technique
CN115412259B (zh) 基于区块链的云健康系统可搜索代理签密方法及产品
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
CN116663046A (zh) 基于区块链的隐私数据共享和检索方法、系统及设备
Shen et al. Keyword search with access control over encrypted data in cloud computing
Ding et al. Secure Multi‐Keyword Search and Access Control over Electronic Health Records in Wireless Body Area Networks
CN112328626B (zh) 面向云环境的支持模糊关键词排序的可搜索加密方法
Wang et al. An effective verifiable symmetric searchable encryption scheme in cloud computing

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