用于方便真正随机比特生成的系统和方法与流程

文档序号:17298462发布日期:2019-04-03 04:40阅读:276来源:国知局
用于方便真正随机比特生成的系统和方法与流程

本申请总体上涉及安全数据传输,更具体地讲,涉及用于方便真正随机比特生成的系统和方法。



背景技术:

经由内连网络和互连网络(例如,互联网)提供数据的安全传输已变得越来越重要。可通过经由网络发送的数据的加密和解密来支持安全数据传输。使用强加密密钥加密的数据可防止攻击者将加密的数据解密(例如,通过蛮力方法)。



技术实现要素:

根据本文中进一步讨论的各种示例,可按照期望的速率(例如,千兆赫范围内)生成真正随机比特(例如,也称为真随机比特、绝对随机比特或绝对真正随机比特)和真正随机比特流(例如,也称为真随机比特流、绝对随机比特流或绝对真正随机比特流)。可由一个或更多个真正随机比特生成器源生成真正随机比特流。在一方面,真正随机比特生成器源可以是真正随机比特生成器电路,可包括真正随机比特生成器电路,或者可以是真正随机比特生成器电路的一部分。可通过将真正随机比特生成器源所生成的一个真正随机比特流的比特与自身和/或与第二真正随机比特生成器源所生成的另一真正随机比特流的比特混合来生成附加真正随机比特流。在一些情况下,这些附加真正随机比特流然后可与自身和/或与其它先前生成的真正随机比特流混合,以生成另外的附加真正随机比特流。因此,使用各种示例,可通过真正随机比特生成器源的生成以及一个或更多个生成的真正随机比特流的混合来实现高速率的真正随机比特生成。在示例中,真正随机比特流可用作或用于推导密钥材料(例如,加密密钥、解密密钥)。在一方面,随机比特流可以是真随机比特流。在一些情况下,真随机比特流可基于量子过程或者其它物理或自然现象或自然熵源的测量。这些源或者来自这些源的真随机性提取可提供真随机比特生成,但是可能速率有限或者速度比诸如密码学的用途所期望的慢。在示例中,真正随机比特流可被按比例增加以生成容量非常高的真正随机比特或者比特速率非常高的真正随机比特,以满足对高容量和/或高速真正随机比特的需求,以例如用于方便例如经由互联网安全传输大量数据。

根据示例,一种方法可包括:在第一存储器中接收预定长度的或者作为连续比特流的第一真正随机比特流。该方法还可包括:在第二存储器中接收第二真正随机比特流。该方法还可包括:由逻辑电路通过执行按位运算以将第一真正随机比特流的各个比特与第二真正随机比特流的对应比特组合来生成第三真正随机比特流。该方法还可包括:将第三真正随机比特流存储在第三存储器中。

根据另一示例,一种方法可包括:在包括多个存储器单元的第一存储器中接收预定长度的或作为连续比特流的第一真正随机比特流。多个存储器单元中的每一个存储第一真正随机比特流的相应一个比特。该方法还可包括:由逻辑电路基于第一真正随机比特流的相应一对比特来生成第二真正随机比特流的各个比特。该方法还可包括:将第二真正随机比特流存储在第二存储器中。

根据另一示例,一种装置可包括存储器。该存储器可包括多个存储器单元,其中多个存储器单元中的每一个被配置为存储第一真正随机比特流的相应一个比特。该装置还可包括逻辑电路,该逻辑电路被配置为基于第一真正随机比特流的相应一对比特来生成第二真正随机比特流的各个比特。

本发明的范围由通过引用并入本文的权利要求限定。通过考虑一个或更多个示例的以下详细描述,本领域技术人员将获得对本发明的示例以及其附加优点的实现的更完整理解。将参照将首先简要描述的附图。

附图说明

图1示出可根据本公开的一个或更多个示例实现数据加密/解密和数据通信的示例网络环境。

图2示出可根据本公开的一个或更多个示例实现数据加密/解密和数据通信的示例计算装置。

图3示出根据本公开的一个或更多个示例的用于生成真正随机比特流的系统的框图。

图4示出根据本公开的一个或更多个示例的用于生成真正随机比特流的示例处理的流程图。

图5和图6示出根据本公开的一个或更多个示例的用于生成真正随机比特流的系统的框图。

图7a至图7c、图8a至图8c以及图9a至图9c示出根据本公开的一个或更多个示例的在顺序时钟循环上生成真正随机比特的系统的框图。

图9d示出根据本公开的一个或更多个示例的在顺序时钟循环上生成真正随机比特流。

图10示出根据本公开的一个或更多个示例的通过一个或更多个真正随机比特流的混合生成附加真正随机比特流。

图11和图12示出根据本公开的一个或更多个示例的用于生成真正随机比特流的示例处理的流程图。

图13示出根据本公开的一个或更多个示例的用于方便迭代加密密钥生成和数据加密的示例处理的流程图。

图14示出根据本公开的一个或更多个示例的用于方便迭代解密密钥生成和数据解密的示例处理的流程图。

图15、图16和图17示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的系统的框图。

图18示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的示例处理的流程图。

图19示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的时序图和关联的时钟信号。

通过参考下面的详细描述,可最好地理解本公开的示例及其优点。应该理解,相似的标号用于标识一个或更多个附图中所示的相似元件,其中,这里的显示是为了例示本公开的示例,而非为了限制本公开。

具体实施方式

下面所阐述的详细描述旨在作为主题技术的各种配置的描述,而非旨在表示可实践主题技术的仅有配置。附图被并入本文中并构成详细描述的一部分。详细描述包括用于提供对主题技术的彻底理解的具体细节。然而,对于本领域技术人员而言将清楚且显而易见的是,主题技术不限于本文中所阐述的具体细节,并且可使用一个或更多个示例(或实施方式)来实践。在一个或更多个实例中,结构和组件以框图形式示出,以避免模糊主题技术的概念。主题公开的一个或更多个示例由一个或更多个附图示出和/或结合一个或更多个附图描述,并且在权利要求中阐述。

提供了各种技术以在有或没有一个或更多个中间网络的情况下方便装置之间的安全通信。这些技术可包括数据加密/解密和数据通信(例如,发送、接收)并且可方便移动中的数据以及静止的数据的保护。在一些示例中,所述技术可包括:方便以期望的比特速率生成真正随机比特,以例如用作密钥材料(例如,加密密钥、解密密钥)或用于推导密钥材料;基于先前生成的密钥材料和/或关联的数据(例如,加密的数据、非加密的数据)生成密钥材料;和/或在使用密钥材料时擦除密钥材料和/或关联的数据。

在一些示例中,这些技术可用于生成足够量的密钥材料以适应大量信息直接在装置之间和/或经由一个或更多个网络在装置之间的安全通信(例如,发送、接收)。例如,密钥材料可用于对经由互联网发送的业务进行加密以及对经由互联网接收的加密的业务进行解密。在一方面,密钥材料可包括用于在加密侧对明文数据进行加密的加密密钥以及用于在解密侧对加密的数据进行解密的解密密钥。

当用作加密数据并(例如,向另一计算装置)发送加密的数据的发送器时,计算装置可被称为加密计算装置、加密装置或加密器。类似地,当用作(例如,从另一计算装置)接收加密的数据并将所接收的加密的数据解密以例如用于由用户消费的接收器时,计算装置可被称为解密计算装置、解密装置或解密器。例如,由加密器发送到解密器的数据可以是web内容。在一些情况下,计算装置可对于一些通信作为加密器操作,在其它通信中作为解密器操作。在其它情况下,计算装置可以是专用加密器或专用解密器。

在一个或更多个示例中,可按照期望的速率生成真正随机比特(例如,也称为真随机比特、绝对随机比特或绝对真正随机比特)和真正随机比特流(例如,也称为真随机比特流、绝对随机比特流或绝对真正随机比特流)。作为示例,期望的比特速率可在兆赫范围至太兆赫范围的范围内。真正随机比特流可用作密钥材料(例如,加密密钥、解密密钥)或用于推导密钥材料。对于给定密钥,密钥的长度(例如,比特或字节的数量)可基于期望的安全级别来指定,安全级别可由用户、应用、服务器的所有者、政府机构和/或其它实体设定(例如,规定)。越长的密钥材料通常与越高的安全性关联,因为正确生成的密钥材料对于攻击者而言更难以通过蛮力方法和/或其它方法破解。在一方面,密钥可为8位、128位、256位或512位,尽管密钥可包括小于、大于或介于这些示例长度之间的任何数量的比特。在一些方面,密钥材料通常是任何比特序列,其不需要是或不需要基于真正随机比特流。

在示例中,真正随机比特可使用真正随机比特生成器源来生成。在一方面,真正随机比特生成器源可以是真正随机比特生成器电路,可包括真正随机比特生成器电路,或者可以是真正随机比特生成器电路的一部分。尽管本公开的各种示例使用以相等的概率(或者基本上相等的概率)生成比特值1和比特值0的一个或更多个无偏真正随机比特生成器,各种示例也可在一个或更多个偏向随机比特生成器用于随机比特生成的情况下实现。

在一方面,真正随机比特生成器可基于预期为随机的物理过程(例如,大气噪声、热噪声、量子过程或者其它物理或自然过程或自然熵源)的测量来生成真正随机比特。这些源或者来自这些源的真随机性提取可提供真随机比特生成,但是可能速率有限或者速度比诸如密码学的用途所期望的慢。在示例中,真正随机比特流可被按比例增加以生成容量非常高的真正随机比特或比特速率非常高的真正随机比特以满足对高容量和/或高速真正随机比特的需求,以例如用于方便例如经由互联网安全传输大量数据。

真正随机比特生成器源也可被称为真随机比特生成器源或绝对随机比特生成器源。基于所测量的值,物理过程的各个测量可与1或0关联。由真无偏随机比特生成器生成的真正随机比特有绝对50%的概率为1,有绝对50%的概率为0。这种随机比特可被称为真且无偏随机比特或者简称为真随机比特或绝对随机比特。在一方面,第一真随机比特可与第二真随机比特(例如,逐位)组合以生成第三真随机比特。可使用具有逻辑相等的按位运算,其中当两个函数自变量具有相同的逻辑值时,按位运算提供为真的函数值(例如,1),当函数自变量不同时提供为假的函数值(例如,0)。例如,异或运算(不可兼析取运算或xor运算)或者异或非运算(xnor运算)可用作按位运算,但是可使用其它运算。在一方面,随机比特流或真随机比特流可用作或用于推导密钥材料(例如,加密密钥)。

在一些情况下,物理过程可以是量子过程(例如,本质上为量子力学)。作为示例,激光可用于生成量子力学耦合的光子态。这种耦合的本质允许光子同时以正交模存在。这些正交模通常表现为光学偏振,其中正交模例如为垂直和水平线偏振或者左和右圆偏振。量子力学过程的随机本质将以相等的概率随机地导致一个正交态或另一正交态的测量。通过将比特值0或1指派给一个偏振态测量,可生成真随机比特流。在这种情况下,真随机比特流可被称为包括量子比特(或qubit)的量子比特流,并且密钥材料可包括并且可被称为量子密钥。

在一些示例中,可基于一个或更多个先前生成的随机比特流来生成随机比特流。在一些情况下,可基于一个或更多个先前生成的真正随机比特流来生成真正随机比特流。在一方面,可基于由一个或更多个真正随机比特生成器源生成的一个或更多个真正随机比特流来生成真正随机比特流。在一方面,可通过将一个真正随机比特流的比特与自身和/或与另一真正随机比特流的比特混合来生成附加真正随机比特流。例如,为了补充由真正随机比特生成器源生成的真正随机比特,可通过将真正随机比特生成器源所生成的真正随机比特流的比特与自身和/或与其它先前生成的真正随机比特流混合来生成一个或更多个附加真正随机比特流。在此示例中,这些附加真正随机比特流然后可与自身和/或与其它先前生成的真正随机比特流混合,以生成另外的附加真正随机比特流。

因此,使用各种示例,相对于一个或更多个真正随机比特生成器源生成所有真正随机比特的情况,至少根据对先前生成的真正随机比特流执行以生成附加真正随机比特流的混合的量,真正随机比特生成的速率可增加(例如,按因子2、3、10、100等按照比例增加)。例如,当真正随机比特生成器源按照1gbps生成真正随机比特并且真正随机比特流的混合使真正随机比特生成的速率按照因子100增加时,生成真正随机比特的有效速率为100gbps。真正随机比特生成的速率可基于这种真正随机比特生成所支持的期望的安全级别,因为期望的安全级别可指示密钥材料的长度(例如,加密密钥中的真正随机比特数)和/或需要加密的数据的量和/或类型。

在一个或更多个示例中,明文数据可被加密,并且加密的数据可使用密钥材料来解密(例如,使用加密密钥加密并使用解密密钥解密)。在一些方面,密钥材料可以是由真正随机比特生成器源生成的和/或从真正随机比特生成器源所生成的一个或更多个真正随机比特流推导的真正随机比特流或者可基于其推导。在这方面,在加密侧,真正随机比特流可用作或者可被推导为用于加密的加密密钥。在一些方面,密钥材料通常是任何比特序列,其不需要是或不需要基于真正随机比特流。

在示例中,加密器可接收要加密的明文数据(例如,用户数据)。加密器可将明文数据划分(例如,分段、分割)为一个或更多个数据部分,以例如方便明文数据的加密和/或加密的数据的传输。明文数据的各个数据部分的长度(例如,比特或字节数)可相同或不同。在一些情况下,数据部分的长度可基于用于对数据部分进行加密的加密密钥的长度。例如,加密密钥的长度可与数据部分相同或比数据部分长。在这方面,加密密钥的长度可基于可由用户、应用、服务器的所有者、政府机构和/或其它实体设定的期望的安全级别。

加密器可使用第一加密密钥对明文数据的第一数据部分进行加密以提供第一加密数据部分。加密器可基于第一加密密钥生成用于对明文数据的第二数据部分进行加密的第二加密密钥。在一些情况下,第二加密密钥也可基于第一数据部分和/或第一加密数据部分。例如,第二加密密钥可基于对第一加密密钥和第一数据部分或第一加密数据部分中的至少一个执行的按位运算(例如,xor、xnor、and、or和/或其它运算)。加密器可迭代地使用当前加密密钥对当前数据部分加密,生成要用于对下一数据部分进行加密的下一加密密钥,并切换为使用下一加密密钥对下一数据部分进行加密。在这方面,在第n次迭代,加密器可至少基于先前生成并用于对第(n-1)数据部分进行加密的第(n-1)加密密钥来生成用于对第n数据部分进行加密的第n加密密钥。第n加密密钥也可基于第(n-1)数据部分和/或第(n-1)加密数据部分。

在一方面,第一加密密钥可以是或可基于由加密器接收的真正随机比特流。真正随机比特流可由真正随机比特生成器(例如,基于量子力学过程)生成或者通过将真正随机比特流混合来生成。为了对明文数据的剩余部分进行加密,加密器然后可推导后续加密密钥(例如,无需从真正随机比特生成器接收真正随机比特流)。

加密器可将加密数据部分以及与第一加密密钥和任何后续加密密钥关联的信息发送到解密器。所述信息可指示由加密器使用的第一加密密钥以及在加密处理的各次迭代中执行以生成后续加密密钥的按位运算,和/或允许解密器生成对应第一解密密钥和后续解密密钥的信息。在一方面,可作为加密器与解密器之间的密钥交换(例如,量子密钥交换)的一部分提供这些信息。

在一些情况下,加密器可发送包括一个或更多个加密数据部分的数据分组(例如,作为数据分组的有效载荷)。数据分组可标识(例如,在其头中)数据分组中的加密数据部分的长度、指示数据分组中的加密数据部分安置在整个明文数据内的何处的信息、和/或通常在由解密器解密时方便数据部分的重组的任何其它信息。需要注意的是,在一些情况下将明文数据的数据部分指定为第一数据部分、第二数据部分、第三数据部分等可为任意的,只要信息被提供给解密器以允许将加密数据部分解密并从解密的数据部分重组明文数据即可。

在解密器处,解密器可从加密器接收加密数据的第一数据部分(例如,第一加密数据部分)。解密器可使用第一解密密钥将第一数据部分解密以提供第一解密数据部分。解密器可基于第一解密密钥生成用于对加密数据的第二数据部分进行解密的第二解密密钥。第二解密密钥也可基于第一解密数据部分和/或第一加密数据部分。例如,第二解密密钥可基于对第一解密密钥和第一解密数据部分或第一加密数据部分中的至少一个执行的按位运算。

解密器可迭代地使用当前解密密钥对当前加密数据部分解密,生成要用于对下一加密数据部分进行解密的下一解密密钥,并切换为使用下一解密密钥对下一加密数据部分进行解密。在这方面,在第n次迭代,解密器可至少基于先前生成并用于对第(n-1)加密数据部分解密的第(n-1)解密密钥来生成用于对第n加密数据部分进行解密的第n解密密钥。第n解密密钥也可基于第(n-1)加密数据部分和/或解密的第(n-1)数据部分。在这方面,解密器可从加密器接收与第一解密密钥和任何后续解密密钥关联的信息。例如,解密器可基于从加密器接收的指示第一加密密钥的信息来检索或推导第一解密密钥。解密器可对运算对象(例如,先前生成的解密密钥、先前解密的数据部分和/或先前加密的数据部分)执行诸如按位运算的运算,以生成与加密器用来生成对应加密密钥的运算和运算对象对应的后续解密密钥。

为不同的数据部分生成不同的加密密钥(以及对应解密密钥)有助于增强安全性,因为不使用单个加密密钥来加密整个明文数据。例如,即使在解密器存储解密密钥并且攻击者能够检索解密密钥的情况下,攻击者仅可使用解密密钥将加密数据部分之一解密,因为其它加密数据部分与不同的解密密钥关联。在示例中,对于要加密并且随后解密的下一明文数据,加密和解密处理可重新开始,由加密器和解密器执行新的密钥交换。

在一个或更多个示例中,密钥材料和/或关联的数据可在使用之后被擦除。在加密侧,密钥材料可以是加密密钥,关联的数据可以是使用加密密钥加密的数据(例如,数据部分)。在解密侧,密钥材料可以是解密密钥,关联的数据可以是使用解密密钥解密的加密数据(例如,加密数据部分)。在一方面,密钥材料可由随机比特生成器(例如,真随机比特生成器)生成和/或从随机比特流(例如,真随机比特流)推导。在一方面,密钥材料通常是任何比特序列,其不需要是或不需要基于真正随机比特流。

在示例中,计算装置可在第一存储器中接收第一数据,在第二存储器中接收第一密钥。计算装置可使用逻辑电路基于第一数据和第一密钥来生成第二数据。计算装置可提供第二数据以用于传输。计算装置可擦除第一密钥和/或第一数据。第一密钥和/或第一数据的擦除可发生在一个时钟循环内(例如,在与生成第二数据相同的时钟循环中)。例如,擦除可发生在生成第二数据的半个时钟循环中。在一些情况下,可通过利用预定比特值(例如,所有存储器单元利用值1覆写)或预定比特值序列覆写来擦除第一密钥和/或第一数据。在其它情况下,可通过将逻辑电路的结果反馈到第一存储器和/或第二存储器中来擦除第一密钥和/或第一数据。在一方面,可使用不同的机制来擦除第一密钥和/或第一数据。密钥和/或关联的数据的擦除可缩短密钥和/或关联的数据保持存储在其相应存储器中的持续时间,因此至少通过减少攻击者获得这些信息的可用时间量而增强了安全性。另外,密钥和/或关联的数据的擦除防止了在使用密钥对关联的数据进行加密或解密之后再次使用该密钥和/或关联的数据。

在加密侧,计算装置可以是加密器,所接收的第一数据是明文数据(例如,明文数据部分),第一密钥是加密密钥。在一些情况下,第一数据部分可以是较大的明文数据的一部分。在这些情况下,可基于第一加密密钥生成用于对较大的明文数据的第二数据部分进行加密的第二加密密钥。第二加密密钥也可基于第一数据部分和/或第一加密数据部分。

在解密侧,计算装置可以是解密器,所接收的第一数据是第一加密数据,第一密钥是解密密钥。在一些情况下,第一数据可以是较大的加密数据的一部分。在这些情况下,可基于第一解密密钥生成用于对较大的加密数据的第二加密数据部分进行解密的第二解密密钥。在一些情况下,第二解密密钥也可基于第一加密数据部分和/或第一解密数据部分。

在一些示例中,在加密侧,明文数据和/或加密数据可另选地和/或另外地使用其它加密技术来加密。作为一个示例,明文数据和/或加密数据可使用一种或更多种加密技术来加密(例如,在一些情况下,进一步加密),例如(作为非限制性示例)数据加密标准(des)加密算法、高级加密标准(des)加密算法、其它对称加密算法、非对称加密算法和/或其它类型的加密。类似地,在解密侧,加密数据和/或解密数据可另选地和/或另外地使用其它解密技术来解密,例如使用des、aes、其它对称解密算法、非对称解密算法和/或其它类型的解密中的一种或更多种。

现在参照附图,图1示出可根据本公开的一个或更多个示例实现数据加密/解密和数据通信(例如,发送、接收)的示例网络环境100。然而,可能并非需要所描绘的所有组件,一个或更多个示例可包括图中所示的附加组件。在不脱离本文所阐述的权利要求的精神或范围的情况下,可进行组件的布置方式和类型的变化。可提供附加组件、不同的组件和/或更少的组件。

网络环境100包括计算装置105a-d和网络110。计算装置105a-d可彼此通信(例如,发送和/或接收)数据。例如,计算装置105a-d可加密数据,解密数据,传送加密数据(例如,安全地发送、接收和/或存储信息)。计算装置105a-d可直接和/或经由网络110连接在一起。在图1中,计算装置105a-d经由相应连接115a-d连接到网络110,计算装置105a和105c经由连接115e直接连接。在一些情况下,计算装置105a-d可以是使用处理器间和/或进程间通信的处理器和/或进程,其可以在连接在一起或跨网络110连接的处理器和/或进程之间。

计算装置105a-d中的每一个可包括能够建立一个或更多个连接(例如,有线、无线、蜂窝和/或光学连接)以与另一系统、装置、和/或系统和/或装置的组合通信的任何系统、装置、和/或系统和/或装置的组合。作为示例,连接115a-e中的每一个可表示用于方便计算装置105a-d之间的连接的一个或更多个有线、无线、蜂窝、光学和/或其它连接。计算装置105a-d可包括(作为非限制性示例)服务器、台式服务器、web服务器、基于云的服务器、台式计算机、飞机计算机、卫星计算机、客户端计算机、主计算机、销售点装置、计算机集群、笔记本计算机、膝上型计算机、手持计算机、移动电话(例如,智能电话)、个人数字助理、平板等。在示例中,计算装置105a-d中的任一个可包括本文所描述的系统,例如图3、图5、图6、图7a至图7c、图8a至图8c、图9a至图9c、图10以及图15、图16和图17中所提供的示例系统。在示例中,计算装置105a-d中的任一个可执行本文所描述的处理,例如图4、图11至图14和图18中所提供的示例处理。

连接115a-e可用于发送和接收数据(例如,加密数据)。在一些情况下,连接115a-e可用于密钥交换,以方便所通信的数据的加密和解密。例如,为了方便计算装置105a和105c之间的安全通信,计算装置105a和105c可执行密钥交换以方便计算装置105a和105c之间通信的数据的加密和解密。与密钥交换关联的通信可通过连接115e;通过连接115a和115c和网络110;和/或其它连接。

网络110可以是网络或者完全或部分地结合操作的不同网络的任何集合,以提供与计算装置105a-d的连接性并允许计算装置105a-d之间的数据和关联的信息(例如,密钥信息)的通信。例如,计算装置105a-d经由其通信的网络110可包括(作为非限制性示例)互联网、电话网络、蜂窝网络、光纤网络、无线网络、基于云的网络、销售点网络、私人网络(例如,内联网)、局域网(lan)、广域网(wan)、个人域网(pan)或者其组合。在一种情况下,可通过诸如安全套接字层(ssl)或传输层安全性(tls)的安全通信协议来实现通信。

在示例中,计算装置105a-d中的一个或更多个可以是客户端装置,并且计算装置105a-d中的一个或更多个可以是服务器装置(例如,主服务器)。例如,计算装置105a和105b可以是客户端装置,并且计算装置105d可以是服务器装置。在此示例中,计算装置105c可托管服务于计算装置105a和105b的网络资源。网络资源可包括基于web的服务(例如,新闻网站)、基于云的服务(例如,数据存储服务)、销售点服务、应用服务和/或其它服务。经由网络110的通信可以是客户端对客户端、客户端对服务器、服务器对客户端和/或服务器对服务器。在一些情况下,可由计算装置105a-d实现分层客户端-服务器关系。例如,计算装置105c可以是用于向计算装置105a提供服务的服务器装置,而计算装置105c可以是用于从计算装置105d接收服务的客户端装置。作为另一示例,计算装置105c出于一个应用(例如,或应用的方面)的目的可以是计算装置105d的服务器装置,出于另一应用(例如,或应用的另一方面)的目的可以是计算装置105d的客户端装置。

尽管上面描述计算装置105a-d,其中两个是客户端装置,两个是服务器装置,但是网络环境100可包括彼此和/或经由网络110通信的任何数量的计算装置(例如,任何数量的客户端装置和任何数量的服务器装置)。另外,作为非限制性示例提供了连接115a-e。可在计算装置105a-d之间提供附加连接、更少连接和/或不同的连接。

图2示出可根据本公开的一个或更多个示例实现数据加密/解密和数据通信(例如,发送、接收)的示例计算装置200。然而,可能并非需要所描绘的所有组件,一个或更多个示例可包括图中所示的附加组件。在不脱离本文所阐述的权利要求的精神或范围的情况下,可进行组件的布置方式和类型的变化。可提供附加组件、不同的组件和/或更少的组件。在示例中,计算装置200可以是图1的计算装置105a-d中的任一个,可包括图1的计算装置105a-d中的任一个,或者可以是图1的计算装置105a-d中的任一个的一部分。在一方面,图2中的虚线可表示计算装置200的外壳。

计算装置200包括处理电路205、通信电路210、一个或更多个输出装置接口215、一个或更多个输入装置接口220、存储器225、电源230、其它组件235和总线240。处理电路205可执行存储在存储器225中的机器可读指令(例如,软件、固件或其它指令)。在示例中,处理电路205可执行指令以执行本文所描述的处理,例如图4、图11至图14和图18中所提供的示例处理。处理电路205可以是计算装置200中的一个或更多个逻辑电路(例如,加密逻辑电路、解密逻辑电路等),可包括其,或者可以是其一部分。处理电路205可被实现为一个或更多个微处理器、微控制器、专用集成电路(asic)、可编程逻辑器件(pld)(例如,现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)、现场可编程系统芯片(fpsc)或者其它类型的可编程装置)、编解码器和/或其它处理装置。

通信电路210可被配置为处理、管理或者以其它方式方便计算装置200的各种组件之间以及计算装置200与另一计算装置之间的有线和/或无线通信。在示例中,通信电路210可包括无线通信电路(例如,基于ieee802.11标准、bluetoothtm标准、zigbeetm标准或其它无线通信标准)、蜂窝电路或其它适当的通信电路。在一些情况下,通信电路210可被配置用于专用无线通信协议和接口。通信电路210可包括用于无线通信的天线,或者可与用于无线通信的天线通信。因此,在一个示例中,通信电路210可通过建立到手持装置、基站、无线路由器、集线器或其它无线联网装置的无线链路来处理、管理或者以其它方式方便无线通信。

通信电路210可被配置为与有线网络接口,例如经由以太网接口、电力线调制解调器、数字订户线(dsl)调制解调器、公共交换电话网(pstn)调制解调器、有线调制解调器和/或用于有线通信的其它适当组件。另选地或另外地,通信电路210可支持专用有线通信协议和接口。为了有线通信,通信电路210可被配置为经由有线链路(例如,通过网络路由器、交换机、集线器或其它网络装置)来通信。有线链路可利用电力线缆、同轴线缆、光纤线缆或者支持对应有线网络技术的其它线缆或线来实现。

输出装置接口215可将计算装置200连接至一个或更多个输出装置。输出装置接口215可包括图形和/或音频驱动器卡、图形和/或音频驱动器芯片、和/或图形和/或音频驱动器处理器。输出装置可使得计算装置200能够向用提供输出信息户。例如,输出装置可包括一个或更多个显示装置。显示装置可用于向用户显示信息,例如在计算装置200上运行的web浏览器应用中的web内容。作为示例,这种web内容可由服务器装置加密并发送到计算装置200。计算装置200可将加密的web内容解密并将解密的web内容显示在显示装置上以便于用户消费。

输入装置接口220可将计算装置200连接到一个或更多个输入装置。输入装置可使得用户能够向计算装置200提供(例如,输入)数据和命令。输入装置可包括例如音频传感器、麦克风、相机(静止或视频)、语音识别系统、键盘(例如,物理或虚拟键盘)、光标控制装置(例如,鼠标)、触摸屏、和/或用于向计算装置200提供用户输入的其它装置。在这方面,可按照诸如音频(例如,语音)、视觉和/或触觉的任何形式来接收用户输入。在一些情况下,输入装置可与显示器集成并且也可以是显示器的一部分(例如,在触摸屏显示器中)。

存储器225可用于存储信息以方便计算装置200的操作。作为非限制性示例,存储器225可包括非易失性存储器,例如只读存储器(rom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程(eeprom)、闪存、非易失性随机存取存储器(nvram)等。存储器225可包括易失性存储器,例如随机存取存储器(ram)、动态ram(dram)、静态ram(sram)等。存储器225可存储信息,例如要由计算装置200的各种组件(例如,处理电路205)执行的指令、要发送(例如,由通信电路210)的缓存信息(例如,真正随机比特流和加密数据)和/或其它信息。

存储器225可存储各种软件包,例如操作系统(os)245、用户应用250和/或加密/解密应用255。os245可以是管理计算装置200的资源(例如,硬件资源)并为其它程序(例如,用户应用250和/或加密/解密应用255)提供公共服务的任何软件。用户应用250可包括(作为非限制性示例)web浏览应用、数据库应用、文字处理应用、电子邮件应用、销售点应用和/或其它应用。加密/解密应用255可包括(作为非限制性示例)方便数据的加密和解密、密钥材料的生成、随机比特流(例如,真正随机比特流)的生成和/或通常与数据加密/解密和数据通信关联的其它处理的指令。

在示例中,与os245、用户应用250、加密/解密应用255和/或其它应用关联的指令可由处理电路205执行以实现本文(例如,图4、图11至图14以及图18中)所描述的步骤和/或操作。用户应用250和/或加密/解密应用255可采取在具体实现有机器可读程序代码的一个或更多个机器可读介质中具体实现的计算机程序产品的形式。在一些情况下,可例如经由通信电路210从另一机器可读介质或从另一系统和/或装置将指令读取到存储器225中。另选地和/或另外地,代替软件指令或与软件指令组合,可使用硬连线电路来实现本文所描述的步骤和/或操作。如本文所用,术语机器可读介质可指参与向处理电路205提供指令以用于执行的任何介质。可使用一个或更多个机器可读介质的任何组合。作为一个示例,机器可读介质可包括诸如非暂时性机器可读存储介质(例如,存储器225)的机器可读存储介质。

在一个或更多个示例中,可通过使用密钥材料进行数据的加密和解密来方便安全通信。在一些方面,密钥材料包括基于一个或更多个真正随机比特流生成的加密密钥和关联的解密密钥。在一些情况下,真正随机比特流的各个比特具有绝对相等的概率为1或0。真正随机比特的高速生成可方便流过网络(例如,图1的网络110)的大量信息的安全通信。

电源230可供电以操作计算装置200(例如,通过向计算装置200的各种组件供电)。电源230可以是或者可包括一个或更多个电池(例如,可再充电池、非可再充电池)。另选地或另外地,电源230可以是或者可包括一个或更多个太阳能电池。太阳能电池可用于供电以操作计算装置200和/或向一个或更多个可再充电池充电。另外,计算装置200可包括其它组件235。作为非限制性示例,其它组件235可用于实现各种应用可期望的计算装置200的任何特征。作为一个示例,计算装置200可包括用于雷达成像应用的组件,其中通过雷达成像应用收集的数据可被加密并发送(例如,经由处理电路205和通信电路210)。总线240可用于方便计算装置200的各种组件之间的数据通信。

图3示出根据本公开的一个或更多个示例的用于生成真正随机比特流的系统300的框图。系统300包括真正随机比特生成器源305和310、存储器315、325和340、逻辑电路335以及时钟电路345。真正随机比特生成器源305和310可生成真正随机比特流,真正随机比特流然后分别被存储在存储器315和325中。如图3所示,真正随机比特生成器源305可将其所生成的真正随机比特流提供给存储器315的存储器单元320a-h,并且真正随机比特生成器源310可将其所生成的真正随机比特流提供给存储器325的存储器单元330a-h。逻辑电路335可从存储器单元320a-h和330a-h检索真正随机比特流并基于所检索的真正随机比特流来生成真正随机比特流。在一方面,存储器315、325和/或340可以是移位寄存器。需要注意的是,存储器单元320a-h和330a-h可分别表示为方便真正随机比特流生成而分配的存储器315和325的一部分。存储器315和325可包括用于其它目的的其它存储器单元(图3中未示出)。

在示例中,为了生成真正随机比特流,逻辑电路335可对存储在存储器单元320a-h和330a-h中的真正随机比特流执行按位运算。在一种情况下,为了生成其真正随机比特流的各个比特,逻辑电路335可取存储在存储器单元320a-h中的一个比特作为一个运算对象,取存储在存储器单元330a-h中的一个比特作为另一运算对象,并对这两个运算对象执行按位运算。作为这种情况的示例,逻辑电路335可对存储在存储器单元320a中的真正随机比特和存储在存储器单元330a中的真正随机比特执行按位运算,对存储在存储器单元320b中的真正随机比特和存储在存储器单元330b中的真正随机比特执行按位运算,依此类推。

在一方面,随机比特生成器源305和310可以是生成无偏真随机比特的真随机生成器电路(例如,各个比特具有绝对50%的概率为0或1)。在此示例的一些情况下,真正随机比特生成器源305和310可基于量子力学过程来生成真随机比特。在一方面,逻辑电路335可将从真正随机比特生成器源305和310接收的无偏真绝对随机比特组合以生成作为无偏真随机比特流的另一真正随机比特流。在一些情况下,逻辑电路335可对来自真正随机比特生成器源305和310的真正随机比特流执行按位运算,其维持与真正随机比特生成器源305和310关联的熵。例如,按位运算可具有逻辑相等,其中当两个函数自变量具有相同的逻辑值时,其给出的函数值为真(例如,1),当函数自变量不同时为假(例如,0)。按位运算可例如是xor运算(由⊕表示),其具有下表1所示的真值表。作为另一示例,按位运算可以是xnor运算,其具有下表2所示的真值表。如表1和表2所示,这些按位运算具有一半结果为0,一半结果为1的真值表。

表1:xor运算

表2:xnor运算

如图3所示,逻辑电路335可提供其所生成的真正随机比特流以用于传输。在一些情况下,真正随机比特生成器源305和310可生成相同长度(例如,比特或字节数)的真正随机比特流以方便由逻辑电路335处理。尽管在图1中真正随机比特流具有长度八,其中逻辑电路335在一次迭代中从存储器315和325中的每一个检索八位,但是需要注意的是,预定长度可以是任何数量的比特。在这方面,可逐比特地(例如,随着各个比特生成)或者比特成批地(例如,在各个比特生成之后缓存,然后成批地提供)将真正随机比特提供给存储器315、325和/或340。例如,在逐比特(例如,所述预定长度为一)的情况下,逻辑电路335可从存储器315和325中的每一个检索一个比特,对这一对比特执行按位运算以获得一个真正随机比特,并将结果提供在存储器340中。在这种情况下,比特流可作为连续比特流提供在存储器340中。需要注意的是,存储器315、325和/或340可具有与图3所示不同数量的存储器单元。

在一些情况下,真正随机比特流中的比特数可基于期望的安全级别。基于期望的安全级别,真正随机比特流中的比特数可为8位、128位、256位或512位,或者通常任何指定数量的比特。作为示例,当期望48位真正随机比特流时,48位真正随机比特流可以是由真正随机比特生成器源305生成的第一和第二组8位真正随机比特流、由真正随机比特生成器源310生成的第一和第二组8位真正随机比特流、由逻辑电路335基于来自真正随机比特生成器源305和310的第一组8位真正随机比特流生成的一组8位真正随机比特流以及由逻辑电路335基于来自真正随机比特生成器源305和310的第二组8位真正随机比特流生成的另一组8位真正随机比特流的组合(例如,级联)。作为另一示例,当期望4位真正随机比特流时,可通过从存储在存储器315、325和/或340中的比特当中采样来获得四个比特。因此,真正随机比特生成器305和/或310;存储器315、325和/或340;和/或逻辑电路335可经由一次迭代(例如,在存储器315、325和340中的每一个中的一组8位真正随机比特流)或经由多次迭代生成期望的安全级别所需的比特数。

时钟电路345可生成使真正随机比特生成器源305和310和逻辑电路335的操作同步的时钟信号。在一些情况下,存储器315、325和/或340的操作也可使用来自时钟电路345的时钟信号来同步。例如,当存储器315、325和/或340是移位寄存器时,时钟信号可控制移位寄存器的移位操作。在一些方面,逻辑电路335可通过对由真正随机比特生成器源305和310生成的随机比特流(例如,真随机比特流)执行低复杂度、高速按位运算来方便更高速地生成真正随机比特流,因此相对于真正随机比特生成器源305和310生成所有真正随机比特流的情况,可增加随机比特流(例如,真随机比特流)生成的速率。在示例中,真正随机比特流可用作或者可推导出密钥材料。

在示例中,系统300可被实现于计算装置200内。在一些情况下,真正随机比特生成器源305和310和/或逻辑电路335可被实现为处理电路205的一部分,和/或存储器315、325和/或340可以是图2的存储器225的一部分。在另一示例中,系统300可连接到计算装置200并且可提供所生成的真正随机比特流以由计算装置200使用(例如,用于生成密钥材料)。

图4示出根据本公开的一个或更多个示例的用于生成绝对真正随机比特流的示例处理400的流程图。出于说明性目的,本文中参照图3的系统300来描述示例处理400;然而,示例处理400不限于图3的示例系统300。需要注意的是一个或更多个操作可根据需要被组合、省略和/或按照不同的顺序执行。

在方框405,在存储器315中接收第一真正随机比特流。在方框410,在存储器325中接收第二真正随机比特流。第一和第二真正随机比特流可分别由真正随机比特生成器源305和310提供。在方框415,逻辑电路335通过执行按位运算以组合第一和第二真正随机比特流来生成第三真正随机比特流。在一方面,在一个运算对象是来自第一真正随机比特流的比特,另一运算对象是来自第二真正随机比特流的比特的情况下,可通过执行按位运算来获得第三真正随机比特流的各个比特。作为示例,存储器单元320a中的真正随机比特bs1,0可与存储器单元330a中的真正随机比特bs2,0组合以生成要存储(例如,缓存)在存储器340中的真正随机比特bs3,0。在这方面,按位运算可保留由真正随机比特生成器源305和310生成的真正随机比特流的熵。例如,按位运算可具有逻辑相等,例如xor或xnor运算。

在方框420,将第三真正随机比特流存储在存储器340中。在方框425,提供第三真正随机比特流以用于传输。第三真正随机比特流可被提供给处理电路205以用作或用于推导密钥材料(例如,加密密钥)。例如,可响应于对真正随机比特流(例如,用作用于对要发送的数据进行加密的密钥材料)的请求(例如,来自图2的处理电路205)生成第三真正随机比特流并发送到处理电路205。在示例中,第一、第二和第三随机比特流可以是绝对真且无偏随机比特流。在一种情况下,第一、第二和第三随机比特流可具有相同的长度。

图5示出根据本公开的一个或更多个示例的用于生成真正随机比特流的系统500的框图。系统500包括图3所示的真正随机比特生成器源305、存储器315和时钟电路345。系统500还包括逻辑电路505和存储器510。真正随机比特生成器源305可生成真正随机比特流,真正随机比特流然后被存储在存储器315中。逻辑电路505可从存储器315的存储器单元320a-h检索真正随机比特流并基于所检索的真正随机比特流生成新的真正随机比特流。在一方面,逻辑电路505可对所检索的真正随机比特流中的两个或更多个比特执行按位运算(例如,xor运算)以生成新的真正随机比特流的各个比特。逻辑电路505可将所生成的真正随机比特流存储在存储器510中。在示例中,提供在存储器315中的真正随机比特流以及由逻辑电路505生成的真正随机比特流可以是真且无偏随机比特流。在示例中,系统500可被实现于计算装置200内。在一些情况下,真正随机比特生成器源305和/或逻辑电路505可被实现为处理电路205的一部分,和/或存储器510可以是图2的存储器225的一部分。在另一示例中,系统500可连接到计算装置200并且可提供所生成的真正随机比特流以由计算装置200使用。

图6示出根据本公开的一个或更多个示例的用于生成真正随机比特流的系统600的框图。系统600包括真正随机比特生成器源305、存储器315、时钟电路345和逻辑电路605。逻辑电路605可从存储器315的存储器单元320a-h检索真正随机比特流并基于所检索的真正随机比特流生成包括真正随机比特bs4,6、bs4,5、bs4,4、bs4,3、bs4,2、bs4,1和bs4,0的真正随机比特流。逻辑电路605可通过在存储在存储器中的成对比特之间执行按位运算来生成各个真正随机比特。在这方面,逻辑电路605可包括组合器610a-g,各个组合器从存储器315接收一对比特。在一些情况下,组合器610a-g中的每一个可从存储器单元接收一对比特,这一对比特相邻,被引用为相邻,或者说被称为相邻。例如,在图6中,存储器单元320a可被称为与存储器单元320b相邻,存储器单元320b可被称为与存储器单元320a和320c相邻,依此类推。在一些情况下,组合器610a-g可实现具有逻辑相等的按位运算,例如xor运算或xnor运算。

在示例中,时钟电路345生成时钟信号以方便真正随机比特生成器源305、存储器315和逻辑电路605的同步。逻辑电路605可以是图5的逻辑电路505,可包括图5的逻辑电路505,或者可以是图5的逻辑电路505的一部分。由逻辑电路605生成的这些真正随机比特可被提供以用于存储(例如,存储在诸如存储器510的存储器中)和/或以用于传输。

尽管图6示出用于存储器315的各对比特的一个组合器,但是系统600可包括更少的组合器,更多的组合器,和/或不同布置方式的组合器。在一些情况下,单个组合器可用于对来自存储器315的成对比特执行按位运算。例如,在一个时钟循环中,单个组合器可基于比特bs1,1和bs1,0生成比特bs4,0;在下一时钟循环中,单个组合器可基于比特bs1,2和bs1,1生成比特bs4,1;对于各个后续时钟循环,依此类推。在一些情况下,例如图6所示的两个或更多个组合器可并行操作,使得可在单个时钟循环中生成多个比特。使用两个或更多个组合器可允许真正随机比特生成的速率比利用一个组合器的情况更高,但是可利用附加芯片有效面积(chipreal-estate)和/或与利用一个组合器的情况相比增加处理复杂度。

在一些方面,为了生成比特bs4,6之后的比特,真正随机比特可被提供给存储器315。例如,逻辑电路605可基于提供给存储器315的真正随机比特bs1,7和真正随机比特bs1,8(图6中未示出)生成下一真正随机比特bs4,7。在一些情况下,例如当存储器315被分配为仅存储器单元320a-h用于真正随机比特生成时,提供真正随机比特bs1,8可与移除当前存储在存储器单元320a-h之一中的比特关联。提供给存储器315的新比特(例如,bs1,8)可使得存储器315中的最旧真正随机比特(例如,bs1,0)从存储器315被移除。在这方面,存储器315可在各个时钟循环中接收一个新的真正随机比特并移除一个旧的真正随机比特。作为示例,在一方面,存储器315可被实现成移位寄存器,其将存储在存储器单元320a中的比特bs1,0移出,在比特bs1,7至bs1,1上移位(例如,右移)使得bs1,7从存储器单元320h移到存储器单元320g,比特bs1,1从存储器单元320b移到存储器单元320a,依此类推,并且将比特bs1,8移入存储器单元320h中。参照图7a至图7c来描述移位寄存器实现方式的示例。

图7a至图7c示出根据本公开的一个或更多个示例的用于在顺序时钟循环上生成真正随机比特的系统700的框图。系统700包括真正随机比特生成器源305、时钟电路345、存储器705和逻辑电路715。存储器705包括存储器单元710a-h。在示例中,图7a至图7c的系统700可以是或者可被认为是图6的系统600的移位寄存器实现方式。例如,存储器705的存储器单元710a-h可分别与存储器315的存储器单元320a-h对应。时钟循环可由时钟电路345限定。

图7a示出在时钟循环1期间真正随机比特的生成。在图7a中,存储器单元710a、710b、…、710h分别包含比特bs1,0、bs1,1、…、bs1,7。逻辑电路715可分别从存储器单元710a和710b接收比特bs1,0和bs1,1,并执行按位运算(例如,xor或xnor运算)以生成比特bs4,0。存储器705然后可被移位,使得存储器单元710a处的比特bs1,0被移出,存储器单元710b处的比特bs1,1被右移入存储器单元710a中,存储器单元710h处的比特bs1,7被右移入存储器单元710g中,依此类推。存储器705可在存储器单元710h中从真正随机比特生成器源305接收新真正随机比特bs1,8。在时钟循环1结束时,存储器单元710a、710b、…、710h分别包含比特bs1,1、bs1,2、…、bs1,8。在一方面,来自真正随机比特生成器源305的真正随机比特流的成对比特的这种组合可被称为将真正随机比特流与自身混合。

图7b示出在时钟循环2期间真正随机比特的生成。逻辑电路715可分别从存储器单元710a和710b接收比特bs1,1和bs1,2,并执行按位运算以生成比特bs4,1。存储器705然后可被移位以将比特bs1,1从存储器单元710a移出,将比特bs1,2至bs1,8右移,并将从真正随机比特生成器源305接收的新比特bs1,9移入存储器单元710h中。图7c示出在时钟循环3期间真正随机比特的生成。逻辑电路715可分别从存储器单元710a和710b接收比特bs1,2和bs1,3,并执行按位运算以生成比特bs4,2。后续时钟循环可生成后续比特,其可以是要存储和/或发送的真正随机比特流的一部分(例如,用于生成密钥材料)。在一方面,随机比特生成器源305可生成无偏且真随机比特流。在一方面,当具有逻辑相等的按位运算(例如,xor或xnor真值表)用于混合时,绝对无偏且真随机比特流与自身的混合生成另一绝对无偏且真随机比特流。

图8a至图8c示出根据本公开的一个或更多个示例的用于在顺序时钟循环上生成真正随机比特的系统800的框图。图7a至图7c的描述总体上适用于图8a至图8c,本文中描述差异的示例。在图8a至图8c中,代替由图7a至图7c的逻辑电路715执行的在各个时钟循环中接收并处理存储在存储器单元710a和710b中的比特,逻辑电路805在各个时钟循环中接收并处理存储在存储器单元710a和710c中的比特。

图8a示出在时钟循环1期间真正随机比特的生成。在图8a中,逻辑电路805可分别从存储器单元710a和710c接收比特bs1,0和bs1,2,并执行按位运算(例如,xor运算)以生成比特bs5,0。存储器705然后可被移位,使得存储器单元710a处的比特bs1,0被移出,存储器单元710b处的比特bs1,1被右移到存储器单元710a中,存储器单元710h处的比特bs1,7被右移到存储器单元710g中,依此类推。存储器705可在存储器单元710h中从真正随机比特生成器源305接收新的真正随机比特bs1,8。在时钟循环1结束时,存储器单元710a、710b、…、710h分别包含比特bs1,1、bs1,2、…、bs1,8。

图8b示出在时钟循环2期间真正随机比特的生成。逻辑电路805可分别从存储器单元710a和710c接收比特bs1,1和bs1,3,并执行按位运算以生成比特bs5,1。存储器705然后可被移位以将比特bs1,1从存储器单元710a移出,将比特bs1,2至bs1,8右移,并将从真正随机比特生成器源305接收的新比特bs1,9移入存储器单元710h中。图8c示出在时钟循环3期间真正随机比特的生成。逻辑电路805可分别从存储器单元710a和710c接收比特bs1,2和bs1,4,并执行按位运算以生成比特bs5,2。后续时钟循环可生成后续比特。

需要注意的是,尽管图7a至图7c和图8a至图8c的时钟循环分别被称为时钟循环1、2和3,这种索引(例如,1、2、3)用于方便指示这些时钟循环是时间上相邻的时钟循环。在这方面,可存在发生在时钟循环1之前的时钟循环。系统700和800可并行操作,使得来自真正随机比特生成器源305的真正随机比特流可在不同的点与自身混合(例如,存储器单元710a和710b在系统700中混合,存储器单元710a和710c在系统800中混合)。在一方面,一个或更多个逻辑电路可将存储在任一对存储器单元710a-h中的比特组合。这种并行混合可方便更高速率的真正随机比特流生成。

图9a至图9c示出根据本公开的一个或更多个示例的用于在顺序时钟循环上生成真正随机比特流的系统900的框图。图7a至图7c和图8a至图8c的描述总体上适用于图9a至图9c,本文中描述差异的示例。系统900包括真正随机比特生成器源305和存储器单元910a-h。在示例中,存储器单元910a-h可以是存储器315的一部分。在一些情况下,存储器单元910a-h可以是移位寄存器的一部分。在图9a至图9c中,从存储器单元910a到存储器单元910b-h中的每一个的连接915是存储在存储器单元910a中的随机比特与存储在存储器单元910b-h中的随机比特组合的简略表示。所述组合可由逻辑电路执行并且可包括诸如xor或xnor运算的按位运算。例如,逻辑电路可包括一个或更多个组合器,各个组合器接收相应一对比特并将这一对比特组合。

图9a示出在时钟循环1期间随机比特流的生成。在图9a中,存储器单元910a、910b、…、910h分别包含比特bs1,0、bs1,1、…、bs1,7。比特bs1,0可与bs1,1、bs1,2、bs1,3、bs1,4、bs1,5、bs1,6和bs1,7中的每一个组合以分别生成比特bs4,0、bs5,0、bs6,0、bs7,0、bs8,0、bs9,0和bs10,0,如行920中所示。在一方面,存储器单元910a-h可由移位寄存器实现。在执行按位运算之后,移位寄存器可被移位,使得存储器单元910a处的比特bs1,0被移出,剩余比特被右移,并且新比特(例如,真正随机比特)bs1,8从真正随机比特生成器源305被提供到存储器单元910h中。在另一方面,代替移位寄存器,可适当调节存储器引用,使得在时钟循环2中真正随机比特bs1,1与真正随机比特bs1,2、bs1,3、bs1,4、bs1,5、bs1,6、bs1,7和bs1,8组合。在时钟循环1结束时,存储器单元910a、910b、…、910h分别包含比特bs1,1、bs1,2、…、bs1,8。

图9b示出在时钟循环2期间真正随机比特流的生成。比特bs1,1可与真正随机比特bs1,2、bs1,3、bs1,4、bs1,5、bs1,6、bs1,7和bs1,8组合以分别生成真正随机比特bs4,1、bs5,1、bs6,1、bs7,1、bs8,1、bs9,1和bs10,1,如行925中所示。图9c示出在时钟循环7期间真正随机比特流的生成。比特bs1,6可与bs1,7、bs1,8、bs1,9、bs1,10、bs1,11、bs1,12和bs1,13中的每一个组合,以分别生成比特bs4,6、bs5,6、bs6,6、bs7,6、bs8,6、bs9,6和bs10,6,如行930中所示。

图9d示出根据本公开的一个或更多个示例的顺序时钟循环上的真正随机比特流的生成。在这方面,图9d示出矩阵935,其包括分别来自图9a、图9b和图9c的针对时钟循环1、2和7的行920、925和930,以及与中间时钟循环关联的行。如图9a至图9d所示,由真正随机比特生成器源305生成的14个真正随机比特bs1,0至bs1,13用于生成七个7位真正随机比特流b1至b7。在此示例中,由真正随机比特生成器源305生成的两组七个真正随机比特(例如,bs1,0至bs1,6和bs1,7至bs1,13)提供九个7位真正随机比特流(例如,b1至b7,加bs1,0至bs1,6和bs1,7至bs1,13)。

在一些情况下,在时钟循环上生成的真正随机比特可被采样以提供附加比特流。作为示例,来自b1至b7中的每一个的一个比特可被采样以提供真正随机比特流b8至b14。例如,真正随机比特流b8可包括由行920提供的真正随机比特(例如,bs4,0、bs5,0、bs6,0、bs7,0、bs8,0、bs9,0和bs10,0)。真正随机比特流b8可通过对真正随机比特流b1至b7中的每一个的第0比特采样或者通过在时钟循环1期间提供真正随机比特流b8以用于传输和/或存储来获得。可另选地和/或另外地使用对比特流b1至b7进行采样的其它方式以生成附加真正随机比特流。因此,在图9a至图9d所示的示例中,由真正随机比特生成器源305生成的两组7个真正随机比特可用于生成许多附加7位真正随机比特流。在期望的安全级别使用大于七个比特的比特流的情况下,多个这些7位真正随机比特流可被级联或者以其它方式组合以获得期望长度的真正随机比特流。在期望的安全级别使用少于7位真正随机比特流的情况下,7位真正随机比特流可被采样以获得期望长度的真正随机比特流。

图10示出根据本公开的一个或更多个示例的通过一个或更多个真正随机比特流的混合生成附加真正随机比特流。可对图9d所示的比特流b1至b7执行混合。从bs4,6到bs4,5的连接1005是指示真正随机比特流b1与自身混合(例如,bs4,6与比特bs4,5组合)的简略表示。在一个示例中,真正随机比特流b1可被提供在存储器(例如,移位寄存器)中并链接到方便混合的逻辑电路。这种系统可在架构上与图7a至图7c所示的存储器705和逻辑电路715相似。在一些情况下,其它真正随机比特流b2至b7中的每一个也可按照相似和/或不同的方式与自身混合。从bs10,6到bs8,4的连接1010是指示真正随机比特流b7与真正随机比特流b5混合(例如,bs10,6与比特bs8,4组合)的简略表示。可提供一个或更多个存储器以存储真正随机比特流b7和b5以方便这种混合。因此,在一方面,可适当地提供存储器以方便在真正随机比特流内的混合和/或在不同的真正随机比特流之间的混合。

图11示出根据本公开的一个或更多个示例的用于生成真正随机比特流的示例处理1100的流程图。出于说明性目的,本文中参照图7a至图7c的系统700来描述示例处理1100;然而,示例处理1100不限于图7a至图7c的示例系统700。例如,另选地和/或另外地,示例处理1100可随图8a至图8c的示例系统800或图9a至图9c的示例系统900使用。需要注意的是,一个或更多个操作可根据需要被组合、省略和/或按照不同的顺序执行。

在方框1105,在存储器705中接收第一真正随机比特流。第一真正随机比特流可由真正随机比特生成器源305提供。在方框1110,逻辑电路715生成第二真正随机比特流,其中该第二真正随机比特流的各个比特基于第一真正随机比特流的相应一对比特。在方框1115,存储第二真正随机比特流。在图7a至图7c中,这一对比特包括存储在存储器单元710a和710b中的比特。在此示例中,在时钟循环1期间,使用逻辑电路715将真正随机比特bs1,0与真正随机比特bs1,1组合(例如,执行xor运算)以获得真正随机比特bs4,0。在时钟循环2期间,使用逻辑电路715将真正随机比特bs1,1与真正随机比特bs1,2组合以获得真正随机比特bs4,1。在一些情况下,第二真正随机比特流的各个比特可随着逻辑电路715输出比特而被存储。

图12示出根据本公开的一个或更多个示例的用于生成真正随机比特流的示例处理1200的流程图。出于说明性目的,本文中参照图7a至图7c的系统700描述示例处理1200;然而,示例处理1200不限于图7a至图7c的示例系统700。例如,另选地和/或另外地,示例处理1100可随图8a至图8c的示例系统800或图9a至图9c中的示例系统900使用。在一方面,示例处理1200可在图11的示例处理1100方框1110处实现。需要注意的是,一个或更多个操作可根据需要被组合、省略和/或按照不同的顺序执行。

在方框1205,逻辑电路715从存储器705获得(例如,接收、检索)与要生成的第二真正随机比特流的当前比特关联的一对比特。在方框1210,逻辑电路715对这一对比特执行按位运算以获得当前比特。在图7a所示的示例中,逻辑电路715基于分别存储在存储器单元710a和710b中的一对比特bs1,0和bs1,1生成当前比特bs4,0。在方框1215,逻辑电路715确定是否需要生成第二真正随机比特流的更多比特。例如,要由系统700生成的比特流的长度可基于期望的安全级别,所述期望的安全级别可随时间推移和/或基于人输入而改变。例如,用户可直接指定真正随机比特流的期望长度和/或指定期望的安全级别以使得逻辑电路715针对期望的安全级别生成适当长度的真正随机比特流。

当逻辑电路715确定需要生成第二真正随机比特流的更多比特时,处理1200前进至方框1220。在方框1220,逻辑电路715将下一比特bs4,1设定为当前比特并前进至方框1205以方便生成比特bs4,1。在一方面,当存储器705是移位寄存器时,存储器705的比特可在方框1220移位一个比特以为下一迭代做准备。当逻辑电路715确定不需要生成第二真正随机比特流的更多比特(例如,第二真正随机比特流已被构造为指定长度)时,处理1200前进至方框1225。在方框1225,系统700继续执行排队的指令(例如,生成指定长度的下一真正随机比特流)或者当不存在排队的指令时等待指令。

需要注意的是,上面示出了基于来自一个或更多个真正随机比特生成器源(例如,305、310)和/或从来自真正随机比特生成器源的真正随机比特推导的真正随机比特生成附加真正随机比特流的示例方式。在示例中,随机比特可以是绝对无偏且真随机比特。真正随机比特可被组合以生成更多真正随机比特。可利用真正随机比特流的其它采样和/或真正随机比特流的混合来生成附加真正随机比特流。因此,在各种示例中,相对于真正随机比特和真正随机比特流严格地由一个或更多个真正随机比特生成器源生成的情况,真正随机比特和关联的真正随机比特流的生成速率可按许多因子(例如,2、5、10、100、1000或更高的因子)增加。在一些情况下,所生成的真正随机比特本身可以是诸如真正随机比特生成器源305和310的随机比特生成器源或随机数生成器源。在一些情况下,所生成的真正随机比特可逐比特提供(例如,随着各个比特生成)或比特成批提供(例如,在各个比特生成之后缓存,然后成批提供)。

在一个或更多个示例中,数据可使用密钥材料来加密和解密(例如,使用加密密钥加密,并使用对应解密密钥解密)。在加密侧,加密器可接收要加密的明文数据(例如,用户数据)。在解密器侧,解密器可接收要解密的加密数据(例如,用于存储和/或用户消费)。在一些方面,密钥材料可以是真正随机比特生成器(例如,305和/或310)所生成的一个或更多个真正随机比特流或者可基于真正随机比特生成器(例如,305和/或310)所生成的一个或更多个真正随机比特流推导(例如,通过例如图3至图6、图7a至图7c、图8a至图8c、图9a至图9d以及图10至图12所描述的机制)。在一些方面,密钥材料不需要是或不需要基于随机比特流或真随机比特流。

图13示出根据本公开的一个或更多个示例的用于方便迭代数据加密和加密密钥生成的示例处理1300的流程图。出于说明性目的,本文中参照图1的示例网络环境100来描述示例处理1300;然而,示例处理1300不限于图1的示例网络环境100。另外,出于说明性目的,计算装置105d是加密器并且计算装置105a是解密器。需要注意的是,一个或更多个操作可根据需要被组合、省略和/或按照不同的顺序执行。

在方框1305,计算装置105d接收要加密的明文数据。明文数据可被存储在计算装置105d的存储器(例如,存储器225)中。例如,计算装置105d可以是托管网站的服务器并且明文数据包括web内容。在此示例中,计算装置105d可应接收自计算装置105a的对关联的web内容的请求检索明文数据。在方框1310,计算装置105d将明文数据划分(例如,分段、分割)成要加密的一个或更多个数据部分。例如,计算装置105d可将明文数据划分成一个或更多个数据部分以方便明文数据的加密和/或加密数据的传输。明文数据的各个数据部分的长度(例如,比特或字节数)可相同或不同。在一些情况下,数据部分的长度(例如,比特或字节数)可基于用于发送数据部分的通信协议和/或要用于对该部分进行加密的加密密钥的长度。在这方面加密密钥的长度可基于期望的安全级别(例如,由用户设定,由服务器的所有者、政府机构等规定)。

在方框1315,计算装置105d利用逻辑电路(例如,也称为加密逻辑电路)使用第一加密密钥对明文数据的第一数据部分进行加密以提供加密的第一数据部分。明文数据的第一数据部分、第一加密密钥和加密的第一数据部分可被存储(例如,缓存)在计算装置105d的存储器(例如,存储器225)中。在一些情况下,被认为是第一数据部分的明文数据的数据部分可由计算装置105d任意选择。在一方面,计算装置105d可通过对第一数据部分和第一加密密钥应用按位运算来对第一数据部分进行加密。在一个示例中,为了获得加密数据部分的各个比特,计算装置105d可对第一数据部分的一个比特和第一加密密钥的一个对应比特执行xor运算,但是通常可使用诸如xnor运算、and运算、or运算、其它运算或其组合的任何按位运算。在一些情况下,第一加密密钥可以是来自一个或更多个真正随机比特生成器源(例如,图3的305和/或310)的一个或更多个真正随机比特流或者可基于来自一个或更多个真正随机比特生成器源(例如,图3的305和/或310)的一个或更多个真正随机比特流推导。在其它情况下,第一加密密钥不是或不基于真正随机比特流。

在方框1320,计算装置105d发送指示用于第一数据部分的加密的第一加密密钥的信息以及指示任何后续加密密钥的信息。这些信息可向计算装置105a(例如,此示例中的解密器)指示如何生成第一解密密钥(例如,与第一加密密钥对应)和任何后续解密密钥(例如,与后续加密密钥对应)。在一些情况下,指示第一加密密钥和后续加密密钥(如果有的话)的信息可作为计算装置105a和105d之间的密钥交换的一部分提供。该信息可被存储在计算装置105d的存储器(例如,存储器225)中。

在方框1325,计算装置105d将第一加密数据部分发送到计算装置105a(例如,经由连接115d和115a和网络110)。在一些情况下,计算装置105d在数据分组中(例如,作为数据分组的有效载荷)发送第一加密数据部分。在一些情况下,数据分组可包括标识第一加密数据部分的长度的头、指示第一数据部分安置在整个明文数据内的何处的信息(例如,以方便解密器重组数据部分)和/或与第一数据部分和/或及其加密关联的其它信息。

在方框1330,计算装置105d确定在方框1305接收的明文数据中是否有更多数据部分要加密。当有更多数据部分要加密时,处理1300前进至方框1335。在方框1335,计算装置105d基于第一加密密钥以及加密的第一数据部分或明文第一数据部分中的至少一个来生成用于明文数据的第二数据部分的加密的第二加密密钥。在这方面,第二加密密钥可基于第一加密密钥和第一加密数据部分、第一加密密钥和第一明文数据部分、或者第一加密密钥和第一加密数据部分与第一明文数据部分的组合来生成。

在一方面,第一明文数据部分和第一加密数据部分可具有相同的长度。第一加密密钥的长度可至少为第一明文数据部分的长度。作为一个示例,可通过对第一加密密钥和第一明文数据部分的加扰版本执行按位运算来生成第二加密密钥。在此示例中,第一明文数据部分的加扰版本可包括翻转第一明文数据部分,使得第一明文数据部分的第一比特是加扰的第一明文数据部分的最后比特,反之亦然,对于中间比特依此类推。指示第二加密密钥如何生成的信息可在方框1320被发送到计算装置105a。该信息可标识用于生成第二加密密钥的按位运算、加扰和/或明文和/或第一加密数据部分(或其组合)的部分。

在方框1340,计算装置105d从第一加密密钥切换为第二加密密钥并使用第二加密密钥对明文数据的第二部分进行加密。在方框1345,计算装置105d将第二加密数据部分发送到计算装置105a。处理1300然后前进至方框1330,其中计算装置105d确定明文数据是否具有要使用第三加密密钥加密的第三数据部分,其中第三加密密钥(例如,当第三数据部分存在时)基于第二加密密钥和第二加密数据部分或第二明文数据部分中的至少一个来生成。

方框1330、1335、1340和1345可迭代地执行,直至要加密的明文数据的所有部分已被加密。例如,在第n次迭代中,用于对明文数据的第n部分进行加密的第n加密密钥可基于第(n-1)加密密钥和第(n-1)数据部分或加密的第(n-1)数据部分(例如,使用第(n-1)加密密钥加密的第(n-1)数据部分)中的至少一个来生成。当计算装置105d在方框1330确定没有更多数据部分要加密时,处理1300前进至方框1350。在方框1350,计算装置105d继续现有指令或等待新的指令。当计算装置105d确定没有明文数据的更多数据部分要加密时,处理1300前进至方框1350。在方框1350,计算装置105d继续执行排队的指令(例如,对下一明文数据进行加密)或者当不存在排队的指令时等待指令。

图14示出根据本公开的一个或更多个示例的用于方便数据解密和解密密钥生成的示例处理1400的流程图。出于说明性目的,本文中参照图1的示例网络环境100来描述示例处理1400;然而,示例处理1400不限于图1的示例网络环境100。需要注意的是,一个或更多个操作可根据需要被组合、省略和/或按照不同的顺序执行。在示例中,处理1400可由计算装置105a响应于从计算装置105d接收到加密数据而执行。例如,计算装置105d可通过执行图14的处理1400将加密数据提供给计算装置105a。

在1405,计算装置105a接收指示第一解密密钥和任何后续解密密钥的信息。在一些情况下,该信息可标识第一加密密钥以及由计算装置105d用来生成后续加密密钥的按位运算、加扰和/或明文数据部分和/或加密数据部分(或其组合)的部分。计算装置105a可基于来自计算装置105d的这种信息确定或确定如何生成第一解密密钥和任何后续解密密钥。该信息可被存储在计算装置105a的存储器(例如,存储器225)中。

在方框1410,计算装置105a接收加密数据。在方框1415,计算装置105a使用第一解密密钥将第一加密数据部分解密。在一方面,各个加密数据部分可以是具有头的数据分组的一部分,该头具有关于加密数据部分安置在明文数据中的何处的信息。计算装置105a可基于这种头信息来标识第一加密数据部分。在方框1420,计算装置105a确定是否有更多加密数据部分要解密。当有更多加密数据部分要解密时,处理1400前进至方框1425。加密数据(或其部分)、第一解密密钥和第一解密数据部分可被存储(例如,缓存)在计算装置105a的存储器(例如,存储器225)中。在方框1425,计算装置105a基于第一加密密钥以及解密的第一数据部分或加密的第一数据部分中的至少一个来生成用于加密数据的第二数据部分的解密的第二解密密钥。在这方面,计算装置105a可基于在方框1405从计算装置105d接收的信息来生成第二解密密钥。在这方面,这种信息可指示计算装置105a是否要基于第一解密密钥和第一解密数据部分、第一加密密钥和第一数据部分、或者第一解密密钥和第一解密数据部分与第一加密数据部分的组合生成第二解密密钥。例如,该信息可指定要由计算装置105a执行以生成第二解密密钥并使用第二解密密钥对第二加密部分进行解密的运算(例如,按位运算)和/或其它处理(例如,数据加扰/解扰)。

在方框1430,计算装置105a使用第二解密密钥将加密数据的第二数据部分解密。处理1400然后前进至方框1430,其中计算装置105a确定加密数据是否具有要使用第三解密密钥解密的第三部分。计算装置105a可根据在方框1405接收的信息来生成第三解密密钥。第三解密密钥可基于第二解密密钥和第二解密数据部分或第二加密数据部分中的至少一个来生成。方框1420、1425和1430可迭代地执行,直至加密数据的所有部分均已解密。例如,在第n次迭代中,用于对加密数据的第n部分进行解密的第n解密密钥可基于第(n-1)解密密钥以及加密的第(n-1)数据部分或解密的第(n-1)部分(例如,使用第(n-1)解密密钥解密的加密第(n-1)数据部分)中的至少一个来生成。

当计算装置105a确定没有更多数据部分要解密时,处理1400前进至方框1435。在方框1435,计算装置105a使用解密数据部分重组明文数据。一旦加密数据已被解密并重组,解密数据可被存储和/或使用。例如,解密数据可以是要在计算装置105a上运行的web浏览器应用中提供以显示给用户的网页内容。在方框1440,计算装置105a继续执行排队的指令(例如,对下一加密数据进行解密)或者当不存在排队的指令时等待指令。

在示例中,可由计算装置105d(和/或任何其它加密器)针对要加密(例如,并发送到另一计算装置)的各个明文数据执行处理1300。类似地,可由计算装置105a(和/或任何其它解密器)针对要解密的各个加密数据执行处理1400。在这方面,针对不同的数据和数据部分使用不同的密钥材料增强了安全性。例如,即使在解密器存储解密密钥并且攻击者能够检索解密密钥的情况下,攻击者仅可使用解密密钥将加密数据部分之一解密,因为其它加密数据部分与不同的解密密钥关联。

在一个或更多个示例中,密钥材料和/或关联的数据可在使用之后被擦除。在加密侧,密钥材料可以是加密密钥,关联的信息可以是使用加密密钥加密的数据(或数据部分)。在解密侧,密钥材料可以是解密密钥,关联的数据可以是使用解密密钥解密的加密数据(或加密数据部分)。在一方面,密钥材料可以是和/或可从由一个或更多个随机数生成器(例如,305和/或310)生成的一个或更多个真正随机比特流推导。在另一方面,密钥材料不是或不从真正随机比特流推导。密钥和/或关联的数据的擦除可缩短密钥和/或关联的数据保持存储在存储器中的持续时间,因此至少通过减少攻击者获得这些信息的可用时间量增强安全性。

图15示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的系统1500的框图。系统1500包括存储器1505、1510和1520和逻辑电路1515。存储器1505、1510和1520和逻辑电路1515可从时钟电路(例如,图3中的345)接收时钟信号以方便加密和/或解密。在示例中,系统1500可在计算装置105a-d中的任一个中实现。

系统1500可用于加密和/或解密。在一种情况下,当系统1500是或用作加密系统时,存储器1505可接收并存储要加密的明文数据,存储器1510可接收并存储用于对存储在存储器1505中的明文数据进行加密的加密密钥,逻辑电路1515可使用存储在存储器1510中的加密密钥对存储在存储器1505中的明文数据进行加密以提供加密数据,并且存储器1520可接收、存储并方便加密数据的传输。逻辑电路1515可通过对明文数据和加密密钥执行按位运算(例如,按照密钥交换期间指定的方式)对明文数据进行加密。例如,明文数据可以是在图13的方框1305接收的明文数据,可包括该明文数据,或者可以是该明文数据的一部分。例如,存储器1505中接收的数据可以是在图13的方框1310获得的部分之一。在一方面,加密密钥可在存储器1510中从真正随机比特生成器源(例如,305、310)接收或者从由一个或更多个真正随机比特生成器源生成的一个或更多个真正随机比特流推导。在一方面,加密密钥不是真正随机比特流或者不是从真正随机比特流推导。

在另一种情况下,当系统1500是或用作解密系统时,存储器1505可(例如,从加密器)接收要解密的加密数据并存储加密数据,存储器1510可接收并存储用于对存储在存储器1505中的加密数据进行解密的解密密钥,逻辑电路1515可使用存储在存储器1510中的解密密钥对存储在存储器1505中的加密数据进行解密以提供解密数据,并且存储器1520可接收、存储并方便解密的明文数据的使用(例如,通过提供解密数据以显示给用户)。逻辑电路1515可通过对加密数据和解密密钥执行按位运算(例如,按照密钥交换期间指定的方式)对加密数据进行解密。

在示例中,对于加密和解密系统二者,存储器1505和/或1510可被配置为接收擦除信号(例如,也称为覆写信号或擦除/覆写信号),该擦除信号在被启用(例如,被设定为逻辑高)时使得存储器1505和/或1510擦除存储器1505和/或1510的内容。例如,在一些情况下,存储器1510可接收擦除信号,该擦除信号在被启用时使得存储器1510擦除存储在存储器1510中的密钥。在一些方面,擦除信号与逻辑电路1515处生成输出几乎同时启用,其中该输出是加密系统的加密数据或解密系统的解密数据。在图15中,存储器1505和1510二者可接收擦除信号,该擦除信号对于存储器1505和1510可处于相同或不同的状态(例如,逻辑高、逻辑低)。在其它情况下,存储器1505或1510中的一个被配置为接收擦除信号。在各种示例中,针对存储器1505和1510中的一者或二者使用擦除信号至少通过缩短密钥(例如,加密密钥或解密密钥)和/或数据(例如,加密数据或明文数据)被存储的时间量而增强了安全性。

在一个方面,擦除信号可以是提供给(例如,存储在)存储器1505和/或1510的存储器单元以覆写存储在存储器单元中的内容的预定值(例如,0或1)或预定值序列。例如,永久1(或0)行可被提供给存储器1510以利用值1(或0)覆写包含在存储器1510中的密钥。作为另一示例,预定值序列(例如,0和1序列)可被提供给存储器1510的存储器单元以使得覆写。在另一方面,擦除信号可以是或可基于逻辑电路1515的输出。作为一个示例,逻辑电路1515的输出可被馈送到存储器1505和/或1510中以覆写包含在存储器1505和/或1510中的内容(例如,密钥、数据)。当存储器1505和1510二者都具有擦除信号时,其擦除信号可相同或者可不同。在示例中,存储器1505和1510可以是没有串行移出能力或者其串行移出能力被禁用的移位寄存器,以防止密钥和/或关联的数据经由串行移出路径从存储器1505和/或1510向外提供。

图16示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的系统1600的框图。在示例中,系统1600可以是图15的系统1500,可包括系统1500,或者可以是系统1500的一部分。图15的描述总体上适用于图16。在图16中,逻辑电路1515将擦除信号提供给存储器1505和1510。

图17示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的系统1700的框图。在示例中,系统1700可以是图15的系统1500或图16的系统1600,可包括系统1500或系统1600,或者可以是系统1500或系统1600的一部分。存储器1705、1710和1725可以分别是图15和图16的存储器1505、1510和1520,可分别包括存储器1505、1510和1520,或者可以分别是存储器1505、1510和1520的一部分。逻辑电路1715可以是逻辑电路1515,可包括逻辑电路1515,或者可以是逻辑电路1515的一部分。在图17中,逻辑电路1715包括组合器1720a和1720b。存储器1705、1710和1725中的省略号可表示一个或更多个附加存储器单元,逻辑电路1715中的省略号可表示一个或更多个附加组合器。

对于加密器,组合器1720a可分别从存储器1705和1710接收明文数据比特bd0和加密密钥比特bk0,并将其组合以生成加密数据比特br0以提供给存储器1725(例如,用于缓存)。组合器1720b可分别从存储器1705和1710接收明文数据比特bd1和加密密钥比特bk1,并将其组合以生成加密数据比特br1以提供给存储器1725。

类似地,对于解密器,组合器1720a可分别从存储器1705和1710接收加密数据比特bd1和解密密钥比特bk1,并将其组合以生成解密数据比特br0以提供给存储器1725(例如,用于缓存)。组合器1720b可分别从存储器1705和1710接收加密数据比特bd1和解密密钥比特bk1,并将其组合以生成解密数据比特br1以提供给存储器1725。在一些情况下,组合器1720a和1720b可执行诸如xor、xnor、and或or运算的按位运算或其它运算。由组合器1720a和1720b执行的按位运算可相同或者可不同。

如图17所示,组合器1720a(例如,比特br0)和组合器1720b(例如,比特br1)的输出被反馈到存储器1705和1710中。以这种方式,在来自组合器1720a和1720b的输出生成之后覆写密钥和关联的数据。在一方面,在来自组合器1720a和1720b的输出已生成之后很快进行密钥和关联的数据的覆写,因此缩短密钥和/或关联的数据被存储在存储器1710和1705中的时间量并防止密钥和关联的数据的再次使用。在一些情况下,代替将组合器1720a和1720b的输出直接馈送到存储器1705和1710,逻辑电路1715可处理(例如,加扰、反转比特等)输出并将处理的输出提供给存储器1705和1710。这些处理的输出可被称为与输出本身或输出的形式关联(例如,指示其)的信息。

图18示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的示例处理1800的流程图。出于说明性目的,本文中参照图15的示例系统1500来描述示例处理1800;然而,示例处理1800不限于图15的示例系统1500。需要注意的是,一个或更多个操作可根据需要被组合、省略和/或按照不同的顺序执行。在示例中,处理1800可以是加密处理或解密处理。作为示例,系统1500可被设置在计算装置105a中。

在方框1805,在存储器1505中接收第一数据。在方框1810,在存储器1510中接收密钥。在方框1815,逻辑电路1515基于第一数据和密钥来生成第二数据。对于加密处理,在存储器1505中接收的第一数据可以是明文数据(或其部分),在存储器1510中接收的密钥可以是加密密钥,并且第二数据可以是加密数据。对于解密处理,在存储器1505中接收的第一数据可以是加密数据(或其部分),在存储器1510中接收的密钥可以是解密密钥,并且第二数据可以是解密数据。在方框1820,逻辑电路1515提供第二数据以用于传输。例如,逻辑电路1515可提供数据以用于存储在存储器1520中(例如,用作缓存),其中数据可由存储器1520发送或者从存储器1520检索(例如,用于后续传输和/或消费)。

在方框1825,擦除密钥和/或第一数据。在一些情况下,预定值或值序列可被提供给存储器1505和/或1510以分别覆写存储在其中的第一数据和/或密钥。在一些情况下,逻辑电路1515可使用第二数据或基于第二数据生成的比特序列来覆写存储器1505和/或1510。在示例中,可针对要加密或解密的各个数据部分重复处理1800。可针对不同的数据部分生成不同的密钥。在一方面,可按照分别关于图13和图14的处理1300和1400描述的相似方式生成不同的密钥。

图19示出根据本公开的一个或更多个示例的用于方便关联的信息的加密/解密和擦除的时序图1900和关联的时钟信号。出于说明性目的,本文中参照图15的示例系统1500和图18的示例处理1800来描述时序图1900;然而,时序图1900不限于图15的示例系统1500和图18的示例处理1800。

时序图1900包括时钟信号1905和1910。时钟信号1910具有周期t2,其为时钟信号1905的周期t1的持续时间的一半。时钟信号1905和/或1910可由时钟电路(例如,图3的时钟电路345)生成。在一些情况下,时钟电路可将时钟倍频器应用于时钟信号1905以生成时钟信号1910。在一些情况下,时钟信号1905可用于方便存储器1505和1510和逻辑电路1515的操作,时钟信号1910可用于方便存储器1520的操作。

在时间t1,存储器1505和1510可分别准备接收数据(例如,加密数据、明文数据)和密钥材料(例如,解密密钥、加密密钥)。在时间t2,存储器1520可准备接收逻辑电路1515的输出。例如,存储器1505、1510和1520可由晶体管形成,该晶体管的栅极需要正确地偏置或者以其它方式准备以便接收和存储传入的信息。在时间t1和t2之间,数据和密钥材料可分别被提供在(例如,移入)存储器1505和1510中。

在时间t3,逻辑电路1515可基于数据和密钥材料生成输出,并且存储器1520可从逻辑电路1515接收输出。例如,逻辑电路1515可通过对数据和密钥材料执行按位运算(例如,xor运算)来生成输出。在时间t4,存储器1520可存储从逻辑电路1515接收的输出,并且存储器1505和/或1510可接收覆写存储器1505和/或1510的擦除信号。存储器1505和/或1510的擦除可在周期t1的一个时钟循环的持续时间内进行。在这方面,擦除可在与存储器1520接收来自逻辑电路1515的输出相同的时钟循环内进行。如图19所示,可在时间t3基于数据和密钥材料生成输出的半个时钟循环中(例如,在持续时间0.5t1中或等效地在持续时间t2中)进行擦除。在时间t5,存储器1505和1510可分别准备接收数据和密钥材料,并且存储器1520可输出所存储的数据。在这方面,分别在存储器1505和1510准备接收数据和密钥材料之前进行存储器1505和/或1510的擦除。在时间t6,存储器1520可准备接收逻辑电路1515的输出。该迭代处理可针对各个接收的数据(例如,各个接收的数据部分)重复。系统1500基于时钟信号1905和1910的操作可方便关联的信息的加密/解密和擦除,使得逻辑电路1515在数据和/或密钥被擦除之前从存储器1505和1510接收数据和密钥。通过在一个时钟循环内擦除数据和/或关联的密钥,这种擦除有助于防止攻击者一旦数据被加密(或解密)就得到数据或者一旦密钥用于加密(或解密)就得到密钥。

此外,本公开包括根据以下条款的示例:

条款1.一种方法,该方法包括:在第一存储器中接收第一真正随机比特流;在第二存储器中接收第二真正随机比特流;由逻辑电路通过执行按位运算以将第一真正随机比特流的各个比特与第二真正随机比特流的对应比特组合来生成第三真正随机比特流;以及将第三真正随机比特流存储在第三存储器中。

条款2.根据条款1所述的方法,其中,按位运算具有逻辑相等。

条款3.根据条款1所述的方法,该方法还包括将第三真正随机比特流发送到处理电路以使得基于第三真正随机比特流生成加密密钥。

条款4.一种方法,该方法包括:在包括多个存储器单元的第一存储器中接收第一真正随机比特流,其中,所述多个存储器单元中的每一个存储第一真正随机比特流的相应一个比特;由逻辑电路基于第一真正随机比特流的相应一对比特来生成第二真正随机比特流的各个比特;以及将第二真正随机比特流存储在第二存储器中。

条款5.根据条款4所述的方法,其中,生成步骤包括:从第一存储器检索与第二真正随机比特流的当前比特关联的一对比特;对这一对比特执行按位运算以获得第二真正随机比特流的当前比特;以及针对第二真正随机比特流的各个剩余比特重复检索步骤和执行步骤。

条款6.根据条款5所述的方法,其中:检索步骤包括从所述多个存储器单元中的第一存储器单元检索与当前比特关联的一对比特中的一个比特,并从所述多个存储器单元中的第二存储器单元检索一对比特中的另一个比特;并且该方法还包括在检索与当前比特关联的一对比特之后,将与第二真正随机比特流的下一比特关联的一对比特中的一个比特提供到第一存储器单元中,并将与下一比特关联的一对比特中的另一个比特提供到第二存储器单元中。

条款7.根据条款6所述的方法,其中,第一存储器包括移位寄存器,其中,提供步骤包括:使与下一比特关联的一对比特中的一个比特从第二存储器单元移位到第一存储器单元中,并使与下一比特关联的一对比特中的另一个比特从所述多个存储器单元中的第三存储器单元移位到第二存储器单元中。

条款8.根据条款6所述的方法,其中,第一存储器包括移位寄存器,其中,提供步骤包括:使与下一比特关联的一对比特中的一个比特从所述多个存储器单元中的第三存储器单元移位到第一存储器单元中,并使与下一比特关联的一对比特中的另一个比特从所述多个存储器单元中的第四存储器单元移位到第二存储器单元中。

条款9.根据条款8所述的方法,其中,移位步骤包括:使存储在所述多个存储器单元中的最后存储器单元中的第一真正随机比特流的比特移出;以及在第一真正随机比特流的各个剩余比特上移位。

条款10.根据条款9所述的方法,其中,所述最后存储器单元是所述多个存储器单元中的第一存储器单元。

条款11.根据条款5所述的方法,其中,按位运算具有逻辑相等。

条款12.根据条款4所述的方法,该方法还包括由逻辑电路通过以下步骤基于第一真正随机比特流生成第三真正随机比特流的各个比特:从第一存储器单元检索与第三真正随机比特流的当前比特关联的一对比特中的一个比特,并从所述多个存储器单元中的第三存储器单元检索一对比特中的另一个比特;对与当前比特关联的一对比特执行按位运算以获得第三真正随机比特流的当前比特;以及针对第三真正随机比特流的各个剩余比特重复检索步骤和执行步骤。

条款13.根据条款4所述的方法,该方法还包括:由逻辑电路基于第二真正随机比特流的相应一对比特生成第三真正随机比特流的各个比特;以及将第三真正随机比特流存储在第三存储器中。

条款14.根据条款13所述的方法,其中,第二真正随机比特流被存储在移位寄存器中。

条款15.根据条款13所述的方法,该方法还包括由逻辑电路基于对第二和第三真正随机比特流的按位运算生成第四真正随机比特流的各个比特。

条款16.根据条款4所述的方法,该方法还包括:生成多个附加真正随机比特流;以及从所述多个附加真正随机比特流中的每一个采样一个或更多个比特以形成第三真正随机比特流的至少一部分。

条款17.根据条款4所述的方法,其中,第一和第二真正随机比特流具有预定长度。

条款18.一种装置,该装置包括:存储器,其包括多个存储器单元,其中,所述多个存储器单元中的每一个被配置为存储第一真正随机比特流的相应一个比特;以及逻辑电路,其被配置为基于第一真正随机比特流的相应一对比特生成第二真正随机比特流的各个比特。

条款19.根据条款18所述的装置,其中,逻辑电路被配置为通过以下步骤生成第二真正随机比特流的各个比特:从存储器检索与第二真正随机比特流的当前比特关联的一对比特;对这一对比特执行按位运算以获得第二真正随机比特流的当前比特;以及针对第二真正随机比特流的各个剩余比特重复检索步骤和执行步骤。

条款20.根据条款19所述的装置,其中,存储器包括移位寄存器,该移位寄存器被配置为:将与第二真正随机比特流的当前比特关联的一对比特中的一个比特存储在移位寄存器的第一存储器单元中;将与第二真正随机比特流的当前比特关联的一对比特中的另一个比特存储在移位寄存器的第二存储器单元中;以及在获得第二真正随机比特流的当前比特之后,使与第二真正随机比特流的下一比特关联的一对比特中的一个比特移位到第一存储器单元中,并使与下一比特关联的一对比特中的另一个比特移位到第二存储器单元中。

在适用的情况下,在不脱离本公开的精神的情况下,本文所阐述的各种硬件组件和/或软件组件可被分离成包括软件、硬件或二者的子组件。另外,在适用的情况下,可以想到软件组件可被实现为硬件组件,反之亦然。

根据本公开的软件(例如,程序代码和/或数据)可被存储在一个或更多个非暂时性机器可读介质上。还可以想到本文中标识的软件可使用一个或更多个通用或专用计算机和/或计算机系统、联网和/或以其它方式实现。在适用的情况下,本文中所描述的各种步骤的顺序可被改变,组合成复合步骤,和/或分离成子步骤以提供本文中所描述的特征。

上面所描述的示例例示而非限制本发明。还应该理解,根据本发明的原理可进行许多修改和变化。因此,本发明的范围仅由随附权利要求及其等同物限定。

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