掌桥专利:专业的专利平台
掌桥专利
首页

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

文献发布时间:2023-06-19 18:37:28


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

技术领域

本申请实施例涉及信息安全领域,尤其涉及一种随机数生成方法及装置。

背景技术

目前,在信息安全领域,随机数生成器可以基于类似ANSI X9.17标准的逻辑结构产生随机数种子。所述ANSI X9.17标准的逻辑结构为一种美国伪随机数生成器标准逻辑结构。基于类似ANSI X9.17标准的逻辑结构,随机数生成器每产生一个随机数种子,需要使用3DES算法,即需要进行三次三重数据加密。当软件随机数生成器使用所述3DES算法时,需要安全存储两个密钥和种子,还要调用采样熵源。因此,目前的随机数生成器存在随机数生成效率不高的问题,有待改进。

发明内容

本申请实施例提供一种随机数生成方法及装置,用以提高随机数生成效率。

第一方面,本申请实施例提供的一种软件随机数生成方法,包括:

获取第一数组和第二数组;对第一字符串进行哈希计算获得第一哈希值,所述第一字符串为所述第一数组和所述第二数组的组合;根据所述第一哈希值获得N个第一数值段,N为正整数;根据所述第一数组获得N个第二数值段;将N个第二数值段与N个第一数值段进行异或移位处理,得到第一随机数种子,所述第一随机数种子用于生成随机数。

根据该方法,可以根据异或移位生成或更新第一随机数种子,可提高随机数生成效率。

在一种可能的设计中,所述第一数组包括第一随机数,所述第一随机数根据用户的随机输入操作确定;所述第二数组包括与操作系统有关的随机数。

根据该设计,可以根据用户的随机输入操作和与操作系统有关的随机数分别得到第一数组和第二数组,根据用户操作和与系统操作确定数组,可根据不同网络环境下生成随机数,从而提高随机数生成效率。

在一种可能的设计中,所述第一数组包括第二随机数种子,所述方法还包括:输出所述第一哈希值。

根据该设计,可以根据第二随机数种子输出所述第一哈希值,此时第一数组为随机数种子,第一哈希值为输出的随机数,因此根据该设计可以在输出随机数后实现随机数种子的更新。

在一种可能的设计中,所述方法包括:获取第三数组的数值;对所述第三数组的数值进行加一处理或减一处理,获得更新的第三数组;当所述更新的第三数组的数值属于满足深度更新条件的阈值时,对所述第一随机数种子进行深度更新。

根据该设计,根据所述第三数组的数值确定对所述第一随机数种子进行深度更新,根据深度更新条件的阈值可准确判断是否需要进行随机数种子的深度更新,灵活确定是否进行深度更新。

在一种可能的设计中,所述对所述第一随机数种子进行深度更新,包括:获取第四数组;对第二字符串进行哈希计算获得第二哈希值,所述第二字符串为所述第一随机数种子和所述第四数组的组合;根据所述第二哈希值获得N个第三数值段;根据所述第一随机数种子获得N个第四数值段;将N个第四数值段与N个第三数值段进行异或移位处理,得到第三随机数种子。

根据该设计,对所述第一随机数种子进行深度更新,深度更新提高了随机数的安全性。

在一种可能的设计中,所述方法还包括:将第三数组的数值置为0或阈值。

根据该设计,在随机数种子初始化或深度更新后重置所述第三数组的数值,以便根据第三数组灵活确定是否进行深度更新。

在一种可能的设计中,所述N=8,所述将N个第二数值段与N个第一数值段进行异或移位处理,得到第一随机数种子,包括:按照以下公式获得数值A

A

其中,H

根据该设计,根据异或运算获得所述第一随机数种子。

第二方面,本申请实施例还提供一种随机数生成装置,包括获取模块和处理模块。其中:

获取模块,用于获取第一数组和第二数组;处理模块,用于对第一字符串进行哈希计算获得第一哈希值,所述第一字符串为所述第一数组和所述第二数组的组合;所述处理模块,还用于根据所述第一哈希值获得N个第一数值段,N为正整数;所述处理模块,还用于根据所述第一数组获得N个第二数值段;所述处理模块,还用于将N个第二数值段与N个第一数值段进行异或移位处理,得到第一随机数种子,所述第一随机数种子用于生成随机数。

在一种可能的设计中,所述第一数组包括第一随机数,所述第一随机数根据用户的随机输入操作确定;所述第二数组包括与操作系统有关的随机数。

在一种可能的设计中,所述第一数组包括第二随机数种子,所述处理模块具体用于:输出所述第一哈希值。

在一种可能的设计中,所述处理模块还用于:获取第三数组的数值;对所述第三数组的数值进行加一处理或减一处理,获得更新的第三数组;当所述更新的第三数组的数值属于满足深度更新条件的阈值时,对所述第一随机数种子进行深度更新。

在一种可能的设计中,所述处理模块具体用于:获取第四数组;对第二字符串进行哈希计算获得第二哈希值,所述第二字符串为所述第一随机数种子和所述第四数组的组合;根据所述第二哈希值获得N个第三数值段,N为正整数;根据所述第一随机数种子获得N个第四数值段;将N个第四数值段与N个第三数值段进行异或移位处理,得到第三随机数种子。

在一种可能的设计中,所述处理模块具体用于:将第三数组的数值置为0或阈值。

在一种可能的设计中,所述N=8,所述处理模块具体用于:按照以下公式获得数值A

A

其中,H

第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面及其任意一种设计的方法。

第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面及其任意一种设计的方法。

第二方面至第四方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种随机数生成方法的流程示意图;

图2为本申请实施例提供的一种随机数种子初始化过程示意图;

图3为本申请实施例提供的一种随机数生成装置结构示意图;

图4为本申请实施例提供的一种电子设备结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作可选的详细描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。应理解,下面所介绍的方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。

目前,在信息安全领域,随机数生成器可以基于类似ANSI X9.17标准的逻辑结构产生随机数种子。所述ANSI X9.17标准的逻辑结构为一种美国伪随机数生成器标准逻辑结构。

根据类似美国伪随机数生成器标准ANSI X9.17的逻辑结构,随机数生成器每产生一个随机数,需要使用三次3DES算法。所述3DES(或称Triple Data EncryptionAlgorithm,TDEA)表示一种三重数据加密算法。所述3DES算法可以保证随机数生成器生成的密码强度。

当所述随机数生成器使用3DES算法时,需要安全存储两个密钥和种子,还需要调用采样熵源。因此,目前的随机数生成器存在随机数生成效率不高和只生成8字节随机数等问题,有待改进。

为了解决以上问题,本申请提供了一种随机数生成方法,用以解决目前随机数生成器存在的随机数生成效率不高和只生成8字节随机数等问题。

在本申请实例中,获取第一数组和第二数组;对第一字符串进行哈希计算获得第一哈希值,所述第一字符串为所述第一数组和所述第二数组的组合;根据所述第一哈希值获得N个第一数值段,N为正整数;根据所述第一数组获得N个第二数值段;将N个第二数值段与N个第一数值段进行异或移位处理,得到第一随机数种子,所述第一随机数种子用于生成随机数。可选的,根据第一随机数种子输出的随机数用于加密或签名。该方法能够解决目前随机数生成器存在的随机数生成效率不高和只生成8字节随机数等问题。

图1示例性的示出了一种随机数生成方法的流程示意图。示例性的,该方法的执行主体是随机数发生器。随机数发生器可通过处理器或芯片或逻辑电路等实现。示例性的,本申请所提供的随机数发生器属于一种确定性随机数发生器。确定性随机数发生器(deterministic random number generator,DRNG)可以包括某密码系统的一个子函数。

参考图1所示流程,在本申请实施例中提供的分析方法具体步骤包括:

步骤101,获取第一数组和第二数组。

可选的,所述第一数组为32字节的无符号数组,可包括32字节的字符串。所述1个字节,可包括8比特字符。

可选的,所述第二数组为2字节(包含2字节)至24字节(包含24字节)的无符号数组。

可以理解,以上第一数组和第二数组的字节数可根据应用场景的需求变更,不限于以上所举例的数值。

作为一种示例,所述第一数组包括第一随机数,所述第一随机数根据用户的随机输入操作确定;所述第二数组包括与操作系统有关的随机数。

例如,获得第一数组,所述第一数组包括数组A。所述随机数发生器获得第一数组,包括:随机数发生器获取用户的随机输入数据,根据所述用户的随机输入数据给数组A赋初始值。所述获取用户的随机输入操作,包括:

用户可随意地数次敲击键盘和拖曳鼠标,随机数发生器通过记录键盘输入值、敲击之间的时间间隔、鼠标移动速度和距离等信息,产生随机数据。所述随机数发生器也根据用户敲击键盘和拖曳鼠标等操作,获取操作时对应的系统时间、光标所在屏幕中的坐标位置数值或者采集到的噪声或声音等多类信息数据。所述随机数发生器将这些数据或数值转化成字节后构成第一数组。例如,所述随机数发生器将一个32位无符号整型数X按8比特分割,构成4个字节。所述随机数发生器也可以作一些略复杂的运算,比如由X计算Y,Y=X

又如,获得第二数组,所述第二数组包括数组B。所述随机数发生器获得第二数组,包括:随机数发生器获取与操作系统有关的随机数,根据所述与操作系统有关的随机数给数组B赋初始值。所述获取与操作系统有关的随机数,包括:

当数组A从键盘、鼠标或系统等方面得到了32字节的初值后,所述随机数发生器将系统时间和光标位置等信息按转换函数转化成n字节记入B数组。例如,所述随机数发生器在系统中获取系统时间、获取光标位置或调用随机数生成函数或语句,所述函数或语句包括C语言中的rand()函数、Java和Python语言中的类似语句。所述随机数发生器可采用单一一种形式实现,也可并用多种数据采集形式。所述随机数发生器将产生的数据依某种规则转换为若干长度的字符串,长度一般2至24个字节即可,若追求较高的安全性能,16至24字节为宜。数组B只是一组暂存单元,用于铺助计算,没有记忆功能。

步骤102,对第一字符串进行哈希计算获得第一哈希值,所述第一字符串为所述第一数组和所述第二数组的组合。

可选的,步骤102包括:

示例性的,所述第一数组包括32个字节的字符串。所述第二数组包括n个字节的字符串。所述随机数发生器将所述第一数组和所述第二数组进行拼接,生成第一字符串。所述第一字符串包括(32+n)个字节的字符串。所述n为自然数。

示例性的,所述随机数发生器根据一种哈希函数对所述(32+n)个字节的字符串进行计算,所述哈希函数包括一种可输出32个字节的哈希算法。所述随机数发生器根据所述计算结果确定第一哈希值。所述第一哈希值为32个字节。

可以理解,第一哈希值的字节数可根据应用场景的需求变更,不限于以上所举例的数值。第一哈希值的字节数与第一数组的字节数相同。

例如,步骤102中,可将数组A和数组B拼接成(32+n)字节字符串S,记为S=A|B。用一个能至少输出32字节的哈希算法对S进行计算,得到32字节的第一哈希值。

步骤103,根据所述第一哈希值获得N个第一数值段,N为正整数。

可选的,步骤103包括:

示例性的,所述随机数发生器按照所述第一哈希值的长度,将所述第一哈希值等分处理为8个所述第一数值段,每个第一数值段的长度为4字节(即32比特)。所述处理包括,所述随机数发生器按每4个字节拆分所述第一哈希值,得到8个所述第一数值段。

步骤104,根据所述第一数组获得N个第二数值段。

可选的,步骤104包括:

示例性的,所述随机数发生器按照所述第一数组的长度,将所述第一数组等分处理为8个所述第二数值段,每个第二数值段的长度为4字节(即32比特)。所述处理包括,所述随机数发生器按每4个字节拆分所述第一数组,得到8个所述第二数值段。

步骤105,将所述N个第二数值段与所述N个第一数值段进行异或移位处理,得到第一随机数种子。

可选的,第一哈希值表示为H,第一数组表示为A。H可表示为N个比特字数组的组合,即H=(H

本申请中,第一数值段为根据H获得的N个数值段,即H

示例性的,下面以N=8为例,所述异或移位处理,包括:对于第i+1个第一数值段,按照以下公式获得数值A

A

其中,在i=0时,A

可以理解,在i=0,1,2,……,7时,分别按照H

例如可选的,随机数发生器在每次根据公式1确定A

以上图2所示流程可应用于随机数种子的初始化。示例性的,下面以N=8为例对随机数种子初始化过程进行描述。

如图2所示,可将第二数值段看作8级移位寄存器,或者说,将第二数值段存入8级移位寄存器,其中,每一级移位寄存器存储一段第二数值段。所述移位寄存器可以用来寄存代码,还可以用来实现数据的串行或并行转换、数值的运算以及数据的处理等。

所述随机数发生器作8拍寄存器的反馈移位变换。其中每一拍加入一个32比特字的第一数值段,依次将第一数值段以异或移位作用到第二数值段中。

具体来说,参见图2所示,“⊕”表示32比特字的异或,“<<<5”表示32比特字的5位循环左移。“<<<”表示一种二进制移位运算符号。图中的H

设寄存器初始状态为:A

随机数发生器根据如下公式计算数值A

A

其中“∪”表示“或”运算,即两个32比特字按比特位作“或”运算。“A

下一拍用H

A

寄存器又推移一拍。

再依次用H

当用H

可选的,随机数发生器还可将计数值设置为初始值0或T。至此,完成了随机数种子初始化过程。

其中,计数值为第三数组。第三数组可用于判断是否进行深度更新。例如,在每次根据随机数种子计算和输出了随机数后,随机数发生器对所述第三数组的数值进行加一处理或减一处理,获得更新的第三数组。当所述更新的第三数组的数值属于满足深度更新条件的阈值时,对所述随机数种子进行深度更新。其中,如果判断不进行深度更新,随机数发生器可对随机数种子进行普通更新。相比于深度更新,普通更新过程更加简便,随机数种子的更新效率更高,而深度更新后的种子安全性更强。

例如,随机数发生器在获得初始化的随机数种子后,将计数值设置为0。则随机数发生器每次输出根据随机数种子获得的随机数后,对所述第三数组的数值进行加一处理,获得更新的第三数组。当更新的第三数组的值为T时,随机数发生器对第一随机数种子进行深度更新,其中,T也就是满足深度更新条件的阈值。又如,随机数发生器在获得初始化的随机数种子后,将计数值的数值设置为T。则随机数发生器每次输出根据随机数种子获得的随机数后,对所述第三数组的数值进行减一处理,获得更新的第三数组。当更新的第三数组的数值降为0时,随机数发生器对第一随机数种子进行深度更新,其中,0也就是满足深度更新条件的阈值。

示例性的,所述深度更新条件的阈值属于第三数组的数值。随机数发生器可根据用户设定确定深度更新条件的阈值。

例如,所述随机性发生器可依据应用场景对安全性的需求将深度更新条件的阈值设置在1至65535之间。如果某信息系统防范得十分严密,不可能被黑客攻击,那么可将深度更新条件的阈值设置得很大,比如深度更新条件的阈值为50000。而如果系统容易被黑客攻击,那么应将深度更新条件的阈值设置得很小,比如深度更新条件的阈值为5、10或者20等。若黑客攻入了某信息系统,找到种子,则黑客对后续产生的随机数具有破解能力。而当深度更新条件的阈值很小时,种子将很快被更新,则黑客很难破解深度更新后的种子,除非他重新入侵系统,重新获得深度更新后的种子。

可选的,步骤101中,第一数组可以是随机数种子(为区分第一随机数种子,该随机数种子可称为第二随机数种子),则随机数发生器还可输出第一哈希值,此时第一哈希值为需要输出的随机数,此时第一随机数种子为更新第二随机数种子所得到的新的随机数种子。以上获得第二随机数种子的过程可称为随机数种子的普通更新。

可以理解,第二随机数种子可以是经过步骤101至步骤105获得的,具体可参见前述说明,这里不再赘述。其中,随机数发生器在获得第二随机数种子时,第一数组是根据用户的随机输入操作确定的,第二数组包括与操作系统有关的随机数。

可选的,本申请中,在满足深度更新条件时,随机数发生器还可对随机数种子进行深度更新。深度更新条件可包括,第三数组的数值属于满足深度更新条件的阈值,具体可参见前述对于第三数组的说明,这里不再赘述。深度更新条件例如,经过加一处理后第三数组的数值为T,或者,经过减一处理后第三数组的数值为0。

深度更新可包括以下步骤:在确定第三数组的数值属于满足深度更新条件的阈值时,随机数发生器还可获取第四数组,对第二字符串进行哈希计算获得第二哈希值,所述第二字符串为所述第一随机数种子和所述第四数组的组合。随机数发生器根据所述第二哈希值获得N个第三数值段,根据所述第一随机数种子获得N个第四数值段,并将N个第四数值段与N个第三数值段进行异或移位处理,得到第三随机数种子,第三随机数种子也就是经过深度更新的随机数种子。可以理解,随机数发生器获得第四数组的方式,可参见随机数发生器获得初始的第一数组和第二数组的方式,即第四数组可采用与初始化相似的数值获取方式,这里不再赘述。

示例性的,在本申请实例中,随机数发生器可通过包括步骤106至110,或包括步骤111至117,或包括步骤118至124,进行对随机数种子的初始化、对所述随机数种子进行普通更新或深度更新等操作。

可选的,所述随机数发生器根据所述步骤106至110对随机数种子进行初始化,包括:

示例性的,步骤106中,所述随机数发生器根据所述用户的随机输入操作确定第一随机数,根据所述与操作系统有关的随机数确定第二随机数。所述随机数发生器根据第一随机数确定数组1,所述随机数发生器根据第二随机数确定数组2。

示例性的,步骤107中,所述随机数发生器对字符串1进行哈希计算获得哈希值1,所述字符串1为所述数组1和所述数组2的组合。

示例性的,步骤108中,所述随机数发生器根据所述哈希值1获得哈希值1对应的8个数值段1。

示例性的,步骤109中,所述随机数发生器根据所述数组1获得数组1对应的8个数值段2。

示例性的,步骤110,所述随机数发生器将哈希值1对应的8个数值段1与数组1对应的8个数值段2进行异或移位处理,得到随机数种子1,实现随机数种子初始化。

此外,随机数发生器将数组3的数值置为0。

以上步骤106至110中,数组1对应于本申请中的第一数组,数组2对应于本申请中的第二数组,字符串1对应于本申请中的第一字符串,哈希值1对应于本申请中的第一哈希值,随机数种子1对应于本申请中的第一随机数种子,数值段1对应于本申请中的第一数值段,数值段2对应于本申请中的第二数值段,数组3对应于本申请中的第三数组。

可选的,所述随机数发生器根据所述步骤111至117进行随机数种子普通更新,包括:

示例性的,步骤111,所述随机数发生器获取数组3,数组3包括根据获取用户设定的深度更新条件的阈值T。

示例性的,步骤112,所述随机数发生器根据随机数种子1确定数组4,根据所述与操作系统有关的随机数确定数组5。

示例性的,步骤113,所述随机数发生器对字符串2进行哈希计算获得哈希值2,所述字符串2为所述数组4和所述数组5的组合。

示例性的,步骤114,所述随机数发生器对数组3的数值进行加一处理,并输出哈希值2。

示例性的,步骤115,所述随机数发生器根据所述哈希值2获得8个数值段3。

示例性的,步骤116,所述随机数发生器根据所述随机数种子1获得8个数值段4。

示例性的,步骤117,所述随机数发生器将8个数值段3与8个数值段4进行异或移位处理,得到随机数种子2。所述随机数种子2即为完成普通更新后的所述随机数种子1。

可选的,在普通更新过程中,以上步骤111至117中的随机数种子1对应于本申请中的第一随机数种子,数组4对应于本申请中的第一数组,数组5对应于本申请中的第二数组,字符串2对应于本申请中的第一字符串,哈希值2对应于本申请中的第一哈希值,数值段3对应于本申请中的第一数值段,数值段4对应于本申请中的第二数值段。随机数种子2对应于本申请中的第二随机数种子。

可选的,随机数发生器进一步判断数组3的值是否属于满足深度更新条件的阈值,并根据判断结果确定是否进行随机数种子的深度更新。

例如,当数组3的数值为T时,需要进行深度更新。

可选的,所述随机数发生器根据所述步骤118至124进行随机数种子深度更新,包括:

示例性的,步骤118,所述随机数发生器执行所述步骤101至105,得到随机数种子3。

示例性的,步骤119,根据所述与操作系统有关的随机数确定数组6,并根据随机数种子3和数组6获得字符串3。

示例性的,步骤120,所述随机数发生器对字符串3进行哈希计算获得哈希值3。

示例性的,步骤121,所述随机数发生器对数组3的数值进行加一处理。

示例性的,步骤122,所述随机数发生器根据所述哈希值3获得8个数值段5。

示例性的,步骤123,所述随机数发生器根据所述随机数种子3获得8个数值段6。

示例性的,步骤124,所述随机数发生器将8个数值段5与8个数值段6进行异或移位处理,得到随机数种子。所述随机数种子即为完成深度更新后的所述随机数种子。

可选的,在深度更新过程中,以上步骤118至124中的随机数种子3对应于本申请中的第一随机数种子,数组6对应于本申请中的第四数组,数组3对应于本申请中的第三数组,字符串3对应于本申请中的第二字符串,哈希值3对应于本申请中的第二哈希值,数值段5对应于本申请中的第三数值段,数值段6对应于本申请中的第四数值段。随机数种子4对应于本申请中完成深度更新后的第一随机数种子。

与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种随机数生成装置。该随机数生成装置可以用于执行以上方法实施例所述的动作。在该实施例中,随机数生成装置的结构可以如图3所示。如图3所示,本申请示例性的提供一种随机数生成装置包括获取模块301和处理模块302。

其中,获取模块301,用于获取第一数组和第二数组;

处理模块302,用于对第一字符串进行哈希计算获得第一哈希值,所述第一字符串为所述第一数组和所述第二数组的组合;

所述处理模块302,还用于根据所述第一哈希值获得N个第一数值段,N为正整数;

所述处理模块302,还用于根据所述第一数组获得N个第二数值段;

所述处理模块302,还用于将N个第二数值段与N个第一数值段进行异或移位处理,得到第一随机数种子,所述第一随机数种子用于生成随机数。

可选的,第一数组包括第一随机数,第一随机数根据用户的随机输入操作确定;第二数组包括与操作系统有关的随机数。

可选的,所述处理模块302,还用于输出所述第一哈希值。

可选的,所述获取模块301,还用于获取第三数组的数值;

所述处理模块302,还用于对所述第三数组的数值进行加一处理或减一处理,获得更新的第三数组。当所述更新的第三数组的数值属于满足深度更新条件的阈值时,对所述第一随机数种子进行深度更新。

可选的,所述获取模块301,还用于获取第四数组;

所述处理模块302,还用于对第二字符串进行哈希计算获得第二哈希值,所述第二字符串为所述第一随机数种子和所述第四数组的组合。根据所述第二哈希值获得N个第三数值段,N为正整数。根据所述第一随机数种子获得N个第四数值;还用于将N个第四数值段与N个第三数值段进行异或移位处理,得到第三随机数种子。

可选的,所述处理模块302,还用于将第三数组的值置为0或阈值。

可选的,所述处理模块302,还用于:

所述N=8,所述将N个第二数值段与N个第一数值段进行异或移位处理,得到第一随机数种子,包括:按照以下公式获得A

A

其中,H

用A

与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。该电子设备可以用于执行以上方法实施例所述的动作。在该实施例中,电子设备的结构可以如图4所示,包括存储器401以及一个或多个处理器402。

存储器401,用于存储处理器402执行的计算机程序。存储器401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。

存储器401可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器401也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器401是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器401可以是上述存储器的组合。

处理器402,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等。所述处理器402,用于调用存储器401中存储的计算机程序时实现上述方法。

本申请实施例中不限定上述存储器401和处理器402之间的具体连接介质。作为一种示例,本申请实施例在图4中以存储器401和处理器402之间通过总线403连接,总线403在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线403可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,处理器402可用于执行以上由获取模块301、处理模块302中任意一项或多项执行的动作。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的方法。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

相关技术
  • 一种随机数生成方法、装置和存储介质
  • 一种基于混沌放大量子噪声的随机数生成的方法
  • 一种信号控制装置及方法、显示控制装置及方法、显示装置
  • 一种口语测评方法、装置及一种生成口语测评模型的装置
  • 一种编码模式切换方法和装置、解码模式切换方法和装置
  • 随机数生成方法、随机数生成装置及电子设备
  • 秘密随机数生成系统、秘密计算装置、秘密随机数生成方法以及程序
技术分类

06120115629768