对加密倒排索引表进行k匿名更新的方法和装置制造方法及图纸

技术编号:3777071 阅读:338 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种对加密倒排索引表进行k匿名更新的方法和装置。所述方法包括:从外部存储设备中获取n行加密数据项;将所述n行加密数据项解密为n行解密数据项;更新所述n行解密数据项中的一个目标行,并对其他n-1行解密数据项中的每一行执行伪操作,以形成n行更新数据项;将n行更新数据项加密为n行更新加密数据项;以及将所述n行更新加密数据项上载到所述外部存储设备,其中,n由预定安全参数k确定为n≥k,其中n和k是正整数。

【技术实现步骤摘要】

本专利技术涉及信息更新
,更具体地,涉及用于对加密倒排索引表进行k匿名更新的方法和装置。给定n行数据项,每一行均具有作为索引的加密关键字、以及一个或多个加密数据项。假定选择n行数据项中的一行作为将要修改的目标行,即,要向该行中添加新的加密数据项,或要从该行中删除加密数据项。本专利技术的目的在于实现k匿名,即,在修改之前和之后观察该n行数据项的好奇但诚实的攻击方能够识别出哪一行是目标行的概率最多为1/k,这里k是预先定义的安全参数。
技术介绍
目前出现两种趋势,即对保护个人隐私的普遍关注,以及向外部存储服务器提供个人数据。在向外部存储服务器提供个人数据的应用中,由于保密和个人隐私等原因,所提供的文件以及建立于这些文件的倒排索引表都采用加密形式。加密倒排索引表(下面简称为“EIIT”)是一种典型的数据结构,由具有各种长度的多个无关行组成,便于半可信存储服务器找到搜索方所指定的加密关键字的匹配结果。以专用加密关键字标记的每一加密行包括与该关键字有关的所有加密文件信息。加密关键字的值被称为“行标识符”,行内的加密文件信息被称为“数据项”。 转让给相同申请人的名称为“用于快速密文检索的方法、装置和系统”的另外两个专利申请CN200810098359.1和CN200810145083.8描述了构造加密倒排索引表(EIIT)的方法。EIIT可以包括成千上万行。上述的n行是EIIT中的一部分或者是EIIT的所有行。 当更新文件并向文件中添加新的关键字(或从文件中删除关键字)时,仅需更新EIIT中的唯一一行,即目标行。 然而,仅更新EIIT的目标行会使关键字和文件之间的关联关系暴露于不可信的一方,即存储有EIIT的存储服务器。图1以较为直观的方式示出了这一问题。 在CN200810098359.1和CN200810145083.8中描述了一些被称为“快速加密检索方法(FSE)”的技术方案。这里结合图2和图3来概述该方案。图2是解释FSE方法和装置的示意图;图3是示出了FSE方法和该方法如何更新加密行的示意图。 (1)数据所有者首先根据要对加密目标文件(ETD)执行的更新,在存储服务器中获取所有希望的加密行,并输出所获取的行。 (2)对于加密行,数据所有者使用主密钥对位于该行内、数据所有者已知的预定位置处的特定项——E(主密钥,行密钥)——进行解密,并获得行密钥;然后,数据所有者可以使用行密钥获得明文形式的数据项。 (3)对于要删除的原始明文数据项,数据所有者从该行中删除该数据项;和/或对于要添加的新的明文数据项,数据所有者将其添加到该行中。 (4)数据所有者以明文形式的所有更新行和加密密钥作为输入,利用该加密密钥对明文形式的更新行逐行进行加密,利用主密钥对与该加密密钥对应的解密密钥(新的行密钥)进行加密以形成特定项,输出加密形式的更新行,然后,将加密形式的更新行上载到存储服务器。 这种更新过程的一个明显缺陷在于尽管都处于加密形式,但存储服务器将获知EIIT内的更新行和ETD之间的引用关系。在最接近的现有技术中,即使在索引表已被加密的情况下,也可以通过比较修改之前和之后行的长度来揭示被修改文件(添加或删除了数据项)与加密索引表中的行之间的关系。从安全和保护个人隐私的观点来看,这仍然存在潜在风险。 随着更新次数的增加,上述问题将加剧,甚至将严重影响保密的目的。
技术实现思路
假定选择n行中的一行(下面将n行的集合称为“大小为n行的行集合”,并简称为RS)作为一次修改的目标行,即要向该目标行中添加一个新的加密数据项或要从该目标行中删除一个加密数据项,确保在修改之前和之后观测该n行的好奇但诚实的攻击方能够识别出哪一行是目标行的概率最多为1/k,这里k是预先定义的安全参数 较为直观地讲,可以通过在执行更新时,在每一行中引入伪数据项来实现该目标。 根据本专利技术的第一方案,提供了一种对加密倒排索引表进行k匿名更新的方法,包括从外部存储设备中获取n行加密数据项;将所述n行加密数据项解密为n行解密数据项;更新所述n行解密数据项中的一个目标行,并对其他n-1行解密数据项中的每一行执行伪操作,以形成n行更新数据项;将n行更新数据项加密为n行更新加密数据项;以及将所述n行更新加密数据项上载到所述外部存储设备,其中,n由预定安全参数k确定为n≥k,其中n和k是正整数。 优选地,所述目标行更新和伪操作执行步骤包括在所述n行解密数据项中,将一个新的未加密数据项添加到所述目标行,并向其他n-1行解密数据项中的每一行添加一个伪数据项,以形成所述n行更新数据项。 优选地,所述目标行更新和伪操作执行步骤包括在所述n行解密数据项中,用一个伪数据项替换所述目标行中的一个解密数据项,并保持其他n-1行解密数据项不变,以形成所述n行更新数据项。 优选地,在所述解密步骤之前,所述方法还包括确定是否所有所述n行加密数据项都是已初始化行;如果所有所述n行加密数据项都是已初始化行,则执行所述解密步骤,其中所述目标行更新和伪操作执行步骤包括确定所述n行解密数据项中的所述目标行中是否存在至少一个伪数据项;如果所述目标行中存在至少一个伪数据项,则用一个新的未加密数据项替换所述目标行中的一个伪数据项,并向从所述n行解密数据项中随机选出的一行添加一个伪数据项,以形成所述n行更新数据项,其中n被确定为 更优选地,所述方法还包括如果所述目标行中没有任何伪数据项,则向所述目标行添加所述一个新的未加密数据项,并保持其他n-1行解密数据项不变,以形成所述n行更新数据项。 优选地,在所述解密步骤之前,所述方法还包括确定是否所有所述n行加密数据项都是已初始化行;如果所有所述n行加密数据项都已初始化行,则执行所述解密步骤,其中所述目标行更新和伪操作执行步骤包括用一个伪数据项替换所述n行解密数据项中的所述目标行中的一个解密数据项,并在从所述n行解密数据项中随机选出的、具有至少一个伪数据项的一行中删除一个伪数据项,以形成所述n行更新数据项。 优选地,所述方法还包括如果所有所述n行解密数据项并不都是已初始化行,则执行所述解密步骤,以及对于每一未初始化行,执行下述初始化过程在对所述未初始化行解密得到的一行解密数据项中添加至少一个伪数据项,并将所述未初始化行标记为已初始化行。 优选地,所述方法还包括如果所有所述n行加密数据项并不都是已初始化行,则从所述外部存储设备中重新获取其他n行加密数据项。 优选地,重新获取的其他n行加密数据项与先前获取的n行加密数据项部分不同。 优选地,所述方法还包括如果重新获取的其他n行加密数据项连续不满足所有n行加密数据项都是已初始化行的条件达预定次数,则将所述n行加密数据项加密为n行解密数据项,以及对于每一未初始化行,执行下述初始化过程在对所述未初始化行解密得到的一行解密数据项中添加至少一个伪数据项,并将所述未初始化行标记为已初始化行。 优选地,通过识别位于一行解密数据项中预定位置处的专用项来确定该行解密数据项是否是已初始化行。 优选地,用于标识未初始化行的专用项是E(主密钥,行密钥),而用于标识已初始化行的专用项是E(主密钥,行密钥||$),其中符号“$”是用于区分未初始化行和已初始化行的专用符号。 优选地,在所述加密步骤之前,所述方法本文档来自技高网
...

【技术保护点】
一种对加密倒排索引表进行k匿名更新的方法,包括:从外部存储设备中获取n行加密数据项;将所述n行加密数据项解密为n行解密数据项;更新所述n行解密数据项中的一个目标行,并对其他n-1行解密数据项中的每一行执行伪操作,以形成n行更新数据项;将n行更新数据项加密为n行更新加密数据项;以及将所述n行更新加密数据项上载到所述外部存储设备,其中,n由预定安全参数k确定为n≥k,其中n和k是正整数。

【技术特征摘要】

【专利技术属性】
技术研发人员:雷浩曾珂福岛俊一田野王利明
申请(专利权)人:日电中国有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1