CN112671717A - 对加密后的订阅和事件进行匹配的方法 - Google Patents
对加密后的订阅和事件进行匹配的方法 Download PDFInfo
- Publication number
- CN112671717A CN112671717A CN202011402375.2A CN202011402375A CN112671717A CN 112671717 A CN112671717 A CN 112671717A CN 202011402375 A CN202011402375 A CN 202011402375A CN 112671717 A CN112671717 A CN 112671717A
- Authority
- CN
- China
- Prior art keywords
- attribute
- ciphertext
- subscription
- event
- value
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种对加密后的订阅和事件进行匹配的方法,所述方法包括:基于内容的发布订阅系统中,利用密钥对事件和订阅的明文进行加密时,使得得到的密文的大小顺序与对应的明文的大小顺序一致;并针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构;在对事件进行匹配时,针对所述事件的每个属性,根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合。应用本发明可以大大提高对加密后的订阅和事件进行匹配的速度。
Description
技术领域
本发明涉及发布订阅技术领域,特别是指一种对加密后的订阅和事件进行匹配的方法。
背景技术
发布订阅云服务已经得到广泛的部署和适应。但是,隐私保护问题一直是阻碍其广泛应用的一个重要障碍。目前研究者们已经提出了很多对加密后的订阅和事件进行匹配的方法:
Choi等人提出使用非对称点积保持加密(Asymmetric Scalar-productPreserving Encryption,ASPE)算法实现密文匹配。ASPE由Wong等人基于加密数据库上的k近邻查询算法提出。方案的核心思想是将事件属性值和订阅约束值表示成多维空间上点的坐标,然后将事件坐标和订阅坐标用ASPE算法加密,判断事件与订阅是否匹配只需比较加密的订阅坐标和加密的事件坐标之间的距离。
Ion等人提出使用多用户可搜索加密机制(Searchable Data Encryption,SDE)来加密事件和订阅。在订阅加密前,数值型的订阅约束会被表示成访问树的形式。访问树由叶子节点和非叶子节点构成,其中每个叶子节点由属性和SDE加密后的属性约束值表示;每个非叶子节点是阈值门,由阈值和其孩子节点构成,阈值表示匹配时满足此非叶子节点需要至少满足的子节点数量。如果加密后事件中的每个属性值(如果是数值型属性)均满足订阅中每个属性对应的访问树,那么事件与订阅匹配。
Nabeel等人提出使用修改后的Paillier同态加密方案实现了基于上下文的发布订阅系统中的密文匹配。首先由上下文管理器为发布者和订阅者分发用修改后的Paillier算法加密的安全参数。然后事件和订阅在各自的安全参数下进行运算,执行匹配时只需将订阅密文和事件密文相乘,此时利用Paillier算法的同态加性质消除掉一些安全参数,最后调用修改后的Paillier算法对剩下的结果解密,通过最终解密的结果即可判断事件与订阅是否匹配。
Raiciu等人针对不同属性值类型(整型或字符型)和操作符类型(等值,非等值和区间等)的订阅约束提出了不同的密文匹配机制。其中对等值类型的属性约束作者使用修改后的Song等人基于密文搜索提出的方案。而对非等值和区间类型的约束使用Chang等人基于字典的思想。
Barazzutti等人提出使用布隆过滤器通过减少订阅空间来缓解密文匹配的性能问题。但是他们的方案仅能过滤掉含有等值类型的不匹配的订阅,除此之外,其它类型的订阅仍需要执行密文匹配(使用ASPE方案)。
然而,这些方案的基本策略均是实现一种密文匹配方案:首先对事件和订阅加密,然后对每个加密的事件将其与订阅集中每个加密的订阅一个个执行密文匹配。匹配的时间复杂度与系统中订阅的数量成正比,随着系统中订阅数量的增加,系统的性能会越来越差。
发明内容
有鉴于此,本发明的目的在于提出一种对加密后的订阅和事件进行匹配的方法,大大提高对加密后的订阅和事件进行匹配的速度。
基于上述目的,本发明提供一种对加密后的订阅和事件进行匹配的方法,包括:
基于内容的发布订阅系统中,利用密钥对事件和订阅的明文进行加密时,使得得到的密文的大小顺序与对应的明文的大小顺序一致;并针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构;
在对事件进行匹配时,针对所述事件的每个属性,根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合。
进一步,所述方法还包括:
在确定出所述事件的每个属性匹配的订阅集合后,对确定出的订阅集合取交集,得到所述事件的最终匹配的订阅集合。
其中,所述针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构,具体包括:
对于具有同一属性的订阅中的每个订阅,根据该订阅的该属性的操作符和约束值计算出该属性的约束值上、下限;
针对具有同一属性的订阅,根据所述订阅的该属性的约束值上限的密文的大小顺序,建立该属性的上限索引结构;根据所述订阅的该属性的约束值下限的密文的大小顺序,建立该属性的下限索引结构。
其中,所述根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合,具体包括:
根据所述事件的该属性的属性值的密文的大小,与该属性的上限索引结构中的密文的大小进行比较,查找出比该属性值的密文大的约束值上限的密文,将查找出的约束值上限对应的订阅组合为第一订阅集合;
根据所述事件的该属性的属性值的密文的大小,与该属性的下限索引结构中的密文的大小进行比较,查找出比该属性值的密文小的约束值下限的密文,将查找出的约束值下限对应的订阅组合为第二订阅集合;
将第一、二订阅集合取交集,得到与所述事件的该属性匹配的订阅集合。
较佳地,所述索引结构具体为二叉搜索树。
进一步,所述方法还包括:对所述密钥进行更新的方法:
应用程序App服务器向发布订阅云服务器发送密钥更新报文,通知所述发布订阅云服务器开始进行密钥更新;
所述发布订阅云服务器收到所述密钥更新报文后,将当前尚未执行匹配的订阅全部转移到第一订阅集合subset1中,并返回加密所述订阅使用的密钥的第一版本v1;
当有新的订阅到达时,所述App服务器使用新版本v2的密钥对其加密,并将加密后的订阅发送给所述发布订阅云服务器,所述发布订阅云服务器将接收的订阅存储在第二订阅集合subset2中;
当新的事件到达时,所述App服务器分别用版本v1和v2对应的密钥对所述事件加密后,将加密的事件发送给所述发布订阅云服务器;
所述发布订阅云服务器将用版本v1加密的事件和subset1中的订阅执行匹配,将用版本v2加密的事件和subset2中的订阅执行匹配。
本发明还提供一种密钥更新系统,包括:应用程序App服务器和发布订阅云服务器;其中,
所述App服务器向所述发布订阅云服务器发送密钥更新报文,通知所述发布订阅云服务器开始进行密钥更新;
所述发布订阅云服务器收到所述密钥更新报文后,将当前尚未执行匹配的订阅全部转移到第一订阅集合subset1中,并返回加密所述订阅使用的密钥的第一版本v1;
当有新的订阅到达时,所述App服务器使用新版本v2的密钥对其加密,并将加密后的订阅发送给所述发布订阅云服务器,所述发布订阅云服务器将接收的订阅存储在第二订阅集合subset2中;
当新的事件到达时,所述App服务器分别用版本v1和v2对应的密钥对所述事件加密后,将加密的事件发送给所述发布订阅云服务器;
所述发布订阅云服务器将用版本v1加密的事件和subset1中的订阅执行匹配,将用版本v2加密的事件和subset2中的订阅执行匹配。
本发明还提供一种电子设备,包括中央处理单元、信号处理和存储单元,以及存储在信号处理和存储单元上并可在中央处理单元上运行的计算机程序,其中,所述中央处理单元执行如上所述的对加密后的订阅和事件进行匹配的方法。
本发明的技术方案中,基于内容的发布订阅系统中,在对事件和订阅的明文进行加密时,使得得到的密文的大小顺序与对应的明文的大小顺序一致;并针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构;在对事件进行匹配时,针对所述事件的每个属性,根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合。由于索引结构中,作为密文的约束值是按大小顺序有规律排列的,且密文的大小顺序与对应的明文的大小顺序一致,因此,在与事件的属性值进行匹配时,可以按大小顺序快速找到约束值范围匹配的订阅,而不必将所有的约束值的密文遍历一遍,也就是说,不必与订阅集中每个加密的订阅一个个执行密文匹配,从而大大减少了匹配、比较的订阅数量,大大提高了加密后的订阅和事件的匹配速度。
本发明技术方案中,由于App服务器对新到达的事件,分别用旧版本v1和新版本v2对应的密钥对所述事件加密后发送给发布订阅云服务器;而发布订阅云服务器可以将用版本v1加密的事件和subset1中的订阅执行匹配,将用版本v2加密的事件和subset2中的订阅执行匹配;这样,不论订阅是存储在subset1还是subset2,都不会被漏匹配。从而,提高了云服务系统的安全性,保证密钥更新过程中发布订阅云服务不中断。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种订阅和事件的匹配方法流程图;
图2为本发明实施例提供的一种加密方法流程图;
图3为本发明实施例提供的明文和密文对应关系的示意图;
图4为现有技术的密钥更新的示意图;
图5为本发明实施例提供的一种密钥更新协议报文的格式示意图;
图6为本发明实施例提供的一种类的继承关系示意图;
图7为本发明实施例提供的一种密钥更新方法流程图;
图8为本发明实施例提供的一种电子设备硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,除非另外定义,本发明实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面结合附图详细说明本发明实施例的技术方案。
在基于内容的发布订阅系统中,事件可看做一个二元组(属性名,属性值),其中属性名表示要发布的事件属性,属性值表示在该属性上的取值。比如在股票报价系统中,发布者发布了一个事件pub:price=300,name=“IBM”,那么price和name是属性名,300和“IBM”是对应属性上发布的事件值,表示IBM公司发布的股票价格为300美元。
订阅由属性约束集组成,每个属性约束可看作一个三元组(属性名,操作符,约束值),其中属性名表示对哪个属性设置约束;操作符,表示可以设置的约束类型,比如等值(=)、非等值(>,<,≤,≥)或者区间类型等;约束值,即设置的感兴趣的订阅属性上的取值。比如同样在股票报价系统中存在一条订阅sub:price<200,name=“IBM”,那么price和name就是属性名,<和=为操作符,200和“IBM”为约束值,表示该订阅者想获取IBM公司股票价格小于200美元时的股票信息。
本发明实施例提供的一种订阅和事件的匹配方法,流程如图1所示,包括如下步骤:
步骤S101:基于内容的发布订阅系统中,对事件和订阅的明文进行加密。
本步骤中,基于内容的发布订阅系统中,利用密钥对事件和订阅的明文进行加密时,使得得到的密文的大小顺序与对应的明文的大小顺序一致。
具体地,假设发布订阅系统中,初始化的事件和订阅的明文取值范围为[inrangeStart,inrangeEnd],加密后密文映射到的密文取值范围为[outrangeStart,outrangeEnd],加密时选取的安全密钥key的长度为256bits。当对事件或订阅的明文加密时,假设要加密的数据为m∈[inrangeStart,inrangeEnd],需对m进行如图2所示流程以得到加密后的密文c,其中c∈[outrangeStart,outrangeEnd]。其中,图2所示流程包括如下子步骤:
子步骤S201:对明文数据m加密时,首先判断m是否与当前的明文取值范围的上下限相等;如果相等,则执行如下子步骤S202;否则,执行如下子步骤S203;
子步骤S202:利用明文数据m和密钥key产生一个随机比特序列coins,然后将coins作为随机源从当前密文取值范围中随机选择一个值作为密文值即完成m的加密。
子步骤S203:利用key和当前密文取值范围的中间值(mid值)生成一个随机比特序列coins,然后将coins作为随机源,利用超几何分布从当前明文取值范围上选择一个抽样x;
子步骤S204:比较x与m的大小;如果x≥m,则执行如下子步骤S205;否则,执行如下子步骤S206。
子步骤S205:更新明文取值范围变为[inrangeStart,x],更新密文取值范围变为[outrangeStart,mid]后,跳转到子步骤S201,继续判断m是否与更新后的明文取值范围的上下限相等。
子步骤S206:更新明文取值范围变为[x+1,inrangeEnd],更新密文取值范围变为[mid+1,outrangeEnd],跳转到子步骤S201,继续判断m是否与更新后的明文取值范围的上下限相等。
这样,从子步骤S201开始进行若干次递归计算直到当前的明文取值范围的上下限和m相等,从而得到密文值;
可以看出本发明给出的加密方案使得明文取值范围和密文取值范围关联了起来,明文取值范围里的每个明文值最终被映射到密文取值范围里的一个子区间上,然后从这个子区间上随机选取一个值作为该明文对应的密文值,如图3所示。这样,假设m1和m2分别被映射到了密文空间的子区间[o1,o2]和[u1,u2]上,然后从[o1,o2]里选择c1作为m1的密文,从[u1,u2]里选择c2作为m2的密文,从而有若m1<m2,则c1<c2。即得到的密文的大小顺序与对应的明文的大小顺序一致。
事实上,加密的订阅的明文,通常指的是订阅的约束值;加密的事件的明文,通常指的是事件的属性值。
步骤S102:针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构。
具体地,对于具有同一属性的订阅中的每个订阅,可以根据该订阅的该属性的操作符和约束值计算出该属性的约束值上、下限;
进而,针对具有同一属性的订阅,根据所述订阅的该属性的约束值上限的密文的大小顺序,建立该属性的索引结构,且将该索引结构作为上限索引结构;根据所述订阅的该属性的约束值下限的密文的大小顺序,建立该属性的索引结构,且将该索引结构作为下限索引结构。为便于描述,本文中将订阅的约束值上、下限的密文统称为订阅约束密文。
例如,上述的索引结构可以是二叉搜索树,而按照订阅约束密文的大小顺序,建立索引结构的方法可以采用现有方法;比如,将第一个要插入到二叉搜索树的订阅约束密文作为二叉搜索树的根节点,然后对第二个要插入的订阅约束密文,将其与根节点处的密文进行比较,如果其比根节点处的密文值小,就将其插入到根的左节点,否则,将其插入根的右节点。对后续要插入的其它订阅约束密文,也依次与根节点进行比较,再根据比较结果选择根节点的子节点进行比较,然后再递归地与子节点的左子节点或右子节点进行比较,最终找到其插入位置。根据此种方式,建立的二叉搜索树中所有左子节点的密文值均比其根节点(父节点)的小,右子节点的密文值均比其根节点(父节点)的大。
步骤S103:根据建立的索引结构,对事件进行匹配。
本步骤中,在对事件进行匹配时,针对所述事件的每个属性,根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合;
具体地,根据所述事件的该属性的属性值的密文的大小,与该属性的上限索引结构中的密文的大小进行比较,查找出比该属性值的密文大的约束值上限的密文,将查找出的约束值上限对应的订阅组合为第一订阅集合;
根据所述事件的该属性的属性值的密文的大小,与该属性的下限索引结构中的密文的大小进行比较,查找出比该属性值的密文小的约束值下限的密文,将查找出的约束值下限对应的订阅组合为第二订阅集合;
将第一、二订阅集合取交集,得到与所述事件的该属性匹配的订阅集合。
例如,当有事件到达时,对事件密文中的每个属性,首先找到该属性对应的上、下限索引结构,即上、下限二叉搜索树;上限二叉搜索树存储了所有订阅在该属性上的约束值上限,然后将事件的属性值的密文与树中的节点进行比较,查找出比该属性值的密文大的约束值上限的密文,将查找出的约束值上限对应的订阅组合为第一订阅集合;同理,在下限二叉搜索树存储了所有订阅在该属性上的约束值下限,然后将事件的属性值的密文与树中的节点进行比较,查找出比该属性值的密文小的约束值下限的密文,将查找出的约束值下限对应的订阅组合为第二订阅集合;将第一、二订阅集合取交集,得到与所述事件的该属性匹配的订阅集合。
进而,在确定出所述事件的每个属性匹配的订阅集合后,对确定出的订阅集合取交集,得到所述事件的最终匹配的订阅集合。
由于索引结构中,作为密文的约束值是按大小顺序有规律排列的,且密文的大小顺序与对应的明文的大小顺序一致,因此,在与事件的属性值进行匹配时,可以按大小顺序快速找到约束值范围匹配的订阅,而不必将所有的约束值的密文遍历一遍,也就是说,不必与订阅集中每个加密的订阅一个个执行密文匹配,从而大大减少了匹配、比较的订阅数量,大大提高了加密后的订阅和事件的匹配速度。
为应对攻击者通过暴力攻击等方式破解密钥的威胁,需对上述密钥定期更新以提高系统安全性。在发布/订阅系统中,定期的密钥更新目前仍是一个重要挑战:当新密钥替换旧密钥时,存储在代理处的订阅将失效,因为这些使用旧密钥加密的订阅无法再与使用新密钥加密的事件匹配。
现有的一种比较直接的密钥更新方式是:在代理处维持两个订阅集subset1和subset2,subset1用来存储密钥更新前的老订阅,假设加密老订阅的密钥版本为v1;subset2用来存储密钥更新后的新订阅,假设加密新订阅的密钥版本为v2。同时在App服务器处维护一个版本-密钥表,用来存储每个密钥版本对应的密钥。
当进行密钥更新时,需执行以下流程:
(1)首先发布订阅云服务中的代理将现有的未执行匹配的老订阅转移到subset1中,然后将这些老订阅连同其加密密钥版本一起发送给App服务器;
(2)App(应用程序)服务器根据其加密密钥版本找到对应的加密密钥,先对这些老订阅解密后,再使用最新版本(v2)的密钥对其重加密,加密完成后发给发布订阅云服务,云服务中的代理将其存储在subset2中。
(3)新的订阅使用新的密钥(其版本为v2)加密后被存储在subset2中。
最终,所有的订阅均是使用新密钥加密后的,当执行匹配时,新事件与subset2处的所有订阅执行匹配即可。
但上述方案中会出现漏匹配的情况。如图4所示,从密钥更新开始t1到密钥更新结束t2这个时间内,称为密钥更新窗口期(Key Update Window Period,KUWP),由于部分老的订阅被发送回App服务器进行密钥更新导致新到的事件无法与这些正在更新的订阅执行匹配,使得这些订阅出现了漏匹配。
由此,本发明提供了一种密钥更新系统,包括:发布订阅云服务中的代理服务器(简称发布订阅云服务器)和应用程序(App)服务器。在该系统中提供了一个密钥更新协议KUP,使得在密钥更新窗口期,能保证事件和老订阅的匹配。以下给出了协议的报文格式和协议的工作流程。
协议的报文格式如图5所示,包括:报文头(Header)和报文数据(Data);其中,Header中包括:消息类型(type)和密钥版本(KeyVersion)。图6所示报文格式中各字段的说明如表1所示;
表1
基于上述的报文格式,系统中传输的报文可以有三种,分别是事件报文,订阅报文和密钥更新报文,分别用类PubMessage,SubMessage和KeyUpdateMessage表示,这三个类均继承自Message类,Message类和这三个子类的继承关系如图6所示。
图6中在PubMessage中新添了成员变量newKeyVersion和pub,newKeyVersion表示新密钥的版本号,pub表示事件内容。在SubMessage中新添了成员变量sub,表示订阅内容。在KeyUpdateMessage中新添了成员变量newkey,表示更新后的新密钥。系统运行时,发送的事件连同消息的类型和加密时的版本号被封装在PubMessage中,发送的订阅连同消息的类型和加密时的版本号被封装在SubMessage中,进行密钥更新时,新密钥连同消息的类型和新密钥版本号会被封装在KeyUpdateMessage中。
基于上述的系统,本发明实施例提供的一种对上述密钥进行更新的方法,流程如图7所述,包括如下步骤:
步骤S801:App服务器将到达的订阅/事件,使用版本v1的密钥加密后发送给所述发布订阅云服务器。
具体地,App服务器将到达的订阅,使用版本v1的密钥加密后发送给所述发布订阅云服务器;例如,可使用上述报文格式封装事件报文,发送的事件连同消息的类型和加密时的版本号v1被封装在PubMessage中。
App服务器还可将到达的事件,使用版本v1的密钥加密后发送给所述发布订阅云服务器;例如,可使用上述报文格式封装订阅报文,发送的订阅连同消息的类型和加密时的版本号v1被封装在SubMessage中。
步骤S802:发布订阅云服务器将用版本v1加密的事件和用版本v1加密的订阅执行匹配。
步骤S803:App服务器向发布订阅云服务器发送密钥更新报文,通知所述发布订阅云服务器开始进行密钥更新。
例如,App服务器可使用上述报文格式封装密钥更新报文,新密钥连同消息的类型和新密钥版本号v2会被封装在KeyUpdateMessage中,发送给所述发布订阅云服务器。
步骤S804:发布订阅云服务器收到所述密钥更新报文后,将当前尚未执行匹配的订阅全部转移到第一订阅集合(subset1)中,并返回加密所述订阅使用的密钥的第一版本v1。
步骤S805:当有新的订阅到达时,所述App服务器使用新版本v2的密钥对其加密,并将加密后的订阅发送给所述发布订阅云服务器。
具体地,当有新的订阅到达时,App服务器可使用上述报文格式封装订阅报文,发送的订阅连同消息的类型和加密时的版本号v2被封装在SubMessage中。
步骤S806:所述发布订阅云服务器将接收的订阅存储在第二订阅集合(subset2)中。
步骤S807:当新的事件到达时,所述App服务器分别用版本v1和v2对应的密钥对所述事件加密后,将加密的事件发送给所述发布订阅云服务器。
步骤S808:所述发布订阅云服务器将用版本v1加密的事件和subset1中的订阅执行匹配,将用版本v2加密的事件和subset2中的订阅执行匹配。
图8示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的对加密后的订阅和事件进行匹配的方法。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,可以与非线性接收机相连,从非线性接收机接收信息,实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本发明的技术方案中,基于内容的发布订阅系统中,在对事件和订阅的明文进行加密时,使得得到的密文的大小顺序与对应的明文的大小顺序一致;并针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构;在对事件进行匹配时,针对所述事件的每个属性,根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合。由于索引结构中,作为密文的约束值是按大小顺序有规律排列的,且密文的大小顺序与对应的明文的大小顺序一致,因此,在与事件的属性值进行匹配时,可以按大小顺序快速找到约束值范围匹配的订阅,而不必将所有的约束值的密文遍历一遍,也就是说,不必与订阅集中每个加密的订阅一个个执行密文匹配,从而大大减少了匹配、比较的订阅数量,大大提高了加密后的订阅和事件的匹配速度。
也就是说,相比现有的上述密文匹配方案,本发明实现的密文匹配效率更加高效。原因是现有的密文匹配方案在执行事件匹配时由于需要事件和订阅一条条比较,当系统中订阅数量为n时,其匹配时间复杂度为O(n)。而我们的方案由于可以对订阅密文构建索引从而减少了需要比较的订阅数量,以二叉搜索树为例,匹配时的时间复杂度将降为O(logn)。
与已有方法相比较,本发明的方法能够将匹配速度提高大约两个数量级(在订阅规模为1万条时);而且,相比已有的加密事件订阅方法,本发明实现的密文匹配机制可扩展性更好。当事件中属性个数和订阅中约束个数固定时,随着订阅数量的增加,本发明相对其它方案匹配速度更快。
本发明技术方案中,由于App服务器对新到达的事件,分别用旧版本v1和新版本v2对应的密钥对所述事件加密后发送给发布订阅云服务器;而发布订阅云服务器可以将用版本v1加密的事件和subset1中的订阅执行匹配,将用版本v2加密的事件和subset2中的订阅执行匹配;这样,不论订阅是存储在subset1还是subset2,都不会被漏匹配。从而,提高了云服务系统的安全性,保证密钥更新过程中发布订阅云服务不中断。
事实上,大规模订阅集合的更新需要一个较长时间窗,本发明一方面是密钥更新协议中对密钥更新的窗口期做特殊的处理;另一方面是在报文结构中增加了特殊的标志位来标识密钥更新中的事件,事件进行双重加密来适应用新旧密钥加密的两个订阅集合,从而解决了在密钥更新过程中服务不中断的问题。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种对加密后的订阅和事件进行匹配的方法,其特征在于,包括:
基于内容的发布订阅系统中,利用密钥对事件和订阅的明文进行加密时,使得得到的密文的大小顺序与对应的明文的大小顺序一致;并针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构;
在对事件进行匹配时,针对所述事件的每个属性,根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合。
2.根据权利要求1所述的方法,其特征在于,还包括:
在确定出所述事件的每个属性匹配的订阅集合后,对确定出的订阅集合取交集,得到所述事件的最终匹配的订阅集合。
3.根据权利要求1所述的方法,其特征在于,所述针对具有同一属性的订阅,根据所述订阅的该属性的约束值的密文的大小顺序,建立该属性的索引结构,具体包括:
对于具有同一属性的订阅中的每个订阅,根据该订阅的该属性的操作符和约束值计算出该属性的约束值上、下限;
针对具有同一属性的订阅,根据所述订阅的该属性的约束值上限的密文的大小顺序,建立该属性的上限索引结构;根据所述订阅的该属性的约束值下限的密文的大小顺序,建立该属性的下限索引结构。
4.根据权利要求3所述的方法,其特征在于,所述根据所述事件的该属性的属性值的密文的大小,与该属性的索引结构中的密文的大小进行比较,根据比较结果,查找出与该属性值匹配的约束值,将查找出的约束值所对应的订阅组合为与所述事件的该属性匹配的订阅集合,具体包括:
根据所述事件的该属性的属性值的密文的大小,与该属性的上限索引结构中的密文的大小进行比较,查找出比该属性值的密文大的约束值上限的密文,将查找出的约束值上限对应的订阅组合为第一订阅集合;
根据所述事件的该属性的属性值的密文的大小,与该属性的下限索引结构中的密文的大小进行比较,查找出比该属性值的密文小的约束值下限的密文,将查找出的约束值下限对应的订阅组合为第二订阅集合;
将第一、二订阅集合取交集,得到与所述事件的该属性匹配的订阅集合。
5.根据权利要求1-4任一所述的方法,其特征在于,所述利用密钥对事件和订阅的明文进行加密时,使得得到的密文的大小顺序与对应的明文的大小顺序一致,具体包括:
初始化时,事件和订阅的明文取值范围为[inrangeStart,inrangeEnd],密文取值范围为[outrangeStart,outrangeEnd];
对明文数据m加密时,首先判断m是否与当前的明文取值范围的上下限相等;如果相等,则:
利用明文数据m和密钥key产生一个随机比特序列coins,然后将coins作为随机源从当前密文取值范围中随机选择一个值作为密文值。
6.根据权利要求5所述的方法,其特征在于,还包括:
如果m与当前的明文取值范围的上下限不相等,则:
利用key和当前密文取值范围的中间值mid生成一个随机比特序列coins,然后将coins作为随机源,利用超几何分布从当前明文取值范围上选择一个抽样x;
比较x与m的大小;如果x≥m,则更新明文取值范围变为[inrangeStart,x],更新密文取值范围变为[outrangeStart,mid];否则,更新明文取值范围变为[inrangeStart,x],更新密文取值范围变为[outrangeStart,mid];
进而,继续判断m是否与更新后的明文取值范围的上下限相等,经过若干次递归计算直到当前的明文取值范围的上下限和m相等,从而得到密文值。
7.根据权利要求1-4任一所述的方法,其特征在于,所述索引结构具体为二叉搜索树。
8.根据权利要求1-4任一所述的方法,其特征在于,还包括:对所述密钥进行更新的方法:
应用程序App服务器向发布订阅云服务器发送密钥更新报文,通知所述发布订阅云服务器开始进行密钥更新;
所述发布订阅云服务器收到所述密钥更新报文后,将当前尚未执行匹配的订阅全部转移到第一订阅集合subset1中,并返回加密所述订阅使用的密钥的第一版本v1;
当有新的订阅到达时,所述App服务器使用新版本v2的密钥对其加密,并将加密后的订阅发送给所述发布订阅云服务器,所述发布订阅云服务器将接收的订阅存储在第二订阅集合subset2中;
当新的事件到达时,所述App服务器分别用版本v1和v2对应的密钥对所述事件加密后,将加密的事件发送给所述发布订阅云服务器;
所述发布订阅云服务器将用版本v1加密的事件和subset1中的订阅执行匹配,将用版本v2加密的事件和subset2中的订阅执行匹配。
9.根据权利要求8所述的方法,其特征在于,在所述应用程序App服务器向发布订阅云服务器发送密钥更新报文之前,还包括:
所述App服务器将到达的订阅,使用版本v1的密钥加密后发送给所述发布订阅云服务器;以及
所述App服务器将到达的事件,使用版本v1的密钥加密后发送给所述发布订阅云服务器后,所述发布订阅云服务器将用版本v1加密的事件和用版本v1加密的订阅执行匹配。
10.一种电子设备,包括中央处理单元、信号处理和存储单元,以及存储在信号处理和存储单元上并可在中央处理单元上运行的计算机程序,其特征在于,所述中央处理单元执行所述程序时实现如权利要求1-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011402375.2A CN112671717B (zh) | 2020-12-02 | 2020-12-02 | 对加密后的订阅和事件进行匹配的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011402375.2A CN112671717B (zh) | 2020-12-02 | 2020-12-02 | 对加密后的订阅和事件进行匹配的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112671717A true CN112671717A (zh) | 2021-04-16 |
CN112671717B CN112671717B (zh) | 2022-07-15 |
Family
ID=75402643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011402375.2A Active CN112671717B (zh) | 2020-12-02 | 2020-12-02 | 对加密后的订阅和事件进行匹配的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671717B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312637A (zh) * | 2021-05-20 | 2021-08-27 | 北京邮电大学 | 代理服务器及其对加密的订阅与事件进行匹配的方法 |
CN114615049A (zh) * | 2022-03-08 | 2022-06-10 | 斑马网络技术有限公司 | 一种针对事件订阅的权限检查方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740337A (zh) * | 2016-01-22 | 2016-07-06 | 东南大学 | 一种基于内容的发布订阅系统中的事件快速匹配方法 |
US20160344707A1 (en) * | 2015-05-21 | 2016-11-24 | Nili Philipp | Encrypted query-based access to data |
US20180294952A1 (en) * | 2017-04-10 | 2018-10-11 | City University Of Hong Kong | Method for operating a distributed key-value store |
CN108989026A (zh) * | 2018-07-05 | 2018-12-11 | 华东师范大学 | 一种发布/订阅环境下用户属性可撤销的方法 |
CN109981641A (zh) * | 2019-03-26 | 2019-07-05 | 北京邮电大学 | 一种基于区块链技术的安全发布订阅系统及发布订阅方法 |
-
2020
- 2020-12-02 CN CN202011402375.2A patent/CN112671717B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160344707A1 (en) * | 2015-05-21 | 2016-11-24 | Nili Philipp | Encrypted query-based access to data |
CN105740337A (zh) * | 2016-01-22 | 2016-07-06 | 东南大学 | 一种基于内容的发布订阅系统中的事件快速匹配方法 |
US20180294952A1 (en) * | 2017-04-10 | 2018-10-11 | City University Of Hong Kong | Method for operating a distributed key-value store |
CN108989026A (zh) * | 2018-07-05 | 2018-12-11 | 华东师范大学 | 一种发布/订阅环境下用户属性可撤销的方法 |
CN109981641A (zh) * | 2019-03-26 | 2019-07-05 | 北京邮电大学 | 一种基于区块链技术的安全发布订阅系统及发布订阅方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312637A (zh) * | 2021-05-20 | 2021-08-27 | 北京邮电大学 | 代理服务器及其对加密的订阅与事件进行匹配的方法 |
CN113312637B (zh) * | 2021-05-20 | 2022-08-05 | 北京邮电大学 | 代理服务器及其对加密的订阅与事件进行匹配的方法 |
CN114615049A (zh) * | 2022-03-08 | 2022-06-10 | 斑马网络技术有限公司 | 一种针对事件订阅的权限检查方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112671717B (zh) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689349B (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
US9740879B2 (en) | Searchable encryption with secure and efficient updates | |
CN110516462B (zh) | 用于加密数据的方法和装置 | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
US9847981B1 (en) | Encrypted augmentation storage | |
CN112671717B (zh) | 对加密后的订阅和事件进行匹配的方法 | |
US20230370245A1 (en) | Privacy-Preserving Domain Name Services (DNS) | |
US20170091475A1 (en) | Method and System for Range Search on Encrypted Data | |
US20240104234A1 (en) | Encrypted information retrieval | |
US11010493B2 (en) | Multiple message retrieval for secure electronic communication | |
CN112256275A (zh) | 代码混淆方法、装置、电子设备及介质 | |
EP4185978B1 (en) | Encrypted information retrieval | |
Ling et al. | Server-aided revocable predicate encryption: formalization and lattice-based instantiation | |
CN111339547B (zh) | 用于生成数据标签的方法、电子设备及计算机存储介质 | |
CN117786751A (zh) | 一种对称可搜索加密方法、装置、设备及介质 | |
CN106874379B (zh) | 一种面向密文云存储的多维区间检索方法与系统 | |
US11310045B2 (en) | Compression and oblivious expansion of RLWE ciphertexts | |
CN116010678B (zh) | 一种匿踪查询方法、装置及设备 | |
CN115022000A (zh) | 铁路信号系统的通信方法、装置及电子设备 | |
CN112182603B (zh) | 反爬虫方法和装置 | |
CN113312637B (zh) | 代理服务器及其对加密的订阅与事件进行匹配的方法 | |
CN112925853B (zh) | 基于区块链的可信数据交换方法、装置、终端设备和介质 | |
Sweatha et al. | Construction of Cryptographically Secure AES S-Box using Second-order Reversible Cellular Automata | |
CN116600031B (zh) | 报文处理方法、装置、设备及存储介质 | |
JP7440662B2 (ja) | マルチキー情報検索 |
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 |