一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于生成随机数的方法及装置、计算机设备、存储介质与流程

2022-05-21 05:41:22 来源:中国专利 TAG:


1.本技术涉及信息处理技术领域,例如涉及一种用于生成随机数的方法及装置、计算机设备、存储介质。


背景技术:

2.随机数广泛用于密钥产生、数字签名、密钥协商等方面,在密码应用中十分重要,随机数产生方法的安全性直接影响密码系统的安全性。但是,目前的计算机设备不会产生绝对随机的随机数,只能产生呈现出一定规律性的“伪随机数”。
3.现有技术公开了一种基于cpu时钟和usb独立时钟的真随机数产生方法,所述方法包括:采用cpu时钟和usb独立时钟的抖动差异作为随机噪声源,生成随机数种子,采用散列算法对随机数种子进行散列操作,生成所需的真随机数。该方法在硬件上只依靠现代cpu电路板上普遍具备的cpu主时钟和usb模块独立时钟,相比外接物理噪声源、外接多种时钟源计数电路、cpu访问外设或重复内存访问运算等操作来产生真随机数的方法,更加简便高效,可用于密钥生成、数字签名和密钥协商等信息安全处理操作中需要真随机数的场合。
4.在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
5.现有技术通过计算机设备时钟的抖动差异性来生成随机数,在不同时间内,通过同一台计算机设备的时钟反复生成随机数,由于前后为同一台计算机设备,因此前后生成的随机数仍然会呈现出一定的规律性,导致生成伪随机数,影响用户的系统安全。


技术实现要素:

6.为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
7.本公开实施例提供了一种用于生成随机数的方法及装置、计算机设备、存储介质,以生成真随机数,提高用户系统的安全性。
8.在一些实施例中,所述方法包括:设定计算机设备的时钟;在时钟设定完成后,根据电网的过零信号,确定随机数种子;根据随机数种子,计算随机数。
9.在一些实施例中,所述装置包括:处理器和存储有程序指令的存储器,上述处理器被配置为在执行上述程序指令时,执行上述的用于生成随机数的方法。
10.在一些实施例中,所述计算机设备包括:上述的用于生成随机数的装置。
11.在一些实施例中,存储介质存储有程序指令,程序指令在运行时,执行上述的用于生成随机数的方法。
12.本公开实施例提供的用于生成随机数的方法及装置、计算机设备、存储介质,可以实现以下技术效果:
13.设定计算机设备的时钟,在时钟设定完成后,根据电网的过零信号生成随机数种子,并根据随机数种子计算随机数。通过计算机设备时钟的个体差异性和电网过零点的不
确定性生成真随机数,无论是同一台设备反复生成的随机数,还是同一批设备同时生成的随机数,均不会出现规律性,从而生成真随机数,提高了用户系统的安全性。
14.以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本技术。
附图说明
15.一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
16.图1是本公开实施例提供的一个用于生成随机数的方法的示意图;
17.图2是本公开实施例提供的另一个用于生成随机数的方法的示意图;
18.图3是本公开实施例提供的另一个用于生成随机数的方法的示意图;
19.图4是本公开实施例提供的另一个用于生成随机数的方法的示意图;
20.图5是本公开实施例提供的另一个用于生成随机数的方法的示意图;
21.图6是本公开实施例提供的一个用于生成随机数的装置的示意图。
具体实施方式
22.为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
23.本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
24.除非另有说明,术语“多个”表示两个或两个以上。
25.本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
26.术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
27.术语“对应”可以指的是一种关联关系或绑定关系,a与b相对应指的是a与b之间是一种关联关系或绑定关系。
28.本公开实施例中,智能家电设备是指将微处理器、传感器技术、网络通信技术引入家电设备后形成的家电产品,具有智能控制、智能感知及智能应用的特征,智能家电设备的运作过程往往依赖于物联网、互联网以及电子芯片等现代技术的应用和处理,例如智能家电设备可以通过连接电子设备,实现用户对智能家电设备的远程控制和管理。
29.公开实施例中,终端设备是指具有无线连接功能的电子设备,终端设备可以通过连接互联网,与如上的智能家电设备进行通信连接,也可以直接通过蓝牙、wifi等方式与如上的智能家电设备进行通信连接。在一些实施例中,终端设备例如为移动设备、电脑、或悬浮车中内置的车载设备等,或其任意组合。移动设备例如可以包括手机、智能家居设备、可
穿戴设备、智能移动设备、虚拟现实设备等,或其任意组合,其中,可穿戴设备例如包括:智能手表、智能手环、计步器等。
30.结合图1所示,本公开实施例提供一种用于生成随机数的方法,包括:
31.s01,计算机设备设定计算机设备的时钟。
32.s02,计算机设备在时钟设定完成后,根据电网的过零信号,确定随机数种子。
33.s03,计算机设备根据随机数种子,计算随机数。
34.其中,电网的过零信号为计算机设备接入的电网的过零信号。
35.采用本公开实施例提供的用于生成随机数的方法,设定计算机设备的时钟,由于每台设备的在出厂时存在差异,因此,每台设备的时钟的开始计时时间都存在差异。在时钟设定完成后,根据电网的过零信号生成随机数种子,并根据随机数种子计算随机数。由于电网的过零信号是不确定的,因此通过计算机设备时钟的个体差异性和电网过零点的不确定性生成真随机数,无论是同一台设备反复生成的随机数,还是同一批设备同时生成的随机数,均不会出现规律性,从而生成真随机数,提高了用户系统的安全性。
36.结合图2所示,本公开实施例提供一种用于生成随机数的方法,包括:
37.s01,计算机设备设定计算机设备的时钟。
38.s21,计算机设备根据过零信号的状态进行计数,确定最终计数值。
39.s22,计算机设备将最终计数值作为随机数种子。
40.s03,计算机根据随机数种子,计算随机数。
41.其中,计算机设备设定时钟完成后,时钟开始对计数的时间进行计时。
42.采用本公开实施例提供的用于生成随机数的方法,由于计算机设备时钟的个体差异性,时钟设定完成后的开始计时时间以及计时的步长,不同设备并不相同,即计算机设备生成随机数的启动时间也是不同的。此外,电网的过零信号是不确定的,即使是同一台计算机设备根据过零信号的状态进行计数确定最终计数值,每次获取的最终计数值也是不相同的。因此,通过计算机设备时钟的个体差异性、启动时间和电网过零点的不确定性生成真随机数,无论是同一台设备反复生成的随机数,还是同一批设备同时生成的随机数,均不会出现规律性,从而生成真随机数,提高了用户系统的安全性。
43.结合图3所示,本公开实施例提供一种用于生成随机数的方法,包括:
44.s01,计算机设备设定计算机设备的时钟。
45.s31,计算机设备调节计数值至初始计数值。
46.s32,计算机设备根据过零信号的状态、初始计数值和设定值,确定最终计数值。
47.s22,计算机设备将最终计数值作为随机数种子。
48.s03,计算机设备根据随机数种子,计算随机数。
49.采用本公开实施例提供的用于生成随机数的方法,计算机设备调节计数值至初始计数值,避免出现最后生成的随机数为零的情况。计算机设备根据过零信号的状态、初始计数值和设定值确定最终计数值。通过计算机设备时钟的个体差异性、启动时间和电网过零点的不确定性生成真随机数,无论是同一台设备反复生成的随机数,还是同一批设备同时生成的随机数,均不会出现规律性,从而能够生成真随机数。
50.结合图4所示,本公开实施例提供一种用于生成随机数的方法,包括:
51.s01,计算机设备设定计算机设备的时钟。
52.s31,计算机设备调节计数值至初始计数值。
53.s41,计算机设备在过零信号的状态未发生改变的情况下,控制初始计数值间隔设定时长增加设定值。
54.s42,计算机设备在过零信号的状态发生改变的情况下,将当前的计数值确定为最终计数值。
55.s22,计算机设备将最终计数值作为随机数种子。
56.s03,计算机设备根据随机数种子,计算随机数。
57.其中,设定值为计数值每次增加的步长值。初始计数值可以为任意值,例如,初始计数值可以与设定值相等。
58.采用本公开实施例提供的用于生成随机数的方法,计算机设备在过零信号的状态未发生改变的情况下,控制初始计数值间隔设定时长增加设定值。这样,计数值是根据电网的过零信号的状态随机进行计数的。由于电网过零信号的状态发生改变是随机产生的,计算机设备在过零信号的状态发生改变的情况下,将当前的计数值确定为最终计数值,即最终确定的计数值也是随机的。例如,计算机设备上电对时钟设定完成后即检测并记录当前过零信号状态,计数调节至初始计数值1,然后检测当前过零信号状态,若状态未发生改变,则计数值增加1,若状态发生改变,则当前的计数值为最终计数值,以最终计数值作为种子,再使用其他伪随机数生成法产生(0,1)的随机数,即真随机数。
59.结合图5所示,本公开实施例提供一种用于生成随机数的方法,包括:
60.s01,计算机设备设定计算机设备的时钟。
61.s31,计算机设备调节计数值至初始计数值。
62.s41,计算机设备在过零信号的状态未发生改变的情况下,控制初始计数值间隔设定时长增加设定值。
63.s42,计算机设备在过零信号的状态发生改变的情况下,将当前的计数值确定为最终计数值。
64.s51,计算机设备在当前的计数值大于计数阈值或者计数时间大于时间阈值的情况下,将当前的计数值确定为最终计数值。
65.s22,计算机设备将最终计数值作为随机数种子。
66.s03,计算机设备根据随机数种子,计算随机数。
67.其中,计数时间为时钟设定完成后开始进行计数所经过的时间。计数阈值和时间阈值可以根据具体需要进行设定。
68.采用本公开实施例提供的用于生成随机数的方法,由于电网过零点的不确定性,为了保证真随机数生成的效率,避免计数值不停的增长下去情况发生,计算机设备在当前的计数值大于或者等于计数阈值的情况下,将当前的计数值确定为最终计数值。或者,在计数时间大于时间阈值的情况下,将当前的计数值确定为最终计数值。这样,通过计数阈值的设置,提高了随机数生成的效率。
69.可选地,计算机设备根据随机数种子,计算随机数,包括:计算机设备计算其中,n为正整数,x0为随机数种子,λ为设定常数,m1为模,rn为随机数。
70.这样,通过计算机设备时钟的个体差异性和电网过零点的不确定性生成随机数种子,再利用随机数种子通过乘同余法计算得到的随机数,即真随机数。此外,无论是同一台设备反复生成的随机数,还是同一批设备同时生成的随机数,均不会出现规律性,提高了用户系统的安全性。
71.可选地,计算机设备根据所述随机数种子,计算随机数,包括:计算机设备计算其中,m为正整数,x0为所述随机数种子,μ为设定常数,m2为模,c为非负整数,rm为所述随机数。
72.这样,通过计算机设备时钟的个体差异性和电网过零点的不确定性生成随机数种子,再利用随机数种子通过混合同余法计算得到的随机数,即真随机数。此外,无论是同一台设备反复生成的随机数,还是同一批设备同时生成的随机数,均不会出现规律性,提高了用户系统的安全性。
73.结合图6所示,本公开实施例提供一种用于生成随机数的装置,包括处理器(processor)100和存储器(memory)101。可选地,该装置还可以包括通信接口(communication interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行上述实施例的用于生成随机数的方法。
74.此外,上述的存储器101中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
75.存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于生成随机数的方法。
76.存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
77.本公开实施例提供了一种计算机设备,包含上述的用于生成随机数的装置。
78.本公开实施例提供了一种存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于生成随机数的方法。
79.上述的存储介质可以是暂态存储介质,也可以是非暂态存储介质。
80.本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
81.以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。
一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本技术中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本技术中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本技术中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
82.本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
83.本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
84.附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图
和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献