CN107203723B - 基于散列表方法的多公共云上的文件存储及其检索方法 - Google Patents

基于散列表方法的多公共云上的文件存储及其检索方法 Download PDF

Info

Publication number
CN107203723B
CN107203723B CN201710220954.7A CN201710220954A CN107203723B CN 107203723 B CN107203723 B CN 107203723B CN 201710220954 A CN201710220954 A CN 201710220954A CN 107203723 B CN107203723 B CN 107203723B
Authority
CN
China
Prior art keywords
keyword
file
server
cloud server
ith
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
CN201710220954.7A
Other languages
English (en)
Other versions
CN107203723A (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.)
South China Agricultural University
Original Assignee
South China Agricultural 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 South China Agricultural University filed Critical South China Agricultural University
Priority to CN201710220954.7A priority Critical patent/CN107203723B/zh
Publication of CN107203723A publication Critical patent/CN107203723A/zh
Application granted granted Critical
Publication of CN107203723B publication Critical patent/CN107203723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

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

Abstract

本发明公开了基于散列表方法的多公共云上的文件存储及其检索方法,包括步骤:将需要共享的文件加密后,上传至客户端;客户端得到包含关键词和文件号关系的“关键词/文件号”表;将关键词字符串转换为整数,并把该整数转化后对应到一个有限域的一个区间内;并将第i个关键词存储在每个云服务器端的份额上传至对应的云服务器;把每个文件号存储在在每个云服务器端的份额上传至对应的云服务器;将文件加密并分割,上传到对应的云服务器,同时生成文件号/服务器表,并将文件号/服务器表存储在本地。本发明能保证上传到云端服务器里的文件的安全,且能防止云端服务器供应商偷窥文件信息。

Description

基于散列表方法的多公共云上的文件存储及其检索方法
技术领域
本发明涉及一种数据存储和检索方法,尤其涉及一种基于散列表方法的多公共云上的文件存储及其检索方法。
背景技术
出于经济、效率和安全等方面的考虑,中小型经济社会组织正在把日渐增长的业务数据外包给专业的存储服务供应商,并选择多个云服务商以获得更好数据安全可用性。数据拥有者和实际操作者的分离情况促使了安全的分布式存储和检索需求的产生,同时也对信息安全保密技术提出了更高的要求。尤其是现在量子计算技术日新月异,并逐步实用化,发展抗量子攻击并能高效存储和检索的技术越来越迫切。基于此,具有抗量子攻击性特点的秘密共享技术成为基础的数据分发及检索方法成为后量子密码研究中的一个重要方向。
Hadavi等人在2010年的一篇文章探索了“将数据库外包作为一种服务”的框架模型。并用构建B+树的形式实现搜索。之后的文章改用了划分多项式系数区间的形式来保证安全。但是这些文章检索效率比较低,且已经有文章指出来不安全,能被敌手攻破。
发明内容
为克服现有技术的不足,本发明提出基于散列表方法的多公共云上的文件存储及其检索方法。本发明的技术方案是这样实现的:
一种基于散列表方法的多公共云上的文件存储方法,包括步骤:
S1:数据所有者将需要共享的文件加密后,上传至客户端;
S2:客户端对所有文件生成文件号,并提取关键词,得到包含关键词和文件号关系的“关键词/文件号”表;
S3:将关键词字符串转换为整数,并把该整数转化后对应到一个有限域的一个区间内;
S4:对于第i个关键词,在有限域的某一个区间内随机取得第i个关键词存储在第一个服务器端和第二个云服务器端的份额,通过关键密钥计算第i个关键词对应的密钥,定义一个二元哈希函数
Figure GDA0002386876910000021
该函数有两个输入:{0,1}*为01形式的密钥串,即关键词对应的密钥,
Figure GDA0002386876910000022
为整数,即关键字的值,映射到
Figure GDA0002386876910000023
的有限域中;随机取一个数s*,计算HF2(第i个密钥对应的密钥,第i个关键词的值),得到s*对应的关键词的份额,以(第一个服务器号,第i个关键词在存储在第一个服务器的份额)、(第二个服务器号,第i个关键词在存储在第一个服务器的份额)和(s*,s*对应的关键词的份额)三个坐标点,通过拉格朗日插值构建二阶多项式,通过所述二阶多项式,计算第i个关键词存储在其它云服务器端的份额,并将第i个关键词存储在每个云服务器端的份额上传至对应的云服务器,将s*存储在本地客户端;
S5:将对应的区间替换为整个有限域区间,将关键词替换为文件号,重复步骤S4,把每个文件号存储在在每个云服务器端的份额上传至对应的云服务器;
S6:将文件加密并分割,上传到对应的云服务器,同时生成文件号/服务器表,并将文件号/服务器表存储在本地。
进一步地,步骤S1中需要共享的文件用AES进行加密。
进一步地,步骤S3中关键词字符串转换为整数包括步骤
S311:随机取L比特的素数p;
S312:通过ASCII对应表,将第i个关键词字符串的各个字母转换成二进制数据,并前后对应拼接在一起组合成关键词字符串二进制数据;
S313:如所述关键词字符串二进制数据长度不是l的倍数,则在所述关键词字符串二进制数据前补1直至其长度恰好为L的倍数,并称该数为关键词二进制数据;
S314:将所述关键词二进制数据的每L比特转换为十进制数;
S315:将得到的所有十进制数相乘,得到转换后的关键词整形数据;
S316:将所述关键词整形数据mod p,即得到关键词转换的整数。
更近一步地,步骤S3中把所述整数转化后对应到一个有限域的一个区间内包括步骤
S321:取与所述步骤S311相同的素数p;
S322:随机取得素数mp>m·p,作为有限域,其中m为关键词个数;
S323:将DOM|mp|=[0,mp-1]分割为m个相等的连续分区,包括
Figure GDA0002386876910000031
Figure GDA0002386876910000032
S324:定义一个函数HF1,使得
Figure GDA0002386876910000033
将第i个关键词的值对应到区间
Figure GDA0002386876910000034
范围内。
一种基于散列表方法的多公共云上的文件查询方法,包括步骤
S1:用户提交查询第i个关键词,并从数据所有者处获取所述第i个关键词对应的密钥;
S2:代理服务器将关键词转换为数值,翻译成查询请求,查找对应区间内的上界和下界之中是否有该数值,并将所述查询请求发送至服务器1和服务器2;
S3:服务器1和服务器2返回存储在服务器1和服务器2的关键词份额和文件号份额;
S4:通过(第一个服务器号,第i个关键词在存储在第一个服务器的份额)、(第二个服务器号,第i个关键词在存储在第一个服务器的份额)和(s*,s*对应的关键词的份额)三个坐标点,重构二阶多项式,计算出第i个关键词存储在其它云服务器端的份额,对应的云服务器端返回对应的文件号存储在该云服务器端的份额;
S5:由第i个关键词在所有云服务器短的份额,计算第i个关键词对应的文件号;
S6:由“文件号/服务器”表,从相应的云服务器取回分割的文件数据,整合并解密;
S7:代理服务器将处理好的文件返回给用户。
本发明的有益效果在于,与现有技术相比,本发明能保证上传到云端服务器里的文件的安全,且能防止云端服务器供应商偷窥文件信息,且能通过存在服务器的虚拟点,验证是否有恶意服务器篡改数据。
附图说明
图1是本发明一种基于散列表方法的多公共云上的文件存储方法流程图;
图2是本发明一种基于散列表方法的多公共云上的文件查询方法流程图;
图3是本发明一个实施例的系统框架图;
图4是本发明中关键词转换示例图;
图5是本发明中有限域分割示例图;
图6是本发明中关键词共享示例图;
图7是本发明中文件号共享示例图;
图8是本发明一个应用示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,本发明一种基于散列表方法的多公共云上的文件存储方法,包括步骤:
S1:数据所有者将需要共享的文件加密后,上传至客户端;
S2:客户端对所有文件生成文件号,并提取关键词,得到包含关键词和文件号关系的“关键词/文件号”表;
S3:将关键词字符串转换为整数,并把该整数转化后对应到一个有限域的一个区间内;
S4:对于第i个关键词,在第i个关键词字符串对应的区间内,随机取得第i个关键词存储在第一个服务器端和第二个云服务器端的份额,通过关键密钥计算第i个关键词对应的密钥,定义一个二元哈希函数
Figure GDA0002386876910000051
该函数有两个输入:{0,1}*为01形式的密钥串,即关键词对应的密钥,
Figure GDA0002386876910000052
为整数,即关键字的值,映射到
Figure GDA0002386876910000053
的有限域中;随机取一个数s*,计算HF2(第i个密钥对应的密钥,第i个关键词的值),得到s*对应的关键词的份额,以(第一个服务器号,第i个关键词在存储在第一个服务器的份额)、(第二个服务器号,第i个关键词在存储在第一个服务器的份额)和(s*,s*对应的关键词的份额)三个坐标点,通过拉格朗日插值构建二阶多项式,通过所述二阶多项式,计算第i个关键词存储在其它云服务器端的份额,并将第i个关键词存储在每个云服务器端的份额上传至对应的云服务器,将s*存储在本地客户端;
S5:将对应的区间替换为有限域,将关键词替换为文件号,重复步骤S4,把每个文件号存储在在每个云服务器端的份额上传至对应的云服务器;
S6:将文件加密并分割成与云服务器相同数量的份数,上传到对应的云服务器,同时生成文件号/服务器表,并将文件号/服务器表存储在本地。
本发明涉及SES_FS,SES_FS是基于(k,n)门限秘密共享方案的分布式云上的外包文件系统,如图3所示。数据所有者将多个文件加密后上传至n个云服务器上。授权用户将需要查询的关键词发送至客户端,客户端对关键词进行处理后,分别向n个云服务器发送不同的查询请求,再将云服务器返回的结果进行处理,得到用户需要查询的文件返回给用户。表1列出了SES_FS中所要用到的参数。
表1 SES_FS参数
Figure GDA0002386876910000061
本发明的“关键词表”是实现加密后可搜索的关键。
假设有多个文件f1,f2,f3…,每个文件有唯一对应的文件号码,每个文件又对应有相应的关键词,则构造如下关键词与文件号的对应表(简称“关键词表”(Key/valuetable)),表2是一个关键词所对应文件号的查询检索表。假设“kw1”是关键词“学校”,则搜索“学校”对应的关键词在1、2号文件里。该表的生成不是本文讨论的重点。
表2 key/value表的例子
关键词 文件号
kw<sub>1</sub> 1,2
kw<sub>2</sub> 3,4
kw<sub>3</sub> 5,6
在SES_FS中,用AES加密每个文件f1,f2,f3…,并上传到云服务器上,由于在服务器中每个文件是加密的,只会显示该文件的文件号,云服务器供应商所能看到的只有加密的文件和文件号,而无法得知任何信息。因此实现可搜索的关键就是用2.1节中的“关键词表”。
为了方便理解,后文都采用三个云服务器作例子。
表3是一个例子,表示“加密后的文件”上传到相应服务器的对应表,在搜索查询文件的过程中,会使用该表在云服务器中取回要查询的文件。如表2所示,“1”代表加密后的文件已经上传到了对应的服务器上,0代表没有上传到该服务器。如文件f1存在了云服务器server1和server3上。每个加密后的文件存在哪些服务器上,所形成的对应表,不是本文讨论的重点。
表3 file/server表的例子
文件 server<sub>1</sub> server<sub>2</sub> server<sub>3</sub>
f<sub>1</sub> 1 0 1
f<sub>2</sub> 0 1 1
f<sub>n</sub> 1 1 0
“关键词表”是云端服务器中的文件号与关键词的唯一联系,要想在云端服务器中搜索关键词,就需要通过在“关键词表”中,搜索第一列关键词来取得第二列对应的文件号,得到文件号后,再通过file/server表,从不同的服务器中拿到关键词对应的文件。因此“关键词表”的保密性非常重要,我们就需要对“关键词表”使用秘密共享的方法进行加密。
“关键词表”有两个属性:“关键词”和“文件号”。在实际情况中我们只会通过“关键词”来检索“文件号”,因此,“关键词和文件号”使用了不同的共享和重构方法。
关键词共享重构和验证:
假设有m个关键词kwi(1≤i≤m),在大多数情况下,关键词的数据类型为String,而秘密共享所构造的多项式是都是数值形式,因此我们需要将关键词的数据类型全部转换为数值型。我们给出一个算法HFSToI用以将每个关键字转换为整数值。且对转化后的数值mod p,即转化对应到有限域
Figure GDA0002386876910000071
中(
Figure GDA0002386876910000072
表示一个有限域,
Figure GDA0002386876910000081
是整数,p为素数)。
关键词字符串转换为整数包括步骤S311:随机取l比特的素数p;
S312:通过ASCII对应表,将kw的各个字母转换成二进制数据,并前后对应拼接在一起组合成bkw;
S313:若bkw的值不是l比特的倍数,在bkw前补1直至其长度恰好为l的倍数。称该数为fbkw;
S314:将fbkw每l比特转换为十进制数;
S315:将所有得到的十进制数相乘,得到Ikwi
S316:Ikwi mod P即为kw转换后的整型数值。
请参见图4,图4是关键词转换示例图,展示了一个String类型的“kw”转换成数值559的例子:
1.其中素数p取2017,l为11-bit;
2.通过ASCII,“k”转化成了01101011,“w”转化成了01110111,bkw为0110101101110111;
3.一共16bit,则补上6个1,组合1111110110101101110111,凑齐到22bit,且是l的11-bit的倍数;
4.2029乘以887得到1799723;
5.1799723mod 2017得到559.
把所述整数转化后对应到一个有限域的一个区间内包括步骤:
S321:置P的值与上一节中的P相同。
S322:随机取得素数mp>m·p,作为
Figure GDA0002386876910000082
S323:将DOM|mp|=[0,mp-1]分割为m个相等的连续分区,包括
Figure GDA0002386876910000083
Figure GDA0002386876910000084
S324:定义一个函数HF1,使得
Figure GDA0002386876910000085
即kwi对应到了区间
Figure GDA0002386876910000091
范围内。
例如:
Figure GDA0002386876910000092
即kw1经过HF1后,对应到了区间
Figure GDA0002386876910000093
其余关键词kw一一对应,如此类推,该步骤是为了方便查询,因为每个关键词对应到唯一的区间里。
图5是本发明中有限域分割示例图,它类似于高效查询过程的相应关系表。
关键词共享的过程如下:
为了在n个云服务器之间加密和共享记录,我们需要n个点来构造k-1阶多项式f(x),使得f(x)的某个值等于记录。为(k,n)门限秘密共享选择k和n的值对系统的可用性和容错方面具有一些影响。
为了方便说明,用三个服务器作为例子,因此,我们定义一个(3,3)门限秘密共享方案,以及一般形式为f(x)=ax2+bx+c的2阶多项式,并随机定义分配向量X={s1,s2,s*,s3},其中s1,s2,s3分别作为三个云服务器的横坐标值。s*是一个特殊的横坐标点,用于计算构造。
如图6所示,用如下算法AlgossKeyword独立地对关键字kwi进行加密:
1.在kwi对应的区间DOMi内随机选取两个值
Figure GDA0002386876910000094
2.计算keyi=H0(masterKey,kwi)。MasterKey是一个关键密钥,通过该MasterKey计算出每个kw所对应的密钥
3.定义一个二元哈希函数
Figure GDA0002386876910000095
该函数有两个输入:{0,1}*为01形式的密钥串,即key密钥,
Figure GDA0002386876910000096
为整数,即kw,映射到
Figure GDA0002386876910000097
的有限域中
4.计算
Figure GDA0002386876910000098
通过第2节得到的key,计算对应关键词的份额。
5.通过拉格朗日插值构建二阶多项式
Figure GDA0002386876910000099
Figure GDA00023868769100000910
其中
Figure GDA00023868769100000911
Figure GDA0002386876910000101
6.计算第3个份额
Figure GDA0002386876910000102
再代入s3的坐标,得到存在第三个服务器上的份额
7.
Figure GDA0002386876910000103
作为kwi的份额共享到3个云服务器server1,server2,server3上。
关键词的查询和验证:
主要用于验证云服务器是否是恶意的。所有的记录kwi会由如下算法AlgoStringToInt单独地重构。
1.授权用户从数据所有者处获取keyi
2.从server1,server2,上获取
Figure GDA0002386876910000104
3.借助哈希函数HF2计算出HF2(keyi,kwi)。
4.通过
Figure GDA0002386876910000105
(s*,HF2(keyi,kwi))}3个点重构二阶多项式
Figure GDA0002386876910000106
5.计算出
Figure GDA0002386876910000107
并且发送到server3,如果服务器3上检索到了
Figure GDA0002386876910000108
Figure GDA0002386876910000109
即查询成功,则返回correct,验证了服务器没有恶意篡改数值,返回的是正确的数值,否则返回fail。
File number fn_j表示关键字所对应的文件号,因此我们检索关键字名称,而不检索文件号。为了简便,我们同样构造一个一般式为f(x)=ax2+bx+c的2阶多项式,将文件号共享到3个云服务器上,如图7所示。
文件号的共享过程为:
1.获取分配向量X={s1,s2,s*,s3}作为每个云服务器的横坐标值。
2.从
Figure GDA00023868769100001010
中随机选取两个值
Figure GDA00023868769100001011
3.通过
Figure GDA00023868769100001012
(s*,fnj)3个点拉格朗日插值构造一个二阶多项式
Figure GDA00023868769100001013
4.计算第3个份额
Figure GDA00023868769100001014
5.将
Figure GDA0002386876910000111
作为fnj的份额共享到3个云服务器上。文件号重构过程包括步骤:
1.从server1,server2,server3上取得
Figure GDA0002386876910000112
2.通过拉格朗日插值公式计算
Figure GDA0002386876910000113
所以整个SES_FS文件上传具体步骤如下:
S1:数据所有者将需要共享的用AES加密后,上传至客户端。
S2:客户端对所有文件生成文件号并提取关键词,得到包含关键词和文件号关系的key/value表(如表3)。
S3:将关键词字符串kw转换为整数,映射到对应的区间。
S4:在kw对应区间内随机取得
Figure GDA0002386876910000114
的值。取分配向量X={s1,s2,s*,s3},由
Figure GDA0002386876910000115
(s*,HF2(keyi,kwi))3点构造一个二阶多项式,再代入s3的值从而得到
Figure GDA0002386876910000116
的值。将
Figure GDA0002386876910000117
分别上传至云服务器。
S5:分配向量X不变,有限域
Figure GDA0002386876910000118
内随机取得
Figure GDA0002386876910000119
Figure GDA00023868769100001110
(s*,fnj)3点构造二阶多项式,计算得
Figure GDA00023868769100001111
Figure GDA00023868769100001112
分别上传至云服务器。
S6:将文件加密并分割成k份,上传至k个云服务器,同时生成file/server表(如表1)存储在本地。
查询为上传的逆过程,SES_FS文件查询的具体流程如下:
S1:用户提交关键词查询请求,并从数据所有者处获取keyi
S2:代理服务器将关键词转换成数值,翻译成查询请求
Figure GDA00023868769100001113
并发送至server1,server2
S3:服务器返回
Figure GDA00023868769100001114
S4:通过
Figure GDA00023868769100001115
(s*,HF2(keyi,kwi))3个点重构二阶多项式
Figure GDA0002386876910000121
计算
Figure GDA0002386876910000122
并检索server3得到
Figure GDA0002386876910000123
S5:由
Figure GDA0002386876910000124
计算得到kw对应的文件号。
S6:由file/server表(如表4)从相应服务器取回分割的文件数据,整合并解密。
表4 file/server表的例子
文件 server<sub>1</sub> server<sub>2</sub> server<sub>3</sub>
f<sub>1</sub> 1 0 1
f<sub>2</sub> 0 1 1
f<sub>n</sub> 1 1 0
S7:代理服务器将处理好的文件返回用户。
图8是本发明的一个应用示例:某医院有医患数据共15T,为了节约成本,方便管理,将所有数据分别共享在百度云、阿里云、华为云三个服务商的云服务器上,其中每个云存放5T的数据。院方通过客户端上传数据文件后,客户端基于SES_FS对数据进行处理并分别存至云服务器中。本医院所有授权的医护人员可以通过客户端查询各种病症的治疗方案记录及患者的病历资料,而授权管理人员可以检索医院相关管理信息。此外,该医院可将部分病症治疗记录与其余医院共享,授权医院同样可通过客户端查询到需要的信息。该过程中,在云服务商无法知晓数据内容,患者的所有隐私都是受到保护的。

Claims (5)

1.一种基于散列表方法的多公共云上的文件存储方法,其特征在于,包括步骤:
S1:数据所有者将需要共享的文件加密后,上传至客户端;
S2:客户端对所有文件生成文件号,并提取关键词,得到包含关键词和文件号关系的“关键词/文件号”表;
S3:将关键词字符串转换为整数,并把该整数转化后对应到一个有限域的一个区间内;
S4:对于第i个关键词,在有限域的某一个区间内随机取得第i个关键词存储在第一个服务器端和第二个云服务器端的份额,通过关键密钥计算第i个关键词对应的密钥,定义一个二元哈希函数
Figure FDA0002386876900000011
该函数有两个输入:{0,1}*为01形式的密钥串,即关键词对应的密钥,
Figure FDA0002386876900000012
为整数,即关键字的值,映射到
Figure FDA0002386876900000013
的有限域中;随机取一个数s*,计算HF2(第i个密钥对应的密钥,第i个关键词的值),得到s*对应的关键词的份额,以(第一个服务器号,第i个关键词在存储在第一个服务器的份额)、(第二个服务器号,第i个关键词在存储在第一个服务器的份额)和(s*,s*对应的关键词的份额)三个坐标点,通过拉格朗日插值构建二阶多项式,通过所述二阶多项式,计算第i个关键词存储在其它云服务器端的份额,并将第i个关键词存储在每个云服务器端的份额上传至对应的云服务器,将s*存储在本地客户端;
S5:将对应的区间替换为整个有限域区间,将关键词替换为文件号,重复步骤S4,把每个文件号存储在在每个云服务器端的份额上传至对应的云服务器;
S6:将文件加密并分割,上传到对应的云服务器,同时生成文件号/服务器表,并将文件号/服务器表存储在本地。
2.如权利要求1所述的基于散列表方法的多公共云上的文件存储方法,其特征在于,步骤S1中需要共享的文件用AES进行加密。
3.如权利要求1所述的基于散列表方法的多公共云上的文件存储方法,其特征在于,步骤S3中关键词字符串转换为整数包括步骤:
S311:随机取L比特的素数p;
S312:通过ASCII对应表,将第i个关键词字符串的各个字母转换成二进制数据,并前后对应拼接在一起组合成关键词字符串二进制数据;
S313:如所述关键词字符串二进制数据长度不是L的倍数,则在所述关键词字符串二进制数据前补1直至其长度恰好为L的倍数,并称该数为关键词二进制数据;
S314:将所述关键词二进制数据的每L比特转换为十进制数;
S315:将得到的所有十进制数相乘,得到转换后的关键词整形数据;
S316:将所述关键词整形数据mod p,即得到关键词转换的整数。
4.如权利要求3所述的基于散列表方法的多公共云上的文件存储方法,其特征在于,步骤S3中把所述整数转化后对应到一个有限域的一个区间内包括步骤:
S321:取与所述步骤S311相同的素数p;
S322:随机取得素数mp>m·p,作为有限域,其中m为关键词个数;
S323:将DOM|mp|=[0,mp-1]分割为m个相等的连续分区,包括
Figure FDA0002386876900000031
S324:定义一个函数HF1,使得
Figure FDA0002386876900000032
Figure FDA0002386876900000033
将第i个关键词的值对应到区间
Figure FDA0002386876900000034
范围内。
5.一种基于散列表方法的多公共云上的文件查询方法,其特征在于,包括步骤:
S1:用户提交查询第i个关键词,并从数据所有者处获取所述第i个关键词对应的密钥;
S2:代理服务器将关键词转换为数值,翻译成查询请求,查找对应区间内的上界和下界之中是否有该数值,并将所述查询请求发送至服务器1和服务器2;
S3:服务器1和服务器2返回存储在服务器1和服务器2的关键词份额和文件号份额;
S4:通过(第一个服务器号,第i个关键词在存储在第一个服务器的份额)、(第二个服务器号,第i个关键词在存储在第一个服务器的份额)和(s*,s*对应的关键词的份额)三个坐标点,重构二阶多项式,计算出第i个关键词存储在其它云服务器端的份额,对应的云服务器端返回对应的文件号存储在该云服务器端的份额;
S5:由第i个关键词在所有云服务器短的份额,计算第i个关键词对应的文件号;
S6:由“文件号/服务器”表,从相应的云服务器取回分割的文件数据,整合并解密;
S7:代理服务器将处理好的文件返回给用户。
CN201710220954.7A 2017-04-06 2017-04-06 基于散列表方法的多公共云上的文件存储及其检索方法 Active CN107203723B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710220954.7A CN107203723B (zh) 2017-04-06 2017-04-06 基于散列表方法的多公共云上的文件存储及其检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710220954.7A CN107203723B (zh) 2017-04-06 2017-04-06 基于散列表方法的多公共云上的文件存储及其检索方法

Publications (2)

Publication Number Publication Date
CN107203723A CN107203723A (zh) 2017-09-26
CN107203723B true CN107203723B (zh) 2020-06-19

Family

ID=59904948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710220954.7A Active CN107203723B (zh) 2017-04-06 2017-04-06 基于散列表方法的多公共云上的文件存储及其检索方法

Country Status (1)

Country Link
CN (1) CN107203723B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6911877B2 (ja) * 2018-02-19 2021-07-28 日本電信電話株式会社 情報管理装置、情報管理方法及び情報管理プログラム
CN109617683B (zh) * 2018-12-15 2021-09-17 西安邮电大学 终端以及云服务器
CN114911851B (zh) * 2022-07-12 2022-10-14 北京信安世纪科技股份有限公司 数据查询方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024035A (zh) * 2012-12-11 2013-04-03 上海交通大学 基于移动云平台的安全节能的加密搜索方法
CN104935576A (zh) * 2015-04-28 2015-09-23 广州大学 数据安全分存和指定用户分享系统
CN105356997A (zh) * 2015-08-06 2016-02-24 华南农业大学 基于公共云的安全的分布数据管理方法
CN105516340A (zh) * 2015-12-30 2016-04-20 中国农业大学 一种云存储数据可恢复性验证方法及系统
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN106254477A (zh) * 2016-08-09 2016-12-21 华南农业大学 一种基于多公共云的分布式数据上传和下载方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694467B2 (en) * 2010-03-31 2014-04-08 Xerox Corporation Random number based data integrity verification method and system for distributed cloud storage
US9385875B2 (en) * 2013-01-23 2016-07-05 Nexenta Systems, Inc. Scalable transport with cluster-consensus rendezvous

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024035A (zh) * 2012-12-11 2013-04-03 上海交通大学 基于移动云平台的安全节能的加密搜索方法
CN104935576A (zh) * 2015-04-28 2015-09-23 广州大学 数据安全分存和指定用户分享系统
CN105356997A (zh) * 2015-08-06 2016-02-24 华南农业大学 基于公共云的安全的分布数据管理方法
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN105516340A (zh) * 2015-12-30 2016-04-20 中国农业大学 一种云存储数据可恢复性验证方法及系统
CN106254477A (zh) * 2016-08-09 2016-12-21 华南农业大学 一种基于多公共云的分布式数据上传和下载方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Database as a Service: Towards a Unified Solution for Security Requirements";M. A. Hadavi et.al;《2012 IEEE 36th International Conference on Computer Software and Applications Workshops》;20121231;第415-420页 *
"Enhancing Data Privacy and Access Anonymity in Cloud Computing";Nabil Giweli et.al;《Communications of the IBIMA》;20130131;第1-10页 *
"云存储加密数据去重删除所有权证明方法";杨超 等;《计算机研究与发展》;20150131(第1期);第248-258页 *
"公共云存储服务数据安全及隐私保护技术综述";李晖 等;《计算机研究与发展》;20140731(第7期);第1397-1409页 *

Also Published As

Publication number Publication date
CN107203723A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
CN108494768B (zh) 一种支持访问控制的密文搜索方法及系统
CN111913981B (zh) 在线离线的基于属性的布尔关键字可搜索加密方法及系统
WO2018122287A1 (en) Method and system for search pattern oblivious dynamic symmetric searchable encryption
CN111143471B (zh) 一种基于区块链的密文检索方法
EP3356988A1 (en) Method and system for verifiable searchable symmetric encryption
CN105681280A (zh) 一种云环境中基于中文的可搜索加密方法
CN110166466B (zh) 一种可高效更新权限的多用户可搜索加密方法和系统
CN106921674A (zh) 抗后量子攻击的代理重加密语义可搜索加密方法
CN106599719A (zh) 支持高效密钥管理的密文检索方法
CN104993931B (zh) 一种云存储中多用户的加密搜索方法
CN110611570B (zh) 一种加密、密钥信息提供以及数据获取方法、装置
CN108632385B (zh) 基于时间序列的多叉树数据索引结构云存储隐私保护方法
CN107203723B (zh) 基于散列表方法的多公共云上的文件存储及其检索方法
Wang et al. Towards secure and effective utilization over encrypted cloud data
CN106131225A (zh) 用于医疗病例信息访问的安全系统
CN112311781A (zh) 一种前后向安全且具有可恢复关键字屏蔽的加密方法
CN117834109A (zh) 一种基于混淆模分量的密文数据库系统及其应用方法
CN117744120B (zh) 一种多用户可搜索加密方法及系统
CN107908779A (zh) 云环境下基于mat树的动态多属性连接关键词的搜索方法
JP6400743B2 (ja) 端末装置、データベースサーバおよび計算システム
CN116107967B (zh) 基于同态加密和树结构的多关键词密文搜索方法及系统
Sareen et al. Towards the design of a secure data outsourcing using fragmentation and secret sharing scheme
CN109672525B (zh) 一种具有前向索引的可搜索公钥加密方法及系统
CN116663046A (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