CN107017981B - 硬件辅助快速伪随机数生成 - Google Patents

硬件辅助快速伪随机数生成 Download PDF

Info

Publication number
CN107017981B
CN107017981B CN201611102808.6A CN201611102808A CN107017981B CN 107017981 B CN107017981 B CN 107017981B CN 201611102808 A CN201611102808 A CN 201611102808A CN 107017981 B CN107017981 B CN 107017981B
Authority
CN
China
Prior art keywords
mixing
random number
function
counter
counter value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611102808.6A
Other languages
English (en)
Other versions
CN107017981A (zh
Inventor
L·哈斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boeing Co
Original Assignee
Boeing Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Boeing Co filed Critical Boeing Co
Publication of CN107017981A publication Critical patent/CN107017981A/zh
Application granted granted Critical
Publication of CN107017981B publication Critical patent/CN107017981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

硬件辅助快速伪随机数生成。一种通过以下步骤生成伪随机数的系统和方法:将调用计数器的计数器值初始化;将来自计数器的计数器值的比特形式发送至混合函数;以及混合所述计数器值以生成伪随机数。所述混合函数可以是异或树、代换‑置换或双混合Feistel。伪随机数生成器可通过混合调用计数器的比特、重复地混合它自己的输出、或者其组合来操作。计数器按照预定值增加。为了提供后向保密性,伪随机数通过单向函数来处理或者利用密码散列函数来散列化,其结果用作混合函数的后续循环的输入值。另外,多个混合函数可并行地操作,同时其输出被异或。

Description

硬件辅助快速伪随机数生成
技术领域
本公开总体上涉及数据加密,具体地讲,涉及用于生成伪随机数并且用于伪装信息以防止边信道中的泄露的改进系统和方法,所述伪随机数可用作加密密钥、可微调密码的微调值(tweak value)、用于加密的多样化的临时数(nonce)以及消息认证码。
背景技术
航空业极大地依赖于关键信息技术(IT)基础设施的可靠运行。像许多其它行业一样,航空业遇到的挑战在于为这样的IT基础设施提供足够的安全性以及减轻任何网络事件的影响。网络事件的示例包括危及或者试图危及飞机的网络(包括其数据连接、数据传输和计算系统)的操作的恶意或可疑事件。
许多科学、工程和IT安全应用需要大量看起来随机的数,其无法通过标准统计检验来与真随机相区分。通常,如果所述数通过在微处理器上的软件中或者专用电子硬件中执行的算法来生成,则它们被称作伪随机数。伪随机数可用在诸如对物理系统进行仿真、对结构数据进行白化以及用于求解数值数学问题的随机计算的应用中。在IT安全应用中,伪随机数用在诸如临时数(使用一次的数)、初始值(IV)、数据隐藏和密码密钥推导的协议中。
传统上,伪随机数在微处理器上生成,生成各个字节花费若干时钟周期。最快的实际算法在64位处理器上在4…12个时钟周期中生成8字节(64比特)。在一些应用中,伪随机数的这一生成时间过长(例如,当在短时间段内需要大量的伪随机数时)。在一些情况下,电子硬件可被定制设计以加速算法。然而,使用微处理器的这种现有技术的伪随机数生成器生成低质量(相关的、有偏差的)数,慢,使得该任务占用微处理器,堵塞内存总线,并且消耗大量电力/能源(导致散热和耗电增加)。
现有技术的伪随机数生成器的附加缺点在于它们对于边信道攻击未加保护,这造成IT安全应用中的显著风险。在正处理数据的电子装置的操作期间,关于秘密密钥或敏感数据的一些信息总是在边信道(非预期信息散播的物理源)中泄露,包括响应时间依赖于数据的变化、电力使用的波动或者超声或电磁波辐射。这就是为什么当对手无法物理访问电子装置时通常可通过密码手段确保存储或发送的数据的安全和完整性。
因此,期望的是,具有一种改进的伪随机数生成器,其在一个时钟周期中生成许多伪随机数并且能够通过减少边信道泄露来改进安全性,而不会显著增加处理时间、系统复杂度、电子电路的大小或能源使用。
发明内容
鉴于以上背景技术,本公开的示例实现方式提供一种用于生成伪随机数的系统和方法,其包括步骤:初始化调用计数器的计数器值;将来自调用计数器的计数器值的比特形式发送至混合函数;以及混合计数器值的比特形式以生成伪随机数。计数器值按照预定值增加,并且所生成的伪随机数可用作混合函数的后续循环的输入值。用于生成伪随机数的系统和方法还可包括步骤:通过在不超过输入寄存器的容量的情况下将计数器值整体重复尽可能多次来填充输入寄存器;以及利用计数器值的单独的比特填充输入寄存器的任何剩余未填充的比特。加密的数据可基于所生成的伪随机数被存储在存储装置的存储器中。
在本公开的实现方式中,所述混合步骤由混合函数执行。该混合函数通过将输入的计数器值的比特形式的第一片段与输出的计数器值的比特形式的第一片段连接来将上述两个片段映射。所述混合函数是可逆的并且是非线性的,可以是异或(XOR)树混合单元、代换-置换混合单元或双混合Feistel混合单元。所述混合函数可由并行操作的至少两个函数来执行,来自所述至少两个混合函数的输出被异或。伪随机数还可通过单向函数来处理或者利用密码散列(hash)函数来散列化,使得单向处理或散列化的结果用作混合函数的后续循环的输入值。
本文所讨论的特征、功能和优点可在各种示例实现方式中独立地实现,或者可在其它示例实现方式中组合,其进一步的细节可参见以下描述和附图。
附图说明
因此在概括地描述了本公开的示例实现方式之后,现在将参照附图(未必按比例绘制),附图中:
图1是根据本公开的示例实现方式的用于混合函数的基于异或树的密钥生成器的逻辑图;
图2是根据本公开的示例实现方式的用于混合函数的基于代换-置换网络的密钥生成器的逻辑图;
图3是根据本公开的示例实现方式的用于混合函数的基于双混合Feistel网络的密钥生成器的逻辑图;
图4是根据本公开的示例实现方式的伪随机数生成方法的框图;
图5是飞机制造和服务方法的框图;
图6是飞机的示意图。
具体实施方式
现在将在下面参照附图更充分地描述本公开的一些实现方式,附图中示出了本公开的一些而非所有实现方式。实际上,本公开的各种实现方式可按照许多不同的形式来具体实现,不应被解释为限于本文所阐述的实现方式;相反,提供这些示例实现方式以使得本公开将彻底和完整,并且将向本领域技术人员充分传达本公开的范围。例如,除非另外指示,否则将某物称为第一、第二等不应被解释为暗指特定顺序。另外,某物可被描述为在另一某物上(除非另外指示)可相反在下面,反之亦然;类似地,某物被描述为在另一某物左侧可相反在右侧,反之亦然。相似的标号始终表示相似的元件。
本公开的示例实现方式将主要结合航空应用来描述。然而,应该理解,示例实现方式可结合各种其它应用(航空业中的应用以及航空业之外的应用二者)来使用。
根据本公开的示例实现方式,使用以复杂和非线性的方式混淆其输入的混合函数提供一种针对各个时钟周期生成伪随机数的改进系统。
伪随机数生成器(PRNG)必须利用种子(seed)来初始化。种子是物理随机数或者用户提供的值,其使得随后生成的序列唯一。在利用种子将PRNG初始化之后,可发出许多请求(调用)。大量调用中的每一个返回不同于先前一个随机数的伪随机数。在特定数量的请求(调用)之后,所返回的伪随机数开始重复。如果重复(概率较低)是可接受的或期望的以模仿真实随机数的行为,则所生成的伪随机数可被截断。如果重复是不可接受的,则进行测量以确保对于预期应用而言周期长度足够大。可在周期重新开始之前利用新获取的物理随机数重新作为PRNG的种子来防止周期性。
如上所述,根据本公开的示例实现方式的改进的PRNG使用混合函数。这样的混合函数依赖于大量的秘密密钥材料来操作,其可被硬编码,烧至熔断器中,或者被存储在诸如触发器的易失性存储器中。秘密密钥材料可针对装置家族中的所有装置被硬编码,可在特定装置的初始化时设置,或者在重置时或者应重新设定PRNG的种子的明确请求来生成。
混合函数类似于密码,但是它们要快许多。混合函数也不如密码安全,因为它们的输入和输出之间可能存在某种相关性,从而使得它们本身通常不适合于加密操作。然而,当混合函数的输入或输出相对于攻击者被隐藏时,攻击者无法发动传统的密码攻击或边信道攻击。因此,快速的混合函数对于应用秘密密钥生成其它秘密密钥的密码密钥生成以及生成伪随机数序列而言是理想的,特别是当这样的数被内部使用并且相对于窃听者被隐藏时。
适合于改进的PRNG中的混合函数具有以下性质:
1)它们将n比特输入映射至n比特输出(n=块大小)。
2)混合取决于大量的秘密密钥材料,其可从单个短密钥生成或者通过真实随机数生成器生成。
3)混合函数是双射的(可逆的)。
4)每一个输入比特以非线性方式影响每一个输出比特。
5)输入比特的大多数非空集合(从密钥材料独立地选择)也影响所有输出比特(无影响取消)。
根据本公开的示例实现方式,用于PRNG的合适的混合函数是异或树(图1)、代换-置换网络(图2)和双混合Feistel网络(图3)。如上所述,混合函数的非线性可通过移位数据或S盒的算术加法来提供,其可退化为(N个)与/或门(2x1比特S盒)。
现在参照关于作为基于异或树的密钥生成器的混合函数的图1,输入比特A1、A2、A3、A4…选择对应子密钥K1、K2、K3、K4…来异或。最终加扰(scramble)操作步骤使得该构造非线性并且可由旋转加法运算或者一系列非线性S盒操作组成。基于异或树的密钥生成器还可包括第二子密钥集合,并且选择附加输入。子密钥可从几个基本子密钥通过包括旋转、加法或异或的比特操纵运算来生成。
现在参照关于作为基于代换-置换网络的密钥生成器的混合函数的图2,输入比特从逻辑图的顶端输入,输出取自逻辑图的底端。子密钥Ki可以是独立的随机创建的密钥,或者从几个基本子密钥推导。S1、S2…是S盒,是较小的非线性代换可逆函数。混合网络的层数可被选择为全混合深度的至少两倍(当每一个输入比特影响每一个输出比特时),但是可更少,使得电路的总延迟仍不超过时钟周期。
现在参照关于作为基于双混合Feistel网络的密钥生成器的混合函数的图3,F是非线性的非常难以(或者无法)逆的函数,而G是可逆的。相同电路的多个层级联。在利用并行操作的电子电路的实现方式中,双混合Feistel网络的单层的混合性能是传统Feistel网络的单层的性能的两倍。[L0,R0]是混合函数的输入,输出取自逻辑图的最后重复的层的底端。混合网络的层数被选择为与适合于单个时钟周期的其总延迟一样高。
上述混合函数可按照多个操作模式来使用以用于伪随机数生成,下面描述其示例。
如图4所示,在计数器模式下,将计数器初始化为(短)种子(方框402),并且将计数器值的比特形式发送给混合函数(方框408)。根据上面参照图1至图3描述的混合函数中的一个执行混合以生成伪随机数(方框410)。每次请求伪随机数时计数器就增加预定值(方框424),并且计数器使得它的值在溢流时绕回以继续从0开始计数。在重新设定PRNG的种子时重置计数器。例如,计数器可以是32比特无符号整数,其允许在重复之前生成40亿个唯一的伪随机数,因为不同的输入值产生混合函数的不同输出值。如果需要,可采用更长的计数器,其余输入比特可被设定为0,或者设定为任何其它恒定比特图案(可从种子推导)。另外,可使用更短的计数器(例如,20比特),在这种情况下在百万次调用(220)之后,利用真实随机值来重新设定PRNG的种子。
在加扰计数器模式下,使用如上所述的计数器(调用计数器),但是输入比特被初始化为非恒定的值(方框402)。例如,可采用31比特计数器,该计数器的值整体被重复的次数与该计数器与输入寄存器相配的次数相同(方框404)。在256比特宽的输入寄存器的情况下,31比特计数器值可整体被重复8次,因为256/31=8(余数为8)。余数8与计数器值的8个单独的比特(最低有效位)对应,那些比特被视为被多使用一次以填充剩余输入寄存器比特的最低有效位(方框406)。在加扰计数器模式下,当计数器值的比特形式被发送给混合函数(方框408),例如用于混合计数器值的代换-置换混合函数(图2)时,优选不是S盒的输入大小的倍数的计数器宽度,因为计数器比特将被分布于不同S盒的不同输入位置中。所生成的数的周期与计数器可实现的不同值的数量相同。此加扰计数器模式采用任何期望长度的调用计数器(只要不大于混合函数的输入大小即可),并且在所生成的数开始表现出周期性之前请求重新设定种子。
在递归模式下,混合函数的第一输入是(长)种子。后续输入是混合函数的先前输出。在此示例实现方式中,不需要计数器,但是所生成的伪随机数的序列中的周期的长度未知。在大多数情况下,周期远比任何应用所需的周期长(在256比特输入大小下至少2128次调用)。与计数器模式下相比混合函数的连续输入值较不相关,这使得混合更彻底。
在混合计数器模式下,调用计数器被初始化(方框402)为(长)种子的最低有效位或者任何固定的比特集合。在伪随机数生成器的每次调用时计数器增加(方框424),当溢流时绕回0。混合函数的第一输入是种子。后续输入是混合函数的先前输出(方框420),不同的是通过将指定的输入比特改变为计数器值来修改它们。这确保了所生成的伪随机数的序列中的周期的长度至少与计数器模式下一样长,大多数时间长许多。与递归模式一样,除了复制过来的计数器比特的短序列之外,混合函数的连续输入值看起来不相关。这在保证最小周期长度的情况下使得混合非常彻底。此混合计数器模式可采用任何期望长度(不大于输入大小即可)的调用计数器,并且可在所生成的数可能开始表现出周期性之前请求重新设定种子。
在所有情况下当适用时,调用计数器可增加较大的恒定奇数值(预定或者从种子生成)(方框424)。与增加1相比,这使得连续的计数器值较不相关。所生成的伪随机数可用于方便加密的数据在存储器中的存储(方框422),例如加密密钥、微调值、临时数和初始值。
除了密钥材料之外,包含如本文所述的混合函数的PRNG使得关于其内部状态(计数器和混合函数的输出)的一些信息公开。安全性依赖于此密钥材料的保护。如果对手发现此密钥材料,则对手可逆推混合函数调用,找出先前生成的随机数以及将在未来生成的数。在本公开的另外的实现方式中,提供具有后向保密性的PRNG版本,其中,PRNG的输出通过单向函数来处理或者利用密码散列函数来散列化(方框416),返回结果(方框418),代替混合函数的未经处理的输出。并行工作的多个混合函数(方框412)(其输出一起异或)(方框414)也可用作超快单向函数。此构造是单向(难以逆),因为各个混合函数的输出无法从其总体输出的异或值来重构。此构造仍比任何现有技术的解决方案快若干数量级,因为在两个时钟周期中,可生成数千伪随机比特。本发明的具有后向保密性的另选实现方式通过利用并行工作并且其输出被异或的多个不同的混合函数代替所述混合函数来实现。此聚合混合函数即使知道密钥材料也无法容易地逆推,运行时间仅是上述散列构造的一半,即,通常为一个时钟周期。
使用如上所述包含混合函数的PRNG存在多个优点,包括:在典型的计算装置中在单个时钟周期中生成例如32字节(256比特)的非常快速的操作;一次生成数百或数千随机比特;高度并行处理,这掩盖了边信道泄露;通过采用非线性比特混合生成高质量的伪随机数;通过简单地供应真实随机比特作为密钥材料以及作为初始计数器值(如果适用的话)来容易地重新设定种子;使用容易地个性化并且易于多样化或应请求重置的大量的秘密密钥材料,这使得易于确保没有两个部署是相同的;以及支持使用固定输入和固定密钥材料来生成可预测的比特序列(有利于测试)。另外,与现有技术的PRNG相比,本公开的PRNG将处理器解放出来以用于其它任务并且降低了能耗。本公开的PRNG的示例应用包括飞行中计算机、军事和太空程序、公司网络、个人和膝上型计算机、智能移动装置和安全通信网络中的密码函数。非安全相关应用也可受益于快速和高质量的伪随机数,例如对物理系统进行仿真以及执行随机化计算或Monte-Carlo计算。
根据本公开的示例实现方式,本公开的改进PRNG的各种部件可单独地或者在一个或更多个计算机程序代码指令、程序指令或者来自计算机可读存储介质的可执行计算机可读程序代码指令的指导下通过包括硬件的各种手段来实现。
在一个示例中,可提供一个或更多个设备,其可被配置为用作或者说实现本文所示出和描述的PRNG和各个元件。在涉及不止一个设备的示例中,各个设备可按照多种不同方式(例如,经由有线或无线网络等直接或间接)彼此连接或者彼此通信。
通常,如上所述,本公开的PRNG的示例性实现方式的设备可包括诸如连接至存储器(例如,存储装置)的处理器(例如,处理器单元)的多个部件中的一个或更多个。处理器通常是能够处理例如数据、计算机可读程序代码、指令等(通常,“计算机程序”,例如软件、固件等)的信息和/或其它合适的电子信息的任何硬件。更具体地讲,例如,处理器可被配置为执行可存储在该处理器上或者说存储在(相同或另一设备的)存储器中的计算机程序。根据具体实现方式,处理器可以是多个处理器、多处理器核心或者一些其它类型的处理器。另外,处理器可利用多个异构处理器系统来实现,其中主处理器与一个或更多个辅处理器存在于单个芯片上。作为另一例示示例,处理器可以是包含相同类型的多个处理器的对称多处理器系统。在另一示例中,处理器可被具体实现为或者说包括一个或更多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。因此,尽管处理器能够执行计算机程序以执行一个或更多个功能,各种示例的处理器能够在没有计算机程序的帮助下执行一个或更多个功能。
存储器通常是能够以临时和/或持久方式存储例如数据、计算机程序和/或其它合适的信息的任何硬件。存储器可包括易失性和/或非易失性存储器,并且可以是固定的或可移除的。合适的存储器的示例包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、闪速存储器、拇指驱动器、可移除计算机磁碟、光盘、磁带或者上述项的一些组合。光盘可包括紧凑盘-只读存储器(CD-ROM)、紧凑盘-读/写(CD-R/W)、DVD等。在各种情况下,存储器可被称作计算机可读存储介质,其作为能够存储信息的非暂时性装置,可与能够将信息从一个地方输送至另一地方的诸如电子瞬时信号的计算机可读传输介质相区别。如本文所述的计算机可读介质通常可表示计算机可读存储介质或者计算机可读传输介质。
除了存储器以外,处理器还可连接至一个或更多个接口以用于显示、发送和/或接收信息。所述接口可包括通信接口(例如,通信单元)和/或一个或更多个用户接口。通信接口可被配置为例如向其它设备、网络等发送信息和/或从其它设备、网络等接收信息。通信接口可被配置为通过物理(有线)和/或无线通信链路来发送和/或接收信息。合适的通信接口的示例包括网络接口控制器(NIC)、无线NIC(WNIC)等。
用户接口可包括显示器和/或一个或更多个用户输入接口(例如,输入/输出单元)。显示器可被配置为向用户呈现或者说显示信息,其合适的示例包括液晶显示器(LCD)、发光二极管显示器(LED)、等离子体显示面板(PDP)等。用户输入接口可以是有线的或无线的,并且可被配置为从用户接收向设备中的信息以用于例如处理、存储和/或显示。用户输入接口的合适示例包括麦克风、图像或视频捕获装置、键盘或键区、操纵杆、触敏表面(与触摸屏分离或集成到触摸屏中)、生物传感器等。用户接口还可包括用于与诸如打印机、扫描仪等的外设通信的一个或更多个接口。
如上所述,程序代码指令可被存储在存储器中并由处理器执行,以实现PRNG的功能。将理解,任何合适的程序代码指令可从计算机可读存储介质被加载到计算机或其它可编程设备上以生成特定机器,使得该特定机器成为实现本文所指定的功能的手段。这些程序代码指令还可被存储在计算机可读存储介质中,其可指导计算机、处理器或其它可编程设备以特定方式起作用,从而生成特定机器或特定制品。存储在计算机可读存储介质中的指令可生成制品,其中所述制品成为实现本文所描述的功能的手段。程序代码指令可从计算机可读存储介质检索并且被加载到计算机、处理器或其它可编程设备中以配置所述计算机、处理器或其它可编程设备执行要在所述计算机、处理器或其它可编程设备上或由其执行的操作。
程序代码指令的检索、加载和执行可顺序地执行,使得一次检索、加载和执行一个指令。在一些示例实现方式中,检索、加载和/或执行可并行地执行,使得一次一起检索、加载和/或执行多个指令。程序代码指令的执行可生成计算机实现的处理,使得由计算机、处理器或其它可编程设备执行的指令提供用于实现本文所描述的功能的操作。
处理器对指令的执行或者指令在计算机可读存储介质中的存储支持用于执行所指定的功能的操作的组合。还将理解,一个或更多个功能和功能的组合可通过执行所指定的功能的基于专用硬件的计算机系统和/或处理器、或者专用硬件和程序代码指令的组合来实现。
如上面所引用,可在飞机制造和服务的背景下描述本公开的示例。如图5和图6所示,在制造前,例示方法500可包括飞机602的规格和设计(方框502)以及材料采购(方框504)。在生产期间,可进行飞机602的部件和分总成制造(方框506)以及系统集成(方框508)。随后,飞机602可经受认证和配送(方框510)以投入使用(方框512)。在投入使用的同时,可为飞机602安排例行维修和保养(方框514)。例行维护和服务可包括飞机602的一个或更多个系统的修改、重新配置、改造等。
例示方法500的各个处理可由系统集成商、第三方和/或运营商(例如,顾客)来执行或完成。为了进行描述,系统集成商可包括(但不限于)任何数量的飞机制造商和主系统分包商;第三方可包括(但不限于)任何数量的卖方、分包商和供应商;运营商可以是航空公司、租赁公司、军方实体、服务组织等。
如图6所示,通过例示方法500制造的飞机602可包括机身612以及多个高级系统600和内饰614。高级系统600的示例包括推进系统604、电气系统606、液压系统608和环境系统610中的一个或更多个。可包括任何数量的其它系统。尽管示出了航空航天工业示例,但本文所公开的原理可应用于其它工业,例如汽车工业。因此,除了飞机602之外,本文所公开的原理可应用于其它载具,例如陆地载具、海洋载具、太空载具等。
可在制造和服务方法500的任一个或更多个阶段期间采用本文所示出或描述的设备和方法。例如,与部件和分总成制造506对应的部件或分总成可按照与飞机602正在服役期间生产的部件或分总成相似的方式来加工或制造。另外,所述设备、方法或其组合的一个或更多个示例可在生产阶段506和508期间(例如)用于加速完成飞机602的组装或降低飞机602的成本。类似地,所述设备或方法实现的一个或更多个示例或其组合可在(例如,但不限于)飞机602投入使用的同时(例如,维修和保养阶段(方框514))使用。
另外,本公开包括根据下列条款的示例:
条款1.一种用于生成伪随机数的方法,该方法包括以下步骤:初始化调用计数器的计数器值(方框402);将来自所述调用计数器的所述计数器值的比特形式发送至混合函数(方框408);以及混合所述计数器值的所述比特形式以生成伪随机数(方框410)。
条款2.根据条款1所述的方法,该方法还包括步骤:使所述计数器值按照预定值增加(方框424)。
条款3.根据条款1所述的方法,该方法还包括步骤:使用所述伪随机数作为所述混合步骤(方框410)的后续循环的输入值。
条款4.根据条款1所述的方法,该方法还包括步骤:通过在不超过输入寄存器的容量的情况下将所述计数器值整体重复尽可能多次来填充所述输入寄存器(方框404);以及利用所述计数器值的单独的比特填充所述输入寄存器的任何剩余未填充的比特,直至所述输入寄存器满(方框406)。
条款5.根据条款4所述的方法,其中,所述混合步骤(方框410)通过将输入的所述计数器值的所述比特形式的第一片段与输出的所述计数器值的所述比特形式的第一片段连接来将上述两个片段映射。
条款6.根据条款5所述的方法,其中,所述混合步骤(方框410)是可逆的。
条款7.根据条款5所述的方法,其中,所述混合步骤(方框410)是非线性的。
条款8.根据条款5所述的方法,其中,所述混合步骤(方框410)包括选自由异或“XOR”树混合函数、代换-置换混合函数和双混合Feistel混合函数构成的组中的函数。
条款9.根据条款1所述的方法,其中,所述混合步骤(方框410)还包括步骤:在并行混合函数中将所述计数器值混合至少两次(方框412)并且对所述并行混合函数的输出进行异或(“XOR”)(方框414)。
条款10.根据条款1所述的方法,该方法还包括步骤:通过单向函数来处理所述伪随机数或者利用密码散列函数来将所述伪随机数散列化(方框416);以及使用所述伪随机数的所述单向处理或者所述伪随机数的散列化的结果作为所述混合函数的后续循环的输入值(方框418)。
条款11.根据条款1所述的方法,该方法还包括步骤:使用所述伪随机数来将加密的数据存储在存储器中(方框422)。
条款12.一种用于生成伪随机数的系统,该系统包括:调用计数器,利用计数器值来初始化(方框402);以及混合函数,将所述计数器值的比特形式混合以生成伪随机数(方框410)。
条款13.根据条款12所述的系统,其中,所述计数器值按照预定值增加(方框424)。
条款14.根据条款12所述的系统,其中,所述伪随机数用作所述混合函数的后续循环的输入值(方框420)。
条款15.根据条款12所述的系统,该系统还包括具有存储器的存储装置,所述存储器基于所述伪随机数存储加密的数据(方框422),所述加密的数据选自由加密密钥、微调值、临时数和初始值构成的组中。
条款16.根据条款12所述的系统,其中,所述混合函数通过将输入的所述计数器值的所述比特形式的第一片段与输出的所述计数器值的所述比特形式的第一片段连接来将上述两个片段映射。
条款17.根据条款12所述的系统,其中,所述混合函数是可逆的。
条款18.根据条款12所述的系统,其中,所述混合函数是非线性的。
条款19.根据条款12所述的系统,其中,所述混合函数选自由异或树混合函数、代换-置换混合函数和双混合Feistel混合函数构成的组中。
条款20.根据条款12所述的系统,其中,所述混合函数由并行操作的至少两个混合函数执行(方框412)并且来自所述至少两个混合函数的输出被异或(方框414)。
条款21.根据条款12所述的系统,其中:所述伪随机数通过单向函数来处理或者利用密码散列函数来散列化(方框416);并且所述伪随机数的所述单向处理或者所述伪随机数的散列化的结果用作所述混合函数的后续循环的输入值(方框418)。
本文中公开了包括各种部件、特征和功能的设备和方法的不同示例。应该理解,本文所公开的设备和方法的各种示例可包括本文所公开的设备和方法的任何其它示例的任何部件、特征和功能(按照任何组合方式),所有这些可能均旨在落入本公开的精神和范围内。
受益于以上描述和相关附图中所呈现的教导,本公开所属领域的技术人员将想到本文所阐述的公开的许多修改和其它实现方式。因此,应当理解,本公开不限于所公开的特定实现方式,修改和其它实现方式旨在包括在所附权利要求书的范围内。此外,尽管以上描述和相关附图在元件和/或功能的某些示例组合的背景下描述了示例实现方式,应该理解,在不脱离所附权利要求书的范围的情况下,可通过另选实现方式提供元件和/或功能的不同组合。在这方面,例如,如所附权利要求中的一些中所阐述的,也可以想到元件和/或功能的与上面明确描述的那些组合不同的组合。尽管本文中采用了特定术语,它们仅在一般描述性意义上使用,而非用于限制。

Claims (13)

1.一种用于生成伪随机数的方法,该方法包括以下步骤:
初始化步骤,初始化计数器的计数器值(402);
发送步骤,将来自所述计数器的所述计数器值的比特形式发送至用于实施混合函数的处理器(408);
混合步骤,混合所述计数器值的所述比特形式以生成伪随机数(410);
通过在不超过输入寄存器的容量的情况下将所述计数器值整体重复尽可能多次来填充所述输入寄存器(404);以及
利用所述计数器值的单独的比特填充所述输入寄存器的任何剩余未填充的比特,直至所述输入寄存器满(406)。
2.根据权利要求1所述的方法,该方法还包括下列步骤中的至少一个:
使所述计数器值按照预定值增加(424),以及
使用所述伪随机数作为所述混合步骤(410)的后续循环的输入值。
3.根据权利要求1所述的方法,其中,所述混合步骤(410)通过将输入的所述计数器值的所述比特形式的第一片段与输出的所述计数器值的所述比特形式的第一片段连接来将输入的所述计数器值的所述比特形式的第一片段与输出的所述计数器值的所述比特形式的第一片段映射,并且其中,满足下列条件中的至少一个:
所述混合步骤(410)是可逆的,
所述混合步骤(410)是非线性的,以及
所述混合步骤(410)包括选自由异或XOR树混合函数、代换-置换混合函数和双混合Feistel混合函数构成的组中的函数。
4.根据权利要求1所述的方法,其中,所述混合步骤(410)还包括以下步骤:
在并行混合函数中将所述计数器值混合至少两次(412);以及
对所述并行混合函数的输出进行异或XOR(414)。
5.根据权利要求1所述的方法,该方法还包括以下步骤:
通过单向函数来处理所述伪随机数或者利用密码散列函数来将所述伪随机数散列化(416);以及
使用所述伪随机数的单向处理或者所述伪随机数的散列化的结果作为所述混合函数的后续循环的输入值(418)。
6.根据权利要求1所述的方法,该方法还包括步骤:使用所述伪随机数来将加密的数据存储在存储器中(422)。
7.一种用于生成伪随机数的系统,该系统包括:
计数器,该计数器利用计数器值来初始化(402);
用于实施混合函数的处理器,该混合函数将所述计数器值的比特形式混合以生成伪随机数(410);以及
输入寄存器,该输入寄存器被布置为通过以下步骤来填充:
在不超过所述输入寄存器的容量的情况下将所述计数器值整体重复尽可能多次(404);以及
利用所述计数器值的单独的比特填充所述输入寄存器的任何未填充的比特,直至所述输入寄存器满(406)。
8.根据权利要求7所述的系统,其中,所述计数器值按照预定值增加(424)。
9.根据权利要求7所述的系统,其中,所述伪随机数用作所述混合函数的后续循环的输入值(420)。
10.根据权利要求7所述的系统,该系统还包括具有存储器的存储装置,所述存储器基于所述伪随机数存储加密的数据(422),所述加密的数据选自由加密密钥、微调值、临时数和初始值构成的组中。
11.根据权利要求7所述的系统,其中,所述混合函数满足下列条件中的至少一个:
通过将输入的所述计数器值的所述比特形式的第一片段与输出的所述计数器值的所述比特形式的第一片段连接来将输入的所述计数器值的所述比特形式的第一片段与输出的所述计数器值的所述比特形式的第一片段映射;
选自由异或树混合函数、代换-置换混合函数和双混合Feistel混合函数构成的组中;以及
由并行操作的至少两个混合函数执行(412)并且来自所述至少两个混合函数的输出被异或(414)。
12.根据权利要求7所述的系统,其中,满足下列条件中的至少一个:
所述混合函数是可逆的,以及
所述混合函数是非线性的。
13.根据权利要求7所述的系统,其中:
所述伪随机数通过单向函数来处理或者利用密码散列函数来散列化(416);并且
所述伪随机数的单向处理或者所述伪随机数的散列化的结果用作所述混合函数的后续循环的输入值(418)。
CN201611102808.6A 2015-12-07 2016-12-05 硬件辅助快速伪随机数生成 Active CN107017981B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/961,307 US10142103B2 (en) 2015-12-07 2015-12-07 Hardware assisted fast pseudorandom number generation
US14/961,307 2015-12-07

Publications (2)

Publication Number Publication Date
CN107017981A CN107017981A (zh) 2017-08-04
CN107017981B true CN107017981B (zh) 2021-07-13

Family

ID=58798742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611102808.6A Active CN107017981B (zh) 2015-12-07 2016-12-05 硬件辅助快速伪随机数生成

Country Status (6)

Country Link
US (1) US10142103B2 (zh)
JP (1) JP6900176B2 (zh)
KR (1) KR102544298B1 (zh)
CN (1) CN107017981B (zh)
SG (1) SG10201607934XA (zh)
TW (1) TWI781911B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3454318B1 (en) * 2017-09-12 2022-05-11 eMemory Technology Inc. Security system with entropy bits generated by a puf
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
JP6782863B1 (ja) * 2017-11-07 2020-11-11 グーグル エルエルシー 乱数生成器
CN108768615B (zh) * 2018-05-16 2021-04-13 济南蓝剑钧新信息科技有限公司 散列算法在同一框架下的asic芯片实现方法
US11271723B2 (en) * 2018-11-08 2022-03-08 Daniel Eugene Hale Apparatus and method for unbreakable data encryption
US10878133B2 (en) * 2018-11-18 2020-12-29 Nuvoton Technology Corporation Mitigation of side-channel attacks using small-overhead random pre-charging
US11310028B2 (en) 2019-01-31 2022-04-19 The Boeing Company Tamper resistant counters
CN110221810B (zh) * 2019-03-14 2021-05-11 西安电子科技大学 一种基于细胞自动机的可变结构伪随机数生成方法、装置及系统
TWI793429B (zh) * 2019-07-25 2023-02-21 熵碼科技股份有限公司 加密金鑰生成器及傳輸系統
CN110928523B (zh) * 2019-12-04 2021-11-19 中体彩科技发展有限公司 用于彩票行业的随机数获取方法及系统
US10979054B1 (en) 2020-01-14 2021-04-13 Nuvotonn Technology Corporation Coupling of combinational logic circuits for protection against side-channel attacks
US10990355B1 (en) * 2020-06-19 2021-04-27 Panagiotis Andreadakis Aperiodic pseudo-random number generator based on a linear congruential generator
US11907684B2 (en) * 2021-02-16 2024-02-20 Cassy Holdings Llc High clock-efficiency random number generation system and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909494A (en) * 1997-02-14 1999-06-01 At&T Corp. System and method for constructing a cryptographic pseudo random bit generator
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
CN1668995A (zh) * 2002-06-06 2005-09-14 克瑞迪科公司 用于改善伪随机数发生器的输出的不可预测性的方法
TW200901723A (en) * 2007-04-23 2009-01-01 Qualcomm Inc Initial seed management for pseudorandom number generator
CN102063285A (zh) * 2010-12-24 2011-05-18 倍奥锐(北京)科技有限公司 一种软件实现的真随机数产生方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3119735B2 (ja) * 1992-10-01 2000-12-25 松下電器産業株式会社 ビット攪拌装置
KR0168525B1 (ko) 1996-03-19 1999-02-01 김광호 전화단말장치에서 정보서비스 수행을 위한 자동 다이얼링방법
KR100229870B1 (ko) 1997-05-13 1999-11-15 윤종용 플립형 휴대용 단말기의 플립커버장치
US7124157B2 (en) * 2000-10-24 2006-10-17 Hmi Co., Ltd. Random number generator
US20030059045A1 (en) 2001-09-26 2003-03-27 Ruehle Michael D. Hash-based pseudo-random number generator
US7227951B2 (en) * 2001-11-06 2007-06-05 Ntt Docomo, Inc. Enhanced ANSI X9.17 pseudorandom number generators with forward security
US8019802B2 (en) * 2005-08-24 2011-09-13 Qualcomm Incorporated Cryptographically secure pseudo-random number generator
CN100583754C (zh) * 2005-11-07 2010-01-20 北京浦奥得数码技术有限公司 一种伪随机数生成方法
JP4857230B2 (ja) * 2007-03-30 2012-01-18 株式会社日立製作所 疑似乱数生成装置及びそれを用いた暗号化処理装置
EP1975779B1 (en) * 2007-03-30 2018-03-28 Hitachi, Ltd. Encryption device using a pseudorandom number generator
US8489659B2 (en) 2007-10-19 2013-07-16 Schneider Electric USA, Inc. Pseudorandom number generation
US8560587B2 (en) 2008-05-22 2013-10-15 Red Hat, Inc. Non-linear mixing of pseudo-random number generator output
US8971530B2 (en) * 2009-06-24 2015-03-03 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
JP5791562B2 (ja) * 2012-05-10 2015-10-07 日本電信電話株式会社 圧縮関数演算装置、圧縮関数演算方法、およびプログラム
WO2014075000A1 (en) * 2012-11-12 2014-05-15 Cryptography Research Inc. Methods and systems for glitch-resistant cryptographic discrete-log based signing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909494A (en) * 1997-02-14 1999-06-01 At&T Corp. System and method for constructing a cryptographic pseudo random bit generator
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
CN1668995A (zh) * 2002-06-06 2005-09-14 克瑞迪科公司 用于改善伪随机数发生器的输出的不可预测性的方法
TW200901723A (en) * 2007-04-23 2009-01-01 Qualcomm Inc Initial seed management for pseudorandom number generator
CN102063285A (zh) * 2010-12-24 2011-05-18 倍奥锐(北京)科技有限公司 一种软件实现的真随机数产生方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《How to construct pseudorandom permutations from pseudorandom functions》;MICHAEL LUBY et al.;《SIAM Journal on Computing》;19880430;第17卷(第2期);正文1-5节 *
《The SHADE cipher: an efficient hash-function-based Feistel network》;C.Adams;《CCECE "97. Canadian Conference on Electrical and Computer Engineering. Engineering Innovation: Voyage of Discovery. Conference Proceedings》;19970528;正文1-5节 *
《Yarrow-160:Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator》;John Kelsey et al.;《International Workshop on Selected Areas in Cryptography》;20010727;全文 *

Also Published As

Publication number Publication date
US20170163416A1 (en) 2017-06-08
US10142103B2 (en) 2018-11-27
KR102544298B1 (ko) 2023-06-19
JP2017107195A (ja) 2017-06-15
TW201721407A (zh) 2017-06-16
KR20170067133A (ko) 2017-06-15
SG10201607934XA (en) 2017-07-28
TWI781911B (zh) 2022-11-01
CN107017981A (zh) 2017-08-04
JP6900176B2 (ja) 2021-07-07

Similar Documents

Publication Publication Date Title
CN107017981B (zh) 硬件辅助快速伪随机数生成
KR102447709B1 (ko) 비트-믹서에 의한 암호 라운드 키의 발생을 위한 방법 및 시스템
US9794062B2 (en) Scrambled tweak mode of blockciphers for differential power analysis resistant encryption
CN109639428B (zh) 从位混合器构造安全散列函数的方法
Tsoutsos et al. Advanced techniques for designing stealthy hardware trojans
EP3154215A1 (en) Scrambled counter mode for differential power analysis resistant encryption
Bhaskar et al. An advanced symmetric block cipher based on chaotic systems
WO2021138717A1 (en) Systems and computer-implemented methods for generating pseudo random numbers
Manucom et al. Analysis of key randomness in improved one-time pad cryptography
Rouaf et al. Performance Evaluation of Encryption Algorithms in Mobile Devices
Liu et al. Generating dynamic box by using an input string
Gupta et al. Improved VLSI architecture of dual-CLCG for Pseudo-Random bit generator
Chugunkov et al. Issues of increasing the efficiency of replacement blocks for cryptoalgorithms round functions
TWI751153B (zh) 用於提供基於硬體之快速且安全的擴展和壓縮功能的系統和方法
Abumuala et al. A new method for generating cryptographically strong sequences of pseudo random bits for stream cipher
Aljahdali et al. Feistel-inspired scrambling improves the quality of linear congruential generators
EP4366232A1 (en) Secure and fast bit unpacking for dilithium
CN111279307A (zh) 随机数生成器
Shin et al. A secure self-encryption scheme for resource limited mobile devices
Abhishek On Random Number Generation for Kernel Applications
Stanciu et al. Pseudo-random generator using PUF circuits and Salsa stream cipher
Chatterjee et al. RRSC-128AEAD: An Efficient Randomized Lightweight Stream Cipher Supports Authenticated Encryption with Associated Data
Dasari Random Number Generator
Al-Nemri A Modified Block Cipher Encryption Based on OTP Algorithm
Prasad et al. Survey of Various Techniques for Voice Encryption

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant