用于将用户数据匿名化的技术和架构转让专利

申请号 : CN201380081135.9

文献号 : CN105765600B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : W·C·德里武N·M·史密斯

申请人 : 英特尔公司

摘要 :

一种装置可以包括:接口;该接口用于在对应的多个实例处接收多个用户信息样本;处理器电路;以及熵多路复用器,该熵多路复用器用于在该处理器电路上执行以便基于伪随机数种子和伪随机数算法为该多个用户信息样本中的每个用户信息样本生成伪随机数。描述并要求保护其他实施例。

权利要求 :

1.一种用于将用户信息匿名化的装置,包括:

接口,所述接口用于在对应的多个实例处接收多个用户信息样本;

处理器电路;以及

熵多路复用器,所述熵多路复用器用于在所述处理器电路上执行以便基于伪随机数种子和伪随机数发生器算法为所述多个用户信息样本中的每个用户信息样本生成伪随机数以及生成包含所述伪随机数和用户信息样本的用户信息记录。

2.如权利要求1所述的装置,所述熵多路复用器用于在所述处理器电路上执行以便生成包括多个用户信息记录和相应的伪随机数的用户信息向量。

3.如权利要求1所述的装置,所述多个用户信息样本包括用户设备的位置信息。

4.如权利要求1所述的装置,所述熵多路复用器包括一个或多个伪随机数发生器(PRNG),每个伪随机数发生器用于在所述处理器电路上执行以便基于伪随机数种子生成一个或多个伪随机数的序列。

5.如权利要求1所述的装置,所述熵多路复用器包括包含多个级别的随机数发生器树,所述随机数发生器树用于在所述处理器电路上执行以便在所述多个级别中的每个级别生成一个或多个随机数,其中,第一随机数发生器在第一级别生成的第一随机数用于在低于所述第一级别的第二级别馈送第二随机数发生器,所述第二随机数发生器用于生成包括两个或更多个随机数的随机数序列。

6.如权利要求5所述的装置,

所述第一级别包括由相应多个第一随机数种子馈送的多个随机数发生器,所述第一随机数种子对应于在一系列第一实例收集的信息样本,在所述一系列第一实例中,连续的第一实例由第一间隔分离,以及所述第二级别包括由相应多个第二随机数种子馈送的多个随机数发生器,所述第二随机数种子对应于在一系列第二实例收集的信息样本,在所述一系列第二实例中,连续的第二实例由小于所述第一间隔的第二间隔分离。

7.如权利要求1所述的装置,所述熵多路复用器用于在所述处理器电路上执行以便生成规定用于生成所述伪随机数的算法的用户信息访问向量。

8.如权利要求1所述的装置,所述用户信息样本包括位置信息,所述熵多路复用器用于在所述处理器电路上执行以便为每个用户信息样本生成位置向量,所述位置向量规定位置维度集合和与所述每个用户信息样本相关联的伪随机数。

9.如权利要求2所述的装置,所述熵多路复用器用于在所述处理器电路上执行以便使用网络地址掩码匿名地发布所述用户信息向量。

10.如权利要求5所述的装置,所述熵多路复用器用于在所述处理器电路上执行以便在至少一个级别生成由数据种子馈送的数据PRNG,所述数据PRNG用于生成:第一伪随机数作为与所述数据种子相关联的用户信息的地址;以及第二伪随机数用于充当用于用户信息的加密密钥。

11.一种用于将用户信息随机化的计算机实现的方法,包括:在对应的多个实例处接收多个用户信息样本,处理器电路;

接收随机数种子和伪随机数发生器算法;

基于所述随机数种子和所述伪随机数发生器算法为所述多个用户信息样本中的每个用户信息样本生成伪随机数,以及生成包含所述伪随机数和用户信息样本的用户信息记录。

12.如权利要求11所述的计算机实现的方法,包括:生成包括多个用户信息记录的用户信息向量,每个用户信息记录包括用户信息样本和对应的伪随机数。

13.如权利要求12所述的计算机实现的方法,包括使用网络地址掩码匿名地发布所述用户信息向量。

14.如权利要求11所述的计算机实现的方法,所述用户信息样本包括位置信息,所述方法包括为每个用户信息样本生成位置向量,所述位置向量规定位置维度集合和与所述每个用户信息样本相关联的伪随机数。

15.如权利要求11所述的计算机实现的方法,包括基于伪随机数种子生成一个或多个伪随机数的序列。

16.如权利要求11所述的计算机实现的方法,包括生成规定用于生成所述伪随机数的算法的用户信息访问向量。

17.如权利要求16所述的计算机实现的方法,包括根据信任执行环境协议分布所述用户信息访问向量。

18.如权利要求14所述的计算机实现的方法,包括将所述位置维度集合划分为各自与对应的伪随机数相关联的两个或更多个位置子维度。

19.如权利要求11所述的计算机实现的方法,包括:

在第一级别生成第一随机数;

在低于所述第一级别的第二级别将所述随机数馈送到随机数发生器;以及生成包括两个或更多个随机数的随机数序列,所述两个或更多个随机数中的每个数用于播种对应的随机数序列。

20.一种包括指令的机器可读存储介质,在由计算设备执行时,所述指令致使所述计算设备执行如权利要求11至19中任一项所述的方法。

说明书 :

用于将用户数据匿名化的技术和架构

技术领域

[0001] 在此描述的各实施例总体上涉及将用户数据匿名化并且具体涉及存储和检索匿名化数据。
[0002] 背景
[0003] 在不同方之间(诸如在不同移动设备之间)共享的信息是现代计算中的持续增长的需求。在用户和半信任第三方之间针对“大数据分析”共享的信息也是增长的需求。频繁地,移动设备和第三方之间的通信通过在线服务提供商发生。例如,移动设备的用户可以向服务提供商提供位置信息以便例如从本地交通指南获益、跟踪孩子或帮助跟踪被盗设备。
[0004] 这些和其他活动经常需要供应允许其日常活动和信息源由第三方记住的用户数据,而不管用户是否知道这种第三方使用。例如,肆无忌惮的服务提供商可以采用所收集的数据来基于用户位置增加垃圾邮件。而且,犯罪分子可以实时地获得基于位置的数据以便在所有者不在家时冲击用户的家里。由于对用户数据的数据挖掘的这种漏洞增加的意识增加,对更好地保护与用户数据相关联的隐私性和安全性可能增加。尽管用户可能继续需要在线便捷服务,通过定制内容和低成本,同样保护隐私性和安全性的服务可以吸引更多的用户。
[0005] 针对这些和其他考虑因素,需要本发明的改进。
[0006] 附图简要描述
[0007] 图1描绘一个示例性架构。
[0008] 图2示出示例性架构的操作。
[0009] 图3描述熵多路复用的一个示例性实现方式。
[0010] 图4描绘另一个示例性架构。
[0011] 图5示出仍另一个示例性架构。
[0012] 图6描绘另一个示例性架构。
[0013] 图7A至图7B描绘根据一个实施例提供对匿名化用户信息的访问的场景中所涉及的各个操作。
[0014] 图8描绘示例性第一逻辑流。
[0015] 图9描绘示例性第二逻辑流。
[0016] 图10描绘示例性平台。
[0017] 图11示出一个系统实施例。
[0018] 详细描述
[0019] 本发明实施例提供用于将用户数据匿名化的改进技术和架构。在此公开的实施例可以由系统用于促成设备间数据共享、使得能够通过“大数据分析”进行便捷服务以及扩展消费者对其共享的个人信息进行控制。具体地,本发明实施例可以由服务用于使得能够进行选择性数据共享,其中,实现保障以便确保仅特定用户数据或信息可供用于经批准的分析。
[0020] 如在此所使用的,术语“用户数据”和“用户信息”同义地用于指代与用户设备相关联的可以被记录、提供给第三方和/或存储在一个或多个位置的信息。可以通过或不通过用户的活跃参与来收集用户数据。在没有用户参与的情况下自动收集的用户数据的示例包括可以从用户的移动设备生成的位置数据,其中,该位置数据可以包括指定用户设备的位置的坐标系。如所提及的,这种位置信息可以用于针对用户的利益由服务器提供商通过提供交通指南、跟踪儿童或定位被盗设备来协助用户。然而,未被匿名化的用户数据还可以用于用户不期望的目的。
[0021] 本发明实施例通过提供用于将不要求加密的用户数据匿名化的技术来促成对用户数据的更大用户控制。同时,本发明实施例促成对消费者有用并且可以由以快速的方式处置和操纵大量数据的服务提供商提供的数据分析。根据各个实施例,使用在此被称为“熵多路复用(EM)”的技术,用户信息可以在没有加密的情况下在服务提供商服务器或数据库上“隐藏在明处”。在某些实施例中,EM技术与 数字随机数发生器软件(Intel是英特尔公司的商标)和 高级加密标准新指令(AESNI)组合来使得能够针对私有信息通过选择性和时间有界的访问控制实现匿名存储。
[0022] 各个实施例具体地允许用户安全地向各个信任第三方或实体(诸如分析系统)提供对用户的个人活动记录的序列的选择性访问而不是用复杂密码术并且不提供对无界数据的访问。不同的访问级别可以被授予不同的实体而不是用复杂的密钥管理、复杂的服务器安全或甚至特定的用户账户。
[0023] 如以下详细描述的,在本发明实施例中,提供允许以在允许可以收集并存储用户数据的服务利用用户信息用于有限目的的同时提供匿名性的方式收集并存储用户信息的熵多路复用技术和架构。同时,熵多路复用允许用户通过公开用户信息的匿名地址授权并控制期望实体(诸如信任方)对用户信息的访问而不会损害用户数据对其他方的匿名性。这提供了以下优点:除中间使用之外,用户数据可以被匿名地存储以便稍后由用户或用户指定方使用而无需采用用户的自身资源用于信息。
[0024] 这可以通过使用伪随机数发生器和在有待被授权访问用户数据的各方之间分布随机数“种子”来实现。如以下详细描述的,在具体实施例中,可以通过时间有界对用户数据的访问控制级别进行控制,其中,随机数种子的层级被管理以便向在不同时间段收集的用户数据分配访问。如在此所使用的,取决于上下文,术语“随机数”可以指代真随机数或伪随机数,并且不存在显式指示时,可以指代或者真随机数或伪随机数。
[0025] 在各个实施例中,以重复的方式(诸如在有规律的样本间隔)收集用户信息,其中,用户信息与一个或多个用户设备的活动相关联。在某些实施例中,与用户的移动设备相关联的活动被收集并分布以供包括用户的一方或多方使用。熵多路复用组件可以位于用户设备中以便控制对如此创建的用户信息的访问。这可以通过将从随机数种子生成的随机数与所收集的每个用户信息样本相关联来实现,从而使得随机数用作用户信息的地址。
[0026] 图1描绘了根据本发明实施例用于管理用户信息的示例性架构100。在架构100中,由用户部署的用户设备102可以是移动设备,诸如移动电话、智能电话、平板计算机、膝上计算机或其他移动设备。实施例不限于此上下文。用户设备102包括在此被称为CPU 106的处理器单元、存储器108、无线电组件110和接口112。用户设备102另外包括熵多路复用器104,参照以下附图详细描述该熵多路复用器的操作。然而,简言之,熵多路复用器104可以通过生成用户信息记录来生成匿名化用户信息,其中,用户信息记录包括用户信息样本和构成用户信息样本的地址的伪随机数。用户信息样本可以构成以有规律的采样间隔收集的用户信息,诸如在用户设备102活动时所收集的用户设备102的位置信息。每个用户信息样本然后与伪随机数配对以便生成用户信息记录。如以下详细描述的,生成用户信息记录的伪随机数地址的方式允许将这些地址存储(发布)在由服务提供商所操作的数据库中而不会损害用户信息记录的匿名性。
[0027] 熵多路复用器104可包括各种硬件元素、软件元素、或二者的组合。硬件元素的示例可以包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元素的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间软件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。确定使用硬件元素和/或还是软件元素实现实施例可根据任何数量的因素而不同,诸如所期望的计算速率、功率等级、热容限、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束,如给定实现方式所期望的。
[0028] 在操作过程中,用户设备102可以生成与用户设备102相关联的用户信息(诸如位置信息)。该信息可以对用户实时地特别有用,但是可另外在稍后的实例对用户和其他方有用。在架构100中,与用户设备102相关联的用户信息可以被通信到一个或多个其他实体,诸如服务提供商114、熵多路复用存储器116、用户设备118和信任方120。如以下详细描述的,熵多路复用存储器116可以充当数据库来存储为多个不同用户收集的并且使用熵多路复用匿名化的多项用户信息。因此位于熵多路复用存储器116中的用户信息可以根据标识用户或某个用户活动的用户特定信息从所存储的用户信息解耦的方式存储。例如,各种熵多路复用技术可以在将该用户信息存储在熵多路复用存储器中时将与所收集的用户信息相关联的用户、时间和维度信息解耦。而且,采用EM来管理熵多路复用存储器116中的用户信息的每个用户可以控制传送到被授权访问匿名化用户信息的各方的信息的用途类型和范围。
[0029] 通过说明,在一个示例中,用户设备102可以用于收集随着时间跟踪用户设备102的位置的位置信息。这可以例如通过使用无线电组件110来促成,该无线电组件在某些实施例中可形成接口112的一部分。无线电组件可以包括根据已知技术(诸如全球定位系统(GPS)导航)操作的一个或多个无线电以便允许检测用户设备102的位置并将其通信到用户设备102。在某些情形下,该位置信息可以被收集为随着时间提供用户设备102的位置的位置轨迹。位置轨迹可以用于通知另一个或多个用户设备(诸如用户设备118)用户设备102的用户的最近通勤活动。当用户设备102记录与用户设备102相关联的位置轨迹时,该信息还可以被转发到用户设备118,该用户设备可以是家庭个人计算机。
[0030] 用户设备118可以采用程序来使用这个位置轨迹来预测用户将在下一天遇到的交通或建议在汽油价格最低的地方停车加油。为了在用户设备102和用户设备118之间通信位置轨迹,用户设备102可以使用在线“上下文服务”来存储位置信息,这可以由服务提供商114表示。借助于熵多路复用器104的操作,用户设备102的操作人员可以控制用户设备102所生成的用户位置信息,允许用户设备102和用户设备118私有地服务(也就是,服务提供商
114)来分析某些信息(诸如晚上购物活动)从而使得服务提供商可以后续产生对用户而言有价值的定制优惠券。同时,用户可以限制上下文服务对其他用户旅行活动的知识。
[0031] 转向熵多路复用器104的其他用途,用户可以选择性地与信任方120通信与用户设备102相关联的用户信息。信任方120可以表示用户设备102的用户可能希望向其通信行踪(诸如用户在通勤回家期间的位置)的朋友。此外,熵多路复用器104可以允许用户禁止通过用户设备102的位置跟踪的个人化但是仍然可以允许使得与用户设备102相关联的位置信息以匿名化方式可供用于第三方。例如,用户可能希望将匿名通信信息通信到市政当局以便更好地规划道路建设。这些示例示出熵多路复用器104可以用于向不同实体提供对用户的旅行活动的不同方面的访问的方式而不允许该实体以损害用户匿名性的方式挖掘用户信息。
[0032] 这种控制由熵多路复用器104所提供的访问的能力与通过要求标识的复杂访问控制系统管理对位置信息的外部访问的常规服务相比具有优点。在常规的服务场景中,第一用户设备和第二用户设备可以各自被配置有允许两者以无限制的方式创建或访问用户位置信息的协定凭证。然而,位置轨迹需要加密以便用户维护对用户信息的完整控制。使用传统的加密通过强制事前了解将如何分割并共享信息或者通过强制供应/交换许多解密密钥妨碍与不同的接收方共享不同的时间段。
[0033] 这还需要制作用户信息的多个加密拷贝或者要求用户的信任系统解密分组并将其转发到所选择的第三方。
[0034] 转向图1,架构100提供了通过使用熵多路复用(EM)管理用户信息的不同优点。在服务提供商114采用EM的一个场景中,用户设备102的用户可以授权对用户的所有信任设备(诸如用户设备118)的无限制的位置读/写访问。在以下附图中详细描述了管理信任设备对用户信息的访问的示例。本发明实施例的EM技术所提供的另一个特征是该用户信息可以根据未加密的方式存储,因为EM未被设计成伪装给定的用户信息项本身而是保护与用户信息相关联的用户/设备的身份并且将给定的项从其他用户信息项解耦。这准许服务提供商114对用户信息的容易访问,该服务提供商可以从用户信息受益。例如,服务提供商可以能够从对熵多路复用存储器116的最近提交确定存在位于给定的地方的人员,即使无法区分这些人员的身份或其旅行历史或未来位置。
[0035] 另一方面并且如将结合以下附图详细描述的,信任设备借助于EM被使得能够标识熵多路复用存储器116中的哪些用户信息记录属于用户设备102。在各个实施例中,这还可以在不使用加密的情况下实现。因此,这种信任设备/方能够重构用随机地址存储的多个用户信息记录之间的关系以便生成一致用户信息集。例如,如果用户设备102的用户希望允许信任方120访问用户设备102的位置信息的一部分,用户可以采用EM来与信任方120共享促成访问该部分位置信息的随机数种子。通过使用随机数种子,信任方可以查询数据库以便以最小的努力重构用户活动,诸如创建用户设备102的位置轨迹。在如以下详细描述的各个附加实施例中,用户可以限制信任方120的访问级别,从而使得仅时间有界窗口内部的位置历史是可访问的。
[0036] 图2描绘了根据各个实施例的熵多路复用器的操作的细节。如所说明的,熵多路复用器104被配置有随机数发生器202,该随机数发生器202被配置成用于生成有待用于熵多路复用的随机数(RN)。根据本发明实施例,熵多路复用器104所生成的RN以允许在没有加密的情况下匿名地存储数据的方式被用作有待与用户信息相关联的地址或索引。在各个实施例中,随机数发生器可以是数字随机数发生器,诸如 数字随机数发生器(DRNG)(Intel是英特尔公司的商标)或其他随机数发生器。实施例不限于此上下文。在一个实现方式中,熵多路复用器104所生成的随机数RN用于表示用户设备的位置类别,尽管RN可以被用作其他用户信息类别的地址。
[0037] 如图2所示,随机数发生器202可以生成被示出为R0到RN的被用作可以从其生成用于给定的用户信息类别的随机数系列的类别种子的一系列真随机数。在一个示例中,R0可以表示位置类别的随机数种子。在一个使用场景中,熵多路复用器104可以位于用户设备(诸如个人计算机(PC))中,可以将RN R0到RN中的一个或多个从该用户设备通信到包括移动设备的其他用户设备。当随机数R0被通信到用户移动设备时,例如,这个可以根据熵多路复用授权对读取和写入与用户移动设备相关联的位置信息的持续访问。例如,接收到随机数R0的任何用户设备可以采用该随机数来经由位于该用户设备上的伪随机数发生器(PRNG)生成伪随机数序列。
[0038] 如以下详细描述的,PRNG被用作用于将用户信息匿名化的数字熵的源。本发明实施例所提供的PRNG用作数字熵的源具有与仅基于例如真随机数发生器的系统相比的可扩展性和速度上的优点。PRNG还提供它们产生可重新创建的序列的优点。这允许种子的接收者重新创建与该种子相关联的数字以便通过使用EM找到以其他方式隐藏的信息。真随机数不具有种子并且以不可预测的和不可重复的方式产生。如以下讨论的,真随机数可以在本发明实施例中用于在类别树的最高水平生成第一种子。然而,在该水平下,PRNG用于为用户信息创建匿名化的和可恢复的地址,这无法通过使用真随机数实现。
[0039] 通常,与仅计算其下一个随机值而由PRNG所要求的计算相比,对TRNG中的熵源进行采样较慢。出于此原因,PRNG特征性地提供比TRNG好很多的性能并且是更可扩展的。
[0040] 在图2的说明中,接收到随机数R0的PRNG0可以位于用户移动设备或PC上并且可以用于生成(以及重新生成)构成每个位置记录的“地址”的伪随机数(PRN)序列。
[0041] 当用户移动设备在不同位置之间行进时,用户移动设备可以周期性地发布新的位置,该新的位置可以用于创建用户位置记录。为了以匿名方式存储这个位置信息,PRNGO可以周期性地生成如所示出的PRN集合P00到P0s。例如,PRN集合P00到P0s可以对于一系列实例每秒生成一次,其中,每个PRN耦合到包括一个或多个维度的相应的一组位置信息。因此,根据本公开的各个实施例,在一个示例中,在一秒间隔记录用户移动设备的位置信息并且后续作为一组位置记录发布,其中,位置记录地址由相应的PRN指定。
[0042] 应当注意,一组相关位置记录中的每一个记录中的PRN是基于由PRNG(诸如PRNG0)所实现的流程或算法生成的。每个后续PRN是通过算法对先前的PRN的运算生成的。为了使得信任方在PRNG0生成的序列中重新生成给定的PRN,除PRNG0所采用的实际算法之外,该方可以被提供有用于初始化PRNG0的种子以及被采取从而从PRNG0到达给定的PRN的步骤数。
[0043] 因此,在给定的PRN之后原始地生成的PRN可以由采用伪随机数发生器的任何方或实体使用给定的算法并且具有给定的PRN作为输入来重新生成。
[0044] 图3描绘了根据本公开的实施例使用EM来向熵多路复用存储器116发布位置信息的示例。架构300示出可以访问熵多路复用存储器116中的至少某些信息的一系列不同用户或实体。如所述,熵多路复用存储器可以由实体(诸如服务提供商114)管理或拥有,并且存储在其中的用户信息可以出于服务提供商114或第三方的利益而被使用,除可以通过与用户设备相关联的各个活动生成用户信息的用户的利益之外。然而,因为EM准许匿名地存储用户信息,除非被用户通知与用于生成位置信息地址的随机数种子有关的信息,实体被阻止将位置信息与给定的用户相关联或与存储在熵多路复用存储器116中的其他位置信息相关联。
[0045] 在所示示例中,用户302向熵多路复用存储器116发布一系列位置记录312、314、316。这可以在用户设备向服务提供商传输PRN和位置消息以便存储时发生。如所示,每个位置记录312、314、316包括PRN和位置。例如,位置记录312包括PRN AP0与位置A0,位置记录
314包括PRN AP1与位置A1,以此类推。另外,第二用户304发布第二组位置记录322、324、
326,其各自包括如所示的PRN和位置。熵多路复用存储器116可以表示一个或多个存储位置和/或存储设备,在其中存储与许多不同的用户相关联的许多位置记录。作为进一步的示例,图3描绘了分别包括PRN BP0与位置B0、PRN BP1与位置B1、PRN BP2与位置B2、PRN BP3与位置B3的一系列位置记录332、334、336、338。在熵多路复用存储器116中示出的每一组位置记录可以由此由一组多个位置记录组成,其中,PRN与彼此逻辑地相关。如图3所示,当被提供有用于生成AP0(诸如AP1、AP2)的种子AP并且提供用于生成伪随机数的算法的知识时,一方可以确定熵多路复用存储器116中的位置记录的地址。例如,给定用于生成AP0的步骤数的附加知识,信任方306可以重新生成该地址以便找到位置记录312。可以然后计算后续位置记录的地址(即,从PRN AP0(诸如AP1、AP2等等)导出的所得PRN)以便找到位置记录314、
316。发布位置记录的用户或者具有给定的伪随机数(诸如AP0)的这种知识的其他方可以由此访问与给定的伪随机数相关联的位置记录或用从给定的伪随机数导出的PRN生成的任何位置记录。
[0046] 返回图3,在一个场景中,可以假设用户302发布连续位置记录,其中,以未加密的方式在播种PRNG序列中的下一个PRN所指示的地址处存储给定的位置记录的位置向量。用户302的电话或PC可以是具有用于生成位置记录312、314、316的PRNG的种子的知识的唯一设备,从而使得用户电话和PC单独地能够重构可以表示用户302的移动的位置记录地址序列。其他方不会认识到位置记录312、314、316属于用户302。在一个场景中,用户302可以标识信任方的适当的种子,从而使得信任方306可以访问熵多路复用存储器116中的用户302的位置记录。如果信任方306采用与为位置记录312、314、316创建PRN相同的PRNG时,实现这一点。因此,除PRN种子之外,用户302还可以向信任第三方306提供PRNG信息。
[0047] 假设大量的其他人使用其自身的RN表示其自身的位置类别并且将其位置记录存储在熵多路复用存储器116中,其记录用于隐藏用户302的身份、用户位置记录以及这些记录的用户定序。例如,位置记录可以存储在l28比特数字段中的随机地址处,其使得它们不可由熵多路复用存储器116的服务提供商或不具有PRN种子的不信任方308校正。在某些实施例中,为了附加安全性,用户可以选择还采用源地址过滤来阻止位置跟踪服务知道源自用户302的IP地址的位置。
[0048] 现在转向图1来帮助总结图3的场景所提供的优点,可以看到架构100可以尤其对于服务提供商和单独的用户针对可扩展“大数据”应用有用,其中,多个用户采用熵多路复用存储器116来存储大量的用户信息。在其中成百上千或更多用户使用EM存储其用户信息的情况下,服务提供商114被提供有有关总体用户活动的有用信息的大数据库,诸如大量用户人群的位置信息。同时,在不从用户提供适当的PRN种子的情况下,服务提供商114无法对熵多路复用存储器116中的属于用户设备102的条目与任何其他人的条目进行区分。另外,服务提供商114可能不确定从用户设备102接收的多个用户信息记录的条目的顺序。而是,当向熵多路复用存储器116询问记录时,如果服务提供商遇到与用户设备102相关联的匿名化用户信息,服务提供商114可以能够辨别在由匿名化用户信息指定的位置处存在系统的某个用户而不是用户设备的身份。服务提供商114可能无法辨别用户设备102所经过的位置路径是什么。当用户设备102改变位置时,服务提供商114可以辨别操作移动设备的某个人已经改变位置但是不是该人/设备的身份。在没有与所存储的用户信息相关联的用户、时间和维度信息的情况下,可能没有实际的方法使得服务提供商114形成用户设备102的一致跟踪记录。服务提供商由此无法简单地基于读取存储在熵多路复用存储器116中的用户信息将当前位置联系到用户的过去或未来位置。
[0049] 尽管在某些实施例中EM用于存储用给定的PRN指定完整的一组位置坐标或维度的匿名化位置记录,在其他实施例中,EM采用一组维度子PRNG,其中,每个PRN可与单个维度相关联。这允许用户选择性地共享位置的总体维度,诸如XY对或单个维度诸如X。图4描绘了一个这种架构400,其中,基数PRNG0被安排成用于为两个维度X和Y中的每一个生成PRN种子。因此,P00种子被生成来指定位置的X维度的地址并且P01种子被生成来指定位置的Y维度的地址。P00种子被馈送到PRNG0x而P01种子被馈送到PRNG0y。这些伪随机数发生器各自可以然后在与针对记录连续位置信息的间隔相对应的间隔(诸如一秒间隔)生成一系列PRN。如所示,PRNG0x生成包括P0x1、P0x2等等的输出402,而PRNG0y生成包含P0y1、P0y2等等的输出404。
[0050] 在各个实施例中,在架构400中,伪随机数发生器PRNG0、PRNG0x和PRNG0y可以采用常见的PRNG算法。以此方式,信任方可以被授权访问不同的位置信息水平,这取决于信任方所接收到的PRN种子。例如,如果信任方接收到分别与PRNG0x和PRNG0y相关联的PRN种子,则信任方可以通过询问与给定的位置的X维度和Y维度相关联的单独位置记录来重构用户位置记录。在一个特定示例中,信任方从所提供的P00种子生成P0x1地址并且从所提供的P01种子生成P0y1地址。假设信任方还被提供有由PRNG PRNG0x和PRNGy所使用的PRNG算法,用户可以然后确定P0x1地址与P00种子相关,其方式与P0y1与P01种子相关的方式相同,即,关系涉及种子和地址之间的相同的随机数发生步骤数。因此,信任方可以确定存储在P0x1地址处的位置记录中的“X”位置信息与存储在P0y1地址处的位置记录中的“Y”位置信息相关,并且更具体地确定在各自的地址处包含在其中的X和Y维度表示用户设备在相同的时间点的不同空间坐标。这两个位置记录一起指定用户设备在给定的时间点的实际X-Y位置。
[0051] 另一方面,如果信任方仅被提供有P00,信任方可以能够重构包含存储在P0x1地址、P0x2地址、P0x3地址等等中的一系列X位置的“X-轨迹”。然而,信任方可能无法确定相关联的Y坐标以便与X轨迹的X坐标配对,因为P01种子未被提供。
[0052] 在各个附加实施例中,EM可以用于对用户信息的时间有界访问,意味着将访问限制到在时间窗内生成的用户信息。具体地,在此被称为“PRNG树”的架构可以用作PRN生成算法的基础,从而使得用户被提供有仅共享一部分位置信息(诸如小于所存储的位置信息的整个量的位置信息)的能力。在这些附加实施例中,时间有界用户信息可以按保持用户匿名性的方式存储在熵多路复用存储器中,如总体上在前述实施例中所描述的。图5描绘了被安排在具有各自具有一个或多个PRNG的一系列水平510、520、530、540的PRNG树结构的架构500。在上部类别水平510,一系列类别由从随机数发生器202发送到对应的伪随机数发生器PRNG0到PRNGn的真随机数种子R0到Rn定义。每个类别可表示隔离的上下文(诸如位置)。如所示,PRNG树结构是使得为给定的水平生成的随机数种子是操作性的以便在低于给定水平的水平播种一个或多个随机数序列。这可以导致生成其数字可以随着随机数生成扩展到更低水平而增加的多个并行的随机数序列,其中,从更高水平接收到的随机数序列的每个给定的随机数可以在下一低水平馈送分开的PRNG。每个分开的PRNG进而可以生成新的随机数序列,其中,每个随机数在更低的水平馈送相应的PRNG。
[0053] 在图5的示例中,随机数种子充当类别密钥,其中,在给定的类别密钥下,存在由类别密钥播种的PRNG,其在有规律的间隔产生新的PRN。在图5的示例中,PRNG0在每年的间隔生成PRN,诸如P00...P0y到在每年的水平520的对应的每年随机数发生器PRNG00...PRNG0y。每个每年PRN进而馈送位于下一低水平的另一个嵌入式PRNG。如所示,每年PRNG00生成序列P000、P001、...P00d,...其被馈送给位于每日水平530处对应的每日PRNG000、PRNG001、...PRNG000d。如针对一个每日PRNG所示出的,每日PRNG001生成序列P0010...P00lh,序列P0010...P00lh由对应的每小时PRNG P0010...P00lh在每小时水平540接收。尽管未示出,在各个实施例中,水平540以下的表示更短的时间间隔的进一步的水平是可能的。嵌入过程因此向下继续来覆盖越来越短的时间间隔,直到在最频繁的采样速率发出PRN,该采样速率可以是用于存储位置数据的期望的采样速率。
[0054] 使用图5的随机数树结构生成随机数的结果是用户可以向另一方授权对与伪随机数一起存储在熵多路复用存储器中的用户信息的不同部分的访问。如果实体被提供有R0,使用适当的随机数发生器算法,该实体可以每一秒一直重新创建在过去、现在、未来与R0的类别相关联的PRN,在本示例中,该类别是与位置记录相关联的伪随机数的类别。然而,如果实体仅拥有P001并且没有来自更高水平的PRN,实体可以仅在一天的每一秒生成PRN。通过分配不同的PRNG种子,用户由此限制对用户位置信息的访问,从而使得不同的人可以访问用户位置信息的特定时间有界部分。
[0055] 在架构500所提供的树结构中,在一个或多个水平,可以根据在该水平内提供的定时实体的数量部署多个PRNG。例如,在每天水平530上,可以在一年的每一天提供高达365个PRNG。例如,在每小时水平540上,可以在一天的每一个小时提供高达24个PRNG。然而,可以在每小时水平540上提供小于24个PRNG并且可以在每天水平530上提供少于365个PRNG。当信任方有待被授权访问时间有界用户信息时,用户设备可以接收该信息(诸如给定的一天中的给定的一个小时)并且将该时间有界用户信息与该小时的PRNG树的适当的PRN相关联。
[0056] 尽管在各个实施例中,图5的PRNG树结构的PRNG可以全部相同,也就是,可以全部采用相同的PRNG算法,在其他实施例中,不同的PRNG可以采用不同的PRNG算法。这可以为用户提供对用户信息的访问的另一个控制级别。为了通信多于一个PRNG算法,可以在源实体和消费实体之间使用同步。例如,如果在实体之间建立第一RN和RNG算法,通过采用旨在用于协商第二PRNG的PRNG,则可以通过将第二算法信息的名称张贴给用于存储用户信息记录的数据库而协商第二PRNG。可以包括哪一个PRNG算法、哪一个随机数种子以及将在何时部署新的PRNG的细节或者可以经由实体之间的带外通信对其进行通信。
[0057] 尽管采用EM来发布用户信息的前述实施例不要求加密来保护用户的身份或保护用户信息不受到不希望的使用(诸如位置跟踪),加密流程自身可以被集成到类似于以上公开的PRNG架构中。具体地,可以通过创建管理加密信息的匿名化的附加类型的PRNG来扩展EM系统的PRNG架构。
[0058] 在图6中示出了这种情况的一个实现方式。在图6的架构600中,示出了可以在一个示例中形成架构500的一部分的树结构架构的一部分。在此架构600中,定义“数据PRNG”,其可以被放置在PRNG树结构的任何节点处以便充当树结构层级中的数据载体和节点。如图6所示,RN种子602被馈送到水平610处的种子树PRNG 604,其可以表示树结构(诸如架构500)中的任何节点(PRNG)。种子树PRNG 604可以生成统一示出为PRN 608的一系列PRN,其中,每个PRN可以充当用户信息存储的地址并且可以在下方的水平(未示出)播种附加的PRNG,如参照图5所描述的。然而,可能令人期望的是加密与给定的PRN(诸如数据种子602)相关联的匿名化用户信息记录,以便添加另一级信息保护。架构600通过将种子树PRNG 604安排为当进行加密时生成数据种子来实现这一点。如图6所示,种子树PRNG 604可以生成被馈送到数据PRNG 612的数据种子606。
[0059] 为了说明的目的,在一个实现方式中,种子树PRNG 604可以对应于在一年的第一个月的用户位置信息。种子树PRNG 604所生成的第一个PRN(即,数据种子606)用于播种数据PRNG 612,而后续PRN 608用于进一步在水平620播种PRNG(未示出),其可以生成与每日信息记录相对应的PRN。数据PRNG 610具体地可以产生可以用于对信息流(诸如在对应于父PRNG的速率(即,种子树PRNG 604的每月速率)采样的位置向量)进行编码的值序列。如图6所示,数据PRNG 612可以生成包括用户信息记录的地址和加密密钥信息的多个输出。例如,数据PRNG 612可以生成充当存储在由数据种子606表示的节点处的用户信息的地址的PRN0。PRNG 612输出的PRN1可以充当加密密钥并且PRNG 612输出的PRN2可以充当与种子树PRNG 604相关联的数据的完整性密钥。在其中与数据种子606相关联的用户信息未被加密的情况,数据种子606可以充当如在架构500中的用户信息的直接地址。
[0060] 在某些实施例中,用于生成加密密钥的PRN可以用于实现密钥刷新策略,其中,预定量的密文生成字节触发生成新的加密密钥的新的PRN值。常规密钥刷新算法依赖于用于连接到通信端点以便商定新的密钥的复杂协议。密钥刷新是有用的,因为密文量与已知的密文攻击成功率相关。在每“X”个密钥使用字节之后授权密钥改变的策略容易应用并且对数据流具有很少或没有干扰(增加的时延)。
[0061] 为了进一步突出显示本发明实施例的EM所提供的操作原理和优点,图7A示出在使用根据本发明实施例的熵多路复用的场景时涉及的示例性操作。在所示出的使用场景中,用户(爱丽丝)使用EM流程存储位置信息并且后续向朋友(鲍勃)提供对包括随机数种子和用于生成表示所存储的位置信息的地址的随机数的算法的位置数据的访问。
[0062] 在操作702中,例如由位于爱丽丝的PC中的真随机数发生器生成主随机数。在操作704中,使用随机数发生器基于主随机数生成类别随机数。在操作706,从类别随机数生成维度特定的随机数(DRN)。维度特定的随机数可以是位置记录的随机数。
[0063] 在操作708中,在有规律的间隔(被称为采样速率间隔(诸如每分钟一次))收集与用户设备相关联的位置坐标(C)。可以例如从爱丽丝的移动设备收集位置坐标。
[0064] 在操作710中,生成随机数序列,其中,为每个位置样本生成随机数,即,为在采样速率间隔为用户设备收集的每一组位置坐标。随机数L由随机数发生器(RNG)(诸如伪随机数发生器)对先前创建的DRN的运算生成。这个操作每个样本速率间隔重复,从而使得后续随机数由RNG对先前的随机数的运算生成。
[0065] 在本发明实施例的不同变体中,给定位置的坐标(诸如X、Y和Z坐标)可以存储为单个位置维度或者可以分开地存储为多个位置维度。在操作712中,如果给定的位置坐标(C)的X-Y和Z坐标未被分开地存储,操作714发生。I
[0066] 在操作714中,创建位置访问向量(LAV)。这个实体用于为信任方或其他人供应允许信任方以有用的方式访问并相关由EM流程匿名化并存储的用户信息的信息。如所示,LAV包括随机数Lx、所存储的用户信息的采样速率的指示、所存储的用户信息的样本数的指示以及PRNG算法ID。随机数Lx充当用于生成用户位置信息记录的其他随机数地址的种子。样本数向信任方指示存储了与LAV有关的多少可能用户位置信息记录。PRNG算法ID标识有待由信任方用于重新生成与用户位置信息记录相关联的PRN地址的PRNG。相应地,为了重构用户位置信息记录的所有地址,信任方可以运行以Lx开始的所标识的PRNG持续与LAV中所标识的样本数相对应的操作数。样本速率向用户指示用户位置信息记录中的用户信息被收集地有多频繁,从而使得信任方可在恢复存储在用户位置信息记录中的实际位置数据(C)之后重新创建用户位置的精确跟踪。
[0067] 在操作716中,用户设备(爱丽丝)为每个位置坐标C和在操作714中生成的相关联的随机数L构建位置向量LV。例如,第一LV可以是(L1,C1),其中L1是在操作710中生成的随机数序列的第一个随机数,而C1是由用户设备采样的各个位置的第一个位置坐标。附加的位置向量是(L2,C2)、(L3、C3)、...(Ln,Cn)。
[0068] 在操作718中,用户(爱丽丝)匿名地发布位置向量LV。例如,LV可以被存储为由以上讨论的服务提供商所管理的熵多路复用存储器中的用户信息记录。可以使用网络地址掩码和增强隐私ID(EPID)协议发布LV,该协议可以是可以在发布LV时防止暴露爱丽丝的身份的常规的密码协议。
[0069] 在操作720中,爱丽丝标识被授权跟踪爱丽丝的位置的朋友鲍勃。为了为鲍勃提供对其位置信息的访问,在操作722中,爱丽丝向鲍勃发送在操作714中创建的LAV。在某些实现方式中,LAV可以被以安全的方式通过安全通道分布给鲍勃或其他信任方。例如,安全通道可以是信任执行环境通道,其中,信任执行环境的端点是信任执行环境(TEE)技术,诸如可管理性引擎、 融合安全引擎、 软件保护扩展、虚拟机环境、安全飞地(Apple是苹果公司的商标)以及 信任区(ARM股份公司的商标)。
[0070] 在操作724中,鲍勃基于在LAV中提供的Lx值和PRNG ID生成一系列“空”位置向量。空位置向量表示操作716的位置向量LV的随机数序列。空位置向量可以被表示为例如(L1,
0)、(L2,0)、(L3,0)等等。
[0071] 在操作706中,鲍勃然后采用空位置向量来向服务提供商的针对爱丽丝的存储其位置信息的数据库(熵多路复用存储器)查询。空位置向量为鲍勃提供爱丽丝已经授权访问的用户位置信息记录的地址。这允许鲍勃访问爱丽丝的移动设备已经为此场景存储的所有位置坐标C。在操作728中,鲍勃通过为每个随机数L填充位置坐标C来构建爱丽丝在操作716中所创建的LV。
[0072] 在操作730中,鲍勃生成从重新构建的LV勾勒爱丽丝的位置历史的位置轨迹。
[0073] 尽管在图7A中示出的操作序列示出了其中在创建位置向量信息LV之后与信任方共享LAV的示例,在其他实施例中,可以在创建LV之前构建并共享LAV。换言之,可以在记录并存储位置值之前创建用于记录的位置访问信息。这突出显示了本发明实施例的特征,其中,可以在其用作信息记录地址之前计算PRNG种子和相关的PRN。
[0074] 如果在操作712中X、Y和Z坐标被存储为分开的维度,执行复数运算732。
[0075] 现在转向图7B,在操作734中,为对应的位置坐标X、Y和Z创建三个位置访问向量LAVx、LAVy和LAVz。在操作736中,为对应的X、Y和Z维度创建三个位置向量LVx、LVy和LVz。后续操作然后在图7A中从操作718继续。然而,在这种情况下,爱丽丝具有为鲍勃提供三个位置访问向量LAVx、LAVy和LAVz中的一个、两个或三个向量的选项,取决于其位置的所有坐标是否将被暴露,如上所述。
[0076] 在图7A和图7B的使用场景中,非信任方或半信任方(包括存储匿名化用户位置信息记录的服务提供商)未被提供位置访问向量LAV。尽管服务提供商可以能够查看位置数据,即,匿名化用户位置信息记录中的位置坐标(C),而无需知道位置访问向量,服务器提供商无法确定各个位置坐标C1、C2、...C3对应于相同的用户设备。服务提供商既不能确定各个位置坐标的顺序也不能确定位置坐标的记录之间的间隔。
[0077] 包括在此的是表示用于执行所公开的架构的新颖性方面的示例方法的一组流程图。尽管出于解释简单的目的在此示出的例如出于流程图或流程图时形式的该一个或多个方法可以被示出并描述为一系列动作,应当理解并认识到这些方法不限于动作的顺序,因为某些动作可以根据不同的顺序和/或与在此示出并描述的那些并发地发生。例如,本领域技术人员将理解并认识到方法可替代性地被表示为一系列相关状态或事件,诸如在状态图中。而且,新颖的实现方式可不要求在方法中示出的全部动作。
[0078] 图8示出示例性第一逻辑流800。在框202,创建随机数种子以便生成随机数序列。随机数种子可以是基于伪随机数发生器算法生成一系列连续随机数的伪随机数。
[0079] 在框804,在多个采样实例处接收多个用户信息样本。用户信息样本可以是从移动设备生成的用户信息,诸如在有规律的间隔生成的移动设备的位置信息。
[0080] 在框806,生成包含用于所接收到的用户信息样本中的每个所接收到的用户信息样本的随机数的随机数序列。随机数基于伪随机数发生器算法和随机数种子。
[0081] 在框808,发布包含大量用户信息向量的匿名化用户信息,其中用户信息向量包含用户信息样本和由伪随机数发生器算法生成的随机数。
[0082] 在框810,生成用户信息访问向量,其包含随机数种子和用于生成随机数序列的伪随机数发生器算法。
[0083] 在框812,从信任方接收对用户信息记录的请求。在框814,用户信息访问向量被发送到信任方。
[0084] 图9示出示例性第二逻辑流900。在框902,创建顶部伪随机数种子以便生成包含多个定时水平的伪随机数(PRN)树结构。该多个定时水平可以是例如每年、每天、每小时时间表。
[0085] 在框904,通过在每个定时水平基于比该每个定时水平更高的水平用PRN播种一个或多个伪随机数发生器(PRNG)来创建PRN树。
[0086] 在框906,通过用在由每个给定的PRN指定的实例处收集的用户信息存储PRN树的每个PRN生成多个用户信息向量。
[0087] 在框908,以匿名方式发布信息向量。
[0088] 在框910,针对给定的时间窗接收对用户信息的请求。在框912,提供与时间窗以及生成PRN树的PRNG的PRNG ID相关联的来自PRN树的特定PRN。
[0089] 在框910,针对给定的时间窗接收对用户信息的请求。在框912,提供与时间窗以及生成PRN树的PRNG的PRNG ID相关联的来自PRN树的一个或多个PRN。
[0090] 总之,熵多路复用的本发明实施例在不需要加密的情况下促成用户信息的匿名化。在各个实现方式中,这允许单个用户信息“流”,诸如有待馈送给服务提供商(诸如位置跟踪服务)的位置跟踪信息,而服务提供商不能够容易地跟踪提交信息的用户。本发明实施例的EM流程的实践结果是随着提交者(用户)基增加并且随着跟踪数据的大小增加对未授权跟踪的抵制改善。在此公开的EM流程还允许提交者能够向用户选择的信任方授权对用户信息的访问。而且,可以授权对未来发生的以及对历史和当前状况的访问。
[0091] 各个EM实施例所提供的另一个优点是在用户设备硬件中实现随机数发生器(例如,DRNG)允许服务提供商(诸如定位服务)通过将内容索引卸载到提交者(用户)节点而扩展到非常大的大小,同时与仅在软件中实现PRNG相比仍然保留数据库的完整性。而且,在各个实施例中,使用用户硬件确保用户隐私是可实施的而无需通过采用基于用户设备的并入EPID和DRNG的技术信任服务提供商。
[0092] 本发明实施例的进一步的优点包括使用EPID更新用户信息(诸如位置跟踪信息)从而使得不在更新过程中标识用户的能力。
[0093] 而且,在本发明实施例中将DRNG用于生成用户信息的地址可以确保当发布给数据库时用户信息被充分地分散来保护隐私性。
[0094] 各个实施例所提供的进一步的优点是用户可以通过将适当的PRN种子和PRNG分布到指定的用户设备授权对其自身的访问(例如,对她的其他设备的访问)。这可以特别在其中用户位置信息将可用于包括那些不包含GPS或其他定位传感器的所有用户设备的场景中有用。
[0095] 另外,本发明实施例提供了以下特征中的一个或多个特征的组合:用于在服务器上存储个人信息记录序列而没有明确用户账户的系统,其中,存储单独记录的该系统可以是巨大的(2128或更大)稀疏矩阵;用于使用嵌入式伪随机数发生器层级和根种子将基于时间的随机索引序列计算为稀疏矩阵的方法;用于客户机系统在所述稀疏矩阵内的伪随机索引处在服务器上通信并存储单独记录的方法;用于将种子值传送到另一方以便生成与在服务器上存储的个人记录的时间有界的序列相对应的时间有界伪随机数序列的方法;用于将更低水平种子值传送到与更小的时间间隔以及因此更短的时间有界记录序列相对应的另一方的方法;用于从服务器检索与在以上描述的伪随机索引序列处存储的那些相对应的记录时间有界序列的方法;用于分解给定个人信息块的维度(例如,物理地址的各部分)的方法,其中,在由不同的根种子生成的索引处存储每个维度的记录;以及用于使用嵌入式伪随机数序列的部分使能加密和认证记录的方法。
[0096] 图10是示例性系统实施例的图示并且具体地图10是示出可以包括各个元素的系统1000的图示。例如,图10示出系统(平台)1000可以包括处理器/图形核(在此称为处理器1002)、芯片组/平台控制中枢(PCH)(在此称为芯片组1004)、输入/输出(I/O))设备1006、随机存取存储器(RAM)(诸如动态RAM(DRAM))1008、以及只读存储器(ROM)1010、显示电子设备
1020、显示背光灯1022、以及各种其他平台组件1914(例如,风扇、横流式鼓风机、散热器、DTM系统、冷却系统、壳体、通风等等)。系统1000还可以包括无线通信芯片1016和图形设备
1018、非易失性存储器端口(NVMP)1024和天线1026。然而,实施例不限于这些元素。
[0097] 如图10中所示,I/O设备1006、RAM 1008和ROM 1010通过芯片组1004耦合到处理器1002。芯片组1004可以经由总线1012耦合至处理器1002。相应地,总线101可以包括多条线路。
[0098] 处理器1002可以是包括一个或多个处理核的中央处理单元并且可以包括具有任何数量的处理器核的任何数量的处理器。处理器1002可以包括任何类型的处理单元,诸如例如CPU、多处理单元、精简指令集计算机(RISC)、具有流水线的处理器、复杂指令集计算机(CISC)、数字信号处理器(DSP)等等。在某些实施例中,处理器1002可以是位于分开的集成电路芯片上的多个分开的处理器。在某些实施例中,处理器1002可以是具有集成图形的处理器,而在其他实施例中,处理器1002可以是图形核。
[0099] 系统1000可以进一步包括被称为可管理性引擎(ME)的处理器并且可选地可以包括信任平台模块(TPM)1032和集成传感器中枢(ISH)1034。在某些实施例中,DRNG电路可以集成到ME 1030、TPM 1032、ISH 1034和处理器1002中的一个或多个中。在系统1000中,DRNG电路可以集成到ME 1030、TPM 1032、ISH 1034和处理器1002中的一个或多个中。
[0100] 图11示出适合用于实现如之前所讨论的各个实施例的示例性计算架构1100的实施例。如在本申请中所使用的,术语“系统”和“组件”旨在指代计算机相关实体、或者硬件、硬件与软件的组合、软件或执行中的软件,其示例由示例性计算架构1100提供。例如,组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、(光和/或磁存储介质的)多个存储设备驱动器、对象、可执行指令、执行线程、程序、和/或计算机。通过说明,在服务器上运行的应用和服务器两者可以是组件。一个或多个组件可以驻留在执行进程和/或线程中,并且组件可以位于计算机上和/或分布在两个或更多个计算机之间。另外,组件可以通过各种类型的通信介质通信地耦合到彼此以便协调操作。这种协调涉及信息的单向或双向交换。例如,这些组件可传达处于通过通信介质传达的信号的形式的信息。该信息可被实现为分配给各个信号线的信号。在这种分配中,每个消息是信号。然而,进一步的实施例可替代性地采用数据消息。这种数据消息可跨各个连接发送。示例性连接包括平行接口、串行接口和总线接口。
[0101] 在一个实施例中,计算架构1100可以包括或被实现为电子设备的一部分。电子设备的示例可包括但不限于移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、通讯设备、计算机、个人计算机(PC)、桌上计算机、膝上计算机、笔记本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器农场、网络服务器、网络服务器、互联网服务器、工作站、迷你型计算机、大型计算机、超级计算机、网络电器、网络电器、分布式计算系统、多处理器系统、基于处理器的系统、消费者电子设备、可编程消费者电子设备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。实施例不限于此上下文。
[0102] 计算架构1100可以包括各种常见计算元件,诸如一个或多个处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件等等。然而,实施例不限于由计算架构1100实现。
[0103] 如图11所示,计算架构1100包括处理单元1104、系统存储器1106和系统总线1108。处理单元1104可以是各种可商购处理器中的任一种。双微处理器和其他多处理器架构也可以用作处理单元1104。系统总线1108为系统组件提供接口,包括但不限于系统存储器1106至处理单元1104。系统总线1108可以是可以进一步互连到存储器总线(具有或不具有存储器控制器)、外围总线和局部总线的若干总线结构类型中的任一种。
[0104] 计算架构1100可以包括或实现各种制品。制品可以包括用于存储逻辑的计算机可读存储介质。各实施例还可以至少部分地被实现为包含在非瞬态计算机可读介质中或上的指令,这些指令可以由一个或多个处理器读取并执行以便使得能够执行在此描述的操作。计算机可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦或不可擦存储器、可写或可重写存储器等等。逻辑的示例可以包括使用任何合适类型的代码(诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等等)实现的可执行计算机程序指令。
[0105] 系统存储器1106可以包括各种类型的处于一个或多个更高速存储器单元形式的计算机可读存储器介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率RAM(DDRAM)、同步DDRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪存、聚合物存储器(诸如铁磁聚合物存储器、奥式存储器、相变或铁电存储器、硅氧化氮化氧化硅(SONOS)存储器)、磁卡或光卡或任何其他类型的适用于存储信息的存储介质。在图11中示出的所示实施例中,系统存储器1106可以包括非易失性存储器1110和/或易失性存储器1112。基本输入/输出系统(BIOS)可以存储在非易失性存储器1110中。
[0106] 计算机1102可以包括处于一个或多个更低速度存储器单元形式的各种类型的计算机可读存储介质,包括内部硬盘驱动器(HDD)1114、磁软盘驱动器(FDD)1116以便从或向可移除磁盘1118读取并写入以及光盘驱动器1120以便从或向可移除光盘1122(例如,CD-ROM或DVD)读取并写入。HDD 1114、FDD 1116和光盘驱动器1120可以分别通过HDD接口1124、FDD接口1126和光盘驱动器接口1128连接到系统总线1108。用于外部驱动器实现的HDD接口1124可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一者或两者。
[0107] 驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令的易失性和/或非易失性存储。例如,多个程序模块可以存储在驱动器和存储器单元1110、1112中,包括操作系统1130、一个或多个应用程序1132、其他程序模块1134和程序数据1136。
[0108] 用户可以通过一个或多个有线/无线输入设备(例如,键盘1138)和定点设备(诸如鼠标1140))向计算机1102输入命令和信息。其他输入设备可以包括麦克风、红外(IR)遥控器、控制杆、游戏板、触控笔、触摸屏等等。这些和其他输入设备经常通过耦合到系统总线1108的输入设备接口1142连接到处理单元1104但是可以通过其他接口(诸如并行端口、IEEE 1394串行端口、有线端口、USB端口、IR接口等等)连接。
[0109] 监视器1144或其他类型的显示设备也经由接口(诸如视频适配器1146)连接到系统总线1108。除监视器1144之外,计算机通常包括外围输出设备(诸如扬声器、打印机等等)。计算机1102可以使用经由有线和/或无线通信到一个或多个远程计算机(诸如远程计算机1148)的逻辑连接在联网环境中操作。远程计算机1148可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设施、对等设备或其他公用网络节点并且通常包括相对于计算机1102描述的许多或所有元素,尽管出于简明目的仅示出存储器/存储设备1150。所描绘的逻辑连接包括到局域网(LAN)1152和/或更大网络(例如,广域网(WAN)1154)的有线/无线连接。这种LAN和WAN联网环境常见于办公室和企业中并且促成企业范围的计算机网络(诸如内联网),所有这些网络可以连接到全球通信网络(例如,互联网)。
[0110] 当在LAN联网环境中使用时,计算机1102通过有线和/或无线通信网络接口或适配器1156连接到LAN 1152。适配器1156可以促成到LAN 1152的有线和/或无线通信,这还可以包括布置在其上用于与适配器1156的无线功能通信的无线接入点。
[0111] 当在WAN联网环境中使用时,计算机1102可以包括调制解调器1158或连接到WAN 1154上的通信服务器或具有用于通过WAN 1154(诸如通过互联网)建立通信的其他装置。可以位于内部或外部并且是有线和/或无线设备的调制解调器1158经由输入设备接口1142连接到系统总线1108。在联网环境中,相对于计算机1102描绘的程序模块或其各部分可以存储在远程存储器/存储设备1150中。将认识到所示出的网络连接是示例性的并且可以使用在计算机之间建立通信链路的其他装置。
[0112] 计算机1102可操作以便使用IEEE 802标准族与有线和无线设备或实体通信,诸如操作性地布置在与例如打印机、扫描仪、桌上和/或便携式计算机、个人数字助理(PDA)、通信卫星、与无线可检测标签相关联的任何设备或位置(例如,自助服务终端、报刊亭、休息室)以及电话的无线通信(例如,IEEE 802.11无线调制技术)中的无线设备。这至少包括Wi-Fi(或无线保真)、WiMax和蓝牙TM无线技术。因此,通信可以是与常规网络或简单地至少两个设备之间的自组织通信一样的预定义结构。Wi-Fi网络使用被称为IEEE 802.11x(a、b、g、n等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可以用于将计算机连接到彼此、连接到互联网以及连接到有线网络(其使用IEEE 802.3相关的媒体和功能)。
[0113] 以下示例涉及进一步的实施例。
[0114] 在示例1中,一种用于将用户信息匿名化的装置可以包括:接口,该接口用于在对应的多个实例处接收多个用户信息样本;处理器电路;以及熵多路复用器,该熵多路复用器用于在该处理器电路上执行以便基于伪随机数种子和伪随机数发生器算法为该多个用户信息样本中的每个用户信息样本生成伪随机数,并且生成包含该伪随机数和用户信息样本的用户信息记录。
[0115] 在示例2中,示例1所述的熵多路复用器可以用于在该处理器电路上执行以便生成包括多个用户信息记录和对应的伪随机数的用户信息向量。
[0116] 在示例3中,示例1至2中任一项所述的该多个用户信息样本可以包括用户设备的位置信息。
[0117] 在示例4中,示例1至3中任一项所述的熵多路复用器可以包括一个或多个伪随机数发生器(PRNG),其中,每个伪随机数发生器用于在该处理器电路上执行以便基于伪随机数种子生成一个或多个伪随机数的序列。
[0118] 在示例5中,示例1至4中任一项所述的熵多路复用器可以包括包含多个级别的随机数发生器树,其中,该随机数发生器树用于在该处理器电路上执行以便在该多个级别中的每个级别生成一个或多个随机数,其中,第一随机数发生器在第一级别生成的第一随机数用于在低于该第一级别的第二级别馈送第二随机数发生器,该第二随机数发生器用于生成包括两个或更多个随机数的随机数序列。
[0119] 在示例6中,示例1至5中任一项所述的第一级别可以包括由相应多个第一随机数种子馈送的多个随机数发生器,该第一随机数种子对应于在一系列第一实例收集的信息样本,在该一系列第一实例中,连续的第一实例由第一间隔分离,以及示例1至5中任一项所述的该第二级别可以包括由相应多个第二随机数种子馈送的多个随机数发生器,该第二随机数种子对应于在一系列第二实例收集的信息样本,在该一系列第二实例中,连续的第二实例由小于该第一间隔的第二间隔分离。
[0120] 在示例7中,示例1至6中任一项所述的熵多路复用器可以用于在该处理器电路上执行以便生成规定用于生成该伪随机数的算法的用户信息访问向量。
[0121] 在示例8中,示例1至7中任一项所述的用户信息样本可以包括位置信息,并且该熵多路复用器可以可选地用于在该处理器电路上执行以便为每个用户信息样本生成位置向量,该位置向量规定位置维度集合和与该每个用户信息样本相关联的伪随机数。
[0122] 在示例9中,示例1至8中任一项所述的熵多路复用器可以用于在该处理器电路上执行以便使用网络地址掩码匿名地发布该用户信息向量。
[0123] 在示例10中,示例1至9中任一项所述的熵多路复用器可以用于在该处理器电路上执行以便根据信任执行环境协议分布该用户信息访问向量。
[0124] 在示例11中,示例1至10中任一项所述的熵多路复用器可以用于在该处理器电路上执行以便将该位置维度集合划分为各自与对应的伪随机数相关联的两个或更多个位置子维度。
[0125] 在示例12中,示例1至11中任一项所述的熵多路复用器可以用于在该处理器电路上执行以便在至少一个级别生成由数据种子馈送的数据PRNG,该数据PRNG用于生成:第一伪随机数作为与该数据种子相关联的用户信息的地址;以及第二伪随机数用于充当用于用户信息的加密密钥。
[0126] 在示例13中,至少一种计算机可读存储介质包括指令,当该指令被执行时,该指令致使系统:响应于接收到多个用户信息样本基于伪随机数种子和伪随机数发生器算法为该多个用户信息样本中的每个用户信息样本生成伪随机数;以及生成包含该伪随机数和用户信息样本的用户信息记录。
[0127] 在示例14中,示例13所述的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统:生成包括多个用户信息记录的用户信息向量,每个用户信息记录包括用户信息样本和对应的伪随机数。
[0128] 在示例15中,示例13至14中任一项所述的该多个用户信息样本可以包括用户设备的位置信息。
[0129] 在示例16中,示例13至15中任一项所述的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统基于伪随机数种子生成一个或多个伪随机数的序列。
[0130] 在示例17中,示例13至16中任一项所述的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统:在多个级别中的每个级别生成一个或多个随机数,其中,第一随机数发生器在第一级别生成的第一随机数用于在低于该第一级别的第二级别馈送第二随机数发生器,该第二随机数发生器用于生成包括两个或更多个随机数的随机数序列。
[0131] 在示例18中,示例13至17中任一项的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统:将多个第一随机数种子馈送到该第一级别,该第一随机数种子对应于在一系列第一实例收集的信息样本,在该一系列第一实例中,连续的第一实例由第一间隔分离;以及将多个第二随机数种子馈送到该第二级别,该第二随机数种子对应于在一系列第二实例收集的信息样本,在该一系列第二实例中,连续的第二实例由小于该第一间隔的第二间隔分离。
[0132] 在示例19中,示例13至18中任一项所述的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统生成规定用于生成该伪随机数的算法的用户信息访问向量。
[0133] 在示例20中,示例13至19中任一项所述的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统生成每个用户信息样本的位置向量,该位置向量规定位置维度集合和与该每个用户信息样本相关联的伪随机数。
[0134] 在示例21中,示例13至20中任一项所述的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统将该位置维度集合划分为各自与对应的伪随机数相关联的两个或更多个位置子维度。
[0135] 在示例22中,示例13至21中任一项所述的至少一种计算机可读存储介质可以可选地包括指令,当该指令被执行时,该指令致使系统在至少一个级别生成由数据种子馈送的数据PRNG,该数据PRNG用于生成:第一伪随机数作为与该数据种子相关联的用户信息的地址;以及第二伪随机数用于充当用于用户信息的加密密钥。
[0136] 示例23是一种用于将用户信息随机化的计算机实现的方法,包括:在对应的多个实例处接收多个用户信息样本,处理器电路;接收随机数种子和伪随机数发生器算法;基于该伪随机数种子和伪随机数发生器算法为该多个用户信息样本中的每个用户信息样本生成伪随机数;以及生成包含该伪随机数和用户信息样本的用户信息记录。
[0137] 在示例24中,示例23所述的计算机实现的方法包括:生成包括多个用户信息记录的用户信息向量,每个用户信息记录包括用户信息样本和对应的伪随机数。
[0138] 在示例25中,示例23至24中任一项所述的计算机实现的方法可以包括使用网络地址掩码匿名地发布该用户信息向量。
[0139] 在示例26中,示例23至25中任一项所述的用户信息样本可以包括位置信息,并且示例23至25中任一项所述的计算机实现的方法可以可选地包括生成每个用户信息样本的位置向量,该位置向量规定位置维度集合和与该每个用户信息样本相关联的伪随机数。
[0140] 在示例27中,示例23至26中任一项所述的计算机实现的方法可以包括基于伪随机数种子生成一个或多个伪随机数的序列。
[0141] 在示例28中,示例23至27中任一项所述的计算机实现的方法可以包括生成规定用于生成该伪随机数的算法的用户信息访问向量。
[0142] 在示例29中,示例23至28中任一项所述的计算机实现的方法可以包括根据信任执行环境协议分布该用户信息访问向量。
[0143] 在示例30中,示例23至29中任一项所述的计算机实现的方法可以包括将该位置维度集合划分为各自与对应的伪随机数相关联的两个或更多个位置子维度。
[0144] 在示例31中,示例23至30中任一项所述的计算机实现的方法可以包括:在第一级别生成第一随机数;在低于该第一级别的第二级别将该随机数馈送到随机数发生器;以及生成包括两个或更多个随机数的随机数序列,该两个或更多个随机数中的每个数用于播种对应的随机数序列。
[0145] 在示例32中,示例23至31中任一项所述的计算机实现的方法可以包括:将多个第一随机数种子馈送到该第一级别上的多个第一随机数发生器,该第一随机数种子对应于在一系列第一实例收集的信息样本,在该一系列第一实例中,连续的第一实例由第一间隔分离;以及将多个第二随机数种子馈送到该第二级别上的多个第二随机数发生器,该第二随机数种子对应于在一系列第二实例收集的信息样本,在该一系列第二实例中,连续的第二实例由小于该第一间隔的第二间隔分离。
[0146] 在示例33中,示例23至32中任一项所述的计算机实现的方法可包括在至少一个级别生成由数据种子馈送的数据PRNG,该数据PRNG用于生成:第一伪随机数作为与该数据种子相关联的用户信息的地址;以及第二伪随机数用于充当用于用户信息的加密密钥。
[0147] 示例34是一种用于将用户数据匿名化的装置,该装置包括用于以下各项的装置:在对应的多个实例处接收多个用户信息样本,处理器电路;接收随机数种子和伪随机数发生器算法;基于该伪随机数种子和伪随机数发生器算法为该多个用户信息样本中的每个用户信息样本生成伪随机数;以及生成包含该伪随机数和用户信息样本的用户信息记录。
[0148] 在示例35中,示例34所述的装置可以可选地包括用于生成包括多个用户信息记录的用户信息向量的装置,每个用户信息记录包括用户信息样本和对应的伪随机数。
[0149] 在示例36中,示例34至35中任一项所述的装置可以包括用于使用网络地址掩码匿名地发布该用户信息向量的装置。
[0150] 在示例37中,示例34至36中任一项所述的用户信息样本可以包括位置信息,该装置包括用于为每个用户信息样本生成位置向量的装置,该位置向量规定位置维度集合和与该每个用户信息样本相关联的伪随机数。
[0151] 在示例38中,示例34至37中任一项所述的装置可以包括用于基于伪随机数种子生成一个或多个伪随机数的序列的装置。
[0152] 在示例39中,示例34至38中任一项所述的装置可以包括用于生成规定用于生成该伪随机数的算法的用户信息访问向量的装置。
[0153] 在示例40中,示例34至39中任一项所述的装置可以包括用于根据信任执行环境协议分布该用户信息访问向量的装置。
[0154] 在示例41中,示例34至40中任一项所述的装置可以包括用于将该位置维度集合划分为各自与对应的伪随机数相关联的两个或更多个位置子维度的装置。
[0155] 在示例42中,示例34至41中任一项所述的装置可以包括用于以下各项的装置:在第一级别生成第一随机数;在低于该第一级别的第二级别将该随机数馈送到随机数发生器;以及生成包括两个或更多个随机数的随机数序列,该两个或更多个随机数中的每个数用于播种对应的随机数序列。
[0156] 在示例43中,示例34至42中任一项所述的装置可以包括用于以下各项的装置:将多个第一随机数种子馈送到该第一级别上的多个第一随机数发生器,该第一随机数种子对应于在一系列第一实例收集的信息样本,在该一系列第一实例中,连续的第一实例由第一间隔分离;以及将多个第二随机数种子馈送到该第二级别上的多个第二随机数发生器,该第二随机数种子对应于在一系列第二实例收集的信息样本,在该一系列第二实例中,连续的第二实例由小于该第一间隔的第二间隔分离。
[0157] 在示例44中,示例34至43中任一项所述的装置可以包括用于以下各项的装置:在至少一个级别生成由数据种子馈送的数据PRNG,该数据PRNG用于生成:第一伪随机数作为与该数据种子相关联的用户信息的地址;以及第二伪随机数用于充当用于用户信息的加密密钥。
[0158] 可以使用各种硬件元素、软件元素、或二者的组合实现先前所描述的这些实施例。硬件元素的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元素的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定使用硬件元素和/或还是软件元素实现实施例可根据任何数量的因素而不同,诸如所期望的计算速率、功率等级、热容限、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束,如给定实现方式所期望的。
[0159] 在某些实施例中,元素被定义为执行一个或多个操作的特定结构。然而,可以认识到被定义为执行特定功能的特定结构的任何元素可以被表达为用于执行规定的功能而不叙述支持其的结构、材料或动作的装置或步骤,并且这种装置或步骤旨在覆盖在详细描述中描述的相应的结构、材料或动作及其等效物。实施例不限于此上下文。
[0160] 可使用表述“一个实施例”或“实施例”及其衍生物描述某些实施例。这些术语意指结合该实施例所描述的特定特征、结构或特性包括在至少一个实施例中。在本说明书中,短语“在一个实施例中”在各种地方的出现并非必须全部指代相同的实施例。另外,可使用表述“耦合”和“连接”及其衍生物描述某些实施例。这些术语无需旨在作为彼此的同义词。例如,可使用术语“连接”和/或“耦合”描述某些实施例以便指示两个或更多个元件与彼此直接物理接触或电接触。然而,术语“耦合”还可意指两个或更多个元件可不彼此直接接触但是可仍彼此合作或交互。
[0161] 强调的是提供本公开的摘要以便允许读者快速地确定本技术公开的性质。与本理解一起提交的是其将不用于解释或限制权利要求书的范围或含义。附加地,在前述详细描述中,可看到为了使本公开流化的目的,各种特征可被一起分组在单个实施例中。本公开的方法不应被解释为反映以下意图:所要求保护的实施例要求比在每条权利要求中明确陈述的特征更多的特征。而是,如以下权利要求书所反映的,发明主题在于比单个公开实施例的全部特征更少。因此,以下权利要求书在此被结合到详细描述中,其中,每条权利要求以其自身作为单独的实施例。在所附权利要求书中,术语“包括(including)”和“其中(in which)”分别用作对应术语“包括(comprising)”和“其中(wherein)”的简明英语等效物。而且,术语“第一”、“第二”和“第三”等等仅用作标签并且不旨在对其对象强加数字要求。
[0162] 以上已经描述的内容包括本公开架构的示例。当然,不可能描述组件和/或方法的每一个可想到的组合,但是本领域技术人员可以意识到许多进一步的组合和置换是可能的。相应地,新颖架构旨在涵盖落入所附权利要求书的精神和范围内的所有这种替代、修改和变化。