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

文档序号:6480956阅读:247来源:国知局
专利名称:对加密倒排索引表进行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(主密钥,行密钥||$),其中符号“$”是用于区分未初始化行和已初始化行的专用符号。
优选地,在所述加密步骤之前,所述方法还包括确定满足下述条件的最大整数s所述n行更新数据中的每一行具有至少s个伪数据项;确定是否满足以下两个条件1)和2)1)s-1≥1,以及2)所述n行更新数据项中每一行中的更新数据项的数目≥s+1;以及如果满足上述两个条件1)和2),则从所述n行更新数据项中的每一行中删除s-1个伪数据项。
根据本发明的第二方案,提供了一种对加密倒排索引表进行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行加密数据项都是已初始化行的条件达预定次数,则所述初始化单元对于每一未初始化行,执行下述初始化过程在对所述未初始化行解密得到的一行解密数据项中添加至少一个伪数据项,并将所述未初始化行标记为已初始化行。
优选地,所述初始化单元通过识别位于一行解密数据项中预定位置处的专用项来确定该行解密数据项是否是已初始化行。
优选地,用于标识未初始化行的专用项是E(主密钥,行密钥),而用于标识已初始化行的专用项是E(主密钥,行密钥||$),其中符号“$”是用于区分未初始化行和已初始化行的专用符号。
优选地,所述装置还包括调整单元,用于确定满足下述条件的最大整数s所述n行更新数据中的每一行具有至少s个伪数据项,确定是否满足以下两个条件1)和2)1)s-1≥1,以及2)所述n行更新数据项中每一行中的更新数据项的数目≥s+1,以及如果满足上述两个条件1)和2),则从所述n行更新数据项中的每一行中删除s-1个伪数据项。
根据本发明的一个具体实施例,在向目标行添加一个新数据项的同时,向其他n-1个伪行中的每一个添加一个伪数据项。因此,尽管所有n行中的加密数据都发生了改变,但所有n行的长度都增加1。在从目标行中删除一个加密数据项时,用一个伪数据项替换目标行中的加密数据项,而其他n-1个伪行的长度都保持不变。因此,尽管所有n行中的加密数据都发生了改变,但是所有n行的长度都保持不变。因此,好奇但诚实的攻击方可以识别RS的n行中的目标行的概率最多为1/k,其中n被设置为n≥k。
根据本发明的另一具体实施例,在向目标行添加一个新数据项时,如果在目标行中存在至少一个伪数据项,则用该新数据项替换该伪数据项,并向RS中的任意一行添加另一个伪数据项。另一方面,如果目标行没有伪数据项,则简单地将新数据项添加到目标行,而不向其他n-1行添加额外的伪数据项。因此,在更新后的RS中,尽管所有n行中的加密数据都发生了改变,但是目标行可能是增加了1项的一行(目标行中没有伪数据项),也可能是其他n-1行中的一行(目标行中有至少一个伪数据项)。也就是说,目标行与更新后的RS内的行长度改变没有任何关系。在从目标行中删除加密数据项时,用一个伪数据项替换目标行中的加密数据项;从RS中随机地选择具有至少一个伪数据项的一行,从所选行中删除一个伪数据项。对于上述删除步骤而言,在最差情况下,在所获取的n行中完全没有伪数据项,但是,由于在上述替换步骤中,一个新的伪数据项被引入目标行,因此该方法不会在上述选择步骤中发生意外的错误。也就是说,在该过程中总能找到具有至少一个伪数据项的一行。因此,在更新后的RS中,尽管所有n行中的加密数据都发生了改变,目标行可能是减少了一项的一行(所选行是目标行),也可能是其他n-1行中的一行(所选行不是目标行)。即,目标行与更新后的RS内的行长度改变没有任何关系。
因此,好奇但诚实的攻击方可以识别RS的n行中的目标行的概率最多为1/k,其中对于添加而言,n被设置为

而对于删除而言,n被设置为n≥k。此外,在保持相同的安全强度的同时引入了较少的伪数据项,提高了空间效率。即,在本发明的另一具体实施例中,无论是添加一个新数据项还是删除一个加密数据项,伪数据项的数目保持不变。
根据本发明的再一具体实施例,如果满足某些条件,可以进一步提高空间效率。更具体地,假定s是当前所有n行中伪数据项的共同数目,即每一行均包含至少s个伪数据项。如果s-1≥1且每一行的当前长度至少为s+1,则可以从每一行中删除s-1个伪数据项。因此,在保持相同安全强度的同时,可以引入更少的伪数据项。
本发明使得好奇但诚实的攻击方能够从更新后的行集合中识别出目标行的概率最多为1/k,这里k是给定的安全参数。



结合附图,根据下面对本发明的非限制性实施例的详细描述,本发明的上述及其他目的、特征和优点将变得更加清楚,附图中 图1是示出了好奇但诚实的攻击方如何找出修改行的示意图; 图2是解释FSE方法和装置的示意图; 图3是示出了FSE方法和装置如何更新加密行的示意图; 图4和图5是解释根据本发明第一实施例的k匿名更新方法和装置的示意图; 图6是示出了根据本发明第一实施例的k匿名更新方法和装置如何更新加密行的示意图; 图7和图8是解释根据本发明第二实施例的k匿名更新方法和装置的示意图; 图9是示出了根据本发明第二实施例的k匿名更新方法和装置如何更新加密行的示意图; 图10和图11是解释根据本发明第三实施例的k匿名更新方法和装置的示意图;以及 图12是示出了根据本发明第三实施例的k匿名更新方法和装置如何更新加密行的示意图。

具体实施例方式 下面,根据附图描述本发明。在以下描述中,一些具体实施例仅用于描述目的,而不应该理解为对本发明有任何限制,而只是本发明的示例。省略了常规结构或构造,以免导致对本发明的理解不清楚。
在k匿名更新的情况下,涉及两方,即数据所有者和好奇但诚实的观察者。在介绍具体的过程之前,首先定义一些特定符号和缩写

k预定安全参数,常数。


n参数n是为了满足k匿名更新每次所要获取的行的总数,并且n还是行集合RS的大小。


好奇但诚实攻击方将诚实地遵守预定过程,但是他/她对于的攻击方窥探所保护的信息表现出好奇。


AIM以k匿名的方式添加数据项的方法。


DIM以k匿名的方式删除数据项的方法。


EIIT加密倒排索引表。更具体地,EIIT由n行组成,每一行包括与指定的关键字有关的加密文件信息和/或一个或多个随机数(伪数据项),并以从关键字和主密钥计算出的随机值来标记每一行。


RS大小为n行的行集合,包含一个目标行和n-1个伪行。
本发明包括三个实施例。下面,将给出对本发明的详细描述。
[第一实施例] 关于第一实施例,对于给定的安全参数k,在行集合的大小(=n)被设置为n≥k时,好奇但诚实的攻击方从更新后的行集合RS中识别出目标行的概率最多为1/k,其中n和k是正整数。
图4和图5是解释根据本发明第一实施例的k匿名更新方法和装置的示意图。图4示出了添加情况下的框图,图5示出了删除情况下的框图。


第一实施例中的AIM 在向目标行添加一个新数据项的同时,向其他n-1伪行中的每一行添加一个伪数据项。因此,尽管所有n行中的加密数据都发生了改变,但所有n行的长度都增加1。
对于第一实施例中添加一个新数据项的情况,下面结合图4来描述各个组件。
(1)RS获取单元,在外部存储设备(不可信存储设备-外部EIIT单元)中获取加密形式的大小为n行的RS。
□n是根据给定值k计算的; □这里,给定值k对于RS获取单元是预设的或由用户输入。
(2)密钥存储单元,存储用于对RS内的数据项进行加密和解密的主密钥。
(3)预处理单元,以所获取的加密RS和主密钥作为输入,对RS内的所有加密数据项进行解密,并输出明文形式的原始RS。在这一解密过程中,先利用主密钥解密出行密钥,再利用行密钥解密出明文形式的原始RS。
(4)输入数据项存储单元,存储要添加的新数据项。
(5)输入RS存储单元,存储预处理单元的输出。
(6)数据项插入单元,以要添加的数据项和明文形式的RS作为输入,将该数据项添加到目标行,输出已将输入数据项添加到目标行的明文形式的RS。
(7)第一级RS存储单元,存储数据项插入单元的输出。
(8)伪数据项插入单元,以更新后的RS作为输入,将一个伪数据项添加到其他n-1伪行的每一行,并输出输入数据项已被添加到目标行并且其他n-1伪行中的每一行都添加有一个伪数据项的明文形式的更新后的RS。
(9)第二级RS存储单元,存储伪数据项插入单元的输出。
(10)后处理单元,以明文形式的更新后的RS以及主密钥作为输入,对更新后的RS内的所有数据项逐行进行重新加密,并输出加密形式的更新后的RS。在这一加密过程中,首先利用加密密钥(一个或多个)对更新后的RS内的各行内的数据项进行加密,然后利用主密钥与各行所使用的加密密钥对应的解密密钥(新的行密钥)进行加密以形成特定项,从而形成加密形式的更新后的RS。
(11)更新RS存储单元,存储后处理单元的输出。
(12)RS上载单元,以加密形式的大小为n行的更新后的RS作为输入,将大小为n行的更新后的RS上载到外部存储设备,并基于上载状态来输出真或假,即,如果上载成功则返回“真”;否则,返回“假”。
这里,主密钥和/或行密钥可以是对称加密方案中使用的对称密钥、成对加密方案中使用的公钥和私钥对或公知的加密方案中使用的其他密钥。在本发明中,加密/解密方案不受特定限制。


第一实施例中的DIM 在从目标行中删除一个加密数据项时,用一个伪数据项替换目标行中的加密数据项,并且其他n-1伪行的长度都保持不变。因此,尽管所有n行中的加密数据都发生了改变,但是所有n行的长度都保持不变。
对于第一实施例中删除一个无用数据项的情况,下面结合图5来描述各个组件 (1)RS获取单元、密钥存储单元、预处理单元、输入RS存储单元、第一级RS存储单元、后处理单元、更新RS存储单元和RS上载单元与第一实施例中添加一个新数据项的情况下的操作相同,已经在第一实施例中的AIM中进行了描述,因此为了简明起见,省略关于这些单元的详细描述。
(2)输入数据项存储单元,存储要删除的数据项。
(3)数据项置换单元,以要删除的数据项和明文形式的RS作为输入,对要删除的数据项进行定位并用一个伪数据项替换目标行中的该数据项,然后输出已经用一个伪数据项替换了要删除的数据项的明文形式的更新后的RS。


第一实施例的示例 图6是示出了根据本发明第一实施例的k匿名更新方法和装置如何更新加密行的示意图。因此,可以以更为直观的方式来理解根据第一实施例的添加一个新数据项和删除一个数据项的情况。
与最接近的现有技术相比,对于给定的安全参数k,在RS的大小(=n)被设置为n≥k时,好奇但诚实的攻击方从更新后的RS中识别出目标行的概率最多为1/k。
[第二实施例] 在添加一个新数据项的情况下,在第一实施例中,将增加n-1个伪数据项;在删除一个加密数据项的情况下,在第一实施例中,将增加一个伪数据项。为了提高空间效率,应该在保持相同的安全强度的前提下,引入较少的伪数据项。
在第二实施例中,为了满足对于给定的安全参数k,好奇但诚实的攻击方从更新后的RS中识别出目标行的概率最多为1/k,对于添加而言,将RS的大小(=n)设置为

而对于删除而言,将RS的大小设置为n≥k。这里,n和k是正整数,e是数学常数(也称为“欧拉常数”,e≈2.71828),

是上取整函数,

表示大于或等于X的最小整数。
图7和图8是解释根据本发明第二实施例的k匿名更新方法和装置的示意图。图7示出了添加情况下的框图,图8示出了删除情况下的框图。


第二实施例中的AIM 在向目标行添加一个新数据项时,如果在目标行中存在至少一个伪数据项,则用新数据项替换该伪数据项,并且向RS中的任意一行添加另一个伪数据项。另一方面,如果目标行没有伪数据项,则简单地将新数据项添加到目标行,而不向其他n-1行添加额外的伪数据项。因此,在更新后的RS中,尽管所有n行中的加密数据都发生了改变,但是目标行可能是增加了一项的一行(目标行没有伪数据项),也可能是其他n-1行中的一行(目标行中存在至少一个伪数据项)。也就是说,目标行与更新后的RS内的行长度改变没有任何关系。
对于第二实施例中添加一个新数据项的情况,下面结合图7来描述各个组件 (1)RS获取单元、密钥存储单元、预处理单元、输入数据项存储单元、输入RS存储单元、第一级RS存储单元、更新RS存储单元、后处理单元以及RS上载单元与第一实施例中添加一个新数据项的情况下的操作相同,已经在第一实施例中的AIM中进行了描述,因此为了简明起见,省略关于这些单元的详细描述。
(2)数据项插入单元,以要添加的数据项和明文形式的RS作为输入,如果目标行中存在至少一个伪数据项,则用输入数据项替换目标行中的一个伪数据项,否则直接将输入数据项添加到目标行。数据项插入单元输出通过置换或直接添加已经将新数据项添加到目标行的明文形式的更新后的RS。
(3)伪数据项插入控制单元,记录在数据项插入单元中是否进行了置换,并输出关于该状态的真或假,即,如果进行了置换,则输出“真”;否则,输出“假”。
(4)伪数据项插入单元,以明文形式的更新后的RS作为输入,如果进行了置换(即伪数据项插入控制单元输出“真”),则从RS中随机地选择一行,并将一个伪数据项添加到所选行;否则(即伪数据项插入控制单元输出“假”),伪数据项插入单元对数据项插入单元输出的明文形式的更新后的RS不进行任何动作。伪数据项插入单元输出添加了另一个伪数据项的明文形式的更新后的RS。
(5)第二级RS存储单元,存储伪数据项插入单元的输出。


第二实施例中的DIM 在从目标行删除一个加密数据项时,用一个伪数据项替换目标行中的加密数据项;从RS中随机地选择具有至少一个伪数据项的一行,然后从所选行中删除一个伪数据项。对于上述删除步骤而言,在最差情况下,在所获取的n行中完全没有伪数据项,但是,由于在上述替换步骤中,一个新的伪数据项被引入目标行,因此该方法不会在上述选择步骤中发生意外的错误。也就是说,在该过程中总能找到具有至少一个伪数据项的一行。因此,在更新后的RS中,尽管所有n行中的加密数据都发生了改变,目标行可能是减少了一项的一行(所选行是目标行),也可能是其他n-1行中的一行(所选行不是目标行)。即,目标行与更新后的RS内的行长度改变没有任何关系。
对于第二实施例中删除一个无用数据项的情况,下面结合图8来描述各个组件 (1)RS获取单元、密钥存储单元、预处理单元、输入数据项存储单元、输入RS存储单元、数据项置换单元、第一级RS存储单元、更新RS存储单元、后处理单元以及RS上载单元与第一实施例中删除一个加密数据项的情况下的操作相同,已经在第一实施例中的DIM中进行了描述,因此为了简明起见,省略关于这些单元的详细描述。
(2)伪数据项删除单元,以明文形式的更新后的RS作为输入,从RS中随机地选择具有至少一个伪数据项的一行,并从所选行中删除一个伪数据项。伪数据项删除单元输出已经用一个伪数据项替换了要删除的数据项并且已经从RS中随机选择的一行中删除了另一个伪数据项(也可以是同一个伪数据项)的明文形式的更新后的RS。
(3)第二级RS存储单元,存储伪数据项删除单元的输出。


第二实施例的示例 图9是示出了根据本发明第二实施例的k匿名更新方法和装置如何更新加密行的示意图。因此,可以以更为直观的方式来理解根据第二实施例的添加一个新数据项和删除一个数据项的情况。
与第一实施例相比,第二实施例提高了空间效率。无论是添加一个新数据项还是删除加密数据项,所添加的伪数据项的数目都是零,即保持固定不变。此外,对于给定的安全参数k,对于添加而言,将RS的大小(=n)设置为

而对于删除而言,将RS的大小设置为n≥k,好奇但诚实的攻击方从更新后的RS中识别出目标行的概率最多为1/k。这里,

表示大于或等于X的最小整数。
此外,在第二实施例的AIM或DIM中,引入初始化过程以确保首次执行初始化后的每一行的长度不小于2,且所获取的RS(n行)中的所有行都已初始化。


初始化过程 在每一行中,可以使用特殊项E(主密钥,行密钥)来标识对该行是否已经进行了初始化过程。例如,通过引入专用符号“$”将E(主密钥,行密钥)扩展为E(主密钥,行密钥||$)。项目E(主密钥,行密钥)表示该行是未初始化行,而项目E(主密钥,行密钥||$)表示该行是已初始化行。假定EIIT中总共有m行,则初始化过程可以描述如下 (1)对于给定的安全参数k,计算出

如果m≥n,则转向步骤(2),否则退出初始化过程。
(2)针对所获取的n行,逐一检查每一行是否是已初始化行。如果是未初始化行,则添加至少一个伪数据项,并将E(主密钥,行密钥)改变为E(主密钥,行密钥||$);否则,保持该行不变。
(3)如果已经根据步骤(2),对大小为n行的RS中的所有行都进行了处理,则转向第二实施例的AIM或DIM。
对于第一次执行第二实施例的AIM或DIM,将执行上述步骤(1)~(3)。但是,对于第二次执行和任意后续执行第二实施例的AIM或DIM,可以省略上述步骤(1)。
也就是说,在第二实施例的AIM或DIM中,首先获取(加密的)n行。然后,确定是否所有(加密的)n行都是已初始化行。如果是,则开始第二实施例的AIM或DIM。否则,对于每个未初始化行,将至少一个伪数据项添加到(解密的)该行,并且(立即或稍后)将添加了伪数据项的该行标记为已初始化行。因此,当第二实施例的AIM或DIM开始时,所获取的所有n行都是已初始化行。另一方面,当所获取的n行并不都是已初始化行时,可以重新获取其他n行(可以部分与先前获取的n行不同),而不立即执行初始化过程。为了避免持续重新获取不停止,预先定义一个次数(例如,3次或5次),以便在重新获取的其他n行连续不满足所有n行都是已初始化行的条件达到预先定义的次数时,执行初始化过程。
因此,在上述初始化过程之后,每一行的长度不小于2,并且所获取的RS(n行)中的所有行都已被初始化。对于第一次进行AIM或DIM,所有n行(每一行具有至少一个数据项)都没有伪数据项,因此针对每一行执行初始化过程,从而n行都被初始化,并且首次执行初始化后的每一行的长度将不小于2。对于第二实施例中的AIM或DIM的后续执行而言,首先初始化未经初始化的每一行,以便仍然满足上述条件。
[第三实施例] 在第二实施例中,无论是添加一个新数据项还是删除一个加密数据项,伪数据项的数目都保持不变。如果满足特定条件,可以进一步提高空间效率。除了下面附加的调整过程之外,第三实施例的关键思想与第二实施例相同。


调整过程 假定s是当前所有n行中伪数据项的公共数目,即每一行均包含至少s个伪数据项。如果s-1≥1且每一行的当前长度至少为s+1,则从每一行中删除s-1个伪数据项。
在调整过程之后,各行仍然满足该行是目标行的概率最多为1/k。
图10和图11是解释根据本发明第三实施例的k匿名更新方法和装置的示意图。图10示出了添加情况下的框图,图11示出了删除情况下的框图。
与图7和图8相比,在图10和图11中的每一幅中仅添加了两个用于执行调整过程的模块,即调整单元和第三级RS存储单元。因此,仅详细解释这两个模块,而其他模块与第二实施例中的模块相同,因此为了简明起见,省略关于这些组件的详细解释。
(1)调整单元,以明文形式的更新后的RS作为输入,执行以下操作 假定s是当前所有n行中伪数据项的公共数目, 即每一行均包含至少s个伪数据项。如果s-1≥1且每一行的当前长度至少为s+1,则调整单元从每一行中删除s-1个伪数据项。
调整单元输出已进行了调整的明文形式的更新后的RS。
(2)第三级存储单元,存储已进行了调整的明文形式的更新后的RS。


第三实施例的示例 图12是示出了根据本发明第三实施例的k匿名更新方法和装置如何更新加密行的示意图。因此,可以以更为直观的方式来理解根据第三实施例的添加一个新数据项和删除一数据项的情况中的调整过程。
与第二实施例相比,第三实施例进一步提高了空间效率。无论是添加一个新数据项还是删除加密数据项,所添加的伪数据项的数目最多为零,而不再是保持不变。
尽管以上描述涉及多个单元,但是通过将一个单元划分为多个单元或将多个单元组合为一个单元,只要其仍能执行相应的功能,也可以实现本发明。
以上描述仅给出了本发明的优选实施例,而并不是要以任何方式限制本发明。因此,在本发明精神和原理内进行的任何修改、替换、改进等应该由本发明范围所涵盖。
权利要求
1.一种对加密倒排索引表进行k匿名更新的方法,包括
从外部存储设备中获取n行加密数据项;
将所述n行加密数据项解密为n行解密数据项;
更新所述n行解密数据项中的一个目标行,并对其他n-1行解密数据项中的每一行执行伪操作,以形成n行更新数据项;
将n行更新数据项加密为n行更新加密数据项;以及
将所述n行更新加密数据项上载到所述外部存储设备,
其中,n由预定安全参数k确定为n≥k,其中n和k是正整数。
2.根据权利要求1所述的方法,其中所述目标行更新和伪操作执行步骤包括
在所述n行解密数据项中,将一个新的未加密数据项添加到所述目标行,并向其他n-1行解密数据项中的每一行添加一个伪数据项,以形成所述n行更新数据项。
3.根据权利要求1所述的方法,其中所述目标行更新和伪操作执行步骤包括
在所述n行解密数据项中,用一个伪数据项替换所述目标行中的一个解密数据项,并保持其他n-1行解密数据项不变,以形成所述n行更新数据项。
4.根据权利要求1所述的方法,在所述解密步骤之前,还包括
确定是否所有所述n行加密数据项都是已初始化行;
如果所有所述n行加密数据项都是已初始化行,则
执行所述解密步骤,
其中
所述目标行更新和伪操作执行步骤包括
确定所述n行解密数据项中的所述目标行中是否存在至少一个伪数据项;
如果所述目标行中存在至少一个伪数据项,则
用一个新的未加密数据项替换所述目标行中的一个伪数据项,并向从所述n行解密数据项中随机选出的一行添加一个伪数据项,以形成所述n行更新数据项,
其中n被确定为
5.根据权利要求4所述的方法,还包括
如果所述目标行中没有任何伪数据项,则
向所述目标行添加所述一个新的未加密数据项,并保持其他n-1行解密数据项不变,以形成所述n行更新数据项。
6.根据权利要求1所述的方法,在所述解密步骤之前,还包括
确定是否所有所述n行加密数据项都是已初始化行;
如果所有所述n行加密数据项都已初始化行,则
执行所述解密步骤,
其中
所述目标行更新和伪操作执行步骤包括
用一个伪数据项替换所述n行解密数据项中的所述目标行中的一个解密数据项,并在从所述n行解密数据项中随机选出的、具有至少一个伪数据项的一行中删除一个伪数据项,以形成所述n行更新数据项。
7.根据权利要求4~6之一所述的方法,还包括
如果所有所述n行解密数据项并不都是已初始化行,则
执行所述解密步骤,以及
对于每一未初始化行,执行下述初始化过程在对所述未初始化行解密得到的一行解密数据项中添加至少一个伪数据项,并将所述未初始化行标记为已初始化行。
8.根据权利要求7所述的方法,其中通过识别位于一行解密数据项中预定位置处的专用项来确定该行解密数据项是否是已初始化行。
9.根据权利要求8所述的方法,其中用于标识未初始化行的专用项是E(主密钥,行密钥),而用于标识已初始化行的专用项是E(主密钥,行密钥||$),其中符号“$”是用于区分未初始化行和已初始化行的专用符号。
10.根据权利要求4~6之一所述的方法,还包括
如果所有所述n行加密数据项并不都是已初始化行,则
从所述外部存储设备中重新获取其他n行加密数据项。
11.根据权利要求10所述的方法,其中重新获取的其他n行加密数据项与先前获取的n行加密数据项部分不同。
12.根据权利要求10或11所述的方法,还包括
如果重新获取的其他n行加密数据项连续不满足所有n行加密数据项都是已初始化行的条件达预定次数,则
将所述n行加密数据项加密为n行解密数据项,以及
对于每一未初始化行,执行下述初始化过程在对所述未初始化行解密得到的一行解密数据项中添加至少一个伪数据项,并将所述未初始化行标记为已初始化行。
13.根据权利要求12所述的方法,其中通过识别位于一行解密数据项中预定位置处的专用项来确定该行解密数据项是否是已初始化行。
14.根据权利要求13所述的方法,其中用于标识未初始化行的专用项是E(主密钥,行密钥),而用于标识已初始化行的专用项是E(主密钥,行密钥||$),其中符号“$”是用于区分未初始化行和已初始化行的专用符号。
15.根据权利要求4~14之一所述的方法,在所述加密步骤之前,还包括
确定满足下述条件的最大整数s所述n行更新数据中的每一行具有至少s个伪数据项;
确定是否满足以下两个条件1)和2)
1)s-1≥1,以及
2)所述n行更新数据项中每一行中的更新数据项的数目≥s+1;以及
如果满足上述两个条件1)和2),则从所述n行更新数据项中的每一行中删除s-1个伪数据项。
16.一种对加密倒排索引表进行k匿名更新的装置,包括
获取单元,用于从外部存储设备中获取n行加密数据项;
解密单元,用于将所述n行加密数据项解密为n行解密数据项;
更新单元,用于更新所述n行解密数据项中的一个目标行,并对其他n-1行解密数据项中的每一行执行伪操作,以形成n行更新数据项;
加密单元,用于将n行更新数据项加密为n行更新加密数据项;以及
上载单元,用于将所述n行更新加密数据项上载到所述外部存储设备,
其中,n由预定安全参数k确定为n≥k,其中n和k是正整数。
17.根据权利要求16所述的装置,其中在所述n行解密数据项中,所述更新单元将一个新的未加密数据项添加到所述目标行,并向其他n-1行解密数据项中的每一行添加一个伪数据项,以形成所述n行更新数据项。
18.根据权利要求16所述的装置,其中在所述n行解密数据项中,所述更新单元用一个伪数据项替换所述目标行中的一个解密数据项,并保持其他n-1行解密数据项不变,以形成所述n行更新数据项。
19.根据权利要求16所述的装置,还包括
初始化单元,用于确定是否所有所述n行加密数据项都是已初始化行,其中如果所有所述n行解密数据项并不都是已初始化行,则执行初始化过程,否则,不执行所述初始化过程,
其中
所述更新单元确定所述n行解密数据项中的所述目标行中是否存在至少一个伪数据项,以及如果所述目标行中存在至少一个伪数据项,则
用一个新的未加密数据项替换所述目标行中的一个伪数据项,并向从所述n行解密数据项中随机选出的一行添加一个伪数据项,以形成所述n行更新数据项,
其中n被确定为
20.根据权利要求19所述的装置,其中
如果所述目标行中没有任何伪数据项,则所述更新单元
向所述目标行添加所述一个新的未加密数据项,并保持其他n-1行解密数据项不变,以形成所述n行更新数据项。
21.根据权利要求16所述的装置,还包括
初始化单元,用于确定是否所有所述n行加密数据项都是已初始化行,其中如果所有所述n行解密数据项并不都是已初始化行,则执行初始化过程,否则,不执行所述初始化过程,
其中
所述更新单元用一个伪数据项替换所述n行解密数据项中的所述目标行中的一个解密数据项,并在从所述n行解密数据项中随机选出的、具有至少一个伪数据项的一行中删除一个伪数据项,以形成所述n行更新数据项。
22.根据权利要求19~21之一所述的装置,其中
如果所有所述n行解密数据项并不都是已初始化行,则所述初始化单元
对于每一未初始化行,执行下述初始化过程在对所述未初始化行解密得到的一行解密数据项中添加至少一个伪数据项,并将所述未初始化行标记为已初始化行。
23.根据权利要求22所述的装置,其中所述初始化单元通过识别位于一行解密数据项中预定位置处的专用项来确定该行解密数据项是否是已初始化行。
24.根据权利要求23所述的装置,其中用于标识未初始化行的专用项是E(主密钥,行密钥),而用于标识已初始化行的专用项是E(主密钥,行密钥||$),其中符号“$”是用于区分未初始化行和已初始化行的专用符号。
25.根据权利要求19~21之一所述的装置,其中
如果所有所述n行加密数据项并不都是已初始化行,则所述获取单元
从所述外部存储设备中重新获取其他n行加密数据项。
26.根据权利要求25所述的装置,其中重新获取的其他n行加密数据项与先前获取的n行加密数据项部分不同。
27.根据权利要求25或26所述的装置,其中
如果重新获取的其他n行加密数据项连续不满足所有n行加密数据项都是已初始化行的条件达预定次数,则所述初始化单元
对于每一未初始化行,执行下述初始化过程在对所述未初始化行解密得到的一行解密数据项中添加至少一个伪数据项,并将所述未初始化行标记为已初始化行。
28.根据权利要求27所述的装置,其中所述初始化单元通过识别位于一行解密数据项中预定位置处的专用项来确定该行解密数据项是否是已初始化行。
29.根据权利要求28所述的装置,其中用于标识未初始化行的专用项是E(主密钥,行密钥),而用于标识已初始化行的专用项是E(主密钥,行密钥||$),其中符号“$”是用于区分未初始化行和已初始化行的专用符号。
30.根据权利要求19~29之一所述的装置,还包括
调整单元,用于确定满足下述条件的最大整数s所述n行更新数据中的每一行具有至少s个伪数据项,确定是否满足以下两个条件1)和2)
1)s-1≥1,以及
2)所述n行更新数据项中每一行中的更新数据项的数目≥s+1,以及
如果满足上述两个条件1)和2),则从所述n行更新数据项中的每一行中删除s-1个伪数据项。
全文摘要
本发明提出了一种对加密倒排索引表进行k匿名更新的方法和装置。所述方法包括从外部存储设备中获取n行加密数据项;将所述n行加密数据项解密为n行解密数据项;更新所述n行解密数据项中的一个目标行,并对其他n-1行解密数据项中的每一行执行伪操作,以形成n行更新数据项;将n行更新数据项加密为n行更新加密数据项;以及将所述n行更新加密数据项上载到所述外部存储设备,其中,n由预定安全参数k确定为n≥k,其中n和k是正整数。
文档编号G06F17/30GK101788985SQ20091000973
公开日2010年7月28日 申请日期2009年1月23日 优先权日2009年1月23日
发明者雷浩, 曾珂, 福岛俊一, 田野, 王利明 申请人:日电(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1