CN115314284A - 一种基于可信执行环境的公钥认证可搜索加密方法及系统 - Google Patents
一种基于可信执行环境的公钥认证可搜索加密方法及系统 Download PDFInfo
- Publication number
- CN115314284A CN115314284A CN202210937406.7A CN202210937406A CN115314284A CN 115314284 A CN115314284 A CN 115314284A CN 202210937406 A CN202210937406 A CN 202210937406A CN 115314284 A CN115314284 A CN 115314284A
- Authority
- CN
- China
- Prior art keywords
- keyword
- file
- ciphertext
- search
- receiver
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 137
- 238000012795 verification Methods 0.000 claims abstract description 92
- 230000008569 process Effects 0.000 claims abstract description 83
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007789 sealing Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- 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/602—Providing cryptographic facilities or services
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于可信执行环境的公钥认证可搜索加密方法及系统,包括接收关键词密文、文件密文、文件加密密钥的密文、搜索陷门和接收方私钥;在可信执行环境中进行后续过程:验证关键词密文和搜索陷门中的加密密文是否由接收方不同公钥对同一关键词及签名进行加密;解密关键词密文和搜索陷门;验证发送方对文件关键词的签名、接收方对搜索关键词的签名是否正确;验证解密后的文件关键词和搜索关键词是否匹配一致;验证过程均通过或收到第一个验证失败的结果后,停止验证,将搜索结果发送给接收方,以使接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并解密后得到原文件。具有更高的安全性、实用性和扩展性。
Description
技术领域
本发明涉及可搜索加密技术领域,具体涉及一种基于可信执行环境的公钥认证可搜索加密方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
作为可搜索加密的一个分支,公钥可搜索加密(public key encryption withkeyword search,PEKS)体制主要用于解决对称可搜索加密(symmetric searchableencryption,SSE)中复杂的密钥管理问题,以满足接收方用户对存储在云服务器中的来自不同发送方的数据进行关键词搜索的需求。
传统公钥可搜索加密体制中存在安全性和实用性问题:
(1)在安全性方面,公钥可搜索加密体制容易受到关键词猜测攻击(keywordguessing attack,KGA),也较少考虑确定性陷门生成算法导致的搜索模式泄漏以及前向安全等安全问题。
(2)在实用性方面,一方面,多关键词连接搜索等复杂搜索模式是可搜索加密体制在实用性方向上发展的必然趋势;另一方面,由于数据经常会在云用户之间共享,例如,一个接收方可能会将从发送方得到的数据分享给另一个接收方,有必要在数据分享时考虑关键词搜索能力的分享传递,在多用户环境下构建公钥可搜索加密方案,即需要考虑关键词密文的代理重加密。
发明内容
为了解决上述问题,本发明提出了一种基于可信执行环境的公钥认证可搜索加密方法及系统,由运行在可信执行环境中的可信搜索程序完成验证过程。本发明具有密文不可区分性、陷门不可区分性、搜索模式隐私性以及前向安全性,抵抗关键词猜测攻击,并能对外部攻击者隐藏陷门中的关键词隐私信息;且可以扩展支持多关键词搜索等复杂搜索和搜索能力的分享传递等功能,具有更高的安全性、实用性和扩展性。
为了实现上述目的,本发明采用如下技术方案:
第一方面,本发明提供一种基于可信执行环境的公钥认证可搜索加密方法,应用于服务器上,包括:
接收发送方发送的关键词密文、文件密文和文件加密密钥的密文,以及接收方发送的搜索陷门;
接收通过安全信道发送的接收方私钥并进行安全存储;
创建可信执行环境,并在可信执行环境下执行以下验证过程:
验证关键词密文中的加密密文是否由接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证搜索陷门中的加密密文是否由接收方的不同公钥对同一搜索关键词及接收方的签名进行加密;
读取安全存储在服务器上的接收方私钥密文,执行解密操作,获取接收方私钥明文;
根据接收方私钥明文,解密关键词密文,得到文件关键词和发送方对文件关键词的签名;
根据接收方私钥明文,解密搜索陷门,得到搜索关键词和接收方对搜索关键词的签名;
验证发送方对文件关键词的签名是否正确;
验证接收方对搜索关键词的签名是否正确;
验证文件关键词和搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行可信执行环境中的下一关键词密文和搜索陷门的验证过程;
所有关键词密文均验证完成后,将得到的搜索结果发送给接收方,以使接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
作为可选择的实施方式,发送方发送的关键词密文、文件密文、文件加密密钥的密文,以及接收方发送的搜索陷门的生成过程包括:
发送方和接收方分别根据各自的安全参数生成自身的公私钥对;
发送方根据自身的私钥对文件关键词进行签名,根据接收方的公钥对文件关键词及文件关键词签名进行加密,生成关键词密文;
发送方对文件进行对称加密得到文件密文,并根据接收方的公钥对文件加密密钥进行加密得到文件加密密钥的密文;
接收方根据自身的私钥对搜索关键词进行签名,根据自身的公钥对搜索关键词及搜索关键词签名进行加密,生成搜索陷门。
作为可选择的实施方式,若搜索陷门中包括多个搜索关键词且匹配多个文件关键词的密文,则:
发送方生成关键词密文时,将所有文件关键词生成第一布隆过滤器,并对第一布隆过滤器根据接收方的公钥和发送方的私钥生成文件关键词密文;
在接收方生成搜索陷门时,将所有搜索关键词生成第二布隆过滤器,并对第二布隆过滤器根据接收方自身公私钥对生成统一搜索陷门;
在进行文件关键词和搜索关键词的匹配时,验证第一布隆过滤器和第二布隆过滤器的按位与结果是否等于第二布隆过滤器。
作为可选择的实施方式,在关键词密文和搜索陷门生成时均加入时间戳信息,并对搜索陷门时间戳与关键词密文时间戳进行验证,若搜索陷门时间戳早于关键词密文时间戳,则验证失败。
作为可选择的实施方式,验证均通过后,接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文;根据接收方的私钥对文件加密密钥的密文进行解密,得到文件加密密钥,然后根据文件加密密钥对文件密文进行解密,获取原文件。
第二方面,本发明提供一种基于可信执行环境的公钥认证可搜索加密方法,应用于服务器上,包括:
接收发送方发送的第一关键词密文、文件密文和文件加密密钥的密文,所述第一关键词密文根据发送方的私钥对第一文件关键词签名,再根据第一接收方的公钥对第一文件关键词及第一文件关键词签名进行加密得到;
接收第一搜索陷门和/或第二搜索陷门,所述第一搜索陷门和第二搜索陷门分别由第一接收方和第二接收方发送;
接收通过安全信道发送的第一接收方、第二接收方和发送方的私钥并进行安全存储;
创建可信执行环境,并在可信执行环境下执行以下过程:
读取安全存储在服务器上的第一接收方和发送方的私钥密文,执行解密操作,获取私钥明文;
执行关键词密文重加密过程,包括根据第一接收方的私钥解密第一关键词密文,得到第二文件关键词,根据发送方的私钥对第二文件关键词签名,根据第二接收方的公钥加密第二文件关键词及其签名,得到第二关键词密文;
验证第一关键词密文中的加密密文是否由第一接收方的不同公钥对同一文件关键词及发送方的签名进行加密;和/或,验证第二关键词密文中的加密密文是否由第二接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证第一搜索陷门中的加密密文是否由第一接收方的不同公钥对同一搜索关键词及第一接收方的签名进行加密;和/或,验证第二搜索陷门中的加密密文是否由第二接收方的不同公钥对同一搜索关键词及第二接收方的签名进行加密;
解密第一关键词密文,得到第一文件关键词和发送方对第一文件关键词的签名;和/或,解密第二关键词密文,得到第二文件关键词和发送方对第二文件关键词的签名;
解密第一搜索陷门,得到第一搜索关键词和第一接收方对第一搜索关键词的签名;和/或,解密第二搜索陷门,得到第二搜索关键词和第二接收方对第二搜索关键词的签名;
验证发送方对第一文件关键词的签名是否正确;和/或,验证发送方对第二文件关键词的签名是否正确。
验证第一接收方对第一搜索关键词的签名是否正确;和/或,验证第二接收方对第二搜索关键词的签名是否正确;
验证第一文件关键词和第一搜索关键词是否匹配一致;和/或,验证第二文件关键词和第二搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行可信执行环境中的下一关键词密文和搜索陷门的验证过程;
所有关键词密文均验证完成后,将得到的搜索结果发送给第一接收方和/或第二接收方,以使第一接收方和/或第二接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
第三方面,本发明提供一种基于可信执行环境的公钥认证可搜索加密系统,设于服务器中,包括:
第一接收模块,被配置为接收发送方发送的关键词密文、文件密文和文件加密密钥的密文,以及接收方发送的搜索陷门;
第二接收模块,被配置为接收通过安全信道发送的接收方私钥并进行安全存储;
可信执行环境的创建与验证模块,被配置为创建可信执行环境,执行以下验证过程:
验证关键词密文中的加密密文是否由接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证搜索陷门中的加密密文是否由接收方的不同公钥对同一搜索关键词及接收方的签名进行加密;
读取安全存储在服务器上的接收方私钥密文,执行解密操作,获取接收方私钥明文;
根据接收方私钥明文,解密关键词密文,得到文件关键词和发送方对文件关键词的签名;
根据接收方私钥明文,解密搜索陷门,得到搜索关键词和接收方对搜索关键词的签名;
验证发送方对文件关键词的签名是否正确;
验证接收方对搜索关键词的签名是否正确;
验证文件关键词和搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
结果返回模块,被配置为所有关键词密文均验证完成后,将得到的搜索结果发送给接收方,以使接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
第四方面,本发明提供一种基于可信执行环境的公钥认证可搜索加密系统,设于服务器中,包括:
第一接收模块,被配置为接收发送方发送的第一关键词密文、文件密文和文件加密密钥的密文,所述第一关键词密文根据发送方的私钥对第一文件关键词签名,再根据第一接收方的公钥对第一文件关键词及第一文件关键词签名进行加密得到;
第二接收模块,被配置为接收第一搜索陷门和/或第二搜索陷门,所述第一搜索陷门和第二搜索陷门分别由第一接收方和第二接收方发送;
第三接收模块,被配置为接收通过安全信道发送的第一接收方、第二接收方和发送方的私钥并进行安全存储;
可信执行环境的创建与验证模块,被配置为创建可信执行环境,并执行以下过程:
读取安全存储在服务器上的第一接收方和发送方的私钥密文,执行解密操作,获取私钥明文;
执行关键词密文重加密过程,包括根据第一接收方的私钥解密第一关键词密文,得到第二文件关键词,根据发送方的私钥对第二文件关键词签名,根据第二接收方的公钥加密第二文件关键词及其签名,得到第二关键词密文;
验证第一关键词密文中的加密密文是否由第一接收方的不同公钥对同一文件关键词及发送方的签名进行加密;和/或,验证第二关键词密文中的加密密文是否由第二接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证第一搜索陷门中的加密密文是否由第一接收方的不同公钥对同一搜索关键词及第一接收方的签名进行加密;和/或,验证第二搜索陷门中的加密密文是否由第二接收方的不同公钥对同一搜索关键词及第二接收方的签名进行加密;
解密第一关键词密文,得到第一文件关键词和发送方对第一文件关键词的签名;和/或,解密第二关键词密文,得到第二文件关键词和发送方对第二文件关键词的签名;
解密第一搜索陷门,得到第一搜索关键词和第一接收方对第一搜索关键词的签名;和/或,解密第二搜索陷门,得到第二搜索关键词和第二接收方对第二搜索关键词的签名;
验证发送方对第一文件关键词的签名是否正确;和/或,验证发送方对第二文件关键词的签名是否正确。
验证第一接收方对第一搜索关键词的签名是否正确;和/或,验证第二接收方对第二搜索关键词的签名是否正确;
验证第一文件关键词和第一搜索关键词是否匹配一致;和/或,验证第二文件关键词和第二搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
结果返回模块,被配置为所有关键词密文均验证完成后,将得到的搜索结果发送给第一接收方和/或第二接收方,以使第一接收方和/或第二接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
第五方面,本发明提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法和/或第二方面所述的方法。
第六方面,本发明提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法和/或第二方面所述的方法。
与现有技术相比,本发明的有益效果为:
本发明提出了一种基于可信执行环境的公钥认证可搜索加密方法及系统,通过在云存储服务器上建立一个可信区,并运行一个执行关键词匹配的安全区程序来完成对密文数据的搜索。与传统PEKS方法相比,除依托于密码学的安全性以外,本发明的方法将PEKS的关键词匹配对比阶段转移到可信执行环境中,使程序执行过程的安全性得到来自硬件的保障,充分利用可信执行环境的安全特性,简化匹配对比过程,提高执行效率。
在安全性上,本发明的方法解决了传统PEKS体制中诚实且好奇的云服务器带来的安全隐患,具有密文不可区分性、陷门不可区分性以及搜索模式隐私性,抵抗关键词猜测攻击,并能对外部攻击者隐藏陷门中的关键词隐私信息,尽可能少地泄漏相关信息;且通过在关键词密文和搜索陷门中添加时间戳标识,使其具备前向安全性。
在实用性上,本发明的方法可以扩展支持多关键词搜索等复杂搜索和搜索能力的分享传递等功能。与已有的方法相比,具有更高的实用性和扩展性。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例1提供的基于可信执行环境的公钥认证可搜索加密方法模型;
图2为本发明实施例1提供的基于可信执行环境的公钥认证可搜索加密方法流程示意图;
图3为本发明实施例1提供的以Intel SGX为示例的基于可信执行环境的公钥认证可搜索加密方法框架;
图4为本发明实施例1提供的基于可信执行环境的公钥认证可搜索加密方法中可信搜索程序流程图;
图5为本发明实施例2提供的基于可信执行环境的公钥认证可搜索加密方法中搜索能力的分享传递过程示意图。
具体实施方式
下面结合附图与实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例1
如图1所示为本实施例提供的文件上传和搜索过程的示意图,示例性地表示文件接收方通过云存储服务器检索来自文件发送方的文件的完整过程。在该过程前的密钥生成和分发过程已经省略;主要包括如下几个过程:文件发送方生成关键词密文、关键词密文上传至云存储服务器、文件接收方生成搜索陷门、搜索陷门上传至云存储服务器启动搜索请求、创建可信执行环境及可信搜索程序的执行、返回搜索结果至文件接收方、文件接收方下载并解密相关文件。
如图2所示,上述过程的具体步骤如下:
(1)文件发送方和文件接收方分别利用各自的安全参数生成自身的公私钥对;
(2)文件发送方生成关键词密文、文件密文和文件加密密钥的密文,并上传至云存储服务器;
(3)如果云存储服务器上未建立可信搜索程序,则构建可信搜索程序;
(4)如果云存储服务器上未接收并存储文件接收方的私钥,则通过安全信道接收其私钥并进行安全存储;
(5)文件接收方生成搜索陷门,并上传到云存储服务器,发送搜索请求;
(6)云存储服务器创建可信执行环境,执行可信搜索程序,得到搜索结果,并将搜索结果返回给文件接收方;
(7)文件接收方根据搜索结果,在云存储服务器中选择特定文件进行下载,包括文件密文和文件加密密钥的密文,对其进行解密后,获取原文件。
下述为本实施例对应用于云存储服务器的公钥认证可搜索加密方法进行详细阐述。
接收发送方发送的关键词密文、文件密文和文件加密密钥的密文,以及接收方发送的搜索陷门;
接收通过安全信道发送的接收方私钥并进行安全存储;
创建可信执行环境,并在可信执行环境中执行以下验证过程,需要指出的是,以下验证过程为单个关键词密文和搜索陷门的验证,在完整的搜索过程中,所有关键词密文均要完成和搜索陷门的以下验证:
验证关键词密文中的加密密文是否是由接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证搜索陷门中的加密密文是否是由接收方的不同公钥对同一搜索关键词及接收方的签名进行加密;
读取安全存储在服务器上的接收方私钥密文,执行解密操作,获取私钥明文;
根据接收方私钥明文,解密关键词密文,得到文件关键词和发送方对该关键词的签名;
根据接收方私钥明文,解密搜索陷门,得到搜索关键词和接收方对该关键词的签名;
验证发送方对文件关键词的签名是否正确;
验证接收方对搜索关键词的签名是否正确;
验证文件关键词和搜索关键词是否匹配一致;
上述验证过程依次验证通过或收到第一个验证失败的结果后,停止验证,将验证结果返回给服务器,并进行下一关键词密文和搜索陷门的验证过程;
在所有关键词密文验证完成后,服务器将搜索结果返回给接收方,以使接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
其中,所述可信执行环境以SGX为例,下述过程均以SGX可信执行环境为例进行详细阐述。
在本实施例中,发送方发送的关键词密文、文件密文、文件加密密钥的密文,以及接收方发送的搜索陷门的生成过程包括:
文件发送方和文件接收方首先分别利用各自的安全参数生成自身的公私钥对;
文件发送方根据自身的私钥SKS对文件中的每个关键词w进行签名,再根据文件接收方的公钥PKR对关键词w及签名进行加密,生成关键词密文集合{C};
文件发送方采用对称密钥K对文件进行对称加密得到文件密文CF;并根据文件接收方的公钥PKR对K进行加密得到文件加密密钥的密文CK;
文件接收方根据自身的公私钥对(PKR,SKR)对搜索关键词w’进行签名和加密,生成搜索陷门Tw’,并将搜索陷门Tw’上传到云存储服务器并发送搜索请求。
除此之外,文件接收方还将自身的私钥发送给云存储服务器,云存储服务器对其进行密封;密封过程采用基于Enclave身份的策略(MRENCLAVE)进行加密;
具体地,文件接收方借助IntelSGX远程认证技术,和云存储服务器上的可信搜索程序(下称Enclave搜索程序)通过Diffie-Hellman密钥交换协议建立一个安全信道,传递自身的私钥,并由Enclave搜索程序借助IntelSGX密封技术,将密钥进行安全密封存储。
假设PKE=(KenGen,Enc,Dec)是一个IND-CPA安全公钥密码方案,是一个自适应安全非交互零知识证明系统,SIG=(KeyGen,Sig,Ver)是一个EUF-CMA安全的签名方案。在本实施例中,上述接收方公钥PKR、接收方私钥SKR、发送方公钥PKS、发送方私钥SKS、关键词密文C、搜索陷门Tw’设置如下:
PKR=(pk1,pk2,pk3,r←{0,1}poly(λ)),SKR=(sk1,sk3),
PKS=(pk,rS←{0,1}poly(λ)),SKS=sk,
其中,(pk1,sk1)←PKE.KeyGen(λ),(pk2,sk2)←PKE.KeyGen(λ),
(pk3,sk3)←SIG.KeyGen(λ),(pk,sk)←SIG.KeyGen(λ),
C1←PKE.Enc(pk1,w||sigw;r1),C2←PKE.Enc(pk2,w||sigw;r2),
在本实施例中,云存储服务器构建SGX可信执行环境并部署Enclave搜索程序,在接收到搜索请求后,执行Enclave搜索程序中的关键词匹配过程,以得到搜索结果,具体过程和该部分结构如图3所示。
需要注意的是,整个过程的核心在于云存储服务器调用Enclave执行的关键词匹配过程,要求云存储服务器必须支持Intel SGX。Intel SGX提供了一系列安全机制,如远程认证、密封等。
如图3所示,云存储服务器被划分为云存储、云应用和Enclave搜索程序三部分,各部分只抽象地表示出与本实施例相关的内容,其余细节被忽略;且图1中⑤的过程可由图3中①-⑥的过程来表示;
其中,云应用接收搜索请求,即搜索陷门;在云应用中,文件加载器向云存储发送文件读写请求;云存储读取关键词密文、密封的私钥、用户公钥等文件,返回给文件加载器;云应用将这些文件发送给Enclave搜索程序;在Enclave搜索程序中,密钥管理器解封文件接收方的密钥,验证器执行公钥认证可搜索加密的匹配算法,进行关键词比对,Enclave搜索程序将匹配算法的结果返回给云应用;最后,云应用将搜索结果处理后返回给接收方。
如图3所示,还涉及用户与云存储服务器上的Enclave搜索程序之间的远程认证过程,该过程通过Intel SGX远程认证技术对运行在云存储服务器上的Enclave搜索程序的初始化、结构、代码完整性等进行验证。为了突出本实施例的核心结构,远程认证的细节在图3中并没有展开。
如图4所示为可信搜索程序的运行流程图;具体包括:
接收文件发送方发送的关键词密文和搜索陷门、文件接收方发送的私钥密文;
解密文件接收方的私钥;如果解密成功,则继续执行下面的算法,否则程序结束,并返回0:
验证关键词密文中的加密密文是否由接收方的不同公钥对同一关键词及发送方的签名进行加密;具体地,关键词密文的零知识证明验证通过执行关键词密文C中的自适应安全非交互零知识证明系统的验证过程来完成,以验证关键词密文C中的C1和C2是否是使用不同的文件接收方公钥pk1、pk2对同一文件关键词及签名的加密密文。如果验证成功,则继续执行下面的算法,否则程序结束,并返回0;
验证搜索陷门中的加密密文是否由接收方的不同公钥对同一关键词及接收方的签名进行加密;具体地,搜索陷门的零知识证明验证通过执行搜索陷门Tw’中的自适应安全非交互零知识证明系统的验证过程来完成,以验证搜索陷门Tw’中的和是否是使用不同的文件接收方公钥pk1、pk2对同一关键词及签名的加密密文。如果验证成功,则继续执行下面的算法,否则程序结束,并返回0;
根据接收方私钥,执行PKE.Dec算法,解密关键词密文,得到文件关键词w及发送方对该关键词的签名sigw:
根据接收方私钥,执行PKE.Dec算法,解密搜索陷门,得到搜索关键词w’及接收方对该关键词的签名sigw′;
执行SIG.Ver算法,验证发送方对文件关键词的签名是否正确;如果验证成功,则继续执行下面的算法,否则程序结束,并返回0;
执行SIG.Ver算法,验证接收方对搜索关键词的签名是否正确;如果验证成功,则继续执行下面的算法,否则程序结束,并返回0;
验证文件关键词w和搜索关键词w’是否匹配一致,如果w==w’,则返回1,否则返回0;
最后,上述过程依次成功执行或收到第一个失败的结果后,停止验证,可信搜索程序返回搜索结果(0或1)。
在本实施例中,如果考虑多关键词连接搜索,即在一个搜索陷门里包含多个搜索关键词,并能匹配多个关键词的密文,则采用下述方法:
在文件发送方生成关键词密文时,将文件的所有关键词生成一个布隆过滤器BFw,将该布隆过滤器作为文件的唯一关键词,并根据自身的私钥对布隆过滤器签名,再根据文件接收方的公钥加密该布隆过滤器及签名,生成文件关键词密文;
在文件接收方生成搜索陷门时,同样将待搜索的多个关键词生成一个布隆过滤器BF,并根据文件接收方自身公私钥对对布隆过滤器BF进行签名和加密,生成搜索陷门;
在可信搜索程序中,进行文件关键词和搜索关键词的匹配时,将比对操作改为判断布隆过滤器BFw和BF的按位与结果是否等于BF,如果BFw&BF==BF,则返回1,否则返回0。
在本实施例中,考虑前向安全性,在关键词密文和搜索陷门生成时均加入时间戳信息,在可信搜索程序中增加对时间戳的比较,如果搜索陷门时间戳早于关键词密文时间戳,则可信程序直接结束并返回0即可,即验证失败。
在本实施例中,验证均通过后,云存储服务器将得到的搜索结果发送给文件接收方,文件接收方根据搜索结果,在云存储服务器上下载对应的文件密文CF和文件加密密钥的密文CK;然后,由文件接收方使用自身的私钥SKR对文件加密密钥的密文CK进行解密,得到文件加密密钥K,然后利用K对文件密文CF进行解密,获取原文件。
可以理解的,该公钥认证可搜索加密方法应用于文件接收方和文件发送方时的方法流程与上述一致,在此不再赘述。
实施例2
本实施例提供一种基于可信执行环境的公钥认证可搜索加密方法,应用于服务器上,包括:
接收发送方发送的第一关键词密文、文件密文和文件加密密钥的密文,所述第一关键词密文根据发送方的私钥对第一文件关键词签名,再根据第一接收方的公钥对第一文件关键词及第一文件关键词签名进行加密得到;
接收第一搜索陷门和/或第二搜索陷门,所述第一搜索陷门和第二搜索陷门分别由第一接收方和第二接收方发送;
接收通过安全信道发送的第一接收方、第二接收方和发送方的私钥并密封;
创建可信执行环境,并在可信执行环境中执行以下过程,需要指出的是,除关键词密文的重加密以外,其他过程为单个关键词密文和搜索陷门的验证,在完整搜索过程中,所有关键词密文均要完成和搜索陷门的以下验证过程:
读取安全存储在服务器上的第一接收方和发送方的私钥,执行解密操作,获取私钥明文;
执行关键词密文重加密过程,包括根据第一接收方的私钥解密第一关键词密文,得到第二文件关键词,再根据发送方的私钥对第二文件关键词签名,最后根据第二接收方的公钥加密第二文件关键词及其签名,得到第二关键词密文;
验证第一关键词密文中的加密密文是否由第一接收方的不同公钥对同一文件关键词及发送方的签名进行加密;和/或,验证第二关键词密文中的加密密文是否由第二接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证第一搜索陷门中的加密密文是否由第一接收方的不同公钥对同一搜索关键词及第一接收方的签名进行加密;和/或,验证第二搜索陷门中的加密密文是否由第二接收方的不同公钥对同一搜索关键词及第二接收方的签名进行加密;
解密第一关键词密文,得到第一文件关键词和发送方对该关键词的签名;和/或,解密第二关键词密文,得到第二文件关键词和发送方对该关键词的签名;
解密第一搜索陷门,得到第一搜索关键词和第一接收方对第一搜索关键词的签名;和/或,解密第二搜索陷门,得到第二搜索关键词和第二接收方对第二搜索关键词的签名;
验证发送方对第一文件关键词的签名是否正确;和/或,验证发送方对第二文件关键词的签名是否正确;
验证第一接收方对第一搜索关键词的签名是否正确;和/或,验证第二接收方对第二搜索关键词的签名是否正确;
验证第一文件关键词和第一搜索关键词是否匹配一致;和/或,以及验证第二文件关键词和第二搜索关键词是否匹配一致;
上述验证过程依次验证通过或收到第一个验证失败的结果后,停止验证,将验证结果返回给服务器,并进行下一关键词密文和搜索陷门的验证过程;
在所有关键词密文验证完成后,服务器将搜索结果发送给第一接收方和/或第二接收方,以使第一接收方和/或第二接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
如图5所示,本实施例提供的基于可信执行环境的公钥认证可搜索加密方法为扩展功能,即搜索能力的分享传递过程;搜索能力的分享传递关键在于关键词密文的重加密,可以采用代理重加密的方式由云存储服务器将文件关键词密文转换为第二个接收方可以搜索的文件关键词密文。在本实施例中,利用可信执行环境可以实现重加密过程。
在本实施例中,共有四个行为主体,分别是文件发送方、第一文件接收方、第二文件接收方和云存储服务器可信执行环境中的可信重加密程序,其中可信重加密程序的功能是将由第一文件接收方公钥加密的关键词密文转换成由第二文件接收方公钥加密的密文。
第一文件接收方将部分数据的关键词搜索能力分享给第二文件接收方,即“解密再加密”的过程,具体为:第一关键词密文以及安全存储的第一文件接收方的私钥由云存储服务器发送给可信重加密程序,在可信重加密程序中解密得到第一文件接收方的私钥,并用该私钥解密第一关键词密文,得到第二文件关键词,然后再根据发送方的私钥对第二文件关键词进行签名,最后根据第二文件接收方的公钥加密第二文件关键词及签名,得到第二关键词密文。
由此,云存储服务器拥有了由第二文件接收方公钥加密的关键词密文,那么第二文件接收方也拥有了合法的关键词搜索能力;通过发送搜索陷门进行文件搜索,其余过程与实施例1的方法一致,在此不再赘述。
整个过程的安全性由Enclave程序本身的安全特性所保证,核心操作也是在云端完成,无需多余的交互和通信负载。此外,本实施例能够在无需指定验证人的情况下抵抗关键词猜测攻击,且满足搜索模式隐私性,即陷门生成算法是随机的。
实施例3
本实施例提供一种基于可信执行环境的公钥认证可搜索加密系统,设于服务器中,包括:
第一接收模块,被配置为接收发送方发送的关键词密文、文件密文和文件加密密钥的密文,以及接收方发送的搜索陷门;
第二接收模块,被配置为接收通过安全信道发送的接收方私钥并进行安全存储;
可信执行环境的创建与验证模块,被配置为创建可信执行环境,执行以下验证过程:
验证关键词密文中的加密密文是否由接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证搜索陷门中的加密密文是否由接收方的不同公钥对同一搜索关键词及接收方的签名进行加密;
读取安全存储在服务器上的接收方私钥密文,执行解密操作,获取接收方私钥明文;
根据接收方私钥明文,解密关键词密文,得到文件关键词和发送方对文件关键词的签名;
根据接收方私钥明文,解密搜索陷门,得到搜索关键词和接收方对搜索关键词的签名;
验证发送方对文件关键词的签名是否正确;
验证接收方对搜索关键词的签名是否正确;
验证文件关键词和搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
结果返回模块,被配置为所有关键词密文均验证完成后,将得到的搜索结果发送给接收方,以使接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
此处需要说明的是,上述模块对应于实施例1中所述的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
实施例4
本实施例提供一种基于可信执行环境的公钥认证可搜索加密系统,设于服务器中,包括:
第一接收模块,被配置为接收发送方发送的第一关键词密文、文件密文和文件加密密钥的密文,所述第一关键词密文根据发送方的私钥对第一文件关键词签名,再根据第一接收方的公钥对第一文件关键词及第一文件关键词签名进行加密得到;
第二接收模块,被配置为接收第一搜索陷门和/或第二搜索陷门,所述第一搜索陷门和第二搜索陷门分别由第一接收方和第二接收方发送;
第三接收模块,被配置为接收通过安全信道发送的第一接收方、第二接收方和发送方的私钥并进行安全存储;
可信执行环境的创建与验证模块,被配置为创建可信执行环境,并执行以下过程:
读取安全存储在服务器上的的第一接收方和发送方的私钥密文,执行解封操作,获取私钥明文;
执行关键词密文重加密过程,包括根据第一接收方的私钥解密第一关键词密文,得到第二文件关键词,根据发送方的私钥对第二文件关键词签名,根据第二接收方的公钥加密第二文件关键词及其签名,得到第二关键词密文;
验证第一关键词密文中的加密密文是否由第一接收方的不同公钥对同一文件关键词及发送方的签名进行加密;和/或,验证第二关键词密文中的加密密文是否由第二接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证第一搜索陷门中的加密密文是否由第一接收方的不同公钥对同一搜索关键词及第一接收方的签名进行加密;和/或,验证第二搜索陷门中的加密密文是否由第二接收方的不同公钥对同一搜索关键词及第二接收方的签名进行加密;
解密第一关键词密文,得到第一文件关键词和发送方对第一文件关键词的签名;和/或,解密第二关键词密文,得到第二文件关键词和发送方对第二文件关键词的签名;
解密第一搜索陷门,得到第一搜索关键词和第一接收方对第一搜索关键词的签名;和/或,解密第二搜索陷门,得到第二搜索关键词和第二接收方对第二搜索关键词的签名;
验证发送方对第一文件关键词的签名是否正确;和/或,验证发送方对第二文件关键词的签名是否正确。
验证第一接收方对第一搜索关键词的签名是否正确;和/或,验证第二接收方对第二搜索关键词的签名是否正确;
验证第一文件关键词和第一搜索关键词是否匹配一致;和/或,验证第二文件关键词和第二搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
结果返回模块,被配置为所有关键词密文均验证完成后,将得到的搜索结果发送给第一接收方和/或第二接收方,以使第一接收方和/或第二接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
此处需要说明的是,上述模块对应于实施例2中所述的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
实施例5
本实施例提供一种基于可信执行环境的公钥认证可搜索加密系统,包括:云存储服务器、文件发送方和文件接收方;
所述文件发送方利用安全参数生成自身的公私钥对,根据自身的私钥对文件的每个关键词签名,再根据文件接收方的公钥对关键词及签名进行加密,生成关键词密文;根据采用对称密钥对文件进行对称加密得到文件密文;根据文件接收方的公钥对文件加密密钥进行加密得到文件加密密钥的密文;并上传至云存储服务器;
所述文件接收方利用安全参数生成自身的公私钥对,根据自身的私钥对搜索关键词签名,再根据自身的私钥对该关键词及签名进行加密,生成搜索陷门,并将搜索陷门发送给云存储服务器;
所述文件接收方通过安全信道传递自身的私钥;
所述云存储服务器接收关键词密文和搜索陷门,创建可信执行环境,并在可信执行环境中执行关键词比对过程,将搜索结果返回给文件接收方;同时还通过一定的安全存储技术对文件接收方的密钥进行安全管理。
在本实施例中,文件接收方可包括第一文件接收方和第二文件接收方,对由第一文件接收方公钥生成的关键词密文进行重加密,转换成由第二文件接收方公钥加密的关键词密文;具体过程与实施例2的方法一致,在此不再赘述。
可以理解的,本实施例的基于可信执行环境的公钥认证可搜索加密系统执行与实施例1和实施例2相同的方法流程,在此不再赘述。
在更多实施例中,还提供:
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1和/或实施例2中所述的方法。为了简洁,在此不再赘述。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1和/或实施例2中所述的方法。
实施例1和实施例2中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种基于可信执行环境的公钥认证可搜索加密方法,应用于服务器上,其特征在于,包括:
接收发送方发送的关键词密文、文件密文和文件加密密钥的密文,以及接收方发送的搜索陷门;
接收通过安全信道发送的接收方私钥并进行安全存储;
创建可信执行环境,并在可信执行环境中执行以下验证过程:
验证关键词密文中的加密密文是否由接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证搜索陷门中的加密密文是否由接收方的不同公钥对同一搜索关键词及接收方的签名进行加密;
读取存储在服务器上的接收方私钥密文,执行解密操作,获取接收方私钥明文;
根据接收方私钥明文,解密关键词密文,得到文件关键词和发送方对文件关键词的签名;
根据接收方私钥明文,解密搜索陷门,得到搜索关键词和接收方对搜索关键词的签名;
验证发送方对文件关键词的签名是否正确;
验证接收方对搜索关键词的签名是否正确;
验证文件关键词和搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
所有关键词密文均验证完成后,将得到的搜索结果发送给接收方,以使接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
2.如权利要求1所述的一种基于可信执行环境的公钥认证可搜索加密方法,其特征在于,发送方发送的关键词密文、文件密文、文件加密密钥的密文,以及接收方发送的搜索陷门的生成过程包括:
发送方和接收方分别根据各自的安全参数生成自身的公私钥对;
发送方根据自身的私钥对文件关键词进行签名,根据接收方的公钥对文件关键词及文件关键词签名进行加密,生成关键词密文;
发送方对文件进行对称加密得到文件密文,并根据接收方的公钥对文件加密密钥进行加密得到文件加密密钥的密文;
接收方根据自身的私钥对搜索关键词进行签名,根据自身的公钥对搜索关键词及搜索关键词签名进行加密,生成搜索陷门。
3.如权利要求1所述的一种基于可信执行环境的公钥认证可搜索加密方法,其特征在于,若搜索陷门中包括多个搜索关键词且匹配多个文件关键词的密文,则:
发送方生成关键词密文时,将所有文件关键词生成第一布隆过滤器,并对第一布隆过滤器根据接收方的公钥和发送方的私钥生成文件关键词密文;
在接收方生成搜索陷门时,将所有搜索关键词生成第二布隆过滤器,并对第二布隆过滤器根据接收方自身公私钥对生成统一搜索陷门;
在进行文件关键词和搜索关键词的匹配时,验证第一布隆过滤器和第二布隆过滤器的按位与结果是否等于第二布隆过滤器。
4.如权利要求1所述的一种基于可信执行环境的公钥认证可搜索加密方法,其特征在于,在关键词密文和搜索陷门生成时均加入时间戳信息,并对搜索陷门时间戳与关键词密文时间戳进行验证,若搜索陷门时间戳早于关键词密文时间戳,则验证失败。
5.如权利要求1所述的一种基于可信执行环境的公钥认证可搜索加密方法,其特征在于,验证均通过后,接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文;根据接收方的私钥对文件加密密钥的密文进行解密,得到文件加密密钥,然后根据文件加密密钥对文件密文进行解密,获取原文件。
6.一种基于可信执行环境的公钥认证可搜索加密方法,应用于服务器上,其特征在于,包括:
接收发送方发送的第一关键词密文、文件密文和文件加密密钥的密文,所述第一关键词密文根据发送方的私钥对第一文件关键词签名,再根据第一接收方的公钥对第一文件关键词及第一文件关键词签名进行加密得到;
接收第一搜索陷门和/或第二搜索陷门,所述第一搜索陷门和第二搜索陷门分别由第一接收方和第二接收方发送;
接收通过安全信道发送的第一接收方、第二接收方和发送方的私钥并进行安全存储;
创建可信执行环境,并在可信执行环境中执行以下过程:
读取存储在服务器上的第一接收方和发送方的私钥,执行解密操作,获取私钥明文;
执行关键词密文重加密过程,包括根据第一接收方的私钥解密第一关键词密文,得到第二文件关键词,根据发送方的私钥对第二文件关键词签名,根据第二接收方的公钥加密第二文件关键词及其签名,得到第二关键词密文;
验证第一关键词密文中的加密密文是否由第一接收方的不同公钥对同一文件关键词及发送方的签名进行加密;和/或,验证第二关键词密文中的加密密文是否由第二接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证第一搜索陷门中的加密密文是否由第一接收方的不同公钥对同一搜索关键词及第一接收方的签名进行加密;和/或,验证第二搜索陷门中的加密密文是否由第二接收方的不同公钥对同一搜索关键词及第二接收方的签名进行加密;
解密第一关键词密文,得到第一文件关键词和发送方对第一文件关键词的签名;和/或,解密第二关键词密文,得到第二文件关键词和发送方对第二文件关键词的签名;
解密第一搜索陷门,得到第一搜索关键词和第一接收方对第一搜索关键词的签名;和/或,解密第二搜索陷门,得到第二搜索关键词和第二接收方对第二搜索关键词的签名;
验证发送方对第一文件关键词的签名是否正确;和/或,验证发送方对第二文件关键词的签名是否正确。
验证第一接收方对第一搜索关键词的签名是否正确;和/或,验证第二接收方对第二搜索关键词的签名是否正确;
验证第一文件关键词和第一搜索关键词是否匹配一致;和/或,验证第二文件关键词和第二搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
所有关键词密文均验证完成后,将得到的搜索结果发送给第一接收方和/或第二接收方,以使第一接收方和/或第二接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
7.一种基于可信执行环境的公钥认证可搜索加密系统,设于服务器上,其特征在于,包括:
第一接收模块,被配置为接收发送方发送的关键词密文、文件密文和文件加密密钥的密文,以及接收方发送的搜索陷门;
第二接收模块,被配置为接收通过安全信道发送的接收方私钥并进行安全存储;
可信执行环境的创建与验证模块,被配置为创建可信执行环境,执行以下验证过程:
验证关键词密文中的加密密文是否由接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证搜索陷门中的加密密文是否由接收方的不同公钥对同一搜索关键词及接收方的签名进行加密;
读取存储在服务器上的接收方私钥,执行解密操作,获取接收方私钥明文;
根据接收方私钥明文,解密关键词密文,得到文件关键词和发送方对文件关键词的签名;
根据接收方私钥明文,解密搜索陷门,得到搜索关键词和接收方对搜索关键词的签名;
验证发送方对文件关键词的签名是否正确;
验证接收方对搜索关键词的签名是否正确;
验证文件关键词和搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
结果返回模块,被配置为所有关键词密文均验证完成后,将得到的搜索结果发送给接收方,以使接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
8.一种基于可信执行环境的公钥认证可搜索加密系统,设于服务器上,其特征在于,包括:
第一接收模块,被配置为接收发送方发送的第一关键词密文、文件密文和文件加密密钥的密文,所述第一关键词密文根据发送方的私钥对第一文件关键词签名,再根据第一接收方的公钥对第一文件关键词及第一文件关键词签名进行加密得到;
第二接收模块,被配置为接收第一搜索陷门和/或第二搜索陷门,所述第一搜索陷门和第二搜索陷门分别由第一接收方和第二接收方发送;
第三接收模块,被配置为接收通过安全信道发送的第一接收方、第二接收方和发送方的私钥并进行安全存储;
可信执行环境的创建与验证模块,被配置为创建可信执行环境,并执行以下过程:
读取存储在服务器上的第一接收方和发送方的私钥,执行解密操作,获取私钥明文;
执行关键词密文重加密过程,包括根据第一接收方的私钥解密第一关键词密文,得到第二文件关键词,根据发送方的私钥对第二文件关键词签名,根据第二接收方的公钥加密第二文件关键词及其签名,得到第二关键词密文;
验证第一关键词密文中的加密密文是否由第一接收方的不同公钥对同一文件关键词及发送方的签名进行加密;和/或,验证第二关键词密文中的加密密文是否由第二接收方的不同公钥对同一文件关键词及发送方的签名进行加密;
验证第一搜索陷门中的加密密文是否由第一接收方的不同公钥对同一搜索关键词及第一接收方的签名进行加密;和/或,验证第二搜索陷门中的加密密文是否由第二接收方的不同公钥对同一搜索关键词及第二接收方的签名进行加密;
解密第一关键词密文,得到第一文件关键词和发送方对第一文件关键词的签名;和/或,解密第二关键词密文,得到第二文件关键词和发送方对第二文件关键词的签名;
解密第一搜索陷门,得到第一搜索关键词和第一接收方对第一搜索关键词的签名;和/或,解密第二搜索陷门,得到第二搜索关键词和第二接收方对第二搜索关键词的签名;
验证发送方对第一文件关键词的签名是否正确;和/或,验证发送方对第二文件关键词的签名是否正确。
验证第一接收方对第一搜索关键词的签名是否正确;和/或,验证第二接收方对第二搜索关键词的签名是否正确;
验证第一文件关键词和第一搜索关键词是否匹配一致;和/或,验证第二文件关键词和第二搜索关键词是否匹配一致;
上述验证过程均验证通过或接收到第一个验证失败的结果后,则停止当前验证,并进行下一关键词密文和搜索陷门的验证过程;
结果返回模块,被配置为所有关键词密文均验证完成后,将得到的搜索结果发送给第一接收方和/或第二接收方,以使第一接收方和/或第二接收方根据搜索结果下载对应的文件密文和文件加密密钥的密文,并对文件加密密钥的密文进行解密后,以得到的文件加密密钥对文件密文进行解密,从而得到原文件。
9.一种电子设备,其特征在于,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-5任一项所述的方法和/或完成权利要求6所述的方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-5任一项所述的方法和/或完成权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210937406.7A CN115314284B (zh) | 2022-08-05 | 2022-08-05 | 一种基于可信执行环境的公钥认证可搜索加密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210937406.7A CN115314284B (zh) | 2022-08-05 | 2022-08-05 | 一种基于可信执行环境的公钥认证可搜索加密方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314284A true CN115314284A (zh) | 2022-11-08 |
CN115314284B CN115314284B (zh) | 2024-03-29 |
Family
ID=83859944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210937406.7A Active CN115314284B (zh) | 2022-08-05 | 2022-08-05 | 一种基于可信执行环境的公钥认证可搜索加密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314284B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116366283A (zh) * | 2023-02-07 | 2023-06-30 | 南京模砾半导体有限责任公司 | 一种基于对称加密的文件安全传输方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086615A (zh) * | 2018-08-03 | 2018-12-25 | 上海海事大学 | 一种抗关键字猜测攻击的支持多关键字搜索公钥加密方法 |
CN109614818A (zh) * | 2018-11-30 | 2019-04-12 | 西南石油大学 | 可授权的基于身份的带关键词搜索加密方法 |
US20190229906A1 (en) * | 2018-01-19 | 2019-07-25 | Huazhong University Of Science And Technology | Method of hybrid searchable encryption and system using the same |
CN114793176A (zh) * | 2022-04-27 | 2022-07-26 | 陕西师范大学 | 支持撤销和验证的无配对可搜索加密方法 |
-
2022
- 2022-08-05 CN CN202210937406.7A patent/CN115314284B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190229906A1 (en) * | 2018-01-19 | 2019-07-25 | Huazhong University Of Science And Technology | Method of hybrid searchable encryption and system using the same |
CN109086615A (zh) * | 2018-08-03 | 2018-12-25 | 上海海事大学 | 一种抗关键字猜测攻击的支持多关键字搜索公钥加密方法 |
CN109614818A (zh) * | 2018-11-30 | 2019-04-12 | 西南石油大学 | 可授权的基于身份的带关键词搜索加密方法 |
CN114793176A (zh) * | 2022-04-27 | 2022-07-26 | 陕西师范大学 | 支持撤销和验证的无配对可搜索加密方法 |
Non-Patent Citations (1)
Title |
---|
崔巍;辛阳;胡程瑜;杨义先;李忠献: "高效的基于身份的(受限)部分盲签名", 北京邮电大学学报, 15 August 2008 (2008-08-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116366283A (zh) * | 2023-02-07 | 2023-06-30 | 南京模砾半导体有限责任公司 | 一种基于对称加密的文件安全传输方法 |
CN116366283B (zh) * | 2023-02-07 | 2023-08-18 | 南京模砾半导体有限责任公司 | 一种基于对称加密的文件安全传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115314284B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109559122B (zh) | 区块链数据传输方法及区块链数据传输系统 | |
US11909870B2 (en) | ECDHE key exchange for mutual authentication using a key server | |
US11943343B2 (en) | ECDHE key exchange for server authentication and a key server | |
US11431498B2 (en) | Quantum-augmentable hybrid encryption system and method | |
CN108599925B (zh) | 一种基于量子通信网络的改进型aka身份认证系统和方法 | |
CN108199835B (zh) | 一种多方联合私钥解密方法 | |
WO2019214070A1 (zh) | 区块链上用户通信加密方法、装置、终端设备及存储介质 | |
US10205713B2 (en) | Private and mutually authenticated key exchange | |
EP2853057B1 (en) | Key sharing device and system for configuration thereof | |
WO2022060471A2 (en) | Secure communication with two post-quantum cryptography key encapsulations and authentication | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
US10511581B2 (en) | Parallelizable encryption using keyless random permutations and authentication using same | |
JP2004266342A (ja) | 無線アドホック通信システム、端末、その端末における復号方法、暗号化方法及びブロードキャスト暗号鍵配布方法並びにそれらの方法を端末に実行させるためのプログラム | |
US20190268145A1 (en) | Systems and Methods for Authenticating Communications Using a Single Message Exchange and Symmetric Key | |
JP2020530726A (ja) | サプライチェーン資産管理を保護するアプリケーションを有する遠隔サーバへのnfcタグ認証 | |
CN111769938A (zh) | 一种区块链传感器的密钥管理系统、数据验证系统 | |
CN113868684A (zh) | 一种签名方法、装置、服务端、介质以及签名系统 | |
CN115314284B (zh) | 一种基于可信执行环境的公钥认证可搜索加密方法及系统 | |
US20210144002A1 (en) | Secondary Channel Authentication of Public Keys | |
US11240661B2 (en) | Secure simultaneous authentication of equals anti-clogging mechanism | |
US11146540B2 (en) | Systems and methods for public key exchange employing a peer-to-peer protocol | |
US20220360429A1 (en) | Location-key encryption system | |
CN113656818B (zh) | 满足语义安全的无可信第三方云存储密文去重方法与系统 | |
KR102400260B1 (ko) | 속성 기반 접근 제어를 이용하는 엣지 컴퓨팅 기반의 차량-내 통신 시스템 및 그 방법 | |
CN112423295A (zh) | 一种基于区块链技术的轻量级安全认证方法及系统 |
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 |