CN108512840A - 一种基于泄序加密的密文检索方法 - Google Patents
一种基于泄序加密的密文检索方法 Download PDFInfo
- Publication number
- CN108512840A CN108512840A CN201810233631.6A CN201810233631A CN108512840A CN 108512840 A CN108512840 A CN 108512840A CN 201810233631 A CN201810233631 A CN 201810233631A CN 108512840 A CN108512840 A CN 108512840A
- Authority
- CN
- China
- Prior art keywords
- encrypted
- document
- sequence
- keyword
- ore
- 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.)
- Pending
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于泄序加密的密文检索方法。该密文检索方法主要利用泄序加密算法对文档进行加密,并对关键词也使用泄序加密算法后构建布隆滤波器,客户端从云端服务器获取符合查询条件的加密文档后,采用泄序解密算法对文档进行解密运算。此密文检索算法具有安全性较高、加密速度快、膨胀率较低的特点。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种基于泄序加密(Order-RevealingEncryption,ORE)的密文检索方法。
背景技术
随着云计算技术的迅速发展,越来越多的企业与个人用户为了节省费用以及管理方便将数据存储到云端服务器,与此同时,近年来由于黑客的非法入侵以及云端服务器管理员的不当操作造成了多起大量用户资料和私人数据泄露事件,比如2011年Google Gmail用户数据泄露。为了保证数据安全和用户隐私,企业和个人用户越来越多的选择对数据进行加密,并将数据以密文形式存储在云端服务器。
一个可能的应用场景是:用户需要检索包含特定关键字的文档,但由于数据是通过加密存储的,常用的基于明文数据的检索方法往往失去作用,为了更好的解决这个问题,可搜索加密技术(Searchable Encryption,SE)便应运而生,近年来越来越成为研究热点。
针对关键字搜索,目前可搜索加密技术从构造机制上划分,主要分为两种:基于对称密码学算法和基于公钥密码学算法。基于公钥密码学算法的SE机制涉及到群元素之间的运算,开销比较大;基于对称密码学算法的SE机制大多采用哈希算法或者伪随机置换等对关键字按照一定步骤进行处理,当需要对关键字进行搜索时,首先将关键字随机化处理,然后让服务器根据协议所预设的计算方式进行关键字匹配,如果最后的计算结果符合某种特定格式,则说明匹配成功,如果不符合,则匹配不成功。
本文所采用的泄序加密算法从本质上来说一种对称加密算法,与保序加密算法(Order-Preserving Encryption,OPE)相似,保序加密算法是一种支持密文数据比较大小的加密算法,此算法加密明文后,可以直接通过密文数据得到大小关系,即,对任意明文p1>p2,加密后得到的密文满足c1>c。利用此算法。利用此算法,可以对密文数据进行数据匹配、范围查询以及排序等操作,但此算法泄露了明文数据之间大小,遭受推理攻击后可以恢复一半以上的明文数据。
与保序加密算法相比,泄序加密算法具有更高的安全性,此种算法要求加密后的密文数据不保持原明文数据的大小关系,要依靠专门的比较函数进行比较大小,即,对任意明文数据p1>p2,加密后得到的密文数据c1、c2,满足比较函数Compare(c1,c2)>0。
泄序加密算法利用明文数据的比特位bit进行运算,泄露的仅是明文数据中第一个不相同的比特位,与常用的保序加密算法相比具有更高的安全性,而且由于其是按位进行运算,加密速度较快,密文膨胀率较小。
发明内容
本发明的目的在于提出一种基于泄序加密的密文检索方法,该加密算法与常用的对称加密算法相比,具有安全性较高且加密速度快,膨胀率低的特点。
本发明解决其技术问题所采用的技术方案是:
一种泄序加密ORE方法,其方法包括以下步骤:
步骤1:输入加密密钥key与待加密明文数据p,设p有n比特位,将p表示成比特位形式为:p=m0m1…mn,设明文数据每个比特位在密文中扩展为out_blk_len位,明文p加密后密文为ctxt;
步骤2:计算block_mask=2^out_blk_len-1;
步骤3:初始化数组prf_input_buf,设i代表p的第i个比特位;
步骤4:计算明文第i位比特位位于明文数据的字节序列记为byteind;
步骤5:计算明文数据的第i位掩码记为mask及明文p的字节偏移量记为offset;
步骤6:计算密文块ctxt_block=F(key,prf_input_buf),其中F为加密函数;
步骤7:如果第i位的mask>0,则ctxt_block=ctxt_block+1;
步骤8:ctxt_block与block_mask做与操作;
步骤9:ctxt_block左移(n-i-1)*out_blk_len位;
步骤10:ctxt与ctxt_block做异或操作;
步骤11:更新prf_input_buf;
步骤12:重复步骤4至步骤11,直至明文p的每一个比特位遍历完成;
步骤13:输出加密后的密文ctxt。
一种基于泄序加密算法的密文检索方法,其特征在于,该方法包括以下步骤:
本方法ORE-KSE(Order-Revealing Encryption Keyword Search Encryption)从形式上可以表示为如下公式:
ORE-KSE=(KeyGen,BuildFilter,KeywordEnc,Search,DecryptFile)
步骤1:生成安全密钥;
KeyGen主要用于在数据所有者客户端生成密钥sk,sk的主要作用是用来加密文档和对文档中的关键字。
步骤2:构建布隆滤波的filter;
BuildFilter利用布隆滤波器生成基于文本关键词的filter,首先对输入的文档进行分词处理,过滤到一些对检索来说作用不大的词语,比如冠词连词等;
其次,生成文本的关键词集合,记为W={w0,…,wi,…wn},其中wi代表文档F的第i个关键词,n为文档F的关键词个数;
然后,利用ORE加密算法对关键词进行逐个加密,记加密后关键词集合为:基于加密后的关键词集合,利用布隆滤波器构建针对每个独立文档的filter,记为If;
最后,把加密后的文档和每个文档的If上传云服务器;
步骤3:加密关键词,发起查询请求;
KeywordEnc主要利用加密密钥对关键字进行加密,发起查询请求。首先,授权用户客户端必须通过密钥服务中心(KMS)或密钥交换算法等获取加密用的密钥sk;
其次,利用ORE加密算法结合密钥sk对关键字进行加密,记KeywordEnc(sk,w)→Cw,然后向云端服务器发起查询请求。
步骤4:云端服务器执行检索算法;
Search是云端基于授权客户端加密后上传的Cw,利用布隆滤波的特性对每个文档的If执行检索操作,然后将符合结果的加密文档下发给授权客户端。
首先针对授权客户端加密后上传的Cw,利用布隆滤波的k个hash function得到布隆filter的k个bit位;
然后验证下这k个bit位是否全为1,如果满足条件获取相应的加密文档,记Search(Cw)→Fe,其中Fe为满足条件的加密文档。
步骤5:授权客户端获取满足条件的文档进行解密;
DecryptFile利用授权客户端的sk,从云端下发的加密文档Fe,结合ORE的解密算法对加密文档进行解密,获取加密文档的明文,记DecryptFile(sk,Fe)→Fplain,其中Fplain为解密后文档。
附图说明
图1为一种ORE加密算法示意图
图2为一种ORE加密算法流程图
图3为一种ORE加密算法prf_input_buf迭代情况示意图
图4为一种基于泄序加密的密文检索方法总体框架图
图5为一种基于泄序加密的密文检索方法流程图
图6为bloomfilter构建示意图
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
图1为一种按明文的比特位进行ORE加密算法的示意图,每个明文数据比特位操作是对当前比特位前面的所有比特位和加密key应用伪随机函数,伪随机函数的输出后在加上当前bit位上的值,然后以此类推加密整个明文数据,最后输出类似图1的加密值。
图2为一种ORE加密算法流程图,下面通过具体实施例进行阐述:
在步骤s201,输入加密密钥key=“heming123456789”与待加密的明文数据p=1610612739=230+229+21+20,p的比特位数为n=31;
在步骤s202,设明文数据每个比特位在密文中扩展为out_blk_len=10,加密密文记为ctxt;
在步骤s203,计算block_mask=2^out_blk_len-1=2^10-1=1023,字节偏移量offset=(8-(n%8))%8=1;
在步骤s204,prf_input_buf数组初始化,初始时i=0,代表p的第i位比特位;
在步骤s205,判断i<n,当满足条件时转到步骤s206,否则转到步骤s215;
在步骤s206,计算明文第i位比特位位于明文数据的字节序列,byteind=(n+7)/8-1-(i+offset)/8,当i=0时,byteind=3;
在步骤s207,计算明文第i位的掩码mask,mask=p[byteind]&(1<<((7-i-offset)%8),当i=0时,计算机采用小端模式mask=64;
在步骤s208,计算密文块ctxt_block=F(key,prf_input_buf),其中F为加密函数。本实施例采用AES加密方式,当i=0时,ctxt_block=63743;
在步骤s209,判断mask>0,满足条件后,执行步骤s210,ctxt_block=ctxt_block+1,否则执行步骤s212;
在步骤s210,当i=0时,mask=64>0,ctxt_block=ctxt_block+1=63744;
在步骤s211,ctxt_block与block_mask做与操作,当i=0,ctxt_block&block_mask=256;
在步骤s212,ctxt_block左移(n-i-1)*out_blk_len,当i=0时,ctxt_block=256,左移30位后,ctxt_block=521481209941628438084722096…728256;
在步骤s213,ctxt与ctxt_block做异或操作即ctxt=ctxt|ctxt_block,当i=0时,此时ctxt=ctxt|ctxt_block=521481209941628438084722096…728256;
在步骤s214更新prf_input_buf数组,
prf_input_buf[0]=i+1,prf_input_buf[byteind+1]|=mask,当i=0时,
prf_input_buf[0]=1,prf_input_buf[4]=64,图3展示了prf_input_buf更新过程;
重复步骤s205至步骤s214操作,直至明文p的所有比特位遍历完成;
在步骤s215,输出密文块ctxt。
图4为一种基于泄序加密的密文检索方法总体框架图,数据拥有者在本地利用泄序加密ORE算法将文档进行加密后与对关键词进行加密后构建的布隆filter一并上传云端服务器;授权客户端在本地对关键词进行加密发起查询请求;云端服务器执行search操作,将符合条件的加密文档下发至授权客户端;授权客户端获取加密文档后进行解密,得到符合条件的明文文档。
图5为本发明实施例的流程图,数据拥有者客户端及授权客户端不限于PC、PDA及智能手机,一种基于泄序加密的密文检索方法的基本操作流程如下:
在步骤s501,输入需要处理的文件集合,比如下表的文件集合:
文件 | 内容 |
F1 | Hangzhou is a beautiful place. |
F2 | My name is heming,I live in Hangzhou. |
在步骤s502,设密钥sk=“heming123456789”,利用ORE加密算法分别对文件F1、F2进行ORE算法加密,加密后分别得到密文记为
在步骤s503,分别对文档进行分词处理,得到分词集合如下表所示:
文件 | 分词 |
F1 | hangzhou/is/a/beautiful/place |
F2 | my/name/is/heming/i/live/in/hangzhou |
在步骤s504,过滤掉对检索无用的冠词、连词等,得到的关键词集合如下表所示:
文件 | 分词 |
F1 | hangzhou/beautiful/place |
F2 | my/name/heming/i/live/hangzhou |
在步骤s505,分别对F1、F2文件中每个关键词进行ORE加密运算;
在步骤s506分别对每个加密后的关键词应用布隆的独立hash函数,在s507构建每个文件的独立filter,构建的部分filter示意图,如图4所示;
最后将加密后的文件与构建的布隆filter分别上传云服务器。
在步骤s508,授权使用者获得加密密钥后,将要查询的关键词,比如“beautiful”用ORE加密算法进行加密后发起查询请求,记ORE(sk,'beautiful')→Cw;
云端服务器获取查询请求Cw后,利用布隆滤波器对云端保存的文档filter进行布隆滤波,对符合查询条件的文档下发给授权使用的客户端,本实施例对客户端发起关键字“beautiful”查询请求结果记为:
授权使用的客户端获取符合查询条件的加密文档后,利用ORE解密算法对加密文档进行解密,获取文档的明文数据,对加密文档进行ORE解密后记为:授权客户端至此获取符合查询条件的明文。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于泄序加密的密文检索方法,该加密算法与常用的对称加密算法相比,具有安全性较高且加密速度快,膨胀率低的特点,该密文检索方法的特征在于包含以下解密步骤:
(1)生成客户端安全密钥sk,sk的主要作用用来加密文档和文档中的关键字;
(2)首先,对输入文档进行分词处理,过滤到一些对检索作用不大的词语,比如冠词、连词;之后对关键词集合记为W={w0,…,wi,…wn},其中wi代表文档F的第i个关键词,n为文档F的关键词个数,利用ORE加密算法分别对关键词进行加密,然后利用布隆滤波生成布隆filter;最后将用ORE加密的文档集合和布隆filter上传云端服务器;
(3)授权用户客户端获取加密密钥,采用ORE加密算法对将要查询的关键字进行加密处理,然后向云端服务器发起查询请求;
(4)云端服务器基于布隆滤波返回符合查询条件的加密文档;
(5)授权客户端获取到加密文档后,利用ORE的解密算法对符合查询条件的加密文档进行解密,获取符合查询条件的明文。
2.根据权利要求1所述的一种基于泄序加密的密文检索方法,其特征在于,步骤(2)中采用泄序加密算法ORE分别对文档集合和每个文档的关键词集合进行加密。
3.根据权利要求1所述的一种基于泄序加密的密文检索方法,其特征在于,步骤(2)中使用ORE加密后的关键词集合构建布隆filter。
4.根据权利要求1所述的一种基于泄序加密的密文检索方法,其特征在于,步骤(3)中授权客户端采用ORE加密算法对关键字进行加密。
5.根据权利要求1所述的一种基于泄序加密的密文检索方法,其特征在于,步骤(5)中授权客户端对从云端服务器获取的加密文档采用ORE解密算法对符合查询条件的文档进行解密运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810233631.6A CN108512840A (zh) | 2018-03-21 | 2018-03-21 | 一种基于泄序加密的密文检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810233631.6A CN108512840A (zh) | 2018-03-21 | 2018-03-21 | 一种基于泄序加密的密文检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108512840A true CN108512840A (zh) | 2018-09-07 |
Family
ID=63377731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810233631.6A Pending CN108512840A (zh) | 2018-03-21 | 2018-03-21 | 一种基于泄序加密的密文检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108512840A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088721A (zh) * | 2018-10-02 | 2018-12-25 | 复旦大学 | 一种可委托揭序加密方法 |
CN109117676A (zh) * | 2018-10-23 | 2019-01-01 | 杭州弗兰科信息安全科技有限公司 | 一种基于泄序算法的数据库密文比较检索方法 |
WO2020253106A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳壹账通智能科技有限公司 | 加密数据大小关系证明方法、装置、设备及存储介质 |
CN113254971A (zh) * | 2021-06-09 | 2021-08-13 | 中国电子科技集团公司第三十研究所 | 一种基于揭序加密的多数据类型密文比较方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345526A (zh) * | 2013-07-22 | 2013-10-09 | 武汉大学 | 一种云环境下高效的隐私保护密文查询方法 |
CN103955537A (zh) * | 2014-05-16 | 2014-07-30 | 福州大学 | 一种语义模糊可搜索加密云盘设计方法及系统 |
CN104038349A (zh) * | 2014-07-03 | 2014-09-10 | 西安电子科技大学 | 一种基于kp-abe的有效可验证的公钥可搜索加密方法 |
CN106326360A (zh) * | 2016-08-10 | 2017-01-11 | 武汉科技大学 | 一种云环境中密文数据的模糊多关键词检索方法 |
WO2017153456A1 (en) * | 2016-03-09 | 2017-09-14 | Sophia Genetics S.A. | Methods to compress, encrypt and retrieve genomic alignment data |
CN107220343A (zh) * | 2017-05-26 | 2017-09-29 | 福州大学 | 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法 |
-
2018
- 2018-03-21 CN CN201810233631.6A patent/CN108512840A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345526A (zh) * | 2013-07-22 | 2013-10-09 | 武汉大学 | 一种云环境下高效的隐私保护密文查询方法 |
CN103955537A (zh) * | 2014-05-16 | 2014-07-30 | 福州大学 | 一种语义模糊可搜索加密云盘设计方法及系统 |
CN104038349A (zh) * | 2014-07-03 | 2014-09-10 | 西安电子科技大学 | 一种基于kp-abe的有效可验证的公钥可搜索加密方法 |
WO2017153456A1 (en) * | 2016-03-09 | 2017-09-14 | Sophia Genetics S.A. | Methods to compress, encrypt and retrieve genomic alignment data |
CN106326360A (zh) * | 2016-08-10 | 2017-01-11 | 武汉科技大学 | 一种云环境中密文数据的模糊多关键词检索方法 |
CN107220343A (zh) * | 2017-05-26 | 2017-09-29 | 福州大学 | 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法 |
Non-Patent Citations (1)
Title |
---|
DAN BONEH: "Semantically Secure Order-Revealing Encryption:Multi-Input Functional Encryption Without Obfuscation", 《IN: ADVANCES IN CRYPTOLOGY—EUROCRYPT 2015》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088721A (zh) * | 2018-10-02 | 2018-12-25 | 复旦大学 | 一种可委托揭序加密方法 |
CN109088721B (zh) * | 2018-10-02 | 2022-01-28 | 复旦大学 | 一种可委托揭序加密方法 |
CN109117676A (zh) * | 2018-10-23 | 2019-01-01 | 杭州弗兰科信息安全科技有限公司 | 一种基于泄序算法的数据库密文比较检索方法 |
CN109117676B (zh) * | 2018-10-23 | 2022-02-25 | 杭州弗兰科信息安全科技有限公司 | 一种基于泄序算法的数据库密文比较检索方法 |
WO2020253106A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳壹账通智能科技有限公司 | 加密数据大小关系证明方法、装置、设备及存储介质 |
CN113254971A (zh) * | 2021-06-09 | 2021-08-13 | 中国电子科技集团公司第三十研究所 | 一种基于揭序加密的多数据类型密文比较方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104486315B (zh) | 一种基于内容属性的可撤销密钥外包解密方法 | |
CN108494768B (zh) | 一种支持访问控制的密文搜索方法及系统 | |
JP6144992B2 (ja) | 検索可能暗号処理システム及び方法 | |
CN108768951B (zh) | 一种云环境下保护文件隐私的数据加密和检索方法 | |
CN108512840A (zh) | 一种基于泄序加密的密文检索方法 | |
CN108491184B (zh) | 随机数发生器的熵源采集方法、计算机设备及存储介质 | |
Xi et al. | Privacy preserving shortest path routing with an application to navigation | |
US10922273B1 (en) | Forward-private dynamic searchable symmetric encryption (DSSE) with efficient search | |
CN104022866A (zh) | 云存储中多用户密文关键词可搜索的加密方法 | |
CN113067702B (zh) | 支持密文等值测试功能的身份基加密方法 | |
WO2017033843A1 (ja) | 検索可能暗号処理システム | |
CN105553660A (zh) | 一种动态可搜索公钥加密方法 | |
CN105721148A (zh) | 一种基于双随机数的数据文件加密方法及系统 | |
CN114417073B (zh) | 一种加密图的邻居节点查询方法及装置、电子设备 | |
CN109934001A (zh) | 一种基于正态云模型的数据加密方法 | |
JP7323004B2 (ja) | データ抽出システム、データ抽出方法、登録装置及びプログラム | |
CN107454059B (zh) | 一种云储存环境下基于序列密码的搜索加密方法 | |
JP2004234344A (ja) | データベースアクセスシステム | |
CN108920968B (zh) | 一种基于连接关键词的文件可搜索加密方法 | |
US11601291B2 (en) | Authentication method and device for matrix pattern authentication | |
Yao et al. | A secure hierarchical deduplication system in cloud storage | |
KR102050888B1 (ko) | 클라우드 컴퓨팅 환경에서 암호화된 데이터에 대한 유사도 검색 방법 및 시스템 | |
Zhu et al. | Privacy-enhanced multi-user quantum private data query using partial quantum homomorphic encryption | |
CN113065146A (zh) | 一种用于区块链数据保护的同态加密方法 | |
KR101026647B1 (ko) | 통신 보안 시스템 및 그 방법과 이에 적용되는 키 유도 암호알고리즘 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180907 |
|
WD01 | Invention patent application deemed withdrawn after publication |