首页> 中国专利> 一种云储存环境下基于序列密码的搜索加密方法

一种云储存环境下基于序列密码的搜索加密方法

摘要

本发明涉及一种云储存环境下基于序列密码的搜索加密方法,通过对序列密码加密中密钥流生成方式的改进来实现数据安全搜索,把查询的关键字通过ECB加密形成直接密文;由伪随机生成器生成随机数,密钥流由随机数与直接密文通过伪随机置换函数来产生;最后将密钥流与直接密文通过XOR运算,得到隐藏密文并保存在服务器上,以此建立查询配对表;当新的搜索查询发生时,服务器先计算出置换密钥,然后比较查询配对表中的数据与当前查询会话的隐藏密文之间的等式关系,以此来确认返回的查询结果。本发明能实现用户高效的数据搜索,提高验证效率,保证隐私安全。

著录项

  • 公开/公告号CN107454059A

    专利类型发明专利

  • 公开/公告日2017-12-08

    原文格式PDF

  • 申请/专利权人 广东工业大学;

    申请/专利号CN201710540818.6

  • 发明设计人 张桂鹏;陈平华;

    申请日2017-07-05

  • 分类号

  • 代理机构广东广信君达律师事务所;

  • 代理人杨晓松

  • 地址 510062 广东省广州市越秀区东风东路729号

  • 入库时间 2023-06-19 03:58:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-17

    授权

    授权

  • 2018-01-05

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20170705

    实质审查的生效

  • 2017-12-08

    公开

    公开

说明书

技术领域

本发明涉及云储存中的数据安全技术,具体涉及一种云储存环境下基于序列密码的搜索加密方法。

背景技术

序列密码是对称加密体制中一个重要的分支,其利用密钥流发生器产生一个密钥流依次对明文进行加密,具有实现简单、加解密处理速度快的特点。如今伴随着云服务平台相比于传统的服务器提供了更多的弹性容量以及更强大的处理能力,企业特别是中小型企业将它们的数据隐藏储存给云平台提供商以减少成本,提高效率。然而数据外包存放在第三方的云平台中可能遭到攻击泄露,甚至可能被云平台提供商获取,而且在对数据搜索访问中,往往也会容易暴露其数据模式,增加了数据被泄露的风险。研究者提出了一些数据加密算法,通过对相关数据加密后生成密文,每个数据所生成的密文都各不相同,并存储在云服务器上,但直接对密文进行搜索是十分困难的,即便为每个关键字附加索引标志,在更新,替换索引时的开销也将是巨大。相关研究者提出了一些安全搜索加密的方案,即把查询的关键字进行预加密形成密文,分成两部分。通过伪随机生成器生成随机数,并采用哈希函数对加密的关键字左部分进行运算与随机数合并成为新的随机数,形成密钥流,最后将密钥流与加密后的关键字通过运算,将结果保存在服务器上。当搜索查询的时候,将服务器上的结果与密文再次通过运算,看是否能得到原来的伪随机序列结构,这样虽然可以访问搜索服务器上加密后的数据,然而每一个发送的相同查询请求数据经过这个方案只会产生同样的密文,通过对服务器上数据类型的分析,可以得知某请求数据的查询频率,通过统计次数容易确定该关键词是否为常用词汇,无法保护数据模式。因此需要有更好的方法来保证数据和传输模式的安全。

发明内容

本发明的目的是提供一种云储存环境下基于序列密码的搜索加密方法,保护了用户的数据安全,通过对传统序列密码加密方法的改进,提出一种新的数据搜索方法,极大的保护了数据本身以及其传输模式。

本发明采用的技术方案是,一种云储存环境下基于序列密码的搜索加密方法,其特征在于,具体按照以下步骤实施:

步骤1:关键字预加密

步骤2:密钥流生成

步骤3:隐藏密文生成

步骤4:建立查询配对表

步骤5:密文搜索

步骤6:密文解密

本发明的特点在于,

步骤1具体按照以下步骤实施:

扫描文档集D并建立关键词集△′,对每个关键词Di∈△′,建立D(ω),设置全局计数器φ,第i个关键字Di,通过ECB算法进行加密,并产生直接密文Xi,密钥由用户保管,Xi被划分成两部分,记为Xi=Li|Ri,其中总长度为n,Li的长度为l,Ri的长度为r,其中n=l+r。

步骤2具体按照以下步骤实施:

通过伪随机数生成器生成随机数Gio(随机种子RAND_SEED的值由用户来保管),Gio分别与Li,Ri进行XOR运算,结果记为PioL,即PioL使用XOR置换函数Tf(.)产生当前查询会话(如第o个查询会话)的置换密钥kio,即随机数Gio使用置换密钥kio选择伪随机置换函数f(.)函数产生fkio(Gio),此时Gio|GioL|为该查询会话的密钥流。

进一步,所述XOR置换函数Tf(.)保留了XOR的性质,且具有的性质,其结果生成随机的,统一分布并具有具体长度为n的序列。

进一步,所述伪随机置换函数fk(.),置换密钥为k,结果将生成一串随机的序列,置换密钥k决定了原序列随机排列的顺序。

步骤3具体按照以下步骤实施:

最后Ri与进行XOR运算生成PioC,即GioL记为PioR生成隐藏密文的右部分,记Pio成第i个关键字Di的隐藏密文,则

步骤4具体按照以下步骤实施:

将Pio,XOR置换函数Tf(.)发送到云服务器中,Pio以PioL|PioC|PioR的形式储存在服务器上,其索引为i,建立查询配对表,全局计数器φ初始化为0,开始计数,此表包括三部分:查询会话索引i,隐藏密文Pio,全局计数器φ,其中Pio包含PioL,PioC,PioR三部分。

步骤5具体按照以下步骤实施:

当第q个查询会话发生时,其隐藏密文为Piq=PiqL|PiqC|PiqR,发送到云服务器中,先取出先前存储在服务器的XOR置换函数Tf(.),计算的值,得到再依次取出密文配对表的每一项,如第一项Pio,与Piq进行XOR运算得到:

通过计算出来的如果成立,维持了密钥流左右两边结构,说明kio与kiq为同一关键字不同查询会话的密钥,关键字一致,查询成功,全局计数器φ的第i项变为1,Pio即为所查询会话Piq的搜索结果,返回给用户。接着取出密文配对表的下一项进行配对来确定Piq的搜索结果。

步骤6具体按照以下步骤实施

在客户端中,把从服务器得到PioR,PioC,PioL进行解密,还原成起始密文。通过伪随机数生成器和用户保管的随机种子RAND_SEED生成随机数Gio,Gio与PioL进行XOR运算得到起始密文的左部分Li,即将PioR与Gio进行XOR运算得到起始密文的右部分Ri,即最后对起始密文Li|Ri进行ECB解密得到明文。

本发明与现有技术相比,具有如下优点。实现了对数据本身和传输模式更好的保护。本发明为每一个关键词在不同的查询会话中生成不同的密文,隐藏了查询数据的数据类型,极大地保护了数据模式和传输模式的安全。在解密过程中,起始密文的右部分Ri可以通过Li和Gio计算得到,无需计算密钥流Gio|同时引入了全局计数器φ,记录查询配对表中关键词出现的次数,极大地减少表中数据项的重复。通过对序列密码结构的改进,更好的进行信息以及传输中的加密。

附图说明

图1是本发明基于云存储的文件系统结构示意图。

图2是本发明所述方法的隐藏密文生成流程图。

图3是本发明所述方法的建立查询配对表图。

图4是本发明所述方法的数据安全查询流程图。

具体实施方式

下面结合具体实施方式对本发明进行详细说明。

本发明一种基于序列密码加密的数据搜索方法,具体按照以下步骤实施:

步骤1:关键字预加密

步骤2:密钥流生成

步骤3:隐藏密文生成

步骤4:建立查询配对表

步骤5:密文搜索

步骤6:密文解密

本发明的特点在于,

步骤1具体按照以下步骤实施:

扫描文档集D并建立关键词集△′,对每个关键词Di∈△′,建立D(ω),设置全局计数器φ,第i个关键字Di,通过ECB算法进行加密,并产生直接密文Xi,密钥由用户保管,Xi被划分成两部分,记为Xi=Li|Ri,其中总长度为n,Li的长度为l,Ri的长度为r,其中n=l+r。

步骤2具体按照以下步骤实施:

通过伪随机数生成器生成随机数Gio(随机种子RAND_SEED的值由用户来保管),Gio分别与Li,Ri进行XOR运算,结果记为PioL,即PioL使用XOR置换函数Tf(.)产生当前查询会话(如第o个查询会话)的置换密钥kio,即随机数Gio使用置换密钥kio选择伪随机置换函数f(.)函数产生fkio(Gio),此时Gio|GioL|为该查询会话的密钥流。

进一步,所述XOR置换函数Tf(.)保留了XOR的性质,且具有的性质,其结果生成随机的,统一分布并具有具体长度为n的序列。

进一步,所述伪随机置换函数fk(.),置换密钥为k,结果将生成一串随机的序列,置换密钥k决定了原序列随机排列的顺序。

步骤3具体按照以下步骤实施:最后Ri与进行XOR运算生成PioC,即记为PioR生成隐藏密文的右部分,记Pio成第i个关键字Di的隐藏密文,则

步骤4具体按照以下步骤实施:

将Pio,XOR置换函数Tf(.)发送到云服务器中,Pio以PioL|PioC|PioR的形式储存在服务器上,其索引为i,以此建立查询配对表,此表包括两部分:查询会话索引i,隐藏密文Pio,其中Pio包含PioL,PioC,PioR三部分。

步骤5具体按照以下步骤实施:

当第q个查询会话发生时,其隐藏密文为Piq=PiqL|PiqC|PiqR,发送到云服务器中,先取出先前存储在服务器的XOR置换函数Tf(.),计算的值,得到再依次取出密文配对表的每一项,如第一项Pio,与Piq进行XOR运算得到:

通过计算出来的如果成立,维持了密钥流左右两边结构,说明kio与kiq为同一关键字不同查询会话的密钥,关键字一致,查询成功,全局计数器φ的第i项变为1,Pio即为所查询会话Piq的搜索结果,返回给用户。接着取出密文配对表的下一项进行配对来确定Piq的搜索结果。

步骤6具体按照以下步骤实施

在客户端中,把从服务器得到PioR,PioC,PioL进行解密,还原成起始密文。通过伪随机数生成器和用户保管的随机种子RAND_SEED生成随机数Gio,Gio与PioL进行XOR运算得到起始密文的左部分Li,即将PioR与Gio进行XOR运算得到起始密文的右部分Ri,即最后对起始密文Li|Ri进行ECB解密得到明文。

对本发明进行总结:

本发明是一种云储存环境下基于序列密码的搜索加密方法,具有以下优点:(1)对明文直接加密后生成的密文,再次用密钥流进行加密,使明文极大得到保护。(2)同一个关键词在不同的查询会话中生成不同的密文,隐藏了明文的数据类型和搜索模式(3)在建立查询配对表后,只需将少量的数据储存在云服务器上,计算开销更小,减少了储存空间。

本发明不同于传统的属性加密方法,通过对序列密码加密结构的改进,来对明文进行二次加密,不仅提高了对数据本身和传输模式的安全性,而且实现了用户高效的数据搜索,大幅度减轻服务器的计算开销,保障了用户的数据安全。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号