用户感兴趣数据的发现和安全传输的制作方法_3

文档序号:8324145阅读:来源:国知局
354。信道ID 350、352、354的大小可以相同或不同。
[0061]如在图3中呈现的,使用哈希操作从匹配的关键字子集来获得加密密钥。对关键字进行排序(诸如例如升序),以便每个设备产生相同的哈希值。以与ID类似的方式来产生更长的哈希字符串。在不知道所使用的关键字的情况下,从查询ID获得加密密钥是非常困难的。为了在响应消息之后继续在该信道上进行通信,每个另外的消息含有信道ID,该信道ID标识该消息所属于的加密信道。为了节省能量,设备能够提前创建多个信道ID。于是,当接收到另外的消息时,设备能够使用查找表,而不是创建新的信道ID。
[0062]各种示例实施例使得能够高效地检测设备之间的共有知识。能够在背景中进行这种检测。在完全没有用户干预的情况下,设备能够自动地建立安全信道。通过发送关键字的ID,该ID中的每个ID可以是仅较少字节长,使背景业务保持小(在共享关键字的设备之间建立通信信道之前),以及该背景业务取决于所搜索的项的数量。所论述的技术还可以在各种网络设置中应用,以及不要求设备在物理邻近的范围中。
[0063]可替代的示例实施例是将设备持有的每个关键字用作针对社区的种子。其它设备于是可以使用社区假名机制以及社区搜索消息以用于发现共有兴趣和随后的加密通信。社区搜索消息可以用作关键字查询消息以及社区假名可以担当查询ID。
[0064]在另一个示例实施例中,实施例的共有兴趣识别协议是无状态的。因此,可以在多个设备之间共享查询。于是,当第一设备注意到另一个设备正在查询相同的关键字时。该设备能够等待针对其它设备的查询的响应,这可以允许第一设备不那么频繁地查询共享关键字的那些设备,以及反而使用它的查询以搜索其它关键字。
[0065]此外,无状态协议允许设备在不发送或接收先前查询消息的情况下来解释响应消息。当接收到响应消息时,该设备在适当的查找表中检查针对关键字的匹配ID。该查找表可以包含没有被该设备发布的关键字,例如,当由另一个设备在查询中已经检测到那些关键字时。
[0066]在另一个示例实施例中,ID冲突的概率取决于在网络中的唯一关键字的总数。如果潜在的关键字的数量是10000,则使用三个字节的ID可以导致大约平均6个冲突,而使用4个字节的ID将导致平均小于一个冲突。因此,查询ID和匹配ID的所允许的大小可以基于潜在关键字的总数。
[0067]如果查询ID的大小是4个字节,以及搜索的关键字的总数是100,则查询消息的大小将是400字节。可以通过仅当网络状态改变时(诸如例如当增加另一个用户时)发送消息,来进一步减少业务总数。可替代地,使用足够长的时间段来周期性地提供查询消息,以避免网络业务负担过重。
[0068]在另一个示例实施例中,其中匹配ID的冲突是可能的,接收设备可以尝试使用关键字的每种可能的匹配组合的加密密钥来解密消息。在另一方面,如果将匹配关键字进行上报(诸如通过使用唯一匹配ID),则不需要检查不同的组合。如果设备能够成功地解密该消息,则它知道的是,在自组织网络中的另一个设备具有关键字的相同子集。
[0069]在另一个示例实施例中,各种所传送的消息被限制为不能具有任何永久的标识符,诸如网络地址、设备ID或其它别名。此类永久标识符将允许被动监听者来针对每个用户/设备来重建指纹。即使在不同位置,指纹将允许再次识别相同设备。为了解决这个问题,可以周期性地变更盐220、225以改变所生成的ID。改变的时间间隔指定监听者多久能够追踪相同的人或关键字。盐220、225可以基于当前时间,假设在每个设备中能够获得当前时间。每个设备使用相同的方法来生成盐220、225,以便跨越各种设备,针对给定关键字所独立创建的ID(诸如查询ID 240,245)是相同的。
[0070]在另一个示例实施例中,针对有效载荷426的加密密钥340也可以基于两个随机数(R_A和R_B)的串接。每个随机数是随机的比特串。查询消息410还可以包含第一随机数,R_A,以及响应消息420可以包含第二随机数,R_B。随机数R_A和R_B使查询410和响应420绑定。尽管随机数可能不增加另外的安全性(例如,当使用纯文本发送时),但是添加随机数防止由攻击者针对另一个设备来重放爱丽丝的查询410或鲍勃的响应420。当生成加密密钥340时,可以在进行哈希之前,将随机数与匹配关键字210、310进行组合。可替代地,可以使随机数与哈希值330、335进行组合。
[0071]在另一个示例实施例中,当在网络中存在多个设备时,可以广播该消息。广播传送进一步降低业务的数量(与向每个设备个体地发送该消息相比)以及改进隐私性。能够通过广播发送在协议中的所有消息,以及任何设备能够发送中继广播。广播传送允许设备不具有网络地址,以便避免在所传送的消息中具有能够被跟踪的标识符。如果网络足够大,则恶意用户为了发现设备之间的联系以及创建针对该设备的指纹,不能确定每个广播消息起源于哪个设备。
[0072]在另一个示例实施例中,每个信道可以具有多个匹配信道ID。在这种情况下,每当通过特定信道传送消息时,可以从匹配信道ID的集合选择随机ID。每个设备在看到响应消息后,知道预期具有多个信道ID中的任何一个信道ID的消息。
[0073]常规的安全集合交集协议可以用于在不暴露任何一方的知识集的情况下发现两方之间的共有知识。然而,即使在发现匹配之前,因为高数据量,这些协议对于自组织网络而言并不实用。作为对比,各种示例实施例使得多个设备能够使用低通信量以便发现共有知识。
[0074]使用常规的安全集合交集协议还涉及繁重的计算,由于有限的处理器速度和计算的能量消耗(其消耗电池),在移动设备中这不是优选的。各种示例实施例使用计算上较轻的算法,这些算法适用于移动设备和AwareNet通信。
[0075]用于在先前未知的移动设备之间建立无线可信信道的另一个常规方法是具有辅助信道,攻击者不能控制该辅助信道或容易地截取该辅助信道。针对密钥管理而言,辅助信道的使用可以涉及使用短距通信链路(诸如红外线或NFC)在设备之间复制PIN码。对于可能由数百米在物理上被分离的未知的设备之间的自组织通信网络(诸如例如在使用多跳的AwareNet中这是可能的)而言,这并不实用。
[0076]一般地,可以将各种实施例实现在硬件或专用电路、软件、逻辑和它们的任何组合中。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在固件或软件,该固件或软件可以由控制器、微处理器或其它计算设备来执行,尽管本发明不限制于此。虽然本发明的各种方面被说明和描述成框图、流程图或使用一些其它图形表示,但是很好理解的是,本文中所述的这些框、装置、系统、技术或方法可以被实现在,作为非限制性示例,硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或它们的一些组合中。
[0077]因此应当了解的是,示例性实施例的至少一些方面可以在各种组件(诸如集成电路芯片和模块)中来实践,以及示例性实施例可以在被具体化为集成电路的装置中实现。集成电路或电路可以包括电路(以及可能固件),该电路(以及可能固件)用于具体化能够被配置以便依照各种示例性实施例进行操作的数据处理器或多个数据处理器、数字信号处理器或多个数字信号处理器、基带电路和射频电路中的至少一个或者多个。
[0078]当结合附图阅读时,鉴于上述描述,对于本领域的技术人员来说,对上述示例性实施例的各种修改和改变可以变得明显。然而,任何和所有修改将仍然落入本发明的非限制性和示例性实施例的范围内。
[0079]应当注意的是,术语“连接”、“耦合”或者其任何变型意味着在两个或者更多元素之间的任何直接或者间接连接或者耦合,以及可以涵盖在“连接”或者“耦合”在一起的两个元素之间存在一个或者多个中间元素。在元素之间的耦合或者连接可以是物理的、逻辑的或者其组合。如本文中使用的那样,作为若干非限制和非穷举示例,两个元素可以视为通过使用一个或者多个线路、电缆和/或印刷电连接以及通过使用电磁能(诸如在射频区、微波区和光学(可见的和不可见的)区中具有波长的电磁能)被“连接”或者“耦合”在一起。
[0080]示例实施例提供了一种方法,该方法用于基于用户感兴趣数据在自组织网络中建立加密通信信道。所述方法包含:基于关键字的第一集合来(诸如例如由处理器)生成至少一个查询ID。每个查询ID标识所述关键字的第一集合中的关键字。所述方法包含:在自组织网络中,(诸如例如由接收器)接收包含至少一个匹配ID和加密消息的响应。每个匹配ID标识关键字。所述方法包含:(诸如例如由处理器)基于所述至少一个匹配ID来确定关键字子集。所述关键字子集包含由所述至少一个匹配ID所标识的所述关键字的第一集合中的关键字。所述方法还包含:(诸如例如由处理器)基于所述关键字子集来生成加密密钥,以及(诸如例如由处理器)使用所述加密密钥来解密所述加密消息。
[0081]在以上方法的另一个示例实施例中,所述方法还包含:向所述自组织网络发送包含所述至少一个查询ID的查询。响应于发送该查询执行接收响应。发送该查询可以包含对该查询进行广播。
[0082]在以上方法中的任何一个方法的另一个示例实施例中,所述方法还包含生成第一密码学(cryptographic)随机数。该查询还包含所述第一密码学随机数。所述响应还可以包含第二密码学随机数。生成加密密钥还可以基于所述第一密码学随机数和所述第二密码学随机数。
[0083]在以上方法中的任何一个方法的另一个示例实施例中,所述方法还包含选择所述关键字的第一集合。
[0084]在以上方法中的任何一个方法的另一个示例实施例中,所述方法还包含:接收标识关键字的第二集合的接收查询,选择关键字的第三集合。所述关键字的第三集合包含来自关键字的第一集合并且没有在关键字的第二集合中的关键字。所述方法还包含:向所述自组织网络,发送包含针对在关键字的第三集合中的关键字的至少一个查询ID的传送查询。至少一个查询ID中的每个查询ID标识关键字的第三集合中的关键字。
[0085]在以上方法中的任何一个方法的另一个示例实施例中,生成针对关键字的查询ID包含:生成查询盐;将所述关键字和所述查询盐组合以创建第一组合;对所述第一组合进行哈希以创建第一哈希值;以及将所述第一哈希值分成一个或多个查询ID。生成所述查询盐可以基于当前时间。
[0086]在以上方法中的任何一个方法的另一个示例实施例中,将所述关键字和所述查询盐进行组合包含:将所述关键字和所述查询盐串接。在可替代实施例中,将所述关键字和所述查询盐进行组合包含:将所述关键字和所述查询盐的字节/比特进行交织。
[0087]在以上方法中的任何一个方法的另一个示例实施例中,生成所述加密密钥包含:对在所述关键字子集中的每个关键字进行组合以创建密钥组合;对所述密钥组合进行哈希以创建密钥哈希值;以及将所述密钥哈希值分成所述加密密钥和一个或多个信道ID。对关键字子集中的每个关键字进行组合可以包含:将所述关键字子集中的每个关键字进行串接。在可替代实施例中,对关键字子集中的每个关键字进行组合包含:对关键字子集中的每个关键字的字节/比特进行交织。
[0088]在以上方法中的任何一个方法的另一个示例实施例中,确定关键字子集包含:针对至少一个匹配ID的每个匹配ID,确定查找表是否包含针对匹配ID的相关联的关键字,以及响应于确定该查找表包含相关联的关键字,将所述相关联的关键字添加到所述关键字子集。
[0089]另一个示例实施例提供了一种方法,所述方法用于基于用户感兴趣数据在自组织网络中建立加密通信信道。所述方法包含:在自组织网络中(诸如例如由接收器)接收包含至少一个查询ID的查询。每个查询ID标识关键字。响应于接收到所述查询,所述方法包含:(诸如例如由处理器)基于所述至少一个查询ID来确定来自关键字的第一集合的关键字子集。所述关键字的第一集合的子集包含由所述至少一个查询ID标识的所述关键字的第一集合中的关键字。所述方法包含:(诸如例如由处理器)基于所述关键字子集来确定至少一个匹配ID。每个匹配ID标识所述关键字子集中的关键字。所述方法包含:(诸如例如由处理器)基于所述关键字子集来生成加密密钥。所述方法还包含:(诸如例如由处理器)使用所述加密密钥来对消息进行加密,以及(诸如例如由传送器)发送包含所述至少一个匹配ID和所加密的消息的响应。
[0090]在以上方法的另一个示例实施例中,所述查询还包含第一密码学随机数。所述方法还包含:生成第二密码学随机数。生成所述加密密钥还基于所述第一密码学随机数和所述第二密码学随机数。所述响应还包含所述第二密码学随机数。
[0091]在以上方法中的任何一个方法的另一个示例实施例中,响应于确定关键字子集包含至少阈值数量的关键字,来执行确定所述至少一个匹配ID。所述阈值数量可以被定义为设置数量(诸如例如,五个关键字),被定义为在查询消
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1