发明内容
根据本公开的一方面,提供了一种可靠的用户服务方法,包括:将经加密的第一散列值集合发送给数据提供方;从所述数据提供方接收经加密的第二散列值集合和经两次加密的第一散列值集合;使用第一密钥对接收到的经加密的第二散列值集合进行再次加密,以得到经两次加密的第二散列值集合;求取经两次加密的第一散列值集合和经两次加密的第二散列值集合的交集,从而获知与所述数据提供方的一个或多个共有用户;以及向所述一个或多个共有用户推荐或提供服务。
在一实施例中,所述经加密的第一散列值集合是如下获得的:对包括一个或多个用户标识符的第一数据集应用散列函数以生成与所述第一数据集相对应的第一散列值集合;以及使用所述第一密钥对所述第一散列值集合进行加密,以获得经加密的第一散列值集合。
在另一实施例中,所述经加密的第二散列值集合是由所述数据提供方通过对第二数据集应用散列函数并使用第二密钥进行加密来生成的,其中所述第二数据集包括一个或多个用户标识符。
在又一实施例中,所述经两次加密的第一散列值集合是所述数据提供方使用所述第二密钥对经加密的第一散列值集合进行加密来得到的。
在又一实施例中,所述第二数据集还包括与用户相关联的除用户标识符之外的一个或多个第二属性,其中向所述一个或多个共有用户推荐或提供服务包括:向所述数据提供方请求所述第二数据集中的与所述一个或多个共有用户相关联的所述一个或多个第二属性;在接收到与所述一个或多个共有用户相关联的所述一个或多个第二属性之后,将这些第二属性中的每一者与所述第一数据集中相应的用户标识符进行关联;以及基于所述关联来为相应用户推荐或提供服务。
在又一实施例中,所述一个或多个共有用户与所述第一数据集和所述第二数据集的交集相对应,所述方法还包括从所述数据提供方接收所述第二数据集,除了与所述第一数据集的所述交集以外。
在又一实施例中,所述方法还包括向所述数据提供方请求所述第二数据集中的除了与所述第一数据集的交集以外的其他用户标识符。
在又一实施例中,所述方法还包括将与所述一个或多个共有用户相关联的标识符发送给所述数据提供方,以使所述数据提供方能够确定所述第二数据集中的除了与所述第一数据集的交集以外的其他用户标识符。
在又一实施例中,所述方法还包括向与所述其他用户标识符相对应的用户推荐或提供基础水平的服务。
在又一实施例中,所述方法还包括通过所述第二数据集和所述第一数据集的比较来标识出类似用户,所述类似用户是这两个数据集中具有一个或多个相似或相同属性的用户,以及基于所述第一数据集中的用户所具有的服务来向所述第二数据集中的类似用户推荐或提供服务。
在又一实施例中,基于所述关联来向相应用户推荐更高水平的服务或者调整其现有服务。
在又一实施例中,所述第一数据集中的元素包括除用户标识符以外的一个或多个第一属性,所述一个或多个第一属性和所述一个或多个第二属性相同或不同,并且其中所述关联包括:对于不同于所述第一属性的所述第二属性,将该第二属性作为新属性关联到所述第一数据集的相应用户标识符;以及对于与所述第一属性相同的所述第二属性,将该第二属性作为该第一属性的并列属性或替换属性来关联到所述第一数据集的相应用户标识符。
根据本公开的另一方面,提供了一种可靠的用户服务***,所述***包括:传送组件,所述传送组件被配置成将经加密的第一散列值集合发送给数据提供方;接收组件,所述接收组件被配置成从所述数据提供方接收经加密的第二散列值集合和经两次加密的第一散列值集合;加密组件,所述加密组件使用第一密钥对接收到的经加密的第二散列值集合进行再次加密,以得到经两次加密的第二散列值集合;运算组件,所述运算组件求取所述经两次加密的第一散列值集合和所述经两次加密的第二散列值集合的交集,从而获知与所述数据提供方的一个或多个共有用户;以及服务组件,所述服务组件向所述一个或多个共有用户推荐或提供的服务。
在一实施例中,所述经加密的第一散列值集合是如下获得的:所述运算组件对包括一个或多个用户标识符的第一数据集应用散列函数以生成与所述第一数据集相对应的第一散列值集合;以及所述加密组件使用所述第一密钥对所述第一散列值集合进行加密,以获得经加密的第一散列值集合。
在另一实施例中,所述经加密的第二散列值集合是由所述数据提供方通过对第二数据集应用散列函数并使用第二密钥进行加密来生成的,其中所述第二数据集包括一个或多个用户标识符。
在又一实施例中,所述经两次加密的第一散列值集合是所述数据提供方使用所述第二密钥对经加密的第一散列值集合进行加密来得到的。
在又一实施例中,所述第二数据集还包括与用户相关联的除用户标识符之外的一个或多个第二属性,其中所述服务组件向所述一个或多个共有用户推荐或提供服务包括:所述传送组件向所述数据提供方请求所述第二数据集中的与所述一个或多个共有用户相关联的所述一个或多个第二属性;在所述接收组件接收到与所述一个或多个共有用户相关联的所述一个或多个第二属性之后,所述运算组件将这些第二属性中的每一者与所述第一数据集中相应的用户标识符进行关联;以及所述服务组件基于所述关联来为相应用户推荐或提供服务。
在又一实施例中,所述服务组件基于所述关联来向相应用户推荐更高水平的服务或者调整其现有服务。
在又一实施例中,所述一个或多个共有用户与所述第一数据集和所述第二数据集的交集相对应,所述接收组件还包括从所述数据提供方接收所述第二数据集,除了与所述第一数据集的所述交集以外。
在又一实施例中,所述服务组件向与所述其他用户标识符相对应的用户推荐或提供基础水平的服务。
在又一实施例中,所述运算组件通过所述第二数据集和所述第一数据集的比较来标识出类似用户,所述类似用户是这两个数据集中具有一个或多个相似或相同属性的用户,以及所述服务组件基于所述第一数据集中的用户所具有的服务来向所述第二数据集中的类似用户推荐或提供服务。
根据本公开的又一方面,提供了一种可靠的用户服务***,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:将经加密的第一散列值集合发送给数据提供方;从所述数据提供方接收经加密的第二散列值集合和经两次加密的第一散列值集合;使用第一密钥对接收到的经加密的第二散列值集合进行再次加密,以得到经两次加密的第二散列值集合;求取所述经两次加密的第一散列值集合和所述经两次加密的第二散列值集合的交集,从而获知与所述数据提供方的一个或多个共有用户;以及向所述一个或多个共有用户推荐或提供服务。
各方面一般包括如基本上在本文参照附图所描述并且如通过附图所解说的方法、装备、***、计算机程序产品和处理***。
前述内容已较宽泛地勾勒出根据本公开的示例的特征和技术优势以使下面的详细描述可以被更好地理解。附加的特征和优势将在此后描述。所公开的概念和具体示例可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。此类等效构造并不背离所附权利要求书的范围。本文所公开的概念的特性在其组织和操作方法两方面以及相关联的优势将因结合附图来考虑以下描述而被更好地理解。每一附图是出于解说和描述目的来提供的,且并不定义对权利要求的限定。
具体实施方式
以下结合附图1-2阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文中所描述的概念的仅有的配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。
附图中,图1是解说根据本公开的各方面的示例可靠的用户服务方法100的流程图,且图2是解说根据本公开的各方面的示例可靠的用户服务***200的示图。
如图1所示,在110处,方法100包括将经加密的第一散列值集合发送给数据提供方。例如,参考图2,在一实施例中,用户服务***200可以将经加密的第一散列值集合A”(hash(a1)x,hash(a2)x…)发送给数据提供方201。
在一实施例中,所述经加密的第一散列值集合是如下获得的:对包括一个或多个用户标识符的第一数据集应用散列函数以生成与所述第一数据集相对应的第一散列值集合;以及使用所述第一密钥对所述第一散列值集合进行加密,以获得经加密的第一散列值集合。
例如,参考图2,在该实施例中,用户服务***200可以生成包括用户标识符的第一数据集A(a1,a2…),其中a1、a2等表示用户标识符,诸如名称、身份证件号、电话号码、邮箱等等信息;用户服务***200随后可以对第一数据集A(a1,a2…)应用散列函数以生成与该第一数据集相对应的第一散列值集合A’(hash(a1),hash(a2)…),其中hash(a1)、hash(a2)等表示a1、a2等的散列值;此后,用户服务***200可以生成第一密钥x,并且使用第一密钥x来加密第一散列值集合A’(hash(a1),hash(a2)…),以生成经加密的第一散列值集合A”(hash(a1)x,hash(a2)x…),其中hash(a1)x,hash(a2)x等表示经加密的散列值。
在又一实施例中,所述经加密的第一散列值集合是预先计算得到并与第一密钥相关联地存储在存储器中的。
在120处,方法100包括从所述数据提供方接收经加密的第二散列值集合和经两次加密的第一散列值集合。
在一实施例中,所述经加密的第二散列值集合是由所述数据提供方通过对第二数据集应用散列函数并使用第二密钥进行加密来生成的,其中所述第二数据集包括一个或多个用户标识符。例如,参考图2,用户服务***200从数据提供方201接收经加密的第二散列值集合B”(hash(b1)y,hash(b2)y…),其中hash(b1)y,hash(b2)y等表示使用第二密钥y对数据集B的元素b1、b2等的散列值hash(b1)、hash(b2)进行加密之后得到的经加密的散列值,并且b1、b2等也表示用户标识符。
在一实施例中,所述经两次加密的第一散列值集合是所述数据提供方使用所述第二密钥对经加密的第一散列值集合进行加密来得到的。例如,参考图2,在一实施例中,用户服务***200可以从数据提供方201接收经两次加密的第一散列值集合A”’(hash(a1)xy,hash(a2)xy…),其中这一集合是服务提供方201使用第二密钥y对经加密的第一散列值集合A”(hash(a1)x,hash(a2)x…)进行再次加密得到的。
在130处,方法100包括使用第一密钥对接收到的经加密的第二散列值集合进行再次加密,以得到经两次加密的第二散列值集合。例如,参考图2,在一实施例中,用户服务***200可以使用第一密钥x对接收到的经加密的第二散列值集合B”(hash(b1)y,hash(b2)y…)进行再次加密,以得到经两次加密的第二散列值集合B”’(hash(b1)yx,hash(b2)yx…)。
在140处,方法100包括求取经两次加密的第一散列值集合和经两次加密的第二散列值集合的交集,从而获知与所述数据提供方的一个或多个共有用户。例如,参考图2,在一实施例中,用户服务***200可以求取经两次加密的第一散列值集合A”’(hash(a1)xy,hash(a2)xy…)与经两次加密的第二散列值集合B”’(hash(b1)yx,hash(b2)yx…)的交集U。如此,用户服务***200可以确定第一数据集A中的与所获得的交集U中的每一经两次加密的散列值相对应的用户标识符,从而获知与所述数据提供方的一个或多个共有用户。
这样,用户服务***200只能得到交集U并由此还原交集U的原始用户标识符,而并不知悉第二密钥y,从而不能对数据提供方201进行彩虹表攻击。同理,数据提供方201并不知悉第一密钥x,也无法对用户服务***200进行彩虹表攻击。这样,用户服务***200和数据提供方201的独有用户标识符只有自己知道,而不会泄露。
在150处,方法100包括向所述一个或多个共有用户推荐或提供服务。例如,参考图2,在一实施例中,用户服务***200可以向对应于U中的每一元素的用户推荐或提供服务,例如以更符合其需求。
在一实施例中,方法100还可包括向所述数据提供方请求所述第二数据集中的除了与所述第一数据集的交集以外的其他用户标识符。例如,参考图2,用户服务***200可以向数据提供方201请求第二数据集B中的除对应于交集U之外的那些用户标识符。在这一示例中,用户服务***200可以将对应于交集U的用户标识符发送给数据提供方,以使其能够确定除此之外的那些用户标识符。进一步根据该示例,在接收到这些另外的用户标识符之后,用户服务***200可以向与这些用户标识符相对应的用户推荐或提供基础水平的服务。例如,对于用户服务***200而言,这些用户将是尚未享有服务的新用户,并且因此用户服务***200可以向他们推荐或提供基础水平的服务。在一替换实施例中,用户服务***可以向这些新用户提供服务列表以供用户从中选择所需服务。
在另一实施例中,第二数据集还包括与用户相关联的除用户标识符之外的一个或多个第二属性。在各实施例中,向一个或多个共有用户推荐或提供服务包括:向所述数据提供方请求所述第二数据集中的与所述一个或多个共有用户相关联的所述一个或多个第二属性;在接收到与所述一个或多个共有用户相关联的所述一个或多个第二属性之后,将这些第二属性中的每一者与所述第一数据集中相应的用户标识符进行关联;以及基于所述关联来为相应用户推荐或提供服务。例如,参考图2,除用户标识符外,第二数据集B中还包括用户的各种其他特征属性,诸如性别、年龄、所使用的手机类型、资产、***额度、信用分数,等等。用户服务***200可以接收这些属性并与相应用户相关联,从而得到对该用户的更全面的刻画。然后,用户服务***200可以基于这一更全面刻画来向用户推荐或提供服务。
在一实施例中,用户服务***200可以通过将用户与其整个用户群中的用户相比较,以确定该用户与其原用户群中的哪些用户具有相似或相同的属性(即,该用户与这些用户可被认为是类似用户),以及基于类似用户所具有的服务来向该用户推荐或提供服务。
在另一实施例中,对于共有用户而言,在使用第二数据集对其属性进行补足之后,确定一共有用户在用户服务***的整个用户群中的类似用户,并基于类似用户所享有的服务来调整该共有用户的原有服务。例如,在一示例中,最初,用户服务***200中的用户1和用户2享有不同水平的服务,用户服务***200只具有用户1的标识符但具有用户2的标识符和年龄信息。在使用另一方的数据对用户1的信息进行补足之后,用户服务***200具有了用户1的年龄信息。用户服务***200随后通过比较发现用户1和用户2的年龄信息相似(例如,差值在预定阈值范围内)或相同,则可以向用户1提供与用户2相同水平的服务。
本领域技术人员可以明白,这仅是示例且有多种替换方案落入本公开的范围内。例如,在一实施例中,用户1的多个相关信息可以与用户群中的多组用户相比较,且与其具有最多相似或相同属性的用户组的服务可被提供给用户1。并且,不同属性可被不同地加权。例如,用户可具有年龄和收入水平属性,而后者在确定向其提供何种服务时具有更大权重。这样,具有相似或相同收入水平的用户优先于具有相似或相同年龄的用户被选择成类似用户以确定向该用户提供何种服务。
在又一实施例中,第一数据集中的元素包括除用户标识符以外的一个或多个第一属性,所述一个或多个第一属性和所述一个或多个第二属性相同或不同,并且其中所述关联包括:对于不同于所述第一属性的所述第二属性,将该第二属性作为新属性关联到所述第一数据集的相应用户标识符;以及对于与所述第一属性相同的所述第二属性,将该第二属性作为该第一属性的并列属性或替换属性来关联到所述第一数据集的相应用户标识符。例如,参考图2,第一数据集A包括除用户标识符以外的手机号码属性和性别属性、电信服务套餐属性;而第二数据集B包括除用户标识符以外的年龄属性和手机号码属性。在该示例中,关联可包括使得所述第一数据集中包括手机号码属性、性别属性、电信服务套餐属性以及年龄属性,其中来自这两个数据集的手机号码可以并列存在或者替换原手机号码(也可保留原手机号码而忽略新号码)。在该实施例中,用户服务***200还可以基于所述关联来向相应用户推荐更高水平的服务或者调整其现有服务。例如,用户服务***200可以在关联之后,向用户推荐或提供更高等级的电信服务。
图3是解说根据本公开的各方面的示例可靠的用户服务***300的组件框图。如图3所示,在一示例中,用户服务***300包括传送组件302、接收组件304、加密组件306、运算组件308、以及服务组件310。然而,可以明白,这些框仅是示例性的,这些组件可以彼此合并成单个组件或者拆分成更多组件,并且用户服务***300还可以包括其他组件。
在一实施例中,传送组件302被配置成将经加密的第一散列值集合发送给数据提供方;接收组件304被配置成从所述数据提供方接收经加密的第二散列值集合和经两次加密的第一散列值集合;加密组件306使用第一密钥对接收到的经加密的第二散列值集合进行再次加密,以得到经两次加密的第二散列值集合;运算组件308求取所述经两次加密的第一散列值集合和所述经两次加密的第二散列值集合的交集,从而获知与所述数据提供方的一个或多个共有用户;以及服务组件310向所述一个或多个共有用户推荐或提供服务。
在一实施例中,所述经加密的第一散列值集合是如下获得的:运算组件308对包括一个或多个用户标识符的第一数据集应用散列函数以生成与所述第一数据集相对应的第一散列值集合;以及加密组件306使用所述第一密钥对所述第一散列值集合进行加密,以获得经加密的第一散列值集合。
在另一实施例中,所述经加密的第二散列值集合是由所述数据提供方通过对第二数据集应用散列函数并使用第二密钥进行加密来生成的,其中所述第二数据集包括一个或多个用户标识符。
在又一实施例中,所述经两次加密的第一散列值集合是所述数据提供方使用所述第二密钥对经加密的第一散列值集合进行加密来得到的。
在又一实施例中,所述第二数据集还包括与用户相关联的除用户标识符之外的一个或多个第二属性,其中服务组件310向所述一个或多个共有用户推荐或提供服务包括:传送组件302向所述数据提供方请求所述第二数据集中的与所述一个或多个共有用户相关联的所述一个或多个第二属性;在接收组件304接收到与所述一个或多个共有用户相关联的所述一个或多个第二属性之后,运算组件308将这些第二属性中的每一者与所述第一数据集中相应的用户标识符进行关联;以及服务组件310基于所述关联来为相应用户推荐或提供服务。
在又一实施例中,服务组件310基于所述关联来向相应用户推荐更高水平的服务或者调整其现有服务。
在又一实施例中,所述一个或多个共有用户与所述第一数据集和所述第二数据集的交集相对应,接收组件304还包括从所述数据提供方接收所述第二数据集,除了与所述第一数据集的所述交集以外。
在又一实施例中,服务组件310向与所述其他用户标识符相对应的用户推荐或提供基础水平的服务。
在又一实施例中,运算组件308通过所述第二数据集和所述第一数据集的比较来标识出类似用户,所述类似用户是这两个数据集中具有一个或多个相似或相同属性的用户,以及服务组件310基于所述第一数据集中的用户所具有的服务来向所述第二数据集中的类似用户推荐或提供服务。
图4是解说根据本公开的各方面的另一示例可靠的用户服务***400的示意图。如图所示,用户服务***400包括处理器405和存储器410。存储器410存储有计算机可执行指令,这些指令可由处理器405执行来实现以上结合图1、2、3描述的方法和流程。
以上具体实施方式包括对附图的引用,附图形成具体实施方式的部分。附图通过说明来示出可实践的特定实施例。这些实施例在本文中也称为“示例”。此类示例可以包括除所示或所述的那些元件以外的元件。然而,还构想了包括所示或所述元件的示例。此外,还构想出的是使用所示或所述的那些元件的任何组合或排列的示例,或参照本文中示出或描述的特定示例(或其一个或多个方面),或参照本文中示出或描述的其他示例(或其一个或多个方面)。
在所附权利要求书中,术语“包括”和“包含”是开放式的,也就是说,在权利要求中除此类术语之后列举的那些元件之外的元件的***、设备、制品或过程仍被视为落在那项权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅被用作标记,并且不旨在表明对它们的对象的数字顺序。
另外,本说明书中所解说的各操作的次序是示例性的。在替换实施例中,各操作可以按与图1-2所示的不同次序执行,且各操作可以合并成单个操作或拆分成更多操作。
以上描述旨在是说明性的,而非限制性的。例如,可结合其他实施例来使用以上描述的示例(或者其一个或多个方面)。可诸如由本领域普通技术人员在审阅以上描述之后来使用其他实施例。摘要允许读者快速地确定本技术公开的性质。提交该摘要,并且理解该摘要将不用于解释或限制权利要求的范围或含义。此外,在以上具体实施方式中,各种特征可以共同成组以使本公开流畅。然而,权利要求可以不陈述本文中公开的每一特征,因为实施例可以表征所述特征的子集。此外,实施例可以包括比特定示例中公开的特征更少的特征。因此,所附权利要求书由此被结合到具体实施方式中,一项权利要求作为单独的实施例而独立存在。本文中公开的实施例的范围应当参照所附权利要求书以及此类权利要求所赋予权利的等价方案的完整范围来确定。