CN112912838A - 一种随机数生成装置及方法 - Google Patents

一种随机数生成装置及方法 Download PDF

Info

Publication number
CN112912838A
CN112912838A CN202080004611.7A CN202080004611A CN112912838A CN 112912838 A CN112912838 A CN 112912838A CN 202080004611 A CN202080004611 A CN 202080004611A CN 112912838 A CN112912838 A CN 112912838A
Authority
CN
China
Prior art keywords
random number
bit data
entropy
signal
enf
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.)
Granted
Application number
CN202080004611.7A
Other languages
English (en)
Other versions
CN112912838B (zh
Inventor
吉瑞沙·师瓦林加帕·瑞瓦帝加
魏卓
李臻
殷新星
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112912838A publication Critical patent/CN112912838A/zh
Application granted granted Critical
Publication of CN112912838B publication Critical patent/CN112912838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/588Random number generators, i.e. based on natural stochastic processes
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种随机数生成装置及方法,可以应用于新能源汽车、智能家居、网联设备等能够连接电网的电子设备。该随机数生成装置(100)包括ENF提取器(101)、熵生成模块(102)和熵池(103),可以根据电网(200)的ENF信号生成真随机数和伪随机数,无需借助硬件熵源,有利于降低电子设备的制造成本。

Description

一种随机数生成装置及方法
技术领域
本申请涉及电子技术领域,尤其涉及一种随机数生成装置及方法。
背景技术
目前,车辆与外部设备之间,以及车辆内部组件之间皆可以进行通信。其中,部分通信过程需要高安全性,因此必须使用合适的安全机制来保证。一般来说,大多数的安全机制都依赖于随机数。例如,随机数可用作初始化向量、会话标识符,随机数还可以用作密钥生成和验证的基本单位。随机数的随机性可以用随机数的熵表示,一般来说,随机数的熵越高,依赖于该随机数的安全机制便越不容易被破解,其安全性便越高。因此,随机数是否能够具备较高的熵对车辆通信的安全性非常重要。
通常,可以通过在车辆中增加硬件熵源来产生熵比特数据,再对该熵比特数据进行一定的运算后生成随机数。其中,随机数的熵主要取决于上述熵比特数据的熵,因此目前大多数车辆中需要配置较高质量的硬件熵源,不利于降低车辆的生产成本。
综上,目前车辆中随机数的生成还有待进一步研究。
发明内容
本申请提供一种随机数生成装置及方法,用于在不借助硬件熵源的情况下,生成真随机数和伪随机数。
第一方面,本申请实施例提供一种随机数生成装置,该装置主要包括电网频率ENF提取器、熵生成模块和熵池,其中:ENF提取器的输入端用于连接电网,ENF提取器的输出端与熵生成模块的输入端连接,熵生成模块的输出端与熵池连接;ENF提取器可以提取电网的ENF信号;熵生成模块可以根据ENF信号生成第一比特数据;熵池可以接收至少一个输入数据,至少一个输入数据包括第一比特数据;根据至少一个输入数据生成随机数。
由于电网的ENF信号随电网中用户的电力需求而变换,而电网中承载有大量的用户,因此可以从整体上认为电网中用户的电力需求不具备规律性,进而可以根据ENF信号生成具有真随机性的第一比特数据。本申请实施例中,熵池所接收的至少一个输入数据中包括该第一比特数据,因此熵池可以在该第一比特数据的基础上生成真随机数和伪随机数。因此,采用本申请实施例所提供的随机数生成装置,可以在不借助硬件熵源的情况下,生成真随机数和伪随机数。
对于生成真随机数来说,熵池可以包括第一运算电路,第一运算电路与熵生成模块的输出端连接,第一运算电路进而可以根据第一比特数据生成第一随机数,第一随机数为真随机数。由于第一比特数据具有真随机性,因此第一运算电路可以在第一比特数据的基础上生成具有真随机性的第一随机数。
示例性的,熵池还可以包括确定性随机位产生器DRBG,该DRBG分别与熵生成模块的输出端和第一运算电路连接。其中,DRBG可以根据第一比特数据生成第二比特数据;第一运算电路在生成第一随机数时,可以对当前的第一比特数据和第二比特数据进行异或运算,生成第一随机数。需要指出的是,当前的第一比特数据为实时的比特数据,即在进行异或运算时DRBG所输出的第一比特数据。
对于生成伪随机数来说,熵池还可以包括存储区和接口电路,DRBG可以根据至少一个输入数据对应生成至少一个第三比特数据,该至少一个第三比特数据包括上述第二比特数据。存储区可以存储上述至少一个第三比特数据。接口电路可以在接收到伪随机数请求消息后,从存储区随机读取第三比特数据,并根据随机读取的第三比特数据输出第二随机数,该第二随机数为伪随机数。
示例性的,存储区包括第一存储区和第二存储区;第一存储区可以存储熵率大于第一阈值的第三比特数据,第二存储区可以存储熵率不大于第一阈值的第三比特数据;在此情况下,DRBG还可以根据上述至少一个第三比特数据分别对应的熵率,将上述至少一个第三比特数据中,熵率大于第一阈值的第三比特数据分别存入第一存储区,以及将至少一个第三比特数据中熵率不大于第一阈值的第三比特数据存入第二存储区。
基于该存储方式,伪随机数请求消息既可以是全熵伪随机数请求消息,也可以是减熵伪随机数请求消息。接口电路可以在接收到全熵伪随机数请求消息后,从第一存储区随机读取第三比特数据,根据该随机读取的第三比特数据输出第二随机数。接口电路还可以在接收到减熵伪随机数请求消息后,从第二存储区随机读取第三比特数据,根据该随机读取的第三比特数据输出第二随机数。
本申请实施例中,熵生成模块可以包括模数转换器和第二运算电路。其中,模数转换器可以将ENF信号由模拟信号转换为数字信号;第二运算电路可以对转换为数字信号的ENF信号进行运算,得到第一比特数据。
示例性的,模数转换器可以对模拟信号形式的ENF信号进行M-比特(多比特)量化处理,将而将ENF信号转换为数字信号形式。数字信号形式的ENF信号携带有比特流,第二运算电路可以通过熵浓缩算法对该比特流进行运算,从而得到浓缩全熵比特,即第一比特数据。
为了进一步提高随机数的质量,在一种可能的实现方式中,熵生成模块还可以包括预处理电路,该预处理电路分别与ENF提取器和模数转换器连接。预处理电路可以对ENF信号进行预处理,并将预处理之后的ENF信号输出给模数转换器。
通过预处理,可以对ENF信号进行滤波、增强等处理,去除ENF信号中的噪声或无用成分,例如,可以去除ENF信号中的随机或异常的尖峰脉冲、假信号等,从而可以提高第一比特数据的质量。
为了及时发现异常风险,在一种可能的实现方式中,预处理电路还可以检测ENF信号的信号质量;根据ENF信号的信号质量,持续或停止向模拟转换器输出ENF信号。
具体来说,预处理电路可以持续监测ENF信号,确保输出给模数转换器1021的、经过预处理后的ENF信号具有足够的随机性。例如,在电网断电或者ENF提取器异常(如故障、断电等)等情况下,或者,攻击者尝试控制ENF信号以影响随机数生成的情况下,预处理电路可以通过监测ENF信号,以确定ENF信号的信号质量,如ENF信号的随机性质量、属性(如重复性)等,进而可以及时发现可能存在的风险。当ENF信号的质量不高,则可能存在异常风险,在此情况下,预处理电路可以停止向模数转换器输出ENF信号,以降低安全机制被破解的风险。
第二方面,本申请实施例提供一种随机数生成方法,该方法可以应用于第一方面中任一项所提供的随机数生成装置。第二方面中相应方案的技术效果可以参照第一方面中对应方案可以得到的技术效果,重复之处不予详述。示例性的,本申请实施例所提供的随机数生成方法主要包括以下步骤:获取至少一个输入数据,该至少一个输入数据包括第一比特数据,其中,第一比特数据可以是根据电网的ENF信号生成的。根据上述至少一个输入数据生成随机数。
由于本申请实施例所使用的电网的EN信号具备真随机性,因此第一比特数据也具有真随机性。进而,在根据至少一个输入数据输出随机数时,可以根据第一比特数据生成第一随机数,该第一随机数可以是真随机数。
示例性的,在根据第一比特数据生成第一随机数时,可以根据第一比特数据生成第二比特数据;对当前的第一比特数据和第二比特数据进行异或运算,生成第一随机数。
本申请实施例所提供的随机数生成方法还可以生成伪随机数。示例性的,在根据第一比特数据生成第二比特数据时,可以根据至少一个输入数据对应生成至少一个第三比特数据,该至少一个第三比特数据中包括上述第二比特数据;之后,存储至少一个第三比特数据。在接收到伪随机数请求消息后,从已存储的至少一个第三比特数据中随机读取第三比特数据,并根据该随机读取的第三比特数据输出第二随机数,该第二随机数为伪随机数。
示例性的,在存储至少一个第三比特数据时,可以根据至少一个第三比特数据分别对应的熵率,将至少一个第三比特数据中熵率大于第一阈值的第三比特数据存入第一存储区,将至少一个第三比特数据中熵率不大于第一阈值的第三比特数据存入第二存储区。
有鉴于此,伪随机数请求消息可以是全熵伪随机数请求消息,也可以是减熵伪随机数请求消息。在接收到全熵伪随机数请求消息后,可以从第一存储区随机读取第三比特数据;在接收到减熵伪随机数请求消息后,可以从第二存储区随机读取第三比特数据。
为了进一步提高第一比特数据的质量,在一种可能的实现方式中,获取至少一个输入数据之前,还可以先将ENF信号由模拟信号转换为数字信号;对转换为数字信号的ENF信号进行运算,得到第一比特数据。
为了进一步提高第一比特数据的质量,在一种可能的实现方式中,还可以先对ENF信号进行预处理,再将预处理之后的ENF信号,再将预处理之后的ENF信号由模拟信号转换为数字信号。
为了及时发现异常风险,在一种可能的实现方式中,还可以先检测ENF信号的信号质量;再根据ENF信号的信号质量,持续或停止将ENF信号由模拟信号转换为数字信号。
本申请的这些方面或其它方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种随机数生成装置结构示意图;
图2为本申请实施例提供的一种随机数生成装置的具体的结构示意图;
图3为本申请实施例提供的一种预处理电路结构示意图;
图4为本申请实施例提供的一种熵池结构示意图;
图5为本申请实施例提供的一种随机数生成方法流程示意图。
具体实施方式
信息安全性在诸多类型的电子设备中占据着重要位置。例如,在新能源汽车中集成了成百上千个电子控制单元(electronic control unit,ECU),具有车辆到外部设备、车辆到车辆、车辆到基础设施等多种外部通信接口。另外,新能源汽车中还存在有控制器局域网(controller area network,CAN)、局域互联网络(local interconnect network,LIN)、以太网(Ethernet)等内部网络。无论是外部通信接口,还是内部网络,在通信过程中往往需要一定的安全机制,以保证消息或数据的机密性、真实性和完整性。
在目前的通信安全机制中,随机数是众多电子设备中安全机制的基础。例如,随机数可以用作初始化向量、会话标识符,随机数还可以用作密钥生成和验证的基本单位等等。一般来说,随机数的质量越高,基于该随机数的安全机制便越不容易被破解。其中,随机数的质量可以理解为随机数的随机性,也就是随机数的熵。随机数的熵越高,随机数的质量便越高。反之,随机数的熵越低,随机数的质量便越低。
根据随机数的生成方式,随机数可以分为真随机数和伪随机数。其中,真随机数指的是通过物理现象生成的随机数,随机数的取值完全无法预测,具有真正的随机性。例如,电路中产生的热噪声、放射性元素衰变过程或有关盖革(Geiger)计数器计数的定时信息等,皆可以用于生成真随机数。
伪随机数则是通过随机算法生成的随机数。虽然伪随机数也可以具有较高的熵,甚至具有全熵,但伪随机数是基于算法生成的,因此随机数的取值在理论上是可以预测的,不具有真正的随机性。
由此可见,相较于伪随机数,真随机数可以为电子设备提供更高的安全保障。因此,一些电子设备中设置了高质量的硬件熵源,以生成真随机数。但这种实现方式增加了电子设备的系统复杂度,也提高了电子设备的制造成本。
有鉴于此,本申请实施例提供一种随机数生成装置,该随机数生成装置既可以是电子设备中的芯片、模块,也可以是电子设备(如新能源汽车、网联设备(the internet ofthings,IoT)、智能家居、自动驾驶汽车等能够连接电网的电子设备),本申请实施例对此并不多做限制。本申请实施例所提供的随机数生成装置可以以电网频率(electric networkfrequency,ENF)信号为基础生成随机数。由于电网的ENF信号随电网中用户的电力需求而变换,而电网中承载有大量的用户,因此可以从整体上认为电网中用户的电力需求不具备规律性,进而可以根据ENF信号生成真随机数。
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“至少一个”是指一个或多个,其中,多个是指两个或两个以上。鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
需要指出的是,本申请实施例中“连接”指的是电连接,两个电学元件连接可以是两个电学元件之间的直接或间接连接。例如,A与B连接,既可以是A与B直接连接,也可以是A与B之间通过一个或多个其它电学元件间接连接,例如A与B连接,也可以是A与C直接连接,C与B直接连接,A与B之间通过C实现了连接。
图1示例性示出了本申请实施例提供的一种随机数生成装置结构示意图。如图1所示,随机数生成装置100主要包括ENF提取器101、熵生成模块102和熵池103。其中,ENF提取器101的输出端与熵生成模块102的输入端连接,熵生成模块102的输出端与熵池103连接。
接下来,分别对ENF提取器101、熵生成模块102和熵池103进行示例性说明。
1、ENF提取器101
ENF提取器101可以与电网连接,ENF提取器101可以从电网提取ENF信号,该ENF信号的信号强度可以表征电网频率变化。例如,电网频率为50Hz,则ENF信号的频率也为50Hz。
在本申请实施例中,ENF提取器101所连接的电网可以为大量用户供电,例如该电网可以是城市电网等大型电网。当用户的用电情况发生变化时,电网频率也会发生变化,也就是说,电网频率会在一定范围内波动。由于电网中用户数量众多,电网中用户的用电情况往往是不可预知的,也就是说,电网频率是完全随机的。因此,ENF提起器101从电网提取的ENF信号的信号强度也是完全随机的。
2、熵生成模块102
熵生成模块102可以根据ENF提取器101提供的ENF信号生成第一比特数据。本申请实施例中,由于ENF信号的信号强度是完全随机的,因此熵生成模块102可以根据ENF信号生成具有真随机性的第一比特数据。
示例性的,如图2所示,熵生成模块102可以包括模数转换器1021和第二运算电路1022。其中,模数转换器1021的输入端与ENF提取器101连接,模数转换器1021的输出端与第二运算电路1022连接。
模数转换器1021可以将ENF信号由模拟信号转换为数字信号。示例性的,模数转换器1021可以对模拟信号形式的ENF信号进行M-比特(多比特)量化处理,从而得到数字信号形式的ENF信号。该数字信号形式的ENF信号,可以携带比特流,如0101100101。
第二运算电路1022可以对转换为数字信号的ENF信号进行运算,得到第一比特数据。示例性的,第二运算电路1022可以基于数字信号的ENF信号所携带的比特流,通过熵浓缩算法进行运算,从而得到浓缩全熵比特,即第一比特数据。其中,第二运算电路1022所使用的熵浓缩算法可以是安全散列演算(secure hash algorithm,SHA)-256等算法,本申请实施例对此并不多做限制。通过熵浓缩算法运算,可以去除比特数据中存在的偏差,从而输出具有较高熵值(约等于1比特/比特)的浓缩全熵比特,即第一比特数据。
为了进一步提高第一比特数据的质量,在一种可能的实现方式中,熵生成模块102还可以包括预处理电路1023。如图2所示,该预处理电路1023的输入端与ENF提取器101连接,预处理电路1023的输出端与熵生成模块102连接。
预处理电路1023可以对ENF提取器101所提供的ENF信号进行预处理,并将预处理之后的ENF信号输出给模数转换器1021。示例性的,如图3所示,预处理电路1023可以包括信号处理单元23-1,该信号处理单元23-1可以对ENF信号进行滤波、增强等处理,去除ENF信号中的噪声或无用成分,例如,可以去除ENF信号中的随机或异常的尖峰脉冲、假信号等,从而可以提高第一比特数据的质量。
在一种可能的实现方式中,预处理电路1023还可以检测ENF信号的信号质量,根据ENF信号的信号质量,持续或停止向模数转换器1021输出ENF信号。示例性的,如图3所示,预处理电路1023包括信号处理单元23-1和脉冲检查单元23-2。其中,信号处理单元23-1可以持续对ENF信号进行采样,得到ENF采样数据。脉冲检查单元23-2可以持续监测ENF采样数据,确保输出给模数转换器1021的、经过预处理后的ENF信号具有足够的随机性。
例如,在电网断电或者ENF提取器101异常(如故障、断电等)等情况下,或者,攻击者尝试控制ENF信号以影响随机数生成的情况下,脉冲检查单元23-2可以通过检查ENF采样数据的随机性,以确定ENF信号的信号质量,如ENF信号的随机性质量、属性(如重复性)等,进而可以及时发现可能存在的风险。当ENF信号的质量不高,则可能存在异常风险,在此情况下,脉冲检查单元23-2可以停止向模数转换器1021输出ENF信号,以降低安全机制被破解的风险。
3、熵池103
本申请实施例中,熵池103可以接收至少一个输入数据,其中,不同的输入数据可以源自相同或不同的熵源。例如,熵池103所接收到的至少一个输入数据中可以包括上述第一比特数据,该第一比特数据对应的熵源为电网的ENF信号。其它输入数据可以源自其它类型的熵源,本申请实施例对此并不多做限制。
需要指出的是,本申请实施例所提供的熵池103既可以生成真随机数,又可以生成伪随机数。
接下来,分情况进行说明:
真随机数
如图2所示,熵池103包括第一运算电路1032,该第一运算电路1032与熵生成模块102的输出端连接。第一运算电路1032可以从熵生成模块102接收到实时的第一比特数据,该第一比特数据具有真随机性,因此第一运算电路1032对当前的第一比特数据进行运算可以生成具有真随机性的第一随机数,也就是说,第一随机数为真随机数。
示例性的,如图2所示,熵池103还可以包括确定性随机位产生器(deterministicrandombit generator,DRBG)1031,第一运算电路1032还与DRBG1031的输出端连接。DRBG1031可以是经国立标准技术研究所(national institute of standards andtechnology,NIST)批准的DRBG。DRBG1032可以根据上述第一比特数据生成第二比特数据。而且,由于第一比特数据具有真随机性,因此DRBG1032所输出的第二比特数据,可以是具有最高熵值(约等于1比特/比特)的全熵伪随机数。
在此情况下,第一运算电路1032可以对当前的第一比特数据和第三比特数据进行异或运算,以生成上述第一随机数。需要指出的是,当前的第一比特数据为实时的比特数据,即在进行异或运算时DRBG1032所输出的第一比特数据。由于当前的第一比特数据具有真随机性,第三比特数据为全熵伪随机数,因此可以认为第一随机数具有真随机性,即第一随机数为真随机数。
如图2所示,熵池103还可以包括接口电路1033。接口电路1033在接收到真随机数请求消息后,便可以从第一运算电路1032接收该第一随机数并输出。
伪随机数
在本申请实施例中,DRBG1031可以根据接收到的至少一个输入数据对应生成至少一个第三比特数据,例如,DRBG1031接收到输入数据A至C,则DRBG1031可以根据输入数据A生成第二比特数据a,根据输入数据B生成第二比特数据b,根据输入数据C生成第二比特数据c。在此情况下,DRBG1031根据第一比特数据(包含于至少一个输入数据之中)生成的第三比特数据,便可以理解为上述第二比特数据。
DRBG1031所输出的至少一个第二比特数据具有伪随机性,即至少一个第三比特数据皆为伪随机数。如图2所示,熵池103还可以包括存储区1034,存储区1034可以存储DRBG1031所输出的至少一个第三比特数据。
在此情况下,接口电路1033可以随机从存储区中读取一第三比特数据。接口电路1033可以将该随机读取的第三比特数据作为第二随机数输出,也可以对该随机读取的第三比特数据作进一步运算后,生成第二随机数,并输出。本申请实施例对此并不多做限制。
在一种可能的实现方式中,如图4所示,存储区1034包括全熵存储区和减熵存储区。DRBG1031可以根据至少一个第三比特数据中每个第三比特数据的熵率,将每个第三比特数据分别存入全熵存储区或者减熵存储区。
具体来说,由于DRBG1031接收到的至少一个输入数据可以源自不同的熵源,不同熵源的随机性不同,因此DRBG1031对应生成的至少一个第三比特数据可以具有不同的随机性,即至少一个第三比特数据可以具有不同的熵率。
本申请实施例中,全熵存储区可以存储熵率大于第一阈值的第三比特数据,减熵存储区可以存储熵率不大于第一阈值的第三比特数据。如图4中,DRBG1031可以输出M+N个第三比特数据,M和N皆为大于或等于1的整数。其中,第三比特数据SF1至第三比特数据SFN的熵率大于第一阈值,因此可以存入全熵存储区中,第三比特数据SR1至第三比特数据SRM的熵率不大于第一阈值,因此可以存入减熵存储区中。
在此情况下,接口电路1033接收到的随机数请求消息既可以是全熵伪随机数请求消息,也可以是减熵伪随机数消息。接口电路1033在接收到全熵伪随机数请求消息后,可以从全熵存储区随机读取第三比特数据,并根据该随机读取的第三比特数据输出第三随机数。接口电路1033在接收到减熵伪随机数请求消息后,可以从减熵存储区随机读取第三比特数据,并根据该随机读取的第三比特数据输出第三随机数。
采用该实现方式,可以使接口电路1033输出不同熵率的第三随机数,从而可以响应多种应用场景下的随机数请求。
基于相同的技术构思,本申请实施例还提供一种随机数生成方法。该随机数生成方法可以应用于本申请上述实施例所提供的任意一种随机数生成装置,方法实施例的具体实现可以参考上述装置实施例,重复之处不予赘述。
示例性的,如图5所示,本申请实施例所提供的随机数生成方法主要包括以下步骤:
S501:获取包括第一比特数据的至少一个输入数据,该第一比特数据是根据电网频率ENF信号生成的。
S502:根据上述至少一个输入数据输出随机数。
由于本申请实施例所使用的电网的EN信号具备真随机性,因此第一比特数据也具有真随机性。进而,在根据至少一个输入数据输出随机数时,可以根据第一比特数据生成第一随机数,该第一随机数可以是真随机数。
示例性的,在根据第一比特数据生成第一随机数时,可以根据第一比特数据生成第二比特数据;对当前的第一比特数据和第二比特数据进行异或运算,生成第一随机数。
本申请实施例所提供的随机数生成方法还可以生成伪随机数。示例性的,在根据第一比特数据生成第二比特数据时,可以根据至少一个输入数据对应生成至少一个第三比特数据,该至少一个第三比特数据中包括上述第二比特数据;之后,存储至少一个第三比特数据。在接收到伪随机数请求消息后,从已存储的至少一个第三比特数据中随机读取第三比特数据,并根据该随机读取的第三比特数据输出第二随机数,该第二随机数为伪随机数。
示例性的,在存储至少一个第三比特数据时,可以根据至少一个第三比特数据的熵率,将至少一个第三比特数据中熵率大于第一阈值的第三比特数据存入第一存储区,将至少一个第三比特数据中熵率不大于第一阈值的第三比特数据存入第二存储区。
有鉴于此,伪随机数请求消息可以是全熵伪随机数请求消息,也可以是减熵伪随机数请求消息。在接收到全熵伪随机数请求消息后,可以从第一存储区随机读取第三比特数据;在接收到减熵伪随机数请求消息后,可以从第二存储区随机读取第三比特数据。
在一种可能的实现方式中,获取至少一个输入数据之前,还可以先将ENF信号由模拟信号转换为数字信号;对转换为数字信号的ENF信号进行运算,得到第一比特数据。
为了进一步提高随机数的质量,在一种可能的实现方式中,还可以先对ENF信号进行预处理,再将预处理之后的ENF信号,再将预处理之后的ENF信号由模拟信号转换为数字信号。
为了及时发现异常风险,在一种可能的实现方式中,还可以先检测ENF信号的信号质量;再根据ENF信号的信号质量,持续或停止将ENF信号由模拟信号转换为数字信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (18)

1.一种随机数生成装置,其特征在于,包括电网频率ENF提取器、熵生成模块和熵池,所述ENF提取器的输入端用于连接电网,所述ENF提取器的输出端与所述熵生成模块的输入端连接,所述熵生成模块的输出端与所述熵池连接;
所述ENF提取器,用于提取所述电网的ENF信号;
所述熵生成模块,用于根据所述ENF信号生成第一比特数据;
所述熵池,用于接收至少一个输入数据,所述至少一个输入数据包括所述第一比特数据;根据所述至少一个输入数据生成随机数。
2.根据权利要求1所述的随机数生成装置,其特征在于,所述熵池包括第一运算电路,所述第一运算电路与所述熵生成模块的输出端连接,所述第一运算电路用于:
根据第一比特数据生成第一随机数,所述第一随机数为真随机数。
3.根据权利要求2所述的随机数生成装置,其特征在于,所述熵池还包括确定性随机位产生器DRBG,所述DRBG分别与所述熵生成模块的输出端和所述第一运算电路连接;
所述DRBG,用于根据所述第一比特数据生成第二比特数据;
所述第一运算电路,具体用于:
对从所述熵生成模块接收到的第一比特数据和所述第二比特数据进行异或运算,生成所述第一随机数。
4.根据权利要求3所述的随机数生成装置,其特征在于,所述熵池还包括存储区和接口电路;
所述DRBG,具体用于根据所述至少一个输入数据对应生成至少一个第三比特数据,所述至少一个第三比特数据包括所述第二比特数据;
所述存储区,用于存储所述至少一个第三比特数据;
所述接口电路,用于在接收到伪随机数请求消息后,从所述存储区随机读取第三比特数据,并根据随机读取的所述第三比特数据输出第二随机数,所述第二随机数为伪随机数。
5.根据权利要求4所述的随机数生成装置,其特征在于,所述存储区包括第一存储区和第二存储区;
所述第一存储区,用于存储熵率大于第一阈值的第三比特数据;
所述第二存储区,用于存储熵率不大于所述第一阈值的第三比特数据;
所述DRBG,还用于根据所述至少一个第三比特数据分别对应的熵率,将所述至少一个第三比特数据中熵率大于所述第一阈值的第三比特数据存入所述第一存储区,以及将所述至少一个第三比特数据中熵率不大于所述第一阈值的第三比特数据存入所述第二存储区。
6.根据权利要求5所述的随机数生成装置,其特征在于,所述伪随机数请求消息包括全熵伪随机数请求消息和减熵伪随机数请求消息;
所述接口电路具体用于:
在接收到所述全熵伪随机数请求消息后,从所述第一存储区随机读取所述第三比特数据;以及
在接收到所述减熵伪随机数请求消息后,从所述第二存储区随机读取所述第三比特数据。
7.根据权利要求1至6中任一项所述的随机数生成装置,其特征在于,所述熵生成模块包括模数转换器和第二运算电路;
所述模数转换器,用于将所述ENF信号由模拟信号转换为数字信号;
所述第二运算电路,用于对转换为数字信号的ENF信号进行运算,得到所述第一比特数据。
8.根据权利要求7所述的随机数生成装置,其特征在于,所述熵生成模块还包括预处理电路,所述预处理电路分别与所述ENF提取器和所述模数转换器连接;
所述预处理电路用于对所述ENF信号进行预处理,并将预处理之后的ENF信号输出给所述模数转换器。
9.根据权利要求8所述的随机数生成装置,其特征在于,所述预处理电路还用于:
检测所述ENF信号的信号质量;
根据所述ENF信号的信号质量,持续或停止向所述模拟转换器输出所述ENF信号。
10.一种随机数生成方法,其特征在于,包括:
获取至少一个输入数据,所述至少一个输入数据包括第一比特数据,所述第一比特数据是根据电网频率ENF信号生成的;
根据所述至少一个输入数据生成随机数。
11.根据权利要求10所述的随机数生成方法,其特征在于,根据所述至少一个输入数据生成随机数,包括:
根据所述第一比特数据生成第一随机数,所述第一随机数为真随机数。
12.根据权利要求11所述的随机数生成方法,其特征在于,根据所述第一比特数据生成第一随机数,包括:
根据所述第一比特数据生成第二比特数据;
对当前的第一比特数据和所述第二比特数据进行异或运算,生成所述第一随机数。
13.根据权利要求12所述的随机数生成方法,其特征在于,根据所述第一比特数据生成第二比特数据,包括:
根据所述至少一个输入数据对应生成至少一个第三比特数据,所述至少一个第三比特数据包括所述第二比特数据;
在根据所述至少一个输入数据对应生成至少一个第三比特数据之后,所述方法还包括:
存储所述至少一个第三比特数据;
在接收到伪随机数请求消息后,从已存储的至少一个第三比特数据中随机读取第三比特数据,并根据随机读取的所述第三比特数据输出第二随机数,所述第二随机数为伪随机数。
14.根据权利要求13所述的随机数生成方法,其特征在于,存储所述至少一个第三比特数据,包括:
根据所述至少一个第三比特数据分别对应的熵率,将所述至少一个第三比特数据中熵率大于第一阈值的第三比特数据存入第一存储区,以及将所述至少一个第三比特数据中熵率不大于所述第一阈值的第三比特数据存入第二存储区。
15.根据权利要求14所述的随机数生成方法,其特征在于,所述伪随机数请求消息包括全熵伪随机数请求消息和减熵伪随机数请求消息;
在接收到伪随机数请求消息后,从已存储的至少一个第三比特数据中随机读取第三比特数据,包括:
在接收到所述全熵伪随机数请求消息后,从所述第一存储区随机读取所述第三比特数据;
在接收到所述减熵伪随机数请求消息后,从所述第二存储区随机读取所述第三比特数据。
16.根据权利要求10至15中任一项所述的随机数生成方法,其特征在于,获取至少一个输入数据之前,还包括:
将所述ENF信号由模拟信号转换为数字信号;
对转换为数字信号的ENF信号进行运算,得到所述第一比特数据。
17.根据权利要求16所述的随机数生成方法,其特征在于,将所述ENF信号由模拟信号转换为数字信号之前,还包括:
对所述ENF信号进行预处理。
18.根据权利要求17所述的随机数生成方法,其特征在于,将所述ENF信号由模拟信号转换为数字信号之前,还包括:
检测所述ENF信号的信号质量;
根据所述ENF信号的信号质量,持续或停止将所述ENF信号由模拟信号转换为数字信号。
CN202080004611.7A 2020-05-27 2020-05-27 一种随机数生成装置及方法 Active CN112912838B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/092729 WO2021237538A1 (zh) 2020-05-27 2020-05-27 一种随机数生成装置及方法

Publications (2)

Publication Number Publication Date
CN112912838A true CN112912838A (zh) 2021-06-04
CN112912838B CN112912838B (zh) 2022-04-22

Family

ID=76112890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080004611.7A Active CN112912838B (zh) 2020-05-27 2020-05-27 一种随机数生成装置及方法

Country Status (4)

Country Link
US (1) US20230093544A1 (zh)
EP (1) EP4148556A4 (zh)
CN (1) CN112912838B (zh)
WO (1) WO2021237538A1 (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101238625A (zh) * 2005-06-03 2008-08-06 响应负载有限公司 电网响应控制设备
CN101882062A (zh) * 2010-05-21 2010-11-10 房慧龙 真随机比特流发生器
CN104025501A (zh) * 2011-12-29 2014-09-03 英特尔公司 用于不确定性随机位发生器(nrbg)的方法和装置
CN104317551A (zh) * 2014-10-17 2015-01-28 北京德加才科技有限公司 一种超高安全的真随机数生成方法及真随机数生成系统
CN105027073A (zh) * 2013-03-12 2015-11-04 高通股份有限公司 中断驱动硬件随机数产生器
CN105159653A (zh) * 2015-08-18 2015-12-16 珠海市一微半导体有限公司 随机数后处理电路及方法
CN107943450A (zh) * 2017-11-17 2018-04-20 上海众人网络安全技术有限公司 随机数生成方法、装置、计算机设备及计算机可读介质
CN108139888A (zh) * 2015-07-29 2018-06-08 洛斯阿拉莫斯国家安全有限责任公司 量子随机数生成器
CN109408029A (zh) * 2018-10-17 2019-03-01 南京汽车集团有限公司 车联网下传感器生成随机数的方法
CN110336536A (zh) * 2019-07-29 2019-10-15 深圳大学 真随机数发生器的电路及设备
CN110399118A (zh) * 2019-07-15 2019-11-01 宇龙计算机通信科技(深圳)有限公司 一种随机数生成方法、装置、存储介质及电子设备
CN111190570A (zh) * 2018-11-15 2020-05-22 北京创原天地科技有限公司 一种高质量随机数发生器及一种随机数生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698658B2 (en) * 2018-02-12 2020-06-30 Seagate Technology Llc Random number generation from spin torque oscillator noise

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101238625A (zh) * 2005-06-03 2008-08-06 响应负载有限公司 电网响应控制设备
CN101882062A (zh) * 2010-05-21 2010-11-10 房慧龙 真随机比特流发生器
CN104025501A (zh) * 2011-12-29 2014-09-03 英特尔公司 用于不确定性随机位发生器(nrbg)的方法和装置
CN105027073A (zh) * 2013-03-12 2015-11-04 高通股份有限公司 中断驱动硬件随机数产生器
CN104317551A (zh) * 2014-10-17 2015-01-28 北京德加才科技有限公司 一种超高安全的真随机数生成方法及真随机数生成系统
CN108139888A (zh) * 2015-07-29 2018-06-08 洛斯阿拉莫斯国家安全有限责任公司 量子随机数生成器
CN105159653A (zh) * 2015-08-18 2015-12-16 珠海市一微半导体有限公司 随机数后处理电路及方法
CN107943450A (zh) * 2017-11-17 2018-04-20 上海众人网络安全技术有限公司 随机数生成方法、装置、计算机设备及计算机可读介质
CN109408029A (zh) * 2018-10-17 2019-03-01 南京汽车集团有限公司 车联网下传感器生成随机数的方法
CN111190570A (zh) * 2018-11-15 2020-05-22 北京创原天地科技有限公司 一种高质量随机数发生器及一种随机数生成方法
CN110399118A (zh) * 2019-07-15 2019-11-01 宇龙计算机通信科技(深圳)有限公司 一种随机数生成方法、装置、存储介质及电子设备
CN110336536A (zh) * 2019-07-29 2019-10-15 深圳大学 真随机数发生器的电路及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
叶青等: ""负荷跟踪机械补偿运行策略研究"", 《核科学与工程》 *

Also Published As

Publication number Publication date
US20230093544A1 (en) 2023-03-23
EP4148556A4 (en) 2023-07-05
CN112912838B (zh) 2022-04-22
EP4148556A1 (en) 2023-03-15
WO2021237538A1 (zh) 2021-12-02

Similar Documents

Publication Publication Date Title
CN110168494B (zh) 用于向车辆网络的控制单元提供随机数的方法以及用于执行所述方法的车辆网络
US10073980B1 (en) System for assuring security of sensitive data on a host
CN110430045B (zh) 一种基于分布式共识算法的随机数生成方法
EP3091470B1 (en) Apparatus and method for processing digital value
CN110149209A (zh) 物联网设备及其提高数据传输安全性的方法和装置
CN107769923B (zh) 一种基于cpu时钟和usb独立时钟的真随机数产生方法
JP2014075082A (ja) 乱数生成器および乱数生成方法
CN112559236B (zh) 加密运算处理器芯片的故障检测方法及装置
CN112580077B (zh) 一种信息处理方法、装置、设备及存储介质
CN111262686A (zh) 一种rssp-i安全通信的安全校验方法
CN210222735U (zh) 随机数发生器
CN112912838B (zh) 一种随机数生成装置及方法
CN112580114B (zh) 一种信息处理方法、装置、设备及存储介质
CN117827146A (zh) 伪随机数生成方法、装置及电子设备、存储介质
CN118054908A (zh) 用于在质询-响应轮次中使用的通信装置及对应操作方法
CN116610288A (zh) 随机数生成方法及装置
CN111565110A (zh) 基于ro puf多核系统的统一身份认证系统及方法
Croock et al. Adaptive key generation algorithm based on software engineering methodology
KB et al. Generation of pseudo random number sequence from discrete oscillating samples of equally spread objects and application for stream cipher system
CN108710561B (zh) 一种针对真随机数发生器的电源毛刺故障攻击测评平台
Yu et al. On designing PUF-based TRNGs with known answer tests
CN110045946B (zh) 随机数发生器、自检模块以及随机数发生器的自检方法
Kang et al. On the additional chi-square tests for the IID assumption of NIST SP 800-90B
Shcherbyna et al. The Mersenne Twister Output Stream Postprocessing.
CN117955751B (zh) 基于物联网的电子设备异常数据检测方法及系统

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