用于保护并控制对数据进行访问的技术的制作方法

文档序号:11333879阅读:315来源:国知局
用于保护并控制对数据进行访问的技术的制造方法与工艺



背景技术:

已经广泛采用了以可由多个人员访问的方式来安全地存储数据同时还控制访问范围和类型的各种方法。这类方法通常包括使用密码、指纹、基于时间的安全密钥和/或其他形式的安全令牌来控制可用的访问范围和/或类型以及向谁授权所述访问。然而,这类方法通常需要某种形式的集中式管理来提供这种控制,包括对与向每个用户和/或用户组授权的访问范围和/或类型有关的数据进行维护。换言之,这类方法通常需要为每个用户和/或用户组建立与关于访问的这种信息相关联的账户。

除了建立和维持这种集中式控制所需的成本、复杂性和监管之外,每个用户和/或用户组的关于访问的这种信息的集中式存储库的存在的事实附加地为为了恶意目的而设法获取这种信息的人创造了目标。这通常导致有效地保护这种集中式存储库免于偷窃所述信息的恶意行为需要大量附加支出和进一步监管。

附图说明

图1展示了数据存储系统的示例实施例。

图2展示了用于准备数据以便进行存储的计算设备的示例实施例。

图3a、图3b、图3c、图3d和图3e一起展示了准备数据以便由服务器以可通过网络安全地访问的方式来进行存储的示例实施例。

图4展示了用于以可通过网络安全地访问的方式来存储数据的服务器的示例实施例。

图5a、图5b、图5c和图5d一起展示了准备数据以便进行存储的另一个示例实施例。

图6展示了用于通过网络安全地访问数据的计算设备的示例实施例。

图7、图8和图9各自展示了根据实施例的逻辑流程。

图10展示了根据实施例的处理架构。

具体实施方式

各个实施例总体上涉及用于以避免显著的集中式管理努力和成本的分散式方式来保护和控制对数据的访问范围和类型的技术。数据被分成多个部分,其中,每个部分与层次伪随机数(prn)树的叶节点相关联,所述prn是以与树的顶部节点相关联的种子值开始而伪随机地生成的。从prn树顶部的顶部节点起并向朝着prn树的底部的叶节点向下前进,从与每个紧接着前一个更高层的分支节点相关联的(多个)prn中伪随机地生成与树的每个更低层的分支节点相关联的prn,直到生成与叶节点相关联的prn。可以通过以下方式来限制向任何一个用户或用户组授权的对数据的访问范围:除了与prn树的顶部分支节点相关联的prn之外,提供与prn树的叶节点或分支节点相关联的prn。可以通过以下方式来限制向任何一个用户或用户组授权的对数据的访问类型:采用具有完全相同的分支结构的并行树,其中,一个树与授权读取访问相关联,并且另一个树与授权附加访问(包括修改数据的许可)相关联。

种子值本身可以伪随机地生成或者可以使用数字随机数发生器来生成,所述数字随机数发生器采用量子效应和/或其他技术来生成具有充分随机性程度的种子值以便避免通常与选择可能由其他人基于对个人的了解以某种方式猜到的种子值的所述人员相关联的安全风险。可以将种子的位宽和贯穿这种prn树从所述种子中导出的prn的位宽选择为足够大以便限定每个prn的可能数值范围,所述范围足够大以便使对稀疏编址方案的创建成为可能,在所述方案中,猜到基于叶节点的prn的地址变得极其困难。通过示例的方式,可以将种子和从其中导出的所有prn的宽度选择为256位以便限定能够通过所述量的位来表示的许多可能值,所述可能值可能是与组成地球的沙粒或土粒的量类似的数量级,或者宇宙中天体中的所有天体的量。因此,甚至在最高执行形式的计算机技术的帮助下,也有可能需要非常大数量的年份(否则,十年)来完成对这种prn的可能值中的所有可能值进行迭代以及检查在基于那些prn的地址处可能存在什么数据。

在将种子和从其中导出的prn的位宽选择为如此大的情况下,并且在也至少伪随机地生成种子的情况下,在用作大量个人和/或个人组(例如,公司或政府实体)当中的地址的基础的prn之间的冲突可能性在统计上极小。因此,组成人员组的每个人或实体可以生成prn,将使可能存储数据部分的地址基于所述prn,而无需在其当中进行协调并且具有这样一种信心:以此方式来生成的地址在统计上高度不可能正由另一个人员或实体使用。换句话说,对足够大位宽的使用可以使多个人员和/或实体能够对地址进行完全分散式和无协调生成并且将所述地址用于存储数据部分,而很少关心或不关心两个或更多个人员或实体竞争同一个地址的可能性。

可以向由一个或多个服务器维持的一个或多个存储设备内的存储位置分配以此方式生成的地址,并且可以在网络(比如,互联网)上使用那些地址来进行访问。每个这种存储位置可以具有很大或很小的大小和/或可以基于存储于其中的数据部分的大小而具有可变大小。

一个或多个这种服务器可能不存储或以其他方式不可访问种子值或对向所述一个或多个服务器提供数据以便如此存储的人员或实体中的任何人员或实体采用什么随机数生成和/或伪随机数生成算法的指示。相反,每个这种人员或实体所采用的计算设备可以采用他们选择的伪随机生成算法和种子值来导出用于存储那些数据部分的地址所基于的prn。然后,那些计算设备可以向所述一个或多个服务器传输数据部分和相关联地址以便进行存储。在接收到这种数据部分和相关联地址时,所述一个或多个服务器可以将每个数据部分存储在所述一个或多个存储设备内的单独存储位置中并且可以向那些位置分配所接收到的基于prn的地址,从而使得所接收到的那些地址随后可用于访问那些存储位置内的那些部分。

prn树的顶部分支节点和种子值可以与被分成多个部分的单条数据相关联,从而使得向下到达与那些部分相关联的叶节点的分支可以在prn树的顶部立即开始。可替代地,prn树的顶部和种子值可以与关联于人员、人员组、公司实体、政府实体等的多条数据的集合相关联。因此,在树顶部的顶部分支节点处,每个分支可以与单独的一条数据和/或单独的数据种类(比如,单独的文档、更大人员组中的单独人员或部门的工作、单独的日历和财年、单独的项目等)相关联。基于组织数据的无论什么方式都可以视为是期望的,可以组织或在prn树的一个或多个最顶部分支层当中分布多条数据的方法可以是完全任意的。

数据可以是各种类型的数据中的任何数据,包括但不限于,记录的或计算机生成的音频、记录的或计算机生成的视频、静止图像、数值、文本、生物特征数据、个人可识别信息(例如,姓名、街道地址、电话号码等)、病历、财务信息、通信记录、业务记录、政府记录、3d模型和/或蓝图。可以任意选择将数据分成所述多个部分的粒度,从而使得与prn树的叶节点相关联的每个数据部分可以是字母、字、短语、句子、段落、章节、数值、列、行、表格、计算结果、曲线图、图形、图像、图像的一部分、图像系列、音位、音节、音频的时间片、索引的条目或条目范围和/或任何其他形式的对数据的任意限定分派。

可以确定对一条数据的部分或对多条数据的访问范围,按照所述范围向寻求访问的人员的计算设备提供prn树中的prn层级中的prn。通过示例的方式,在一条数据是具有多个段落的文档的情况下并且在每个段落与层级prn树的叶节点相关联的情况下,可以通过提供所述prn树中与所述单个段落相关联的叶节点的prn来授权对所述文档的单个段落的访问。在种子和prn采用足够大的位宽的情况下,对与所述单个段落相关联的所述prn的提供将不会使试图获得对所述文档的更多内容的访问而猜到或导出prn树中的更高层prn中的任何prn或其他叶节点的prn中的任何prn成为可能。继续授权对文档的访问的此示例,如果稍后应当将向同一人员授权对所述文档的更多内容的访问视为是适当的,则可以通过向所述人员提供与prn树中的分支节点相关联的更高层prn来实现这样做,与限定了所述人员的适当访问范围的多个段落相关联的多个叶节点从所述分支节点下垂。

在一些实施例中,对具有大到足以使生成稀疏编址方案成为可能的位宽的prn的使用可能本身被视为足以由于在这种巨大的可能地址范围中搜素数据的禁止性性质而提供相当高安全程度以免对数据进行非授权访问。在这种实施例中,与prn树的叶节点中的每个叶节点相关联并且从与分支节点相关联的prn中导出的prn可以直接用作可以在其处访问与那些叶节点相关联的数据部分的地址。然而,在其他实施例中,仍进一步安全措施可能被视为是期望的,包括对与这种prn树的叶节点中的每个叶节点相对应的数据部分进行加密。在这种其他实施例中,可以使用与prn树的叶节点相关联的prn用作种子来伪随机地生成仍其他prn,所述仍其他prn中的一个prn可以用作地址,所述仍其他prn中的另一个prn可以用作加密密钥和/或所述仍其他prn中的仍另一个prn可以用作完整性验证密钥。因此,返回到向人员授权对文档的单个段落的访问的之前示例,可以向所述人员的计算设备提供与所述段落相关联的叶节点的prn,并且可以从所述prn中伪随机地生成充当将在其处访问所述段落的地址和/或对所述段落进行解密所需的加密密钥的其他prn。

可替代地或除了使用加密来进一步保护数据部分之外,可以通过使用共享相同分支结构的并行prn树(在并行prn树的分支与叶节点之间具有一一对应关系的程度上)来维护对所授权的对一个或多个数据部分的访问类型的控制。可以通过提供仅来自与读取访问相关联的prn树之一的prn来授权对所存储的数据部分的只读访问。可以通过提供来自与读取访问相关联的prn树和与进行修改的能力相关联的并行prn树两者的相应分支和/或叶节点的prn来授权包括写入和/或以其他方式修改所存储的数据部分的能力的访问。如将更详细地解释的,服务器可以基于来自计算设备的对所述一个或多个部分进行访问的请求是否包括仅来自与读取访问相关联的prn树的prn或从两种prn树中导出的地址来允许或不允许对一个或多个数据部分进行修改的能力。

在总体上参照本文中所使用的符号和术语的情况下,可以就在计算机或计算机网络上执行的程序过程而言呈现随后的具体实施方式的部分。这些过程描述和表示由本领域的技术人员用于将其工作的实质最有效地传送给本领域的其他技术人员。过程在此(并且通常)被认为是导致期望结果的自相一致的操作序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量采取能够被存储、传递、组合、比较并且以其他方式操纵的电、磁或光信号的形式。主要出于常见用法的原因,证明有时将这些信号称为位、值、元素、符号、字符、术语、数字等是方便的。然而,应当指出的是,所有这些术语和类似术语将与适当的物理量相关联并且仅是应用于那些量的方便标签。

进一步地,经常在通常与由人类操作者执行的智力操作相关联的术语(比如,添加或比较)中提及这些操纵。然而,在大部分情况下,在本文中所描述的形成一个或多个实施例的一部分的操作的任何操作中,人类操作者的任何这种能力都不是需要的或期望的。相反,这些操作是机器操作。用于执行各个实施例的操作的有用机器包括如由存储在其中根据本文的教导编写的计算机程序而选择性地激活或配置通用数字计算机和/或包括针对所需目的而专门构造的装置。各个实施例还涉及用于执行这些操作的装置或系统。这些装置可以是针对所需目的而专门构造的或者可以包括通用计算机。各种这些机器的所需结构将从所给出的描述中显现。

现在参照附图,其中,贯穿附图,相同的参考号用来指代相同的元件。在以下描述中,为了解释的目的,阐述了许多具体的细节以便提供对其的透彻理解。然而,可能明显的是,可以在没有这些具体细节的情况下实践新颖的实施例。在其他实例中,以框图的形式示出了众所周知的结构和设备,以便促进对其的描述。本发明将涵盖处于权利要求书的范围内的所有修改、等效物和替代方案。

图1展示了数据存储系统1000的实施例的框图,所述数据存储系统结合了计算设备100、服务器400、(多个)存储设备500和计算设备800中的一项或多项。这些设备100、400、500和800中的每个设备可以是各种类型的计算设备中的任何计算设备,包括但不限于:台式计算机系统、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持式个人数据助理、智能电话、智能眼镜、智能腕表、数码相机、结合到衣服中的身体穿戴式计算设备、整合到车辆(例如,汽车、自行车、轮椅等)中的计算设备、服务器、服务器集群、服务器场等。

在数据存储系统1000中,计算设备100可以向服务器400传输可能已经使用计算设备100来编写的数据以便由服务器400存储在可由服务器400访问并控制的(多个)存储设备500中的一个或多个存储设备内。在计算设备100内,可以将数据分成多个部分,所述多个部分中的每个部分旨在可由服务器400在基于由可由计算设备100生成的prn组成的prn树的叶节点处的伪随机数(prn)的地址处访问。然后,计算设备100可以向服务器400传输所述部分和基于叶节点的prn的地址以便实现使用服务器400将所述部分存储在那些地址处。在这样做时,可以采用各种技术来阻止进行监听以便确定地址与部分的关联性的动作。在由服务器400将数据如此存储在所述一个或多个存储设备500内之后,计算设备100可以向计算设备800传输prn树的prn之一以便使计算设备800能够根据所传输的所述prn在prn树内的位置来访问之前由计算设备100向服务器400传输的数据中的一些或所有数据。然后,计算设备800可以向服务器400传输基于所接收到的prn的(多个)地址作为对与prn树的关联于所接收到的所述prn的所述一个部分中的一个或多个叶节点相关联的一个或多个数据部分进行访问的请求的一部分。

如所描绘的,这些设备100、400、500和/或800中的一个或多个设备可以交换传送数据的信号,以及用于通过网络999访问所述数据的地址和/或prn。然而,这些计算设备中的一个或多个计算设备可以交换与这种数据或与使用地址和/或prn经由网络999彼此和/或与仍其他计算设备(未示出)获得对这种数据的访问完全无关的其他数据。在各个实施例中,网络999可以是可能受限于在单个建筑物或其他相对有限的区域内延伸的单个网络,可能延伸相当长的距离的连接网络的组合和/或可以包括互联网。因此,网络999可以基于可以交换信号的各种(或组合的)通信技术中的任何一种通信技术,包括但不限于,采用电传导和/或光传导布线的有线技术,以及采用红外、射频或其他形式的无线传输的无线技术。还应当指出的是,这种数据可以经由在不同时间将可移动存储器(例如,基于闪存技术的固态存储设备、光盘介质等)直接耦合到每一个上而得到交换。

在各个实施例中,计算设备100结合处理器组件150、随机数发生器(rng)155、存储设备160、可手动操作的控制设备120、显示器180和用于将计算设备100耦合至网络999的接口190中的一项或多项。存储设备160存储控制例程140、所编写数据130和访问数据135中的一项或多项。控制例程140结合以作为计算设备100的主处理器组件的角色在处理器组件150上运行的指令序列来实施用于执行各种功能的逻辑。

在一些实施例中,在执行控制例程140时,处理器组件150可以操作控制设备120和显示器180以便提供用户界面,操作者可以通过所述用户界面与计算设备100交互以便生成所编写数据130,包括将向服务器400传输以便进行存储的一条数据(例如,文档、运动视频、音频记录、静止图像等)。在创建一条数据之后并且在准备由服务器400对其进行存储时,处理器组件150可以将所述一条数据分成多个部分,所述多个部分可能至少部分地基于将所述一条数据的内容组织在其中的方式。然后,处理器组件150可以生成表示那些部分被如此组织的方式的树结构,并且可以生成所述树结构的每个层处的一个或多个prn,从而创建prn层级,所述prn层级遵循从树顶部的顶部分支节点处的单个prn到朝着树的底部的叶节点处的多个prn遵循树的结构,其中,每个叶节点与所述部分之一相关联。然后,处理器组件150可以使用prn来至少导出所述一条数据的那些部分中的每个部分的地址,以准备向服务器400传输那些部分以便以将使所述部分可以在那些地址处通过网络999访问的方式进行存储。另外,处理器组件150可以导出那些部分中的每个部分的加密密钥和/或完整性验证密钥以便进一步保护如由服务器400存储在存储设备500中的一个或多个存储设备内的那些部分中的每个部分。

图2展示了数据存储系统1000的实施例的一部分,包括计算设备100的操作环境的方面,其中,处理器组件150执行控制例程140以便生成示例文档231和相关联的prn树。如所描绘的,控制例程140可以包括编写组件142、安全组件145和通信组件149中的一项或多项。在执行控制例程140时,处理器组件150可以执行组件142、145和149中的一个或多个组件。

在执行编写组件142时,处理器组件150可以提供用户界面,在所述用户界面中,向计算设备100的操作者呈现编写和/或编辑功能,操作者可以通过所述功能来生成组成所编写数据130的各条数据。因此,在各个实施例中,根据所创建的一条数据的性质,编写组件142可以包括文字处理软件、展示软件、图像和/或视频创建和/或编辑软件、音频记录和/或编辑软件等。如之前所讨论的,所编写数据130可由各种类型的数据(或其组合)中的任何数据组成,包括但不限于,记录的或计算机生成的音频、记录的或计算机生成的视频、静止图像、数值、文本、生物特征数据、个人可识别信息(例如,姓名、街道地址、电话号码等)、病历、财务信息、通信记录、业务记录、政府记录、3d模型和/或蓝图。

作为示例,为了本文中的讨论,所编写数据130被描绘为包括示例文档231。如所描绘的,文档231被分成章节232,所述章节中的每个章节由一个或多个段落233组成,其中,每个段落233由一个或多个句子234组成,每个句子进而由字235组成。文档231可以是各种类型的文档中的任何文档,包括但不限于,状态报告、论文、白皮书、小册子、手稿、操作手册、书本等。因此,尽管描绘了组成此示例文档231的特定部分的特定组织,但是所描绘的对部分的这种组织旨在充当示例,并且可以将其他示例文档的内容(或其他完全不同类型的数据)组织成导致分成可以以各种其他方式中的任何方式来组织的多个部分的各种其他方式中的任何方式。

在执行编写组件142以便使计算设备100的操作者能够生成示例文档231之后,处理器组件150可以执行安全组件145以便准备示例文档231以便由服务器400存储在存储设备500中的一个或多个存储设备内。如所描绘的,安全组件145可以包括分派组件1451,所述分派组件由处理器组件150执行以便将一条所编写数据130(比如,示例文档231)分成准备向服务器400传输以便进行存储的多个部分(比如,所描绘的部分237)。在一些实施例中,分派组件1451可以(例如,经由控制设备120和/或显示器180)与计算设备100的操作者交互以便引导操作者提供对将如此划分一条所编写数据130(比如,示例文档231)的方式的指示。在其他实施例中,分派组件1451可以基于用于限定将把所述一条所编写数据130如此划分成的部分的各种标准来自动地将一条所编写数据130分成多个部分。

因此,在示例文档231的情况下,分派组件1451可以通过对文档231内所采用的通常限定段落的格式(例如,用于结束每个段落的硬回车、段落之间的附加回车和/或每个段落的第一个句子的第一个字的行首空格)进行分析来自动地将示例文档231分成各自包括段落233中的单个段落的部分237。文档231或任何其他一条所编写数据130的划分粒度可由计算设备100的操作者指定。因此,例如,代替将文档231分成由段落233限定的部分237,计算设备100的操作者可以指定将文档231分成由单独的句子限定的部分237,从而使得分派组件1453可以自动地将示例文档231分成句子234,所述句子通过句子234中的每个句子结束时的句点的存在和/或通过在文本中与句子234之一的开始一致的位置处(相对于文本中与句子234之一内的适当名词的开始一致的位置)的大写字母的存在来检测。然而,除了标识句子234之外,作为导出文档231的结构(按照所述结构而将句子234(并且因此,部分237)组织到文档231内)的一部分,分派组件1451仍可以自动地标识文档231的段落233和/或章节232。

可替代地或另外地,文档231的或任何其他一条所编写数据130的划分粒度可能在如此准备以便进行存储的一条所编写数据130之间不同和/或可能基于包括在每个一条所编写数据130中的数据的类型而不同。通过示例的方式,在如此准备的一条所编写数据130包括表格、曲线图、图纸、照片和/或散布于文本当中的其他图像的情况下,这些图像中的每个图像可能变成所述一条所编写数据130被分成的单独部分。通过另一个示例的方式,在一条所编写数据130包括音频和/或视频记录的情况下,这些记录中基于音频中的可检测静默时期和/或视频的可检测场景变化的停顿位置可以用于限定一条所编写数据130被分成的部分。可替代地或另外地,可以将如音频/视频或日历等连续数据分成各自与时间测量层级内的时间测量相关联的部分。这可以使比如使用时间和/或日期范围来在时间上指定可以授权的访问范围(例如,选择将授权对哪些部分的访问)成为可能。通过示例的方式,可以将音频或视频片分成各自具有多分钟的一个或多个更大的时间段(例如,四分之一小时、半小时或一小时),可以将所述时间段中的每个时间段分成各自具有约一分钟或两分钟的时间的中间时间段,可以进而将所述中间时间段中的每个中间时间段分成具有一秒或多秒的更小时间段,这种更小时间段中的每个时间段限定所述音频或视频片可以被分成的部分。不论被分成多个部分的数据的类型或分派组件1451通过一条所编写数据130(例如,示例文档231)而继续以便将其分成多个部分的方式如何,分派组件1451可以将对所述一条数据被分成多个部分的方式的指示存储为访问数据135的一部分(具体地,如所描绘的,分派数据1351)。因此,分派组件1451可以将对示例文档231被分成多个部分237的方式的指示以及如何将那些部分组织在文档231内的指示存储为分派数据1351。

如所描绘的,安全组件145可以包括树组件1452,所述树组件由处理器组件150执行以便生成树,所述树具有与已经被分成多个部分的一条所编写数据130的结构相对应的结构。更确切地,树组件1452生成树,所述树在其结构中具有与已经被分成多个部分的一条所编写数据130的部分相对应的叶节点并且具有限定了与所述一条所编写数据130内的那些部分的所检测到的组织结构相对应的分支结构的分支节点。

图3a展示了由树组件1452生成与文档231相对应的示例prn树210的示例实施例。在这样做时,树组件1452可以检索将文档231分成部分237的方式和文档231的结构(部分237按照所述结构而被组织在来自分派数据1351的文档231内)的细节。如所描绘的,示例prn树210包括在prn树210的最高层处的单个顶部节点211、在朝着prn树210的底部的最低层处的多个叶节点214以及两个中间层的分支节点212和213。顶部节点211对应于文档231;分支节点212中的每个分支节点对应于文档231的章节232之一;分支节点213中的每个分支节点对应于文档233的段落233之一;并且叶节点214中的每个叶节点对应于句子234之一。

在与文档231的句子234相对应的层处存在叶节点(具体他,叶节点214)的事实指示可能已经划分了文档231,其方式为部分237中的每个部分包括句子234中的单个句子,从而使得每个叶节点214还与部分237之一相对应。应当再次指出的是,将一条所编写数据130(比如,示例文档231)分成多个部分的方式(例如,那些部分的粒度)是完全任意的。因此,有可能的是,可以可替代地将示例文档231分成各自包括字235中的单个字的许多更小部分,从而使得prn树210可以使其叶节点处于仍更低层处(在所描绘的最低层下面),在所述仍更低层处,每个叶节点将与字235之一相对应。确实,有可能的是,可以将示例文档231分成仍更大量的各自仅包括字235之一的单个字母的仍更小部分。可替代地,还有可能的是,可以将示例文档231分成更少量的各自包括段落233中的完整段落的更大部分,从而使得prn树210使其叶节点处于更高层,在所述更高层处,每个叶节点将与段落233之一相对应。因此,根据如何将文档231分成部分237的任意选择,文档231被分成的部分237各自可以包括文档231的更多或更少内容。可能的是,可以考虑将如何使用文档的考虑,比如,被视为有可能在由服务器400对文档231进行存储之后的稍后时间访问的部分237的可能大小被视为是什么。

返回到图2,不论prn树210内的层的量或在任何特定层处的节点的量如何,树组件1452都可以将对prn树210的结构的指示存储为访问数据135的一部分(具体地,如所描绘的,树数据1352)。如所描绘的,安全组件145可以包括prn组件1455,所述prn组件由处理器组件150执行以便生成与prn树(比如,与示例文档231相对应的示例prn树210)的节点中的每个节点相关联的一个或多个prn。更确切地,prn组件1455遵循prn树的分支中的每个分支以便通过以下方式来伪随机地生成每个节点处的一个或多个prn:使用在更高层节点(所述节点从所述更高层节点下垂)处伪随机地生成的prn作为种子值。在这样做时,prn组件生成prn链,每个prn链开始于prn树顶部的prn,向下继续通过沿着树的分支结构的节点并且在朝着树的底部的叶节点处结束。

图3b展示了以遵循示例prn树210的结构的方式来生成prn的示例实施例。在这样做时,prn组件1455可以从树数据1352中检索prn树210的结构的细节。如所描绘的,在分支节点211、212和213中的每个分支节点处,prn组件1455通过以下方式来生成从所述节点向下分支到下一个更低层的每个节点的prn:使用之前针对所述节点而生成的prn作为种子值以便这样做。更具体地,如之前所讨论的,顶部节点211可以提供有prn271以便作为种子值,可以从所述种子值中直接或间接地生成与prn树210相关联的所有其他prn。prn组件1455可以从检索自种子数据1354的种子值中伪随机地生成prn271。

在一些实施例中,可由rng155使用伪随机生成技术以被视为比可能的方式更随机的方式来生成由prn组件1455从种子数据1354中检索的所述种子值。具体地,rng155可以结合数字电路系统,所述数字电路系统可以采用基于各种技术中的任何技术的量子效应来实现某个程度的量子不确定性从而生成可能被视为真正更随机的数。可替代地或另外地,rng155可以结合一个或多个电子组件以便使用源自电阻器的热噪声、源自齐纳二极管的雪崩噪声、局部大气中的电磁噪声(例如,静电荷)或者可检测形式的噪声的其他某种形式来生成可能被视为真正更随机的数。

不论为最高(顶部)层上的顶部分支节点211导出和/或提供prn271的确切方式如何,prn组件1455都可以使用prn271作为种子值来伪随机地生成在紧接着最高(顶部)层下面的层上的从顶部分支节点211下垂的分支节点212中的每个分支节点的不同prn272。类似地,对于分支节点212中的每个分支节点,prn组件1455可以使用专门为所述分支节点212而生成的prn272来伪随机地生成下一个更低层上从所述分支节点212下垂的分支节点213中的每个分支节点的不同prn273。同样类似地,对于分支节点213中的每个分支节点,prn组件1455可以使用专门为所述分支节点213而生成的prn273来伪随机地生成最低(底部)层上从所述分支节点213下垂的分支节点214中的每个分支节点的不同prn274。

作为生成每个节点的prn的这种方式的结果,prn链遵循prn树210中的分支的从prn树210的底部处或附近的每个叶节点214到prn树210的顶部层处的顶部分支节点211的路径,比如,在示例prn链217中描绘的路径,所述示例prn链涵盖沿着prn树210的结构中的从顶部分支节点211到叶节点214中的单个叶节点的分支路径中的单个分支路径的prn271至274中的每个prn。使用伪随机数生成的多个阶段来生成prn274中向叶节点214之一提供的每个prn的事实以及在从顶部分支节点211延伸到叶节点214中的每个叶节点的prn链中必然存在差异的事实确保了对叶节点214之一的prn274的了解并不使导出其他prn274中向其他叶节点214中的任何叶节点提供的任何prn成为可能。

在生成各个prn271、272、273和/或274时,prn组件1455可以从可以包括在访问数据135内的prn数据1355中检索对将采用什么伪随机数生成算法的指示和/或这种算法的各种输入。返回到图2,在生成各个prn271、272、273和/或274时,prn组件1455可以采用rng155,除了结合电路系统以便基于量子效应或可检测噪声源来生成随机数之外,所述rng还可以结合数字电路系统以便实施一个或多个伪随机数生成算法。将基于硬件的数字逻辑如此用于实施伪随机数生成算法的至少一部分可以增大有可能生成prn的速度。这可能显著减小生成特别大的prn树的prn所需的时间。如数据安全领域的技术人员所熟悉的,执行各种与安全有关的功能所需的时间量是计算设备的操作者所作出的关于他们是选择使用那些安全有关的功能还是选择便利性和(通过提前对其进行使用来)节省时间的决定中的因素。

图3c展示了将文档231分成各自包括句子234之一的部分237和生成叶节点214中与部分237之一相对应的每个叶节点的prn274两者的示例结果。为了进行讨论,应当指出的是,在图3c和随后的图中,prn272至274、章节232、段落233和句子234中的所描绘的单独项的参考号具有附加于其后的字母以便使在那些图中更容易地匹配每个项的单独项并且在此上下文中具体地对其进行具体指代成为可能。然而,应当清楚的是,prn272a至272c各自是prn272的实例;prn273a至273c各自是prn273的实例;prn274a至274c各自是prn274的实例;章节232a至232c各自是章节232的实例;段落233a至233c各自是章节233的实例;并且句子234a至234c各自是章节234的实例。

如在图3c中所描绘的,prn271与顶部节点211相对应,并且因此,与文档231相对应;prn272a至272c中的每个prn与分支节点212之一相对应,并且因此,分别与章节232a至232c之一相对应;prn273a至273c中的每个prn与分支节点213之一相对应,并且因此,分别与段落233a至233c之一相对应;并且prn274a至274c中的每个prn与叶节点214之一相对应,并且因此,分别与句子234a至234c之一相对应。因为示例文档231已经被分成的部分237中的每个部分包括句子234中的单个句子,所以prn274中的每个prn因此与部分237之一相对应。

如同样所描绘的,在一些实施例中,可以通过将prn274中的每个prn直接用作可以使其他计算设备在其处可访问部分237中与prn相对应的部分的地址来利用部分237与prn274之间的这种对应关系。更具体地,可以将prn274a至274c直接用作可以使分别包括句子234a至234c的部分237在其处可访问的地址。确实,可以将prn274(包括prn274a至274c)存储为访问数据235的一部分,具体地,存储为地址数据1356的地址。在将prn274如此存储为地址时,还可以把将这些地址中的每个地址与部分237之一关联的信息包括在地址数据1356中。

返回到图2,在执行通信组件149时,处理器组件150可以向服务器400传输部分237连同对将使其他计算设备经由网络999在其处可访问部分237中的每个部分的地址的指示。如之前所讨论的,服务器400可以将部分237存储在存储设备500中的一个或多个存储设备内,随后可由服务器400从所述存储设备中检索部分237中的一个或多个部分(响应于如此检索使用(多个)正确地址来指代(多个)那些部分237的(多个)那些部分237的请求)。

图3d展示了向服务器400如此提供部分237和/或向计算设备800提供或者地址中的所选地址或者导出地址中的所选地址所需的信息的示例。如所描绘的,计算设备100可以向服务器400传输示例文档231之前被分成的部分237。计算设备100还可以至少传输与部分237中的每个部分关联的之前存储为地址数据1356的一部分的地址。计算设备100可以进一步传输同样从地址数据1356中检索的对地址中的哪些地址与部分237中的哪些部分关联的指示。可替代地,部分237和地址各自可以以暗示其之间的关联性的顺序来传输。在使用某种形式的顺序以所暗示的方式来传送这种关联性时,可以采用对所述顺序的某种形式的打乱来阻止操作服务器400的人员辨别组织结构的方面。通过示例的方式,可以故意不以部分237及其相应地址出现在文档231内的顺序向服务器400传输所述部分和相应地址。

如将更加详细地解释的,在接收到部分237及其相应地址时,服务器400可以将被维持为库数据530的其他条数据的部分当中的部分237存储在存储设备500中的一个或多个存储设备内。进一步地,服务器400可以使部分237可供其他计算设备(例如,计算设备800)通过网络999在从计算设备100接收的地址中的相应地址处访问。

如同样将更详细地解释的,在计算设备100的操作者试图向计算设备800的操作者授权对部分237中的一个或多个部分的访问的情况下,计算设备100的操作者可以与计算设备100交互以便经由网络999向计算设备800传输所述一个或多个部分237的(多个)地址。然后,可由计算设备800的操作者对其进行操作以便通过网络999向服务器400传输对所述一个或多个部分237进行访问的请求,其中,所述请求通过从计算设备100接收的地址来指代所述一个或多个部分237。

可替代地,在将向计算设备800的操作者授权对其的访问的部分237的量足够大以至于可以将向计算设备800传输多个地址视为非期望的情况下,可以操作计算设备100以便传输与prn树210的节点(与所述一个或多个部分237相对应的叶节点214从所述节点下垂,将向计算设备800的操作者授权对所述一个或多个部分的访问)相对应的prn(例如,prn271、272或273之一)。换言之,可以通过选择prn271、272或273中与分支节点211、212或213之一相对应的prn来确定示例文档231的可以授权对其的访问的部分237的访问范围。然后,可以操作计算设备800以便采用prn271、272或273中的所选prn来导出prn中与prn树210中的节点(包括叶节点214)中的所有节点相对应的所有prn,所述所有节点从与prn271、272或273中的所述所选prn相对应的节点下垂。

因此,prn树210的结构可以用作用于提供对部分237中的一个或多个部分的有限访问范围的工具。通过示例的方式并且再次参照图3c,如果将向计算设备800的操作者授权仅对包括句子234a至234c(所述句子组成段落233a)的部分237的访问,则计算设备100可以向计算设备800传输prn273a,可以从所述prn中导出分别与句子234a至234c相对应的prn274a至274c中的每个prn。然后,计算设备800可以采用所接收到的prn273a来如此导出prn274a至274c,并且然后将所导出的prn274a至274c用作给服务器400的对分别包括句子234a至234c的部分237中的一个或多个部分进行访问的请求中的地址。然而,如果将授权对整个文档231的访问,则计算设备100可以向计算设备800传输prn271,可以从所述prn中导出prn272、273和274中的所有prn。然后,计算设备800可以采用所接收到的prn271来如此导出prn272、273和274中的所有prn,并且然后将prn274(包括prn274a至274c中的一个或多个prn)中的一些或所有prn用作给服务器400的对部分237中的一些或所有部分的访问(以便获得对句子234中计算设备800的操作者寻求访问的哪些句子的访问)请求中的地址。

应当指出的是,为了使由计算设备800能够生成prn272、273和274中的一个或多个prn,计算设备100可以向计算设备800传输从prn数据1355中检索的对计算设备100用于生成prn271、272、273和/或274的特定伪随机数生成算法的指示。可替代地或另外地,计算设备100可以传输从树数据1352接收的对prn树210的分支结构的指示以便使计算设备800能够在生成prn时正确地遵循prn树210内的各个分支的路径。作为直接向计算设备800传输对树210的分支结构的明确指示的替代方案,可以将各种标记嵌入在之前向服务器400传输的部分237中,其中,嵌入在每个部分237内的(多个)标记至少指示与所述部分相对应的叶节点214拟合到prn树210内的什么地方和/或至少指示prn树210的包括所述叶节点214的分支结构的一部分。这种嵌入式指示可以在计算设备800检索部分237之一时向计算设备提供对相邻部分237可能处于分支结构中的什么地方的指导。

返回到图2,如之前所讨论的,在prn271、272、273和274以及用于生成prn271的种子具有足够大的位宽的情况下,可以向部分237中的任何部分分配的地址值的范围可以如此大以至于计算设备100和许多其他计算设备(未示出)各自可以能够采用对数的随机和/或伪随机生成来生成地址并以完全非协调的方式来向数据部分分配所述地址,其中,任何两个数据部分曾经分配有同一地址的风险在统计上极其小。如之前同样讨论的,在这种足够大的位宽的情况下,地址值的范围可以如此大以至于试图猜到存储一条数据的部分可能存储在其处的地址或者搜索整个地址范围以便定位一条数据的部分可能变得不现实。因此,可以使示例文档231的部分237可由服务器400通过网络999在向服务器400提供的地址处访问,而无需进一步安全措施,并且然而,由于作为制作示例文档231的非授权副本的努力的一部分而试图定位部分237的极高不现实性而实际上可以将示例文档231视为足够安全免于其他计算设备进行的非授权访问。

然而,尽管通过使用针对示例文档231的部分237的这种编址方案来向示例文档提供的这种安全等级如此,但是采用仍进一步安全性来阻止甚至发现和读取或拷贝句子234之一仍可能仍被视为是期望的。如所描绘的,安全组件145可以包括加密组件1458,所述加密组件由处理器组件150执行以便在向服务器400传输部分237之前对示例文档231的组成部分237中的每个部分的内容进行加密。因此,在向服务器400传输部分237以便进行存储时,可以对部分237中的每个部分进行加密以便提供对示例文档231的附加形式的保护。因为示例文档231被分成了其句子234(所述句子中的每个句子之一变成部分237之一),所以加密组件1458可以对组成部分237中的每个部分的单个句子234进行加密。在可能存在服务器400的操作者可能试图在从计算设备100接收部分237以便由服务器400进行存储时读取部分237的内容的某种担忧时,这可能被视为是特别期望的。

如加密领域的技术人员所熟悉的,许多加密算法采用加密密钥。在一些实施例中,可以采用单个加密密钥来对部分237中的所有部分进行加密,并且然后可以向计算设备800传输这种单个加密密钥(或相应单个加密密钥)以便使对由计算设备800从服务器400中检索部分237中的哪些部分进行加密成为可能。然而,在其他实施例中,可以使用不同加密密钥来对部分237中的每个部分进行加密,并且可以将那些加密密钥中的每个加密密钥导出为prn连同将使部分237中的每个部分在其处可访问的地址。

如同样描绘的,加密组件145可以包括验证组件1459,所述验证组件由处理器组件150执行以便既在向服务器400传输部分237之前又在随后从服务器400中检索部分237中的一个或多个部分时得到所述部分中的每个部分的密码散列。如果所检索到的部分237还未被损坏或以其他方式被变更,则在那两个不同时间得到的密码散列应当匹配。与许多加密算法没什么不同,许多密码散列算法也采用密钥,具体地,验证密钥。正如加密密钥一样,可以使用单个验证密钥来得到部分237中的所有部分的密码散列,或者可以将部分237中的每个部分的不同验证密钥导出为prn连同将使部分237中的每个部分在其处可访问的地址。

图3e展示了类似于图3c的将文档231分成各自包括句子234之一的部分237和生成叶节点214中与部分237之一相对应的每个叶节点的prn两者的示例结果。然而,不像图3c中所描绘的,在叶节点214中的每个叶节点处,prn274(包括prn274a至274c)各自用作种子值以便伪随机地生成仍进一步prn,可以采用所述prn中的每个prn来对与关联于叶节点214的部分237相关联的不同功能服务。具体地,在每个节点214处,与所述叶节点214相对应的prn274(例如,prn274a、274b或274c之一)可由prn组件1455用作种子以便生成prn275rw(所述prn将用作可以使文档231的相应部分237在其处可访问以便进行或者写入或者读取访问)、prn275e(所述prn将由加密组件1458用作加密密钥以便对相应部分237进行加密)和/或prn275v(所述prn将用于得到组成相应部分237的句子234的密码散列以便验证其完整性)中的每个prn。可以将针对叶节点214中的每个叶节点而生成的prn275rw、275e和275v分别作为地址数据1356、加密数据1358和验证数据1359的一部分而存储在访问数据135内。

在与叶节点214中的每个叶节点的prn275e和275v同时生成prn275rw的情况下并且在prn275rw用于代替prn274作为地址的情况下,对叶节点214之一的prn275rw的了解并不使导出所述叶节点214的prn275e或275v中的任一项成为可能,并且并不使导出其他叶节点214中的任何叶节点的prn274、275rw、275e或275v成为可能。因此,可以连同向服务器400传输以便进行存储的部分237一起向服务器400传输的可能是prn275rw。

进一步地,为了向计算设备800授权对文档231的一个或多个部分237的访问,可以向计算设备800传输prn271、272、273或274中与对文档231的被视为适合授权的访问范围相对应的prn以便使计算设备800能够导出prn275rw(所述prn充当处于所述范围内的部分237的地址)和prn275e(在同一密钥用于加密和解密两者的加密的对称加密密钥实施方式中,所述prn可以充当那些部分237的解密密钥)。然后,计算设备800可以将prn275rw用作向服务器400传输的对部分237中处于向计算设备800授权的访问范围内的一个或多个部分进行访问的请求中的地址。在读取访问时接收到所述一个或多个部分237时,计算设备800则可以使用与所述一个或多个部分237相对应的prn275e来对其进行解密。

返回到图1,在各个实施例中,服务器400结合处理器组件450、rng455、存储设备460、存储控制器465和用于将计算设备100耦合至网络999的接口490中的一项或多项。存储设备460存储控制例程440和库访问数据435中的一项或多项。控制例程440结合以服务器400的主处理器组件的角色在处理器组件450上运行的指令序列来实施用于执行各种功能的逻辑。

在一些实施例中,在执行控制例程440时,处理器组件450可以操作接口490以便等待经由网络999接收至少传送数据部分以便进行存储的传输消息以及将使那些部分在网络999上在其处可访问的相关联地址。在接收到这种数据部分和伴随地址时,处理器组件450可以操作存储控制器465以便经由存储互连599向存储设备500中的一个或多个存储设备传输数据部分以便存储在其中。处理器组件450还可以存储对经由网络999和数据部分一起接收的地址与指示所述一个或多个存储设备500内存储所接收到的数据部分中的每个数据部分的存储位置的内部地址之间的关联性的指示。实际上,处理器组件450向部分237中的相应部分分配经由网络999接收的地址。处理器组件450可以进一步使其他计算设备通过网络999在经由网络999接收的地址中的相应地址处可访问那些部分中的每个部分。

图4展示了数据存储系统1000的实施例的一部分,包括服务器400的操作环境的方面,其中,处理器组件450执行控制例程440以便存储示例文档231的部分237并使其可访问。如所描绘的,控制例程440可以包括存储组件441、检索组件448、prn组件445和通信组件449中的一项或多项。在执行控制例程440时,处理器组件450可以执行组件441、445、448和449中的一个或多个组件。

继续被分成部分237以便进行存储的文档231的示例,在执行通信组件449时,处理器组件450可以操作接口490以便监测在网络999上发生的活动从而找到接收数据部分和相应地址的实例。在从计算设备100接收示例文档231的部分237至少连同将使每个部分237在网络999上在其处可访问的地址时,通信组件449可以向存储组件441中继部分237和伴随地址。

在响应于接收到部分237和至少部分237中的每个部分的地址而执行存储组件441时,处理器组件450可以操作存储控制器465以便标识存储设备500中的一个或多个存储设备内可用于存储所接收到的部分237的存储位置,并且可以将部分237如此存储在那些存储位置处。然后,存储组件441可以向那些存储位置中的每个存储位置分配所接收到的与存储于其中的部分237相关联的地址,并且可以触发检索组件以便使部分237在网络999上在所接收到的地址处可访问。因为地址基于已经被限定成具有相对大的位宽(从而使得在由不同计算设备代表不同人员和/或人群生成的地址当中存在数据上很小的冲突可能性)的prn,所以可能不需要处理器组件450判定是否已经向所述一个或多个存储设备500内用于存储完全不相关的数据部分的存储位置分配了从计算设备100接收的地址中的一个或多个地址。类似地,可能不需要处理器组件450操作接口490以便经由网络999进行与任何其他计算设备的通信从而检查是否已经向在另一个服务器的控制下的存储设备内的存储位置分配了从计算设备100接收的地址之一。

在一些实施例中,可以将把不同数据部分存储在同一地址处的两个不同计算设备之间在很少场合下的冲突视为是可接受的,并且服务器400可能不采取动作来或者阻止或者响应于这种场合。然而,可能让被使得在单个地址内进行竞争的计算设备检测存在这种情况并且采取某种形式的纠正动作来解决这种情况。通过示例的方式,可由不同计算设备通过使用完整性验证来检测涉及单个地址的不同计算设备之间的这种冲突事件。具体地,在文档231的部分237中由计算设备100向服务器400传输的并且存储在特定位置处的一个部分已经使用另一条数据的由不同计算设备(未示出)向服务器400传输的并且存储在同一位置处的一部分来覆写的情况下,计算设备100可以在稍后从服务器400中读取所述部分237并且将prn275v应用为验证密钥以便验证所述部分237的完整性时检测对所述部分237的覆写。响应于已经检测到所述部分237的完整性已经丢失,计算设备100可以伪随机地生成不同prn275rw以便用作向服务器400提供以便再次用于存储所述部分237的不同地址。确实,计算设备100可以周期性地对如由服务器237存储的部分237执行读取访问并且对部分237中的每个部分执行完整性验证以便确定每个部分的状况。

可替代地,存储组件441可以在解决发生单个地址内的冲突的场合中扮演更积极的角色。在一些实施例中,服务器400可以试图通过以下方式来容纳进行竞争以便将两个不同的数据部分存储在同一地址处的两个不同计算设备:扩大所述地址处的存储设备的容量以便将所述部分两者存储在同一地址处。然后,服务器400可以通过向请求计算设备供应这两个不同的数据部分两者来对从所述地址中读取数据部分的请求作出响应,由此允许请求计算设备判定这两个不同的数据部分中的哪个数据部分是对所述计算设备感兴趣的数据部分。

在其他实施例中,可以将通过其第一次将数据部分存储在地址位置处的写入访问与可能修改和/或代替存储在位置处的数据部分的其他形式的写入访问进行区分。例如,可能存在必须用于第一次将数据部分存储在某个地址处的不同“创建”指令,并且存储组件441可能仅允许在每个地址处使用一次创建命令。因此,在计算设备100已经向服务器400提供部分237以便使用创建指令来将其存储在特定地址处的情况下,可由存储组件441使用对经由网络999传输返回至另一个计算设备的错误的指示来对所述另一个计算设备稍后试图也使用创建命令来将不同数据部分存储在同一地址处作出响应。然后,所述另一个计算设备(未示出)可以选择将使服务器400将所述数据部分存储在其处的不同地址。数据库架构领域的技术人员可以想到如可能由存储组件441采用的用于解决地址冲突的仍其他机制。

在响应于对部分237的存储而执行检索组件448时,处理器组件450可以与通信组件449协作以便使部分237在网络999上在由计算设备100生成的且从其中接收的地址处可访问。在这样做时,可以采用各种网络协议中的任何网络协议来使另一个计算设备(例如,计算设备800)能够经由网络999向服务器400传输对部分237之一进行访问的请求,其方式为需要通过与所述部分237相关联的prn(例如,prn271、272、273、274或275rw之一)来指定所述部分237。通过示例的方式,可以采用这种地址经由文件传输协议(ftp)请求作为数据文件的部分237。不论在所接收到的对部分237之一的请求中采用什么协议,响应于接收到这种请求,处理器组件450可以判定在所述请求中指定的地址是否处于向存储设备500中的一个或多个存储设备内数据部分存储在其处的存储位置分配的地址当中。如果发现了地址,则处理器组件450可以操作存储控制器465以便访问所述存储位置从而从其中检索所请求的部分237,并且然后操作接口490以便向经由网络999从其中接收了所述请求的计算设备传输所请求的部分237。

尽管可以采用对基于具有大位宽的prn的树的稀疏编址的使用和/或加密来控制对一条数据(例如,示例文档231)的访问和/或访问范围的授权,但是可能认为期望的是,还控制所授权的访问类型。具体地,可能认为期望的是,控制访问授权在本质上是只读的,还是还包括修改所存储的数据的能力。为了提供对所授权的访问类型的这种控制,在一些实施例中,可以生成与特定一条数据相关联的多于一个prn树,其中,每个prn树与所授权的对所述一条数据的部分的访问类型或程度相关联。更具体地,可以生成两个或更多个并行prn树,所述并行prn树中的每个prn树可以具有基于一条数据的部分被组织在所述一条数据内的方式的分支结构。可以采用所述树中的一个树的prn来授权读取访问,而可以采用所述树中的另一个树的prn来增强具有对包括作出修改的能力的访问类型或程度(例如,写入访问)的授权的访问程度。可以将对与每种访问类型或程度相关联的单独prn树的使用视为期望的以便确保对与读取访问相关联的prn树内的prn的了解并不使导出与包括修改数据的能力的访问类型相关联的prn树内的prn中的任何prn成为可能。

图5a展示了由树组件1452生成除了prn树210之外的prn树710以及以遵循prn树两者的分支结构的方式来生成prn的示例实施例。如所描绘的,向prn树210的分支结构一样,prn树710的分支结构被生成为遵循部分237被组织在示例文档231内的方式。因此,prn树210和710是并行prn树,其中,分别在其顶部分支节点211与711、其分支节点212与712、其分支节点213与713以及其叶节点214与714之间存在一一对应关系。如同样所描绘的,prn树210和710的分支结构两者可以用于确定从这些prn树中的每个prn树的顶层处的顶部分支节点延伸并且到达朝着这些prn树中的每个prn树的底部的叶节点的prn链。然而,如所描绘的,在与叶节点214和714相关联的prn中可能存在差异。更具体地,如所讨论过的以及之前在图3e中所描绘的,可以使用叶节点214中的每个叶节点214内的prn274作为种子值以便生成同样与叶节点214中的每个叶节点相关联的仍进一步prn275rw、275e和275v。相比而言,以更像图3c中所描绘的方式,prn774可以不被如此用作种子值。

图5b展示了可以采用分别与prn树210和710的叶节点214和714相关联的prn值来控制对示例文档231的部分237进行访问的各个方面的方式的示例实施例。如所讨论过的以及之前在图3e中所描绘的,可以将prn275e和275v存储和/或采用为分别用于加密部分237中的相应部分并验证其完整性的加密密钥和验证密钥。可替代地,可以根据需要通过伪随机数生成来重新导出prn树210和710中的一个或两个prn树的prn中的许多prn。而且,以类似于所讨论过的以及之前在图3e中所描绘的方式,将使部分237中的每个部分在其处可访问的地址可以基于在prn树210的分支结构内导出的prn275rw。然而,以类似于所讨论过的以及之前在图3c中所描绘的方式,那些相同地址还可以基于在prn树710的分支结构内导出的prn774。

更确切地并且如在图5c中所描绘的,将使部分237中的每个部分在网络999上在其处可访问的地址可以基于与部分237中的每个部分相关联的prn275rw和774两者。如所描绘的,对于每个部分237,可以使用从其中得到所产生的组合的散列的各种函数中的任何函数来组合叶节点214中的其相关联叶节点的prn275rw和叶节点714中的其相关联叶节点的prn774。可以将所述散列的值限定为具有与本文中所讨论的prn的位宽和/或从其中导出那些prn的种子值的位宽类似(如果不是完全相同)的位宽。因此,以类似于已经关于将prn直接用作地址而讨论的方式,可以将所产生的散列值用作具有处于稀疏编址方案的广大可能地址值范围内的值的地址。

图5d展示了以向计算设备800授权的访问范围和类型两者都受控的方式向服务器400提供部分237和/或向计算设备800提供从服务器400中检索部分237中的一个或多个部分所需的信息的示例。如所描绘的,计算设备100可以向服务器400传输示例文档231之前被分成的部分237。在这样做之前,计算设备100可以采用与部分237相关联的prn275e来对所述部分进行加密。计算设备100还可以向服务器400传输被导出为节点214和714中分别与向服务器400传输的部分237中的每个部分相对应的每个节点的prn275rw和774的组合散列的地址。计算设备100可以进一步传输对部分237中的哪些部分与prn275rw和774中的哪个prn相对应的指示。可替代地,部分237、prn275rw和prn774可以以暗示其之间的关联性的顺序来传输。

响应于接收到部分237和如此生成为相应prn275rw和774的组合的散列的相应地址,服务器400可以将部分237中的每个部分存储在存储设备500中的一个或多个存储设备内的可用存储位置内。然后,对于所存储的部分237中的每个部分,服务器400可以向所述部分237被存储在其内的并且将使所述部分237对其他计算设备通过网络999在其处可访问的存储位置分配相应地址。

在向服务器400如此提供部分237以便进行存储之后,计算设备100的操作者可能希望向计算设备800的操作者授权对部分237中的一个或多个部分的读取和写入访问两者。计算设备100的操作者可以通过以下方式来这样做:操作计算设备100以便向计算设备800传输prn271、272、273或274中与prn树210的节点相关联的prn,所述prn树提供将连同来自prn树710的相应节点的prn771、772、773或774之一授权的对示例文档231的访问范围。在接收到这种相应prn对时,根据prn树210和710内与每个prn相对应的节点的位置,可以操作计算设备800以便使用相应prn作为种子来伪随机地生成进一步prn,包括分别与落入所授权的访问范围内的一个或多个叶节点214和714相关联的prn275rw和774中的一个或两个prn。

通过示例的方式,在所接收到的相应prn对与prn树210和710内的相应分支节点对相关联的情况下,可以使用两个prn作为种子来导出与从对应于所接收到的prn对的分支节点对下垂的分支节点和/或叶节点相关联的一个或多个其他prn。在获得落入所授权的访问范围内的叶节点214和714中的一个或多个叶节点的prn274和774时,可以使用所述一个或多个叶节点214的所述一个或多个prn274作为种子来至少生成所述一个或多个叶节点214中的每个叶节点的prn275rw和275e。

为了使计算设备800能够如此导出prn,计算设备100还可以向计算设备800传输如从树数据1352中检索的对树210和710两者所共享的分支结构的指示。可替代地或另外地,计算设备100可以传输从prn数据1355中检索的对将用于生成prn271、272、273、274、275、771、772、773和/或774的特定伪随机数生成算法的指示。在如此导出所述一个或多个部分237中的每个部分的prn275rw和774之后,计算设备800可以得到每个这种部分237的prn275rw和774中的每个prn的组合散列以便生成使每个这种部分237由服务器400在其处可访问的地址。然后,计算设备800可以经由网络999向服务器400传输对所述一个或多个部分237进行访问的请求,其中,所述一个或多个部分237由从prn275rw和774中如此生成的其相应地址指代。访问请求可能针对或者读取访问或者写入访问。

作为响应,服务器400首先判定所接收到的地址中的每个地址是否属于在所述一个或多个存储设备500内存在的存储位置。然后,对于确实存在的每个存储位置,服务器400可以检索所述部分237(对于请求是读取访问的情况)或允许对所述部分237的写入(在请求是写入访问的情况下)。然而,如果地址中的一个或多个地址指向确实存在的存储位置,并且如果所请求的访问是读取访问,则作为响应,服务器400可以以旨在模仿将合法数据提供返回至计算设备800的方式来将随机生成的数据值传输返回至计算设备800。可以将这视为对以下操作的优选响应:向计算设备800提供错误指示以便进一步阻止由其他计算设备进行的用于搜索数据的动作(通过迫使那些计算设备花时间对随机生成的数据进行分析以便试图辨别其是否为实际数据)。

在由计算设备800向服务器400作出的请求是写入访问请求时,计算设备800可能接收对成功向包括在请求中的所述一个或多个部分237进行写入的某种形式的确认。在由计算设备800向服务器400作出的请求是读取访问请求的情况下,并且在对包括在请求中的所述一个或多个部分237进行了加密的情况下,计算设备800可以使用由计算设备800生成的针对每个这种部分237的prn275e来对其进行解密。

然而,如果计算设备100的操作者希望仅向计算设备800的操作者授权对相同的一个或多个部分237的读取访问,则计算设备100的操作者可以操作计算设备100以便仅向计算设备800传输prn271、272、273或274中与限定将授权的访问范围的prn树210的节点相关联的prn,而不向计算设备800传输prn771、772、773或774中与prn树710的相应节点相关联的prn。在从prn树210接收到prn而未从prn树710接收到相应prn时,根据prn树210内与prn相对应的节点的位置,可以操作计算设备800以便使用所接收到的prn作为种子来至少导出部分237中包括在所授权的访问范围内的所述一个或多个部分的一个或多个prn275rw。

再次,为了使计算设备800能够如此导出prn,计算设备100还可以向计算设备800传输对prn树210的分支结构的指示和/或对将用于生成prn271、272、273、274和/或275rw的特定伪随机数生成算法的指示。因为仅向计算设备800提供了与读取访问相关联的prn树210的(多个)prn,而未向其提供与某种形式的写入访问相关联的prn树710的任何prn,所以向计算设备800给予必要信息以便作出的唯一请求是用于读取在已经向计算设备800授权的访问范围内的所述一个或多个部分237的读取访问请求。在如此导出prn275rw之后,计算设备800可以经由网络999向服务器400如此传输读取访问请求以便读取部分237中落入所述所授权的访问范围内的一个或多个部分。在所述请求中,计算设备800可以包括由计算设备800包括在所述请求中的所述一个或多个部分237的prn275rw。计算设备800还可以传输对叶节点714中与包括在请求中的所述一个或多个部分237中的每个部分相对应的每个叶节点在prn树710的分支结构内的位置的指示。这种指示可以包括以所采用的贯穿从顶部分支节点711到与包括在请求中的所述一个或多个部分237中的每个部分相对应的叶节点714的分支结构的路径的各种形式中的任何形式来提供的描述。因此,除非向计算设备800授权的访问范围包括整个示例文档231,否则不向服务器400呈现对prn树710的整个分支结构的指示,这可能作为进一步安全预防而被视为是期望的。

响应于接收到读取访问请求,服务器400可以针对与包括在读取访问请求中的部分237之一相对应的每个叶节点714而采用对贯穿prn树710的分支结构的路径的指示中的每个指示来从与prn树710顶部处的顶部分支节点711相对应的prn771中伪随机地生成相应prn774。为了使服务器400能够这样做,计算设备100还可能已经向服务器400传输了prn771连同部分237和相应地址。进一步地,在伪随机地生成prn774中的每个prn时,服务器400可以采用rng455的基于硬件的伪随机生成能力来增大服务器400如此生成prn774的速度。在已经导出了与包括在读取访问请求中的部分237中的每个部分相对应的叶节点714的prn774之后,服务器400然后可以得到包括在读取访问请求中的相应prn275rw对和由服务器400导出的prn774的组合散列以便导出包括在读取访问请求中的部分237的地址。实质上,作为还未被授权除了只读访问之外的任何其他类型的访问的一部分,服务器400重新创建计算设备800不能提供的地址。服务器400首先判定刚从组合散列函数中导出的地址是否属于在所述一个或多个存储设备500内存在的存储位置。如果这种存储位置确实存在,则服务器400可以检索所述部分237,并且作为满足读取访问请求的一部分而将所述部分传输返回至计算设备800。再次,如果存储位置不存在,则服务器400可以作为附加安全措施而将随机生成的数据传输返回至计算设备800。

尽管服务器400可以允许计算设备800通过仅使用prn275rw和对贯穿分支结构的路径的指示而具有对部分237中的一个或多个部分的读取访问,但是服务器400可以要求计算设备800使用包括从与读取访问相关联的prn树210的相应prn275rw和与写入访问相关联的prn树710的相应prn774两者中生成的组合散列的请求来请求对任何部分237的写入访问。以此方式,对可能授权的访问类型维持控制。

图6展示了数据存储系统1000的实施例的一部分,包括计算设备800的操作环境的方面,其中,处理器组件850执行控制例程840以便请求对示例文档231的一个或多个部分237的访问。如所描绘的,控制例程840可以包括检索组件848、prn组件845和通信组件849中的一项或多项。在执行控制例程840时,处理器组件850可以执行组件845、848和849中的一个或多个组件。

继续被分成部分237以便进行存储的文档231的示例,在执行通信组件849时,作为授权对一个或多个相应部分237的访问的一部分,处理器组件850可以操作接口890以便接收限定了包括一个或多个叶节点214和/或714的范围的一个或多个prn271、272、273、274、771、772、773和/或774。通信组件849可以将对这种prn的指示存储为访客访问数据835的一部分,并且可以连同在准备请求对部分237中的一个或多个部分的访问时所需的其他信息而这样做,所述其他信息包括但不限于对从由计算设备100提供的树数据1352中检索的由prn树210和710共享的分支结构的指示。

在随后执行检索组件848时,处理器组件850可以操作接口890以便向服务器400传输对部分237中的一个或多个部分进行访问的请求,计算设备100可能已经向计算设备800给予了对所述一个或多个部分的访问。在计算设备100提供了与prn树210和/或710的叶节点相关联的prn的情况下,则处理器组件850可以将那些prn包括在请求中以便单独指定部分237中请求对其的访问的一个或多个部分。然而,在计算设备100代替提供与prn树210和710中的至少一个prn树的叶节点相关联的prn而提供了与分支节点相关联的一个或多个prn的情况下,则可以触发prn组件845以便使用与分支节点相关联的这种prn来伪随机地生成与从所述分支节点下垂的叶节点相关联的prn275rw和/或274。

在执行prn组件845时,处理器组件850可以使用与prn树的分支节点相关联的prn作为种子以便伪随机地导出一个或多个进一步prn,包括与一个或多个叶节点相关联的一个或多个prn。在这样做时,处理器组件可以采用rng855(如果存在),所述rng可以包括电子电路系统,所述电子电路系统至少实施一个或多个伪随机数生成算法的一部分以便增大执行对进一步prn的生成的速度。

返回到图1,更一般地,设备100、400、500和800中的每个设备可以是各种类型的计算设备中的任何计算设备,包括但不限于:台式计算机系统、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持式个人数据助理、智能电话、智能眼镜、智能腕表、数码相机、结合处理器组件的智能卡、结合到衣服中的身体穿戴式计算设备、整合到车辆(例如,汽车、自行车、轮椅等)中的计算设备、服务器、服务器集群、服务器场等。

在各个实施例中,处理器组件150、450和850中的每个处理器组件可以包括各种可商购获得的处理器中的任何处理器。进一步地,这些处理器组件中的一个或多个处理器组件可以包括多个处理器、多线程处理器、多核处理器(无论多个核共存在相同的还是分离的裸片上)和/或通过其多个物理上分离的处理器以某种方式相连接的其他种类的多处理器架构。

在各个实施例中,存储设备160、460和860种的每个存储设备可以基于各种信息存储技术中的任何信息存储技术,可能包括要求不间断电力提供的易失性技术,并且可能包括需要使用可以是或可以不是可移动的机器可读存储介质的技术。因此,这些存储设备中的每个存储设备可以包括各种类型(或类型的组合)的存储设备中的任何存储设备,包括但不限于,只读存储器(rom)、随机存取存储器(ram)、动态ram(dram)、双倍数据速率dram(ddr-dram)、同步dram(sdram)、静态ram(sram)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、聚合物存储器(例如,铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅氧化氮氧化硅(sonos)存储器、磁性或光学卡、一个或多个单独的铁磁性磁盘驱动器或者组织成一个或多个阵列的多个存储设备(例如,组织成独立盘冗余阵列或者raid阵列的多个铁磁磁盘驱动器)。应当注意的是,尽管这些储存设备中的每个存储设备被描绘成单个块,但是这些存储设备中的一个或多个存储设备可以包括可以基于不同存储技术多个存储设备。因此,例如,所描绘的这些存储设备中的一个或多个存储设备可以表示程序和/或数据通过其可以在某种形式的机器可读存储介质上存储并传送的光驱或闪存读卡器、用于将程序和/或数据本地存储相对延长的一段时间的铁磁性磁盘驱动器、以及使相对快速访问程序和/或数据成为可能的一个或多个易失性固态存储设备(例如,sram或者dram)的组合。还应当指出的是,这些存储设备中的每个存储设备可以是由基于完全相同的存储技术的多个存储组件构成的,但是由于用途的专门化,所述存储组件可以保持分开(例如,采用某些dram设备作为主存储设备,而采用其他dram设备作为图形控制器的不同帧缓冲器)。

在各个实施例中,(多个)接口190、490和890中的每个接口的至少一部分可以采用使这些计算设备能够耦合至如已经描述的其他设备的各种信令技术中的任何信令技术。这些接口中的每个接口包括提供用于使这种耦合成为可能的必需功能中的至少一些功能的电路系统。然而,这些接口中的每个接口还可以至少部分地使用由处理器组件中的相应多个处理器组件执行的指令序列来实现(例如,以便实现协议栈或其他特征)。在采用电气和/或光学传导线缆的情况下,这些接口可以采用与各种工业标准中的任何工业标准相符的信令和/或协议,包括但不限于:rs-232c、rs-422、usb、以太网(ieee-802.3)或ieee-1394。在需要使用无线信号传输的情况下,这些接口可以采用与各种各样的工业标准中的任何工业标准相符的信令和/或协议,包括但不限于:ieee802.11a、802.11b、802.11g、802.16、802.20(通常被称为“移动宽带无线接入”);蓝牙;zigbee;或者蜂窝无线电话服务,比如,具有通用分组无线电服务的gsm(gsm/gprs)、cdma/1xrtt、针对全球演进的增强型数据速率(edge)、仅数据演进或演进数据优化(ev-do)、数据和话音演进(ev-dv)、高速下行链路分组接入(hsdpa)、高速上行链路分组接入(hsupa)、4glte等。

图7展示了逻辑流程2100的实施例。逻辑流程2100可以表示由本文中所描述的一个或多个实施例执行的操作中的一些或全部操作。更具体地,逻辑流程2100可以展示由处理器组件150在至少执行控制例程140时所执行的操作,和/或由计算设备100的(多个)其他组件执行的操作。

在2110处,计算设备的处理器组件(例如,计算设备100的处理器组件150)可以将一条数据分成多个部分(例如,示例文档231被分成多个部分237)。如已经讨论的,将一条数据如此分成多个部分可以通过与计算设备的操作者的交互来引导,或者可以通过检查所述一条数据的方面以便找到将在其处将所述一条数据划分的位置(比如,文本格式化、其他类型的数据当中的图形的位置、音频记录中的静默停顿、运动视频的场景变化等)来完全自动地执行。

在2120处,处理器组件可以基于刚刚创建的部分被组织在所述一条数据内的方式来生成一个或多个prn树。如已经讨论的,可能仅存在单个prn树(例如,prn树210),其中,所授权的对部分中的一个或多个部分的访问类型不受控,或者可能存在具有同一分支结构的至少一个附加并行树(例如,prn树710),其中,访问类型受控。在存在所生成的多个并行prn树的实施例中,可以将一个prn树与读取访问相关联,而将另一个prn树与包括对所存储的部分中的一个或多个部分的修改的访问类型或程度相关联。

在2130处,处理器组件可以生成与每个prn树的每个分支节点(例如,分支节点212、213、712和713)和叶节点(例如,叶节点214和714)相关联的prn。如已经讨论的,可以从与prn树的顶部层处的顶部分支节点相关联的prn起、向下进展通过prn树的中间层中的分支节点中的所有分支节点并且到达朝着prn树的底部层的叶节点来生成这种prn。在这样做时,每个节点处的prn是使用上面层中的节点(所述每个节点从所述节点下垂)的prn作为种子值来伪随机地导出的。

在2140处,处理器组件150可以使用prn中被生成以便用作加密密钥的与相应叶节点中的每个叶节点相关联的prn来对部分中的每个部分进行加密。在2150处,处理器组件150可以向服务器传输现在加密的部分中的每个部分以便进行存储,连同基于所述一个或多个prn树的相应叶节点的相应prn的相应地址。如已经讨论的,对于每个部分,可以将其相应地址生成为从与所述部分相对应的叶节点的prn的组合中得到的散列值。

图8展示了逻辑流程2200的实施例。逻辑流程2200可以表示由本文中所描述的一个或多个实施例执行的操作中的一些或全部操作。更具体地,逻辑流程2200可以展示由处理器组件450在至少执行控制例程440时执行的操作,和/或由服务器400的(多个)其他组件执行的操作。

在2210处,服务器的处理器组件(例如,服务器400的处理器组件450)可以接收将由服务器存储的数据部分并且伴随有相应地址,所述部分将存储在所述地址处,并且将使所述部分通过网络在所述地址处可访问。如之前所讨论的,在仅存在单个prn树的实施例中,地址可以是可以直接从单个prn树中得到的prn(例如,与prn树210的叶节点214相关联的prn274或275rw)。可替代地,在存在多于一个prn树的实施例中,作为控制可以授权的访问类型的方法的一部分,可以将每个地址生成为从来自多个prn树的与每个部分相对应的叶节点的多个prn(例如,分别来自prn树210和710的叶节点214和714的prn275rw和774)的组合中得到的散列值。

在2220处,处理器组件可以将部分中的每个部分存储在一个或多个存储设备的存储空间内。在2230处,处理器组件可以向存储相应数据部分的存储位置分配地址中的相应地址。

在2240处,处理器组件可以使数据部分中的每个数据部分通过网络在相应地址处可访问。如之前所讨论的,可以使用各种网络协议中的任何网络协议来使使用这种地址来请求对部分中的一个或多个部分的访问成为可能。

图9展示了逻辑流程2300的实施例。逻辑流程2300可以表示由本文中所描述的一个或多个实施例执行的操作中的一些或全部操作。更具体地,逻辑流程2300可以展示由处理器组件450在至少执行控制例程440时执行的操作,和/或由服务器400的(多个)其他组件执行的操作。

在2310处,服务器的处理器组件(例如,服务器400的处理器组件450)可以通过网络接收对一条数据的一部分(例如,示例文档231的一个或多个部分237)进行访问的请求。如已经讨论的,所述一条数据可以是各种类型的数据中的任何数据。

在2320处,可由处理器组件进行关于请求是否包括所述部分的从各自与不同访问类型相关联的多个prn树的相应叶节点的prn中导出的地址的检查。如已经讨论的,在存在各自与对同一条数据的相同部分的不同访问类型相关联的多个并行prn树的实施例中,可以对来自所述多个并行prn树中的每个prn树的相应叶节点的prn进行组合,并且可以从所述组合中得到散列值以便导出每个部分的地址。如果在2320处,为所述部分提供了这种地址,则处理器组件可以使用所述地址来提供所请求的读取访问或写入访问。

然而,如果在2320处,仅存在仅与读取访问相关联的prn树的相应叶节点的prn值,则在2330处,处理器组件可以采用对不同相应叶节点在与具有修改数据的能力的写入访问相关联的另一个prn树的分支结构内的位置的指示来从与所述另一个prn树的顶部分支节点相关联的prn中伪随机地生成所述另一个相应叶节点的prn。如已经讨论的,在这样做时,处理器组件可以使用与顶部分支节点相关联的prn作为种子来生成从顶部分支节点的顶部层向下的下一个层中的分支节点的prn、然后使用所述prn作为种子来生成进一步prn等等,从而伪随机地生成prn链,直到使用叶节点上面的分支节点的prn作为种子来生成与叶节点相关联的prn从而这样做为止。

在2340处,处理器组件可以得到在请求中接收的与读取访问相关联的prn树的叶节点相对应的prn和刚刚生成的与写入访问相关联的prn树的叶节点相对应的prn的组合的散列值。然后,在2350处,处理器组件可以将所述散列值用作将在其处访问所述部分的地址,并且可以从其中检索所述部分以便满足读取请求。然而,处理器组件可以将请求设备不能直接提供散列值作为对向所述设备授权的访问类型不包括写入访问的指示,并且因此,处理器组件可以不允许由请求设备对所述部分进行任何其他类型的访问(除了读取访问之外)。

图10展示了适用于实施如之前所述的各个实施例的示例性处理架构3000的实施例。更确切地,处理架构3000(或其变体)可以被实现为计算设备100、400或800的中的一个或多个计算设备的一部分。应注意的是,处理架构3000的组件被给予参考号,其中最后两位数字对应于之前描绘并描述为计算设备100、400和800的一部分的组件中的至少一些的参考号的最后两位数字。这作为对将每个计算设备的组件进行关联的辅助而完成。

处理架构3000包括通常在数字处理中采用的各种元件,包括但不限于:一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)组件、电源等。如本申请中所使用的,术语“系统”和“组件”旨在表示在其中执行数字处理的计算设备的实体,所述实体是硬件、硬件和软件的组合、软件或执行的软件,其示例由这个所描绘的示例性处理架构来提供。例如,组件可以是但不限于:在处理器组件上运行的进程、处理器组件自身、可能采用光学和/或磁性存储介质的存储设备(例如,硬盘驱动器、阵列形式的多个存储驱动器等)、软件对象、可执行指令序列、执行线程、程序和/或整个计算设备(例如,整个计算机)。通过展示的方式,在服务器上运行的应用程序和服务器二者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以被定位在计算设备上和/或分布在两个或更多个计算设备之间。进一步地,组件可以通过各种类型的通信介质彼此通信地耦合以便协调操作。协调可涉及信息的单向或双向交换。例如,组件可以以通过通信介质传达的信号的形式来传达信息。信息可以被实现为向一条或多条信号线分配的信号。消息(包括命令、状态、地址或数据消息)可以是这种信号之一或者可以是多个这种信号,并且可以或者串联地或者基本上并行地被传输通过各种连接和/或接口中的任一项。

如所描绘的,在实施处理架构3000时,计算设备包括至少一个处理器组件950、存储设备960、与其他设备的接口990以及耦接头959。如将解释的,根据实施处理架构3000的计算设备的各种方面(包括其预期用途和/或使用条件),这种计算设备可以进一步包括附加组件,如但不限于,显示器接口985。

耦接头959包括一条或多条总线、点对点互连、收发器、缓冲器、交叉点开关和/或至少将处理器组件950通信地耦合至存储设备960的其他导体和/或逻辑。耦接头959可以进一步将处理器组件950耦合至接口990、音频子系统970和显示器接口985中的一项或多项(取决于同样存在这些组件和/或其他组件中的哪些组件)。在处理器组件950被耦接头959如此耦合的情况下,处理器组件950能够针对上述计算设备中实施处理架构3000的无论哪些计算设备执行以上详细描述的任务中的各种任务。耦接头959可用各种技术中的任何技术或技术组合来实现,通过所述技术光学地和/或电气地传送信号。进一步地,耦接头959的至少一部分可以采用与各种的工业标准中的任何工业标准相符的定时和/或协议,包括但不限于:图形加速端口(agp)、卡总线、扩展工业标准架构(e-isa)、微通道架构(mca)、网络用户总线、(扩展的)外设组件互连(pci-x)、串行总线(pci-e)、个人计算机存储卡国际协会(pcmcia)总线、hypertransporttm、快速路径等。

如之前所讨论的,处理器组件950(其可能与处理器组件450相对应)可以包括各种各样的商业可获得的处理器中的任何处理器,这些处理器使用各种各样的技术中的任何技术,并且利用以多种方式中的任何方式来物理组合的一个或多个内核来实现。

如之前所讨论的,存储设备960(其可以对应于存储设备460)可以由基于各种各样的技术中的任何一种技术或者技术组合的一个或多个不同存储设备组成。更具体地,如所描绘的,存储设备960可以包括以下各项中的一项或多项:易失性存储设备961(例如,基于一种或多种形式的ram技术的固态存储设备)、非易失性存储设备962(例如,不需要持续提供电力以保存其内容的固态、铁磁性或其他存储设备)以及可移动介质存储设备963(例如,通过其可以在计算设备之间传送信息的可移动盘式或固态记忆卡存储设备)。认识到在对计算设备中的多于一种类型的存储设备的普遍使用使得存储设备960的这种描绘可能包括多个不同类型的存储设备,其中,一种类型提供相对快速的读取和写入能力使由处理器组件950更快速地操纵数据(但可能使用一种持续需要电力的“易失性”技术)成为可能而另一种类型提供相对高密度的非易失性存储设备(但可能提供相对慢的读取和写入能力)。

给定采用不同技术的不同存储设备的通常不同的特性,使这种不同存储设备通过不同的存储器控制器耦合至计算设备的其他部分也是常见的,所述不同存储器控制器通过不同接口耦合至其不同的存储设备。通过示例的方式,在易失性存储设备961存在且基于ram技术的情况下,易失性存储设备961可以通过存储器控制器965a通信性地耦合至耦接头959,所述存储器控制器为可能采用行和列寻址的易失性存储设备961提供适当的接口,并且其中,所述存储器控制器965a可以执行行刷新和/或其他维护任务从而帮助保护存储在易失性存储设备961中的信息。通过另一个示例的方式,在非易失性存储设备962存在并且包括一个或多个铁磁和/或固态磁盘驱动器的情况下,非易失性存储设备962可以通过存储器控制器965b通信性地耦合至耦接头959,所述存储控制器为可能采用信息块和/或磁道和扇区寻址的非易失性存储设备962提供适当的接口。通过又另一个示例的方式,在可移动介质存储设备963存在并且包括采用一个或多个机器可读存储介质969的一个或多个光学和/或固态磁盘驱动器的情况下,所述可移动介质存储设备963可以通过存储器控制器965c通信性地耦合至耦接头959,所述存储器控制器为可能采用信息块寻址的可移动介质存储设备963提供适当的接口,并且其中,所述存储器控制器965c可以用专门用于延伸机器可读存储介质969的使用寿命的方式协调读取、擦除和写入操作。

易失性存储器961或非易失性存储器962中总有一个可以包括机器可读存储介质形式的制品,在所述机器可读存储介质上根据其各自基于的技术可以存储包括可由处理器组件950执行的指令序列的例程。通过示例的方式,在非易失性存储设备962包括基于铁磁的磁盘驱动器(例如,所谓的“硬盘驱动器”)的情况下,每个这种磁盘驱动器通常采用一个或多个旋转圆形磁盘片,在旋转圆形磁盘片上磁响应性颗粒涂层被沉积并且以不同模式被磁性定向以便存储信息(如指令序列),其方式类似于如软磁盘的存储介质。通过另一个示例的方式,非易失性存储设备962可以由用于存储信息(如指令序列)的固态存储设备组构成,其方式类似于压缩闪存卡。再次,在不同时间在计算设备中采用不同类型的存储设备来存储可执行例程和/或数据是常见的。因此,包括待由处理器组件950执行的指令序列的例程最初可以被存储在机器可读存储介质969上,并且随后在将所述例程复制到非易失性存储设备962上用于更长期的存储而不需要机器可读存储介质969和/或易失性存储设备961的继续存在的过程中可以采用可移动介质存储设备963以使当那个例程被执行时能够由处理器组件950更快速地进行访问。

如之前所讨论的,接口990(其可以对应于(多个)接口490)可以采用对应于各种通信技术中的任何通信技术的各种信令技术中的任何信令技术,所述通信技术可以被采用以将计算设备通信地耦合至一个或多个其他设备。再次,可以采用不同形式的有线或无线信令中的一项或两项以使处理器组件950能够有可能通过网络(例如,网络999)或网络的互连集与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其他计算设备交互。在识别必须经常由任何一个计算设备支持的多种类型的信令和/或协议的经常极不相同的字符时,接口990被描绘为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可以采用不同类型的有线数字串行接口或射频无线接口中的任何接口来接收来自用户输入设备(如所描绘的键盘920)的串行传输的消息。接口控制器995b可以采用各种基于线缆的或无线的信令、定时和/或协议中的任何一项来通过所描绘的网络999(可能是由一条或多条链路、较小的网络或可能互联网组成的网络)访问其他计算设备。更具体地,接口控制器995b可以结合一个或多个射频(rf)收发器和/或可以耦合至一个或多个天线991(其可被结合到接口990的一部分中)以便与作为根据所描绘的网络999的无线通信的一部分的而与一个或多个其他设备的(多个)天线交换rf无线信号。接口995c可以采用各种导电线缆中的任何导电线缆从而使使用串行或并行信号传输以将数据传送至所描绘的打印机925成为可能。可以通过接口990的一个或多个接口控制器被通信地耦合的设备的其他示例包括但不限于:用于监测人员的声音以便接受那些人员经由他们可能做出的声音或其他声音来通过信号发送的命令和/或数据的麦克风、遥控器、手写笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板计算机、操纵杆、其他键盘、视网膜扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、用于监测人的移动员以接收由那些人通过手势和/或面部表情发送的命令和/或数据的照相机或照相机阵列、激光打印机、喷墨打印机、机械机器人、铣削机器等。

在计算设备通信地耦合至(或有可能实际上结合)显示器(例如,所描绘的示例显示980)的情况下,实施处理架构3000的这种计算设备还可以包括显示器接口985。尽管在通信地耦合至显示器时可以采用更普遍类型的接口,但是在显示器上视觉地显示各种形式的内容经常需要的稍微专门化的附加处理以及所使用的基于线缆的接口的稍微专门化的性质经常提供令人期望的不同的显示器接口。在显示器980的通信耦合中可以由显示器接口985采用的有线和/或无线信令技术可以利用符合各种工业标准中的任何工业标准的信令和/或协议,包括但不限于,各种模拟视频接口、数字视频接口(dvi)、显示端口等中的任何一项。

更一般地,本文中所描述和描绘的计算设备的各种元件可以包括各种硬件元件、软件元件、或二者的组合。硬件元件的示例可以包括:设备、逻辑设备、组件、处理器、微处理器、电路、处理器组件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。然而,判定是否使用硬件元件和/或软件元件来实现实施例可以根据多个因数而变化,如针对给定的实施方式所期望的,如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。

一些实施例可使用表述“一个实施例”和“实施例”及其派生词来描述。这些术语意味着结合实施例描述的具体特征、结构或者特性被包括在至少一个实施例中。短语“在一个实施例中”在本说明书中各地方的出现不一定全都引用相同的实施例。进一步地,一些实施例可使用表述“耦合”和“连接”及其派生词来描述。这些术语并不必旨在作为彼此的同义词。例如,一些实施例可使用术语“连接”和/或“耦合”来描述,以指示两个或更多个元件彼此直接物理接触或电气接触。然而,术语“耦合”还可以指两个或更多个元件未直接地彼此进行接触,但还是彼此进行合作或交互。此外,可以组合来自不同实施例中的方面和元件。

强调的是,提供本公开的摘要以允许读者快速确定本技术公开的本质。基于其将不被用于解释或者限制权利要求书的范围或者含义的理解提交摘要。此外,在前前述具体实施方式中,可以看到,出于将本公开连成一体的目的而将各种特征一起组合在单个实施例中。本公开的方法并不被解释为反映以下意图:所要求保护的实施例需要比每项权利要求中明确表述的特征更多的特征。而是被解释为:以下的权利要求书反映了本发明的主题在于比单个公开的实施例的全部特征少。因此,以下的权利要求书据此被并入详细的说明书中,其中,每项权利要求独立自主地作为单独的实施例。在所附权利要求书中,术语“包括(including)”和“其中(inwhich)”分别用作对应术语“包括(comprising)”和“其中,(wherein)”的易懂的英文等价词。此外,术语“第一”、“第二”、“第三”等仅用作标签,且不旨在对它们的对象施加数字要求。

以上所描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每个可想到的组合,但是本领域的技术人员可以认识到许多其他组合和置换是可能的。相应地,本新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的全部这种变更、修改和变体。详细的公开现在变为提供与进一步的实施例有关的示例。以下提供的示例并不旨在是限制性的。

在示例1中,一种装置包括逻辑,所述逻辑的至少一部分是用硬件实现的,所述逻辑包括:分派组件,所述分派组件用于基于数据项的组织结构来将所述数据项分成多个部分;树组件,所述树组件用于基于所述数据项的所述组织结构来生成包括第一多个节点以及分支结构的第一伪随机数(prn)树,所述第一多个节点包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应;prn组件,所述prn组件用于生成所述第一多个节点中的每个节点的prn,所述prn组件用于使用所述第一prn树的分支节点的prn来生成从所述分支节点下垂的叶节点的prn;以及通信组件,所述通信组件用于经由网络向服务器传输所述多个部分以及基于所述第一prn树的叶节点的prn的多个地址,以便使所述服务器能够将每个部分存储在所述多个地址中的地址处。

在包括如示例1所述的主题的示例2中,所述树组件可以在所述第一prn树的顶部生成所述至少一个分支节点的顶部分支节点并且可以生成从所述至少一个分支节点下垂并朝着所述第一prn树的底部延伸的所述叶节点,并且所述prn组件可以使用所述顶部分支节点的所述prn作为种子值来生成从所述顶部分支节点下垂的分支节点的prn。

在包括如示例1至2中任一项所述的主题的示例3中,所述prn组件可以使用叶节点的prn作为种子来生成所述叶节点的加密prn,并且所述装置可以包括加密组件,所述加密组件用于在向所述服务器传输所述多个部分中与所述叶节点相对应的所述部分之前将所述加密prn用作加密密钥来对所述部分进行加密。

在包括如示例1至3中任一项所述的主题的示例4中,所述装置可以包括所述prn组件可以使用所述叶节点的所述prn作为种子来生成所述叶节点的验证prn,并且所述装置可以包括验证组件,所述验证组件用于在对所述部分进行加密之后使用所述验证prn作为密码散列函数的输入来得到所述部分的第一密码散列。

在包括如示例1至4中任一项所述的主题的示例5中,所述通信组件可以向所述服务器传输对与所述叶节点相对应的所述部分进行访问的请求,所述验证组件可以得到如从所述服务器接收的所述部分的第二密码散列并可以将所述第一与第二密码散列进行比较以便验证如从所述服务器接收的所述部分的完整性,并且所述加密组件可以在对所述部分的完整性进行验证之后使用所述加密prn来对所述部分进行解密。

在包括如示例1至5中任一项所述的主题的示例6中,所述通信组件可以向计算设备传输所述第一prn树的分支节点的第一prn以及对所述分支结构的指示,以便通过以下方式来向所述计算设备授权对如由所述服务器存储的所述多个部分中的一个部分进行第一类型的访问:使所述计算设备能够使用所述第一prn作为种子来至少生成所述第一prn树的与所述部分相对应的所述叶节点的prn以便由所述计算设备用作向所述服务器传输的对所述部分进行所述第一类型的访问的请求中的地址;并且所述第一prn树的所述分支结构以及对所述第一prn的所述分支节点的选择可以相协作以便限定向所述计算设备授权的所述第一类型的访问的范围。

在包括如示例1至6中任一项所述的主题的示例7中,可以在向所述服务器传输的所述多个部分中的至少一个部分中指示所述数据项的所述组织结构的至少一部分。

在包括如示例1至7中任一项所述的主题的示例8中,所述树组件可以生成包括第二多个节点和所述第一prn树的所述分支结构的第二prn树,所述第二多个节点包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应,所述至少一个分支节点可以包括所述第二prn树顶部的顶部分支节点,所述叶节点可以从所述至少一个分支节点下垂并且朝着所述第二prn树的底部延伸;所述prn组件可以生成所述第二多个节点中的每个节点的prn并且可以使用所述第二prn树的分支节点的所述prn作为种子来生成从所述分支节点下垂的叶节点的prn;并且所述通信组件可以向所述服务器传输所述顶部分支节点的prn以便使所述服务器能够使用所述顶部分支节点的所述prn来至少生成所述第二prn树的与所述部分相对应的叶节点的prn。

在包括如示例1至8中任一项所述的主题的示例9中,所述通信组件可以向所述计算设备传输所述第二prn树的与所述第一prn树的所述分支节点相对应的分支节点的与所述第一prn相对应的第二prn,以便通过以下方式来向所述计算设备授权对所述部分进行第二类型的访问:使所述计算设备能够使用所述第二prn作为种子来至少生成所述第二prn树的与所述部分相对应的所述叶节点的prn以便除了所述第一类型的访问之外还由所述计算设备用于请求对所述对所述部分进行所述第二类型的访问。

在包括如示例1至9中任一项所述的主题的示例10中,所述第一类型的访问可以包括读取访问,并且所述第二类型的访问可以包括用于修改数据的访问。

在包括如示例1至10中任一项所述的主题的示例11中,所述数据项可以包括以下各项中的至少一项:文本、表格、静止图像、图表、曲线图、运动视频、音频、方程、生物特征数据、基因序列、财务数据、统计数据、行为数据、位置数据或开销数据。

在包括如示例1至11中任一项所述的主题的示例12中,所述多个部分中的一个部分可以包括以下各项中的至少一项:字母、字、句子、段落、页、表格、静止图像、图表、曲线图、运动视频帧或所记录音频的一部分。

在包括如示例1至12中任一项所述的主题的示例13中,所述分派组件可以基于以下各项中的至少一项来将所述数据项分成所述多个部分:文本格式化、音频记录中的静默的实例或运动视频的场景变化。

在包括如示例1至13中任一项所述的主题的示例14中,所述数据项的所述组织结构可以基于时间单位层级;并且所述分派组件可以基于时间进展来将所述数据项分成多个部分。

在包括如示例1至14中任一项所述的主题的示例15中,所述逻辑可以包括随机数发生器(rng),所述rng可以包括用于基于量子效应或噪声源中的至少一项来生成种子值的电路系统;所述prn组件可以触发所述rng以便生成所述种子值;并且所述prn组件可以从所述种子值中生成所述第一prn树顶部的顶部分支节点的prn。

在包括如示例1至15中任一项所述的主题的示例16中,所述rng可以包括用于生成prn的电路系统;并且所述prn组件可以触发所述rng以便生成所述第一多个节点中的每个节点的prn。

在示例17中,一种计算实现的方法包括:基于数据项的组织结构来将所述数据项分成多个部分;基于所述数据项的所述组织结构来生成包括第一多个节点以及分支结构的第一伪随机数(prn)树,所述第一多个节点包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应;生成所述第一多个节点中的每个节点的prn,所述第一prn树的分支节点的所述prn被用作种子以便生成从所述分支节点下垂的叶节点的prn;以及向服务器传输所述多个部分以及基于所述第一prn树的叶节点的prn的多个地址,以便使所述服务器能够使用每个部分存储在所述多个地址中的地址处。

在包括如示例17所述的主题的示例18中,所述方法可以包括:在所述第一prn树的顶部生成所述至少一个分支节点的顶部分支节点;生成从所述至少一个分支节点下垂并朝着所述第一prn树的底部延伸的所述叶节点;以及使用所述顶部分支节点的所述prn作为种子值来生成从所述顶部分支节点下垂的分支节点的prn。

在包括如示例17至18中任一项所述的主题的示例19中,所述方法可以包括:使用叶节点的prn作为种子值来生成所述叶节点的加密prn;以及在向所述服务器传输所述多个部分中与所述叶节点相对应的所述部分之前,使用所述加密prn作为加密密钥来对所述部分进行加密。

在包括如示例17至19中任一项所述的主题的示例20中,所述方法可以包括:使用所述叶节点的所述prn作为种子值来生成所述叶节点的验证prn;在对所述部分进行加密之后使用所述验证prn作为密码散列函数的输入来得到所述部分的第一密码散列;向所述服务器传输对与所述叶节点相对应的所述部分进行访问的请求;在解密之后得到如从所述服务器接收的所述部分的第二密码散列;将所述第一与第二密码散列进行比较以便验证如从所述服务器接收的所述部分的完整性;以及在对所述部分的完整性进行验证之后使用所述加密prn来对所述部分进行解密。

在包括如示例17至20中任一项所述的主题的示例21中,所述方法可以包括:向计算设备传输所述第一prn树的分支节点的第一prn以及对所述分支结构的指示,以便通过以下方式来向所述计算设备授权对如由所述服务器存储的所述多个部分中的一个部分进行第一类型的访问:使所述计算设备能够使用所述第一prn作为种子来至少生成所述第一prn树的与所述部分相对应的所述叶节点的prn以便由所述计算设备用作向所述服务器传输的对所述部分进行所述第一类型的访问的请求中的地址;所述第一prn树的所述分支结构以及对所述第一prn的所述分支节点的选择相协作以便限定向所述计算设备授权的所述第一类型的访问的范围。

在包括如示例17至21中任一项所述的主题的示例22中,可以在向所述服务器传输的所述多个部分中的至少一个部分中指示所述数据项的所述组织结构的至少一部分。

在包括如示例17至22中任一项所述的主题的示例23中,所述方法可以包括:生成包括第二多个节点和所述第一prn树的所述分支结构的第二prn树,所述第二多个节点可以包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应,所述至少一个分支节点可以包括所述第二prn树顶部的顶部分支节点,并且所述叶节点从所述至少一个分支节点下垂并且朝着所述第二prn树的底部延伸;生成所述第二多个节点中的每个节点的prn,所述第二prn树的分支节点的所述prn被用作种子以便生成从所述分支节点下垂的叶节点的prn;以及向所述服务器传输所述顶部分支节点的prn以便使所述服务器能够使用所述顶部分支节点的所述prn来至少生成所述第二prn树的与所述部分相对应的叶节点的prn。

在包括如示例17至23中任一项所述的主题的示例24中,所述方法可以包括:向所述计算设备传输所述第二prn树的与所述第一prn树的所述分支节点相对应的分支节点的与所述第一prn相对应的第二prn,以便通过以下方式来向所述计算设备授权对所述部分进行第二类型的访问:使所述计算设备能够使用所述第二prn作为种子来至少生成所述第二prn树的与所述部分相对应的所述叶节点的prn以便除了所述第一类型的访问之外还由所述计算设备用于请求对所述对部分进行所述第二类型的访问。

在包括如示例17至24中任一项所述的主题的示例25中,所述第一类型的访问可以包括读取访问,并且所述第二类型的访问可以包括用于修改数据的访问。

在包括如示例17至25中任一项所述的主题的示例26中,所述数据项可以包括以下各项中的至少一项:文本、表格、静止图像、图表、曲线图、运动视频、音频、方程、生物特征数据、基因序列、财务数据、统计数据、行为数据、位置数据或开销数据。

在包括如示例17至26中任一项所述的主题的示例27中,所述多个部分中的一个部分可以包括以下各项中的至少一项:字母、字、句子、段落、页、表格、静止图像、图表、曲线图、运动视频帧或所记录音频的一部分。

在包括如示例17至27中任一项所述的主题的示例28中,所述方法可以包括基于以下各项中的至少一项来将所述数据项分成所述多个部分:文本格式化、音频记录中的静默的实例或运动视频的场景变化。

在包括如示例17至28中任一项所述的主题的示例29中,所述数据项的所述组织结构可以基于时间单位层级;并且所述方法可以包括基于时间进展来将所述数据项分成多个部分。

在包括如示例17至29中任一项所述的主题的示例30中,所述第一prn树的所述prn的位宽被选择为足够大以便使得极其难以猜到所述服务器存储所述部分的所述地址,并且可以限定所述地址的可能值范围,所述范围足够大以便使得能够在不关心与由另一个计算设备选择的地址竞争的情况下生成所述地址。

在示例31中,至少一种有形机器可读存储介质包括指令,所述指令当由处理器组件执行时可以使所述处理器组件:基于数据项的组织结构来将所述数据项分成多个部分;基于所述数据项的所述组织结构来生成包括第一多个节点以及分支结构的第一伪随机数(prn)树,所述第一多个节点包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应;生成所述第一多个节点中的每个节点的prn,所述第一prn树的分支节点的所述prn被用作种子以便生成从所述分支节点下垂的叶节点的prn;并且向服务器传输所述多个部分以及基于所述第一prn树的叶节点的prn的多个地址,以便使所述服务器能够将每个部分存储在所述多个地址中的地址处。

在包括如示例31所述的主题的示例32中,可以使所述处理器组件:在所述第一prn树的顶部生成所述至少一个分支节点的顶部分支节点;生成从所述至少一个分支节点下垂并朝着所述第一prn树的底部延伸的所述叶节点;并且使用所述顶部分支节点的所述prn作为种子值来生成从所述顶部分支节点下垂的分支节点的prn。

在包括如示例31至32中任一项所述的主题的示例33中,可以使所述处理器组件:使用叶节点的prn作为种子值来生成所述叶节点的加密prn;并且在向所述服务器传输所述多个部分中与所述叶节点相对应的所述部分之前,使用所述加密prn作为加密密钥来对所述部分进行加密。

在包括如示例31至33中任一项所述的主题的示例34中,可以使所述处理器组件:使用所述叶节点的所述prn作为种子值来生成所述叶节点的验证prn;在对所述部分进行加密之后使用所述验证prn作为密码散列函数的输入来得到所述部分的第一密码散列;向所述服务器传输对与所述叶节点相对应的所述部分进行访问的请求;在解密之后得到如从所述服务器接收的所述部分的第二密码散列;将所述第一与第二密码散列进行比较以便验证如从所述服务器接收的所述部分的完整性;并且在对所述部分的完整性进行验证之后使用所述加密prn来对所述部分进行解密。

在包括如示例31至34中任一项所述的主题的示例35中,可以使所述处理器组件:向计算设备传输所述第一prn树的分支节点的第一prn以及对所述分支结构的指示,以便通过以下方式来向所述计算设备授权对如由所述服务器存储的所述多个部分中的一个部分进行第一类型的访问:使所述计算设备能够使用所述第一prn作为种子来至少生成所述第一prn树的与所述部分相对应的所述叶节点的prn以便由所述计算设备用作向所述服务器传输的对所述部分进行所述第一类型的访问的请求中的地址;所述第一prn树的所述分支结构以及对所述第一prn的所述分支节点的选择相协作以便限定向所述计算设备授权的所述第一类型的访问的范围。

在包括如示例31至35中任一项所述的主题的示例36中,可以在向所述服务器传输的所述多个部分中的至少一个部分中指示所述数据项的所述组织结构的至少一部分。

在包括如示例31至36中任一项所述的主题的示例37中,可以使所述处理器组件:生成包括第二多个节点和所述第一prn树的所述分支结构的第二prn树,所述第二多个节点包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应,所述至少一个分支节点包括所述第二prn树顶部的顶部分支节点,并且所述叶节点从所述至少一个分支节点下垂并且朝着所述第二prn树的底部延伸;生成所述第二多个节点中的每个节点的prn,所述第二prn树的分支节点的所述prn被用作种子以便生成从所述分支节点下垂的叶节点的prn;并且向所述服务器传输所述顶部分支节点的prn以便使所述服务器能够使用所述顶部分支节点的所述prn来至少生成所述第二prn树的与所述部分相对应的叶节点的prn。

在包括如示例31至37中任一项所述的主题的示例38中,可以使所述处理器组件:可以向所述计算设备传输所述第二prn树的与所述第一prn树的所述分支节点相对应的分支节点的与所述第一prn相对应的第二prn,以便通过以下方式来向所述计算设备授权对所述部分进行第二类型的访问:使所述计算设备能够使用所述第二prn作为种子来至少生成所述第二prn树的与所述部分相对应的所述叶节点的prn以便除了所述第一类型的访问之外还由所述计算设备用于请求对所述对部分进行所述第二类型的访问。

在包括如示例31至38中任一项所述的主题的示例39中,所述第一类型的访问可以包括读取访问,并且所述第二类型的访问可以包括用于修改数据的访问。

在包括如示例31至39中任一项所述的主题的示例40中,所述数据项可以包括以下各项中的至少一项:文本、表格、静止图像、图表、曲线图、运动视频、音频、方程、生物特征数据、基因序列、财务数据、统计数据、行为数据、位置数据或开销数据。

在包括如示例31至40中任一项所述的主题的示例41中,所述多个部分中的一个部分可以包括以下各项中的至少一项:字母、字、句子、段落、页、表格、静止图像、图表、曲线图、运动视频帧或所记录音频的一部分。

在包括如示例31至41中任一项所述的主题的示例42中,可以使所述处理器组件基于以下各项中的至少一项来将所述数据项分成所述多个部分:文本格式化、音频记录中的静默的实例或运动视频的场景变化。

在包括如示例31至42中任一项所述的主题的示例43中,所述数据项的所述组织结构可以基于时间单位层级;并且所述方法可以包括基于时间进展来将所述数据项分成多个部分。

在包括如示例31至43中任一项所述的主题的示例44中,所述第一prn树的所述prn的位宽可以被选择为足够大以便使得极其难以猜到所述服务器存储所述部分的所述地址,并且可以限定所述地址的可能值范围,所述范围足够大以便使得能够在不关心与由另一个计算设备选择的地址竞争的情况下生成所述地址。

在示例45中,一种装置包括处理器组件;分派组件,所述分派组件用于基于数据项的组织结构来将所述数据项分成多个部分;树组件,所述树组件用于基于所述数据项的所述组织结构来生成包括第一多个节点以及分支结构的第一伪随机数(prn)树,所述第一多个节点包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应;prn组件,所述prn组件用于生成所述第一多个节点中的每个节点的prn,所述prn组件用于使用所述第一prn树的分支节点的prn来生成从所述分支节点下垂的叶节点的prn;以及通信组件,所述通信组件用于经由网络向服务器传输所述多个部分以及基于所述第一prn树的叶节点的prn的多个地址,以便使所述服务器能够将每个部分存储在所述多个地址中的地址处。

在包括如示例45所述的主题的示例46中,所述树组件可以在所述第一prn树的顶部生成所述至少一个分支节点的顶部分支节点并且可以生成从所述至少一个分支节点下垂并朝着所述第一prn树的底部延伸的所述叶节点,并且所述prn组件可以使用所述顶部分支节点的所述prn作为种子值来生成从所述顶部分支节点下垂的分支节点的prn。

在包括如示例45至46中任一项所述的主题的示例47中,所述prn组件可以使用叶节点的prn作为种子来生成所述叶节点的加密prn,并且所述装置可以包括加密组件,所述加密组件用于在向所述服务器传输所述多个部分中与所述叶节点相对应的所述部分之前将所述加密prn用作加密密钥来对所述部分进行加密。

在包括如示例45至47中任一项所述的主题的示例48中,所述prn组件可以使用所述叶节点的所述prn作为种子来生成所述叶节点的验证prn,并且所述装置可以包括验证组件,所述验证组件用于在对所述部分进行加密之后使用所述验证prn作为密码散列函数的输入来得到所述部分的第一密码散列。

在包括如示例45至48中任一项所述的主题的示例49中,所述通信组件可以向所述服务器传输对与所述叶节点相对应的所述部分进行访问的请求,所述验证组件可以得到如从所述服务器接收的所述部分的第二密码散列并将所述第一与第二密码散列进行比较以便验证如从所述服务器接收的所述部分的完整性,并且所述加密组件可以在对所述部分的完整性进行验证之后使用所述加密prn来对所述部分进行解密。

在包括如示例45至49中任一项所述的主题的示例50中,所述通信组件可以向计算设备传输所述第一prn树的分支节点的第一prn以及对所述分支结构的指示,以便通过以下方式来向所述计算设备授权对如由所述服务器存储的所述多个部分中的一个部分进行第一类型的访问:使所述计算设备能够使用所述第一prn作为种子来至少生成所述第一prn树的与所述部分相对应的所述叶节点的prn以便由所述计算设备用作向所述服务器传输的对所述部分进行所述第一类型的访问的请求中的地址;所述第一prn树的所述分支结构以及对所述第一prn的所述分支节点的选择相协作以便限定向所述计算设备授权的所述第一类型的访问的范围。

在包括如示例45至50中任一项所述的主题的示例51中,所述树组件可以生成包括第二多个节点和所述第一prn树的所述分支结构的第二prn树,所述第二多个节点包括至少一个分支节点以及多个叶节点,在所述至少一个分支节点处发生分支,所述多个叶节点中的每个叶节点与所述多个部分中的一个部分相对应,所述至少一个分支节点可以包括所述第二prn树顶部的顶部分支节点,所述叶节点可以从所述至少一个分支节点下垂并且朝着所述第二prn树的底部延伸;所述prn组件可以生成所述第二多个节点中的每个节点的prn并且可以使用所述第二prn树的分支节点的所述prn作为种子来生成从所述分支节点下垂的叶节点的prn;并且所述通信组件可以向所述服务器传输所述顶部分支节点的prn,以便使所述服务器能够使用所述顶部分支节点的所述prn来至少生成所述第二prn树的与所述部分相对应的叶节点的prn。

在包括如示例45至51中任一项所述的主题的示例52中,所述通信组件可以向所述计算设备传输所述第二prn树的与所述第一prn树的所述分支节点相对应的分支节点的与所述第一prn相对应的第二prn,以便通过以下方式来向所述计算设备授权对所述部分进行第二类型的访问:使所述计算设备能够使用所述第二prn作为种子来至少生成所述第二prn树的与所述部分相对应的所述叶节点的prn以便除了所述第一类型的访问之外还由所述计算设备用于请求对所述对部分进行所述第二类型的访问。

在包括如示例45至52中任一项所述的主题的示例53中,所述装置可以包括耦合至所述处理器组件的随机数发生器(rng)并且可以包括用于基于量子效应或噪声源中的至少一项来生成种子值的电路系统;所述prn组件可以触发所述rng以便生成所述种子值;并且所述prn组件可以从所述种子值中生成所述第一prn树顶部的顶部分支节点的prn。

在包括如示例45至53中任一项所述的主题的示例54中,所述rng可以包括用于生成prn的电路系统;并且所述prn组件可以触发所述rng以便生成所述第一多个节点中的每个节点的prn。

在示例55中,一种计算实现的方法包括:在服务器处判定从计算设备接收的对由所述服务器存储的数据部分进行访问的请求是否利用存储所述部分的地址或者利用第一prn树的第一叶节点的第一伪随机数(prn)以及对第二叶节点在第二prn树的分支结构内的位置的指示的组合来标识所述部分,所述请求是经由耦合至所述服务器的网络来接收的,并且所述第一和第二叶节点与所述部分相对应;基于所述判定而从所述第二prn树的顶部分支节点的prn中生成所述第二叶节点的第二prn并得到所述第一prn和所述第二prn的组合的散列以便导出所述地址;以及在所述地址处访问所述部分以便满足所述访问请求。

在包括如示例55所述的主题的示例56中,所述方法可以包括:基于所述判定而允许在所述地址处对所述部分进行写入访问。

在包括如示例55至56中任一项所述的主题的示例57中,可以将所述第一prn树与读取访问相关联;可以将所述第二prn树与写入访问相关联;并且所述方法可以包括:响应于所述请求利用所述地址来标识所述部分而允许对所述部分进行写入访问;以及响应于所述请求未能利用所述地址来标识所述部分而不允许对所述部分进行写入访问。

在包括如示例55至57中任一项所述的主题的示例58中,所述方法可以包括:伪随机地生成贯穿所述第二prn树的所述分支结构的路径的prn链以便伪随机地导出所述第二prn,所述链中的每个prn与所述第二prn树的节点相对应,并且所述第二prn是使用所述路径中的所述第二prn树的所述第二叶节点从其下垂的分支节点的所述prn作为种子来伪随机地生成的。

在包括如示例55至58中任一项所述的主题的示例59中,所述方法可以包括:经由所述网络从另一个计算设备接收所述部分、所述地址和所述第二prn树的所述顶部分支节点的所述prn;将所述部分存储在由耦合至所述服务器的存储设备提供的存储位置内;以及向所述存储位置分配所述地址。

在包括如示例55至59中任一项所述的主题的示例60中,所述方法可以包括:操作所述服务器的接口以便在所述网络中监测对数据部分进行访问的请求;以及经由所述网络从所述计算设备接收对所述部分进行访问的所述请求。

在示例61中,至少一种有形机器可读存储介质包括指令,所述指令当由处理器组件执行时可以使所述处理器组件:在服务器处判定从计算设备接收的对由所述服务器存储的数据部分进行访问的请求是否利用存储所述部分的地址或者利用第一prn树的第一叶节点的第一伪随机数(prn)和对第二叶节点在第二prn树的分支结构内的位置的指示的组合来标识所述部分,所述请求是经由耦合至所述服务器的网络来接收的,并且所述第一和第二叶节点与所述部分相对应;基于所述确定而从所述第二prn树的顶部分支节点的prn中生成所述第二叶节点的第二prn并得到所述第一prn和所述第二prn的组合的散列以便导出所述地址;并且在所述地址处访问所述部分以便满足所述访问请求。

在包括如示例61所述的主题的示例62中,可以使所述处理器组件基于所述确定而允许在所述地址处对所述部分进行写入访问。

在包括如示例61至62中任一项所述的主题的示例63中,可以将所述第一prn树与读取访问相关联;可以将所述第二prn树与写入访问相关联;并且所述方法可以包括:响应于所述请求利用所述地址来标识所述部分而允许对所述部分进行写入访问;以及响应于所述请求未能利用所述地址来标识所述部分而不允许对所述部分进行写入访问。

在包括如示例61至63中任一项所述的主题的示例64中,可以使所述处理器组件伪随机地生成贯穿所述第二prn树的所述分支结构的路径的prn链以便伪随机地导出所述第二prn,所述链中的每个prn与所述第二prn树的节点相对应,并且所述第二prn是使用所述路径中的所述第二prn树的所述第二叶节点从其下垂的分支节点的所述prn作为种子来伪随机地生成的。

在包括如示例61至64中任一项所述的主题的示例65中,可以使所述处理器组件经由所述网络从另一个计算设备接收所述部分、所述地址和所述第二prn树的所述顶部分支节点的所述prn;将所述部分存储在由耦合至所述服务器的存储设备提供的存储位置内;并且向所述存储位置分配所述地址。

在包括如示例61至65中任一项所述的主题的示例66中,可以使所述处理器组件操作所述服务器的接口以便在所述网络中监测对数据部分进行访问的请求,并且经由所述网络从所述计算设备接收对所述部分进行访问的所述请求。

在示例67中,至少一种有形机器可读存储介质可以包括指令,所述指令当由处理器组件执行时使所述处理器组件执行以上操作中的任何操作。

在示例68中,一种设备可以包括用于执行以上操作中的任何操作的装置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1