首页> 中国专利> 随机数生成器判别方法及随机数处理方法、装置、设备

随机数生成器判别方法及随机数处理方法、装置、设备

摘要

本发明实施例提供一种随机数生成器判别方法及随机数处理方法、装置、设备,该随机数处理方法包括:获取随机数生成器当前生成的N个随机数,N≥1;采用与随机数生成器对应的模型对N个随机数进行检验,其中,模型由依次连接的卷积神经网络和循环神经网络组成;若根据N个随机数的检验结果确定N个随机数符合随机性要求,则使用N个随机数进行数据处理,以保证数据安全。

著录项

  • 公开/公告号CN112882683A

    专利类型发明专利

  • 公开/公告日2021-06-01

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN201911202755.9

  • 发明设计人 周泓伊;黄蕾蕾;

    申请日2019-11-29

  • 分类号G06F7/58(20060101);

  • 代理机构11610 北京太合九思知识产权代理有限公司;

  • 代理人孙明子;刘戈

  • 地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱

  • 入库时间 2023-06-19 11:11:32

说明书

技术领域

本发明涉及互联网技术领域,尤其涉及一种随机数生成器判别方法及随机 数处理方法、装置、设备。

背景技术

随机数在诸如数据加密等场景中被广泛使用,随机数是由随机数生成器生 成的。比如在数据加密场景中,由随机数生成器生成一串随机数以供对需要加密 的数据进行加密。

目前,常见的随机数生成器包括:伪随机数生成器和量子随机数生成器,相 应地,可以将伪随机数生成器生成的随机数称为伪随机数,将量子随机数生成器 生成的随机数称为量子随机数。

在很多实际应用场景中都要求随机数生成器所生成的随机数具有良好的随 机性,但是,不同的随机数生成器所生成的随机数所表现出的随机性可能不同, 有些随机数生成器所生成的随机数未必能够达到要求。

发明内容

本发明实施例提供一种随机数生成器判别方法及随机数处理方法、装置、设 备,可以实现对随机数生成器生成的随机数的质量的确定。

第一方面,本发明实施例提供一种随机数处理方法,该方法包括:

获取随机数生成器当前生成的N个随机数,N≥1;

采用与所述随机数生成器对应的模型对所述N个随机数进行检验;

若根据所述N个随机数的检验结果确定所述N个随机数符合随机性要求, 则使用所述N个随机数进行数据处理;

其中,所述模型由依次连接的卷积神经网络和循环神经网络组成。

第二方面,本发明实施例提供一种随机数处理装置,该装置包括:

获取模块,用于获取随机数生成器当前生成的N个随机数,N≥1;

检验模块,用于采用与所述随机数生成器对应的模型对所述N个随机数进 行检验,所述模型由依次连接的卷积神经网络和循环神经网络组成;

处理模块,用于若根据所述N个随机数的检验结果确定所述N个随机数符 合随机性要求,则使用所述N个随机数进行数据处理。

第三方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其 中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时, 使所述处理器至少可以实现第一方面中的随机数处理方法。

本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器 可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执 行时,使所述处理器至少可以实现第一方面中的随机数处理方法。

第四方面,本发明实施例提供一种随机数生成器判别方法,该方法包括:

获取随机数生成器生成的N1个随机数,N1>1;

采用与所述随机数生成器对应的模型对所述N1个随机数进行检验,以获得 与所述N1个随机数对应的检验结果;

根据所述检验结果确定所述随机数生成器的质量;

其中,所述模型由依次连接的卷积神经网络和循环神经网络组成。

第五方面,本发明实施例提供一种随机数生成器判别装置,该装置包括:

获取模块,用于获取随机数生成器生成的N1个随机数,N1>1;

检验模块,用于采用与所述随机数生成器对应的模型对所述N1个随机数进 行检验,以获得与所述N1个随机数对应的检验结果,其中,所述模型由依次连 接的卷积神经网络和循环神经网络组成;

确定模块,用于根据所述检验结果确定所述随机数生成器的质量。

第六方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其 中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时, 使所述处理器至少可以实现第四方面中的随机数生成器判别方法。

本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器 可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执 行时,使所述处理器至少可以实现第四方面中的随机数生成器判别方法。

第七方面,本发明实施例提供一种随机数生成器判别方法,该方法包括:

获取第一随机数生成器生成的N1个随机数以及第二随机数生成器生成的N2 个随机数,N1>1,N2>1;

采用与所述第一随机数生成器对应的第一模型对所述N1个随机数进行检验, 以获得与所述N1个随机数对应的第一检验结果;

采用与所述第二随机数生成器对应的第二模型对所述N2个随机数进行检验, 以获得与所述N2个随机数对应的第二检验结果;

根据所述第一检验结果和所述第二检验结果对所述第一随机数生成器和所 述第二随机数生成器进行选择;

其中,所述第一模型和所述第二模型均由依次连接的卷积神经网络和循环 神经网络组成。

第八方面,本发明实施例提供一种随机数处理方法,该方法包括:

获取随机数生成器当前生成的N个随机数,N≥1;

采用与所述随机数生成器对应的模型对所述N个随机数进行检验,所述模 型由依次连接的卷积神经网络和循环神经网络组成;

若根据所述N个随机数的检验结果确定所述N个随机数不符合随机性要求, 则获取所述随机数生成器生成的另外N个随机数,或者,更新所述随机数生成 器。

第九方面,本发明实施例提供一种随机数处理装置,该装置包括:

获取模块,用于获取随机数生成器当前生成的N个随机数,N≥1;

检验模块,用于采用与所述随机数生成器对应的模型对所述N个随机数进 行检验,所述模型由依次连接的卷积神经网络和循环神经网络组成;

处理模块,用于若根据所述N个随机数的检验结果确定所述N个随机数不 符合随机性要求,则获取所述随机数生成器生成的另外N个随机数,或者,更新 所述随机数生成器。

第十方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其 中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时, 使所述处理器至少可以实现第八方面中的随机数处理方法。

本发明实施例中,当在某数据处理过程中需要使用到随机数生成器生成的N 个随机数时,先采用预先训练得到的模型,结合随机数生成器在生成这N个随 机数之前已经生成的多个随机数,对该随机数生成器生成的这N个进行检验, 以根据这N个随机数的检验结果确定这N个随机数是否符合随机性要求,若符 合随机性要求,则使用这N个随机数进行数据处理,以保证数据安全。其中,N 个随机数的检验结果描述了这N个随机数中被模型成功预测出的随机数的情况, 如果这N个随机数中被模型能够成功预测出的随机数的数量越多,说明这N个 随机数的随机性越差。

通过研究发现,有些随机数生成器所生成的大量随机数可能会呈现周期性 特征,或者会呈现一些随机数序列反复出现的特征,这些特征的存在显然是不符 合随机性要求的。因此,如果想要对上述N个随机数实现准确地随机性判断,需 要让上述模型具有发现这些特征的能力,为此,本发明实施例提供了由依次连接 的卷积神经网络和循环神经网络组成的模型。其中,由于卷积神经网络具有提取 出数据中局部特征的能力,因此可以通过卷积神经网络发现随机数序列反复出 现的特征以及周期性特征等。由于循环神经网络具有记忆功能,因此可以通过循 环神经网络基于历史产生的随机数进行更准确地随机数预测,以获得更准确的 随机数预测结果,从而获得更准确的随机数的随机性判定结果。

附图说明

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

图1为本发明一实施例提供的随机数处理方法的流程图;

图2为本发明一实施例提供的模型结构的示意图;

图3为本发明一实施例提供的N个随机数的检验过程示意图;

图4为本发明一实施例提供的随机数处理方法的执行过程的示意图;

图5为本发明另一实施例提供的随机数处理方法的执行过程示意图;

图6为本发明一实施例提供的模型训练过程的示意图;

图7为本发明一实施例提供的随机数生成器判别方法的流程图;

图8为本发明另一实施例提供的随机数生成器判别方法的流程图;

图9为本发明一实施例提供的随机数处理装置的结构示意图;

图10为与图9所示实施例提供的随机数处理装置对应的电子设备的结构示 意图;

图11为本发明一实施例提供的随机数生成器判别装置的结构示意图;

图12为与图11所示实施例提供的随机数生成器判别装置对应的电子设备 的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实 施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所 描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实 施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实 施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨 在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一 种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义, “多种”一般包含至少两种。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在…… 时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境, 短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确 定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测 (陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排 他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且 还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的 要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排 除在包括所述要素的商品或者系统中还存在另外的相同要素。

另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。

本发明实施例提供的随机数处理方法、随机数生成器判别方法可以由诸如 PC机、笔记本电脑、手机等终端设备执行,也可以由云端的服务器或服务器集 群执行。

图1为本发明一实施例提供的随机数处理方法的流程图,如图1所示,可 以包括如下步骤:

101、获取随机数生成器当前生成的N个随机数。

102、采用与该随机数生成器对应的模型对N个随机数进行检验,模型由依 次连接的卷积神经网络和循环神经网络组成。

103、若根据N个随机数的检验结果确定N个随机数符合随机性要求,则使 用N个随机数进行数据处理。

本实施例中的上述随机数生成器可以是任一种随机数生成器,比如可以是 伪随机数生成器,也可以是量子随机数生成器。

在不同的应用场景中每次所需的随机数的个数往往不同,有些场景(比如数 据加密场景)中可能需要很多个随机数,而有些场景(比如随机数选择场景)可 能仅需要一个随机数,因此,上述N的取值为N≥1。

值得说明的是,在本文中,随机数生成器每次仅生成一个随机数。从而,当 某些应用场景中每次需要使用多个随机数时,可以令随机数生成器执行多次随 机数生成操作,以生成所需的多个随机数。

另外,在不同的应用场景中,可以根据实际需求对随机数生成器进行一些配 置,比如配置随机数生成器所生成的随机数的进制数和取值范围,每次需要使用 多少个随机数,等等。

举例来说,随机数生成器所产生的随机数可以是二进制数,也可以是十进制 数等其他进制数。以随机数生成器可以生成十进制数为例,还可以设置随机数生 成器所产生的随机数的取值范围,比如为[0,30000]。基于此,假设在某场景中 每次需要使用5个随机数,即N=5,如果随机数生成器生成的随机数为二进制 数,则上述N个随机数是5个二进制数,比如为:01101;如果随机数生成器生 成的随机数为十进制数,且取值范围为[0,30000],则上述N个随机数是该取值 范围内的5个十进制数,比如为:7,135,36,16005,24873。

在获取到随机数生成器生成的N个随机数后,为避免数据安全等方面的隐 患,可以先对这N个随机数进行随机性判定,以确定这N个随机数是否符合随 机性要求,若符合,则使用这N个随机数进行后续的数据处理。若不符合,则可 以丢弃这N个随机数,此时,可以让随机数生成器再重新生成N个随机数,若新 生成的N个随机数符合随机性要求,则使用新生成的N个随机数进行数据处理; 或者,也可以更新该随机数生成器。其中,更新随机数生成器可以是再训练该随 机数生成器,或者,选择另一随机数生成器。

其中,在对这N个随机数进行随机性判定的过程中,需要使用到预先训练 得到的模型,以便结合该随机数生成器在生成这N个随机数之前已经生成的多 个随机数,采用该模型对这N个随机数进行检验,进而,根据这N个随机数的检 验结果完成对这N个随机数的随机性判定,即判定这N个随机数是否符合随机 性要求。

其中,步骤102中所说的“与随机数生成器对应的模型”是指该模型是基于 该随机数生成器曾经依次生成的大量随机数进行训练获得的。该模型的训练过 程将在后续实施例中说明,在此仅强调,通过训练过程,模型可以学习到该随机 数生成器所生成的大量随机数中所呈现的数据特征,比如周期性特征、随机数序 列反复出现的特征,等等。基于这些数据特征的学习结果,可以使得模型能够更 准确地进行随机数的预测。

概括来说,对N个随机数进行检验,是指模型结合随机数生成器在生成这N 个随机数之前生成的多个随机数来预测随机数生成器接下来生成的随机数是什 么。如果模型依次输出的N个预测值与随机数生成器生成的这N个随机数的重 合度很高(比如完全一致),说明这N个随机数的可预测性极高即很容易被预测 出来,此时,亦即说明这N个随机数的随机性很差,不符合随机性要求。

本实施例中,N个随机数的检验结果可以是根据模型预测得到的N个预测值 进行计算得到的某种指标,从而,随机性要求可以体现为是设定的指标阈值,基 于此,通过计算得到的指标与该阈值进行比较即可判定这N个随机数是否符合 随机性要求。其中,可以使用的指标会在下文中阐述。

下面先对N个随机数的检验过程中所使用的模型进行说明,再介绍N个随 机数的检验过程。

如图2中所示,该模型可以由依次连接的卷积神经网络(Convolutional NeuralNetwork,简称CNN)和循环神经网络(Recurrent Neural Network,简称 RNN)组成。其中,该CNN可以包括一个或多个卷积层,比如图2中示意的卷积层 1和卷积层2,最后一个卷积层的输出可以作为RNN的输入。实际应用中,RNN 比如可以采用长短期记忆网络(Long Short-Term Memory,简称LSTM)来实现。

在图2中,简单地示意下该模型的输入、输出:假设当前模型的输入为X个 随机数,那么模型的输出则为模型根据这X个随机数预测出的第X+1个随机数。

之所以采用由CNN和RNN组成的模型,是因为CNN通过卷积运算具有提取 输入数据中的局部特征的能力,而RNN具有记忆功能可以更好地进行数据预测。 这两个神经网络各自对应的这种能力,在随机数检验过程中的作用体现为:通过 CNN可以更好的提取出随机数生成器曾经生成的大量随机数中所具有的局部特 征(比如特定的随机数序列反复出现的特征)以及周期性特征;通过RNN的记忆 功能可以更好地利用随机数生成器曾经生成的大量随机数进行随机数预测,提 高预测成功率。

下面介绍一种可选的N个随机数的检验过程:

首先,以随机数生成器在生成这N个随机数之前已经生成的多个随机数初 始化检验集。之后,执行如下迭代过程,直至这N个随机数均被检验完成:

在第i轮迭代过程中,将检验集中包含的随机数输入到模型中,以通过模 型输出与N个随机数中第i个随机数对应的预测值;

将N个随机数中第i个随机数更新到检验集中,以执行第i+1轮迭代过程, i∈[1,N]。

值得说明的是,实际应用中,为提高这N个随机数的检验结果的准确性,可 以获取随机数生成器在生成这N个随机数之前所生成的所有随机数来初始化检 验集,当然,为了兼顾计算量,也可以获取随机数生成器在生成这N个随机数之 前最后生成的一定数量比如5000个随机数来初始化检验集。

下面结合图3来示例性说明该检验过程。假设随机数生成器在生成这N个 随机数之前已经生成了K个随机数,以这K个随机数初始化检验集,即初始的 检验集由这K个随机数构成。在图3中,假设K=10,并假设这10个随机数为: 0110100001,从而,最初的检验集中包括的即为这10个随机数。假设当前随机 数生成器生成的N个随机数为:11001。

如图3中所示,在第一轮迭代过程中,即i=1,将这K个随机数输入到模型 中,模型输出的是与N个随机数中第一个随机数对应的预测值,假设称为第一 个预测值,并假设第一个预测值为0,通过对比N个随机数中第一个随机数对应 的预测值与该第一个随机数是否相同,以完成对N个随机数中第一个随机数的 检验。由于已经完成了对N个随机数中第一个随机数的检验,接下来需要检验N 个随机数中的第二个随机数,此时,需要更新检验集,具体地,将已经被检验完 成的N个随机数中的第一个随机数添加到检验集中,此时,检验集中包含K+1个 随机数。由于N个随机数中的第一个随机数为1,因此更新后的检验集中包括的 随机数为:01101000011,其中,最后一个1即为N个随机数中的第一个随机数。

接下来,执行第二轮迭代过程,即i=2,此时,将更新后的检验集中的这K+1 个随机数输入到模型中,模型输出的是与N个随机数中第二个随机数对应的预 测值,假设称为第二个预测值,并假设第二个预测值为1,从而,通过对比N个 随机数中第二个随机数对应的预测值与该第二个随机数是否相同,完成了对N个 随机数中第二个随机数的检验。由于已经完成了对N个随机数中第二个随机数 的检验,接下来需要检验N个随机数中的第三个随机数,此时,需要更新检验 集,具体地,将已经被检验完成的N个随机数中的第二个随机数再添加到检验 集中,此时,检验集中包含K+2个随机数。由于N个随机数中的第二个随机数为 1,因此更新后的检验集中包括的随机数为:011010000111,其中,最后一个1 即为N个随机数中的第二个随机数。

以此类推,直至N个随机数都被检验完成。可以理解的是,在最后一轮迭代 过程中,即i=5时,检验集中包含的随机数个数为K+N-1,也就是说,在执行最 后一轮迭代过程时,N个随机数中的前N-1个随机数都已经被更新到检验集中。

另一种可选的N个随机数的检验过程为:

获取随机数生成器在生成N个随机数之前已经生成的多个随机数;

将该多个随机数输入到模型中,以通过模型输出N个随机数各自对应的预 测值。

本方式中,假设多个随机数认为前述K个随机数。可以训练模型根据K个 随机数一并预测出N个随机数。

另一种可选的N个随机数的检验过程为:

以随机数生成器在生成N个随机数之前已经生成的多个随机数初始化检验 集;

执行如下迭代过程,直至N个随机数均被检验完成:

在第i轮迭代过程中,将检验集中包含的随机数输入到模型中,以通过模 型输出与N个随机数中第i个随机数对应的预测值;

将N个随机数中第i个随机数更新到所述检验集中,并从检验集中移除最 先产生的随机数,以执行第i+1轮迭代过程,i∈[1,N]。

上述多个随机数假设仍为K个随机数。本方式中,保持校验集中始终有K个 随机数。具体的,采用先进先出的机制来更新校验集,即当新添加到检验集中一 个随机数时,便移除此时生成时间最早的那个随机数。

综上几种检验方式,概括来说,随机数的检验过程即为:根据随机数生成器 此前生成的多个随机数预测随机数生成器接下来可能生成的一个随机数是什么。

在根据上述过程完成N个随机数的预测后,可以得到N个随机数各自对应 的预测值。假设N个随机数对应的N个预测值为:01011。

接下来,可以根据这N个预测值得到N个随机数的检验结果。

在一可选实施例中,可以通过对比N个随机数与N个随机数各自对应的预 测值是否相同,确定N个随机数对应的总预测成功数量,进而根据该总预测成 功数量确定作为N个随机数的检验结果的第一概率值,基于此,若该第一概率 值低于设定阈值,则确定N个随机数符合随机性要求。

仍以上述举例来说,N个随机数为:11001,N个预测值为:01011。对比N 个随机数及N个预测值发现:N个随机数中的第一个和第四个没有被成功预测出 来,其他的三个都被成功预测出,因此,这N个随机数对应的总预测成功数量为 3。从而,这N个随机数对应的第一概率值为:3/5=0.6,假设阈值为0.2,由于 第一概率值大于该阈值,从而,这N个随机数不符合随机性要求。

本实施例中,是以N个随机数中累计一共有多少个随机数被成功预测出的 全局的角度来对N个随机数的随机性进行评价的。可以理解的是,第一概率值 越大,说明N个随机数的整体可预测性越好,即N个随机数中被成功预测出来 的随机数的数量越多,亦说明N个随机数的随机性越差。

除此之外,在另一可选实施例中,还提供了另一种评价N个随机数的随机 性的方式:以N个随机数中最多连续有多少个随机数被成功预测出的局部的角 度来对N个随机数的随机性进行评价。

具体来说,可以通过对比N个随机数与所述N个随机数各自对应的预测值 是否相同,确定N个随机数对应的最大连续成功预测数量,该最大连续成功预 测数量是指N个随机数中最多的被连续成功预测出的随机数数量。进而,根据 该最大连续成功预测数量确定作为N个随机数的检验结果的第二概率值,从而, 若该第二概率值低于设定阈值,则确定N个随机数符合随机性要求。

举例来说,假设N个随机数为:

在得到最大连续成功预测数量后,可以根据如下公式计算上述第二概率值:

α=(1-px)/[(r+1=rx)*(1-p)*x

其中,α为预设的置信度,取值比如为0.05;r表示N个随机数中最大连续 成功预测出的随机数数量亦即最大连续成功预测数量;n为预测的轮数,在N个 随机数的情况下,n=N;x是方程1-x+(1-p)p

通过求解上述公式可以得到第二概率值p,p越多,说明N个随机数的局部 可预测性越好,亦即N个随机数的随机性越差。

在基于上述两种可选的方式完成对N个随机数的随机性的评判后,如果这N 个随机数符合随机性要求,则使用这N个随机数进行后续的数据处理。

比如,使用这N个随机数对需要加密的数据进行数据加密处理。

再比如,输出与这N个随机数对应的数据对象,其中,该数据对象比如为承 载有与该N个随机数对应的数值的物体,或者,在屏幕上显示与该N个随机数 对应的数值。具体举例来说,比如在随机选数场景中,假设N个随机数为十进制 数:23、56,可以将这两个数值显示在屏幕上,从而意味着对应于这两个号码的 两个用户为获奖者。

综上,当随机数生成器当前生成N个随机数时,先通过由依次连接的卷积 神经网络和循环神经网络组成的模型对这N个随机数进行检验,以根据N个随 机数的检验结果确定N个随机数的随机性是否符合要求,若符合要求,才使用 这N个随机数进行后续的数据处理,以保证数据安全性。通过联合使用卷积神 经网络和循环神经网络可以获得更准确的随机数检验结果,从而获得更准确的 随机数的随机性判定结果。

下面结合图4所示意的一种随机选数场景来对上述随机数处理方法的执行 过程进行示例性说明。

在该随机选数场景中,假设当前一次随机选择需要产生三个号码,号码由随 机数生成器产生,假设随机数生成器当前生成的三个随机数即三个号码分别为 J1=13,J2=66,J3=37。为避免随机数生成器当前生成的这几个随机数与之前生 成的随机数具有重复性,可以对这三个随机数进行随机性验证。

具体地,随机选择现场的某终端设备在获得随机数生成器生成的上述三个 随机数后,先获取该随机数生成器在生成这三个随机数之前已经生成的多个随 机数,在图4中假设为K个随机数,以这K个随机数初始化检验集。之后,在第 一轮迭代过程中,将这K个随机数输入到由CNN和RNN构成的模型中,由模型 输出第一个预测值,记为J1’。之后,将J1更新到检验集中,从而,第二轮迭 代过程中检验集中包括原来的K个随机数和J1。在第二轮迭代过程中,将K个 随机数和J1输入到模型中,由模型输出第二个预测值,记为J2’。之后,将J2更新到检验集中,从而,第三轮迭代过程中检验集中包括原来的K个随机数、 J1和J2。在第三轮迭代过程中,将K个随机数、J1和J2输入到模型中,由模 型输出第三个预测值,记为J3’。假设设定的随机性条件为:模型预测出的这 三个预测值与随机数生成器生成的三个随机数均不相同,从而,如果J1≠ J1’,J2≠J2’,J3≠J3’,则认为J1、J2、J3这三个随机数符合随机性条件, 从而,在终端设备的屏幕上显示这三个随机数。

下面结合图5来示例性一种上述随机数处理方法在实际应用中的执行过程。 如图5所示,在该执行过程中涉及到三方主体:随机数生成器、云端的服务器、 客户方。

其中,客户方是指需要使用随机数生成器所产生的随机数的一方。

云端的服务器可以是独立的主机,也可以是服务器集群。对随机数生成器所 生成的N个随机数进行随机性检验的算法逻辑部署在服务器中。

如图5中所示,实际应用中,当客户方从随机数生成器获得N个随机数之 后,可以调用服务器的相关接口,以将N个随机数上传到服务器,触发服务器运 行检验逻辑实现对该随机数生成器生成的这N个随机数是否满足随机性要求的 检验。其中,服务器会采用与该随机数生成器对应的模型对N个随机数进行检 验,该模型由依次连接的卷积神经网络和循环神经网络组成。服务器将检验结果 反馈到客户方,该检验结果表明这N个随机数是否符合随机性要求。对于客户 方来说,在这N个随机数符合随机性要求时,使用这N个随机数进行数据处理。

下面对上述模型的训练过程进行介绍。首先,以随机数生成器曾经生成的M 个随机数初始化训练集,M>1。进而,执行如下迭代过程,直至达到设定的轮数 L:

获取随机数生成器在M个随机数之后生成的第j个随机数,其中,j∈[1,L];

在第j轮迭代过程中,将训练集中包含的随机数输入到模型中,以通过模 型输出第j个随机数对应的预测值;

若第j个随机数对应的预测值与第j个随机数不同,则以使第j个随机数 对应的预测值与第j个随机数相同为目标,调整模型的参数;

将第j个随机数更新到训练集中,以执行第j+1轮迭代过程。

实际应用中,为使得模型能够学习到随机数生成器所生成的随机数中可能 具有的一些数据特征,训练集中初始包含的随机数个数M以及模型的训练轮数 往往都设置的比较大。实际上,M个随机数可以是随机数生成器顺次生成的若干 随机数。

结合图6来示意性说明上述模型的训练过程。在图6中,假设随机数生成 器在M个随机数之后生成的第一个随机数为1,记为R1=1。在第一轮迭代过程 中,输入到模型中的是初始化训练集的M个随机数,模型根据这M个随机数输 出一个预测值,假设为0,记为R1’=0。这个预测值即为与随机数生成器生成的 第一个随机数R1对应的预测值。对比R1与R1’,发现R1与R1’不相等,从 而,以使得R1与R1’相等为目标调整模型的参数。

之后,将已经完成检验的随机数生成器生成的第一个随机数R1添加到训练 集中以更新训练集,进行第二轮迭代,如图6中所示,此时,训练集中包括原来 的M个随机数以及R1。假设随机数生成器在第一个随机数R1之后生成的第二个 随机数为R2=1。在第二轮迭代过程中,输入到模型中的是当前训练集中包含的 共M+1个随机数,模型根据这M+1个随机数输出一个预测值,假设为1,记为 R2’=1。这个预测值即为与随机数生成器生成的第二个随机数R2对应的预测值。 对比R2与R2’,发现R2与R2’相等,此时可以不调整模型的参数。

之后,将已经完成检验的随机数生成器生成的第二个随机数R2添加到训练 集中以更新训练集,此时,训练集中包括原来的M个随机数以及R1和R2,进而 进行下一轮迭代,以此类推,直到完成L轮迭代。

图7为本发明一实施例提供的随机数生成器判别方法的流程图,如图7所 示,该方法可以包括如下步骤:

701、获取随机数生成器生成的N1个随机数,N1>1。

702、采用与随机数生成器对应的模型对N1个随机数进行检验,以获得与 N1个随机数对应的检验结果,其中,模型由依次连接的卷积神经网络和循环神 经网络组成。

703、根据检验结果确定随机数生成器的质量。

如前文所述,在很多实际应用场景中都可能用到随机数,而所需的随机数是 由随机数生成器所生成的,因此,随机数生成器的质量至关重要。比如在数据加 密场景中,如果随机数生成器生成的随机数足够随机,那么对数据安全将产生积 极作用,反之,将会导致数据安全问题。

随机数生成器的质量可以反映为其所生成的随机数的随机性,亦即反映为 其所生成的随机数的可预测性。如果随机数生成器所生成的随机数具有很高的 可预测性,说明其所生成的随机数具有较差的随机性,从而说明该随机数生成器 质量不佳。

因此,判别随机数生成器的质量问题可以转换为对该随机数生成器所生成 的随机数的随机性检验问题。可以通过对该随机数生成器所生成的随机数的随 机性检验结果来确定该随机数生成器的质量是否合格。被判定为质量合适的随 机数生成器才会被在后续数据处理过程中使用。

与前述实施例相似地,对随机数生成器此前所生成的N1个随机数进行检验 的过程,可以实现为:首先,以该随机数生成器在生成N1个随机数之前已经生 成的多个随机数初始化检验集,之后,执行如下迭代过程,直至N1个随机数均 被检验完成:

在第i轮迭代过程中,将检验集中包含的随机数输入到模型中,以通过模 型输出与N1个随机数中第i个随机数对应的预测值;

将N1个随机数中第i个随机数更新到检验集中,以执行第i+1轮迭代过程, i∈[1,N1]。

基于此,可选地,可以通过如下方式获取这N1个随机数的检验结果:

通过对比N1个随机数与N1个随机数各自对应的预测值是否相同,确定N1 个随机数对应的最大连续成功预测数量,根据该最大连续成功预测数量确定作 为N1个随机数的检验结果的概率值。从而,若该概率值低于设定阈值,则确定 随机数生成器质量合格。

上述过程的详细执行过程可以参见前述其他实施例中的说明,在此不赘述。

另外,本实施例中所用到的模型的训练过程与前文中模型的训练过程相似, 包括如下步骤:

以随机数生成器生成的N2个随机数初始化训练集,N2>1,N2个随机数与所 述N1个随机数不同;

执行如下迭代过程,直至达到设定的轮数:

获取随机数生成器在N2个随机数之后生成的第j个随机数,其中,j∈ [1,L],L为设定的轮数;

在第j轮迭代过程中,将训练集中包含的随机数输入到模型中,以通过模 型输出第j个随机数对应的预测值;

若第j个随机数对应的预测值与第j个随机数不同,则以使第j个随机数 对应的预测值与第j个随机数相同为目标,调整模型的参数;

将第j个随机数更新到训练集中,以执行第j+1轮迭代过程。

本实施例中未展开描述的内容可以参考前述其他相关实施例中的说明,在 此不赘述。

图8为本发明另一实施例提供的随机数生成器判别方法的流程图,如图8 所示,该方法可以包括如下步骤:

801、获取第一随机数生成器生成的N1个随机数以及第二随机数生成器生 成的N2个随机数,N1>1,N2>1。

802、采用与第一随机数生成器对应的第一模型对N1个随机数进行检验以 获得与N1个随机数对应的第一检验结果;采用与第二随机数生成器对应的第二 模型对N2个随机数进行检验以获得与N2个随机数对应的第二检验结果,其中, 第一模型和第二模型均由依次连接的卷积神经网络和循环神经网络组成。

803、根据第一检验结果和第二检验结果对第一随机数生成器和第二随机数 生成器进行选择。

在实际应用中,可能存在不止一种随机数生成器可以被使用,当存在多种可 选的随机数生成器时,究竟使用哪个随机数生成器,是本实施例提供的方案所要 解决的问题。简单来说就是,选择质量更佳的随机数生成器。

而如前文所述,随机数生成器的质量评判问题可以转换为对随机数生成器 所生成的随机数的随机性检验问题,以便根据随机数的随机性检验结果进行相 应随机数生成器质量的判定。

本实施例中,假设当前存在两个随机数生成器以供选择,分别为第一随机数 生成器和第二随机数生成器。比如第一随机数生成器为量子随机数生成器,第二 随机数生成器为伪随机数生成器。

为了对这两个随机数生成器进行质量评判,可以预先训练这两个随机数生 成器各自对应的模型,即为上述第一模型和第二模型。可以理解的是,第一随机 数生成器对应的第一模型是采用第一随机数生成器生成的若干随机数作为训练 样本进行训练获得的,第二随机数生成器对应的第二模型是采用第二随机数生 成器生成的若干随机数作为训练样本进行训练获得的。

模型的训练过程可以参见前述其他实施例中的说明,不再赘述。同样地,上 述步骤801-802所对应的模型使用过程也可以参考前述其他实施例中的说明, 在此不赘述。

假设上述第一检验结果和第二检验结果具体实现为前述实施例中提到的两 种概率值中的一种,那么,对第一随机数生成器和第二随机数生成器进行选择的 结果为:选择对应于最小概率值的随机数生成器。

以下将详细描述本发明的一个或多个实施例的随机数处理装置、随机数生 成器判别装置。本领域技术人员可以理解,这些随机数处理装置、随机数生成器 判别装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。

图9为本发明一实施例提供的随机数处理装置的结构示意图,如图9所示, 该随机数处理装置包括:获取模块11、检验模块12、处理模块13。

获取模块11,用于获取随机数生成器当前生成的N个随机数,N≥1。

检验模块12,用于采用与所述随机数生成器对应的模型对所述N个随机数 进行检验,所述模型由依次连接的卷积神经网络和循环神经网络组成。

处理模块13,用于若根据所述N个随机数的检验结果确定所述N个随机数 符合随机性要求,则使用所述N个随机数进行数据处理。

可选地,所述检验模块12具体可以用于:以所述随机数生成器在生成所述 N个随机数之前已经生成的多个随机数初始化检验集;执行如下迭代过程,直至 所述N个随机数均被检验完成:在第i轮迭代过程中,将所述检验集中包含的 随机数输入到模型中,以通过所述模型输出与所述N个随机数中第i个随机数 对应的预测值;将所述N个随机数中第i个随机数更新到所述检验集中,以执 行第i+1轮迭代过程,i∈[1,N]。

可选地,所述检验模块12具体可以用于:获取所述随机数生成器在生成所 述N个随机数之前已经生成的多个随机数;将所述多个随机数输入到模型中, 以通过所述模型输出所述N个随机数各自对应的预测值。

可选地,所述检验模块12具体可以用于:

以所述随机数生成器在生成所述N个随机数之前已经生成的多个随机数初 始化检验集;

执行如下迭代过程,直至所述N个随机数均被检验完成:

在第i轮迭代过程中,将所述检验集中包含的随机数输入到模型中,以通 过所述模型输出与所述N个随机数中第i个随机数对应的预测值;

将所述N个随机数中第i个随机数更新到所述检验集中,并从所述检验集 中移除最先产生的随机数,以执行第i+1轮迭代过程,i∈[1,N]。

可选地,所述处理模块13可以用于:通过对比所述N个随机数与所述N个 随机数各自对应的预测值是否相同,确定所述N个随机数对应的总预测成功数 量;根据所述总预测成功数量确定作为所述N个随机数的检验结果的第一概率 值;若所述第一概率值低于设定阈值,则确定所述N个随机数符合随机性要求。

可选地,所述处理模块13还可以用于:通过对比所述N个随机数与所述N 个随机数各自对应的预测值是否相同,确定所述N个随机数对应的最大连续成 功预测数量;根据所述最大连续成功预测数量确定作为所述N个随机数的检验 结果的第二概率值;若所述第二概率值低于设定阈值,则确定所述N个随机数 符合随机性要求。

可选地,所述装置还包括:训练模块,用于以所述随机数生成器曾经生成的 M个随机数初始化训练集,M>1;执行如下迭代过程,直至达到设定的轮数:获 取所述随机数生成器在所述M个随机数之后生成的第j个随机数,其中,j∈ [1,L],L为所述设定的轮数;在第j轮迭代过程中,将所述训练集中包含的随机 数输入到模型中,以通过所述模型输出所述第j个随机数对应的预测值;若所 述第j个随机数对应的预测值与所述第j个随机数不同,则以使所述第j个随 机数对应的预测值与所述第j个随机数相同为目标,调整所述模型的参数;将 所述第j个随机数更新到所述训练集中,以执行第j+1轮迭代过程。

可选地,所述处理模块13还可以用于:使用所述N个随机数对需要加密的 数据进行数据加密处理。

可选地,所述处理模块13还可以用于:输出与所述N个随机数对应的数据 对象。

图9所示随机数处理装置可以执行前述图1至图6所示实施例中提供的方 法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。

在一个可能的设计中,上述图9所示的随机数处理装置的结构可实现为一 电子设备。如图10所示,该电子设备可以包括:第一处理器21、第一存储器22。 其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21 执行时,至少使第一处理器21可以实现如前述图1至图6所示实施例中提供的 随机数处理方法。

其中,该电子设备的结构中还可以包括第一通信接口23,用于与其他设备 或通信网络通信。

另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性 机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理 器执行时,使所述处理器执行前述图1至图6所示实施例中提供的随机数处理 方法。

图11为本发明一实施例提供的随机数生成器判别装置的结构示意图,如图 11所示,该随机数生成器判别装置包括:获取模块31、检验模块32、确定模块 33。

获取模块31,用于获取随机数生成器生成的N1个随机数,N1>1。

检验模块32,用于采用与所述随机数生成器对应的模型对所述N1个随机数 进行检验,以获得与所述N1个随机数对应的检验结果,其中,所述模型由依次 连接的卷积神经网络和循环神经网络组成。

确定模块33,用于根据所述检验结果确定所述随机数生成器的质量。

可选地,所述检验模块32可以用于:以所述随机数生成器在生成所述N1个 随机数之前已经生成的多个随机数初始化检验集;执行如下迭代过程,直至所述 N1个随机数均被检验完成:在第i轮迭代过程中,将所述检验集中包含的随机 数输入到模型中,以通过所述模型输出与所述N1个随机数中第i个随机数对应 的预测值;将所述N1个随机数中第i个随机数更新到所述检验集中,以执行第 i+1轮迭代过程,i∈[1,N1]。

可选地,所述检验模块32可以用于:获取所述随机数生成器在生成所述N1 个随机数之前已经生成的多个随机数;将所述多个随机数输入到模型中,以通过 所述模型输出所述N1个随机数各自对应的预测值。

可选地,所述检验模块32可以用于:

以所述随机数生成器在生成所述N1个随机数之前已经生成的多个随机数初 始化检验集;

执行如下迭代过程,直至所述N1个随机数均被检验完成:

在第i轮迭代过程中,将所述检验集中包含的随机数输入到模型中,以通 过所述模型输出与所述N1个随机数中第i个随机数对应的预测值;

将所述N1个随机数中第i个随机数更新到所述检验集中,并从所述检验集 中移除最先产生的随机数,以执行第i+1轮迭代过程,i∈[1,N1]。

可选地,所述检验模块32还可以用于:通过对比所述N1个随机数与所述 N1个随机数各自对应的预测值是否相同,确定所述N1个随机数对应的最大连续 成功预测数量;根据所述最大连续成功预测数量确定作为所述N1个随机数的检 验结果的概率值。从而,确定模块33具体可以用于:若所述概率值低于设定阈 值,则确定所述随机数生成器质量合格。

可选地,所述装置还包括:训练模块,用于以所述随机数生成器生成的N2 个随机数初始化训练集,N2>1,所述N2个随机数与所述N1个随机数不同;执行 如下迭代过程,直至达到设定的轮数:获取所述随机数生成器在所述N2个随机 数之后生成的第j个随机数,其中,j∈[1,L],L为所述设定的轮数;在第j轮 迭代过程中,将所述训练集中包含的随机数输入到模型中,以通过所述模型输出 所述第j个随机数对应的预测值;若所述第j个随机数对应的预测值与所述第 j个随机数不同,则以使所述第j个随机数对应的预测值与所述第j个随机数相 同为目标,调整所述模型的参数;将所述第j个随机数更新到所述训练集中,以执行第j+1轮迭代过程。

图11所示随机数生成器判别装置可以执行前述图7所示实施例中提供的方 法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。

在一个可能的设计中,上述图11所示的随机数生成器判别装置的结构可实 现为一电子设备。如图12所示,该电子设备可以包括:第二处理器41、第二存 储器42。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二 处理器41执行时,至少使第二处理器41可以实现如前述图7所示实施例中提 供的随机数生成器判别方法。

其中,该电子设备的结构中还可以包括第二通信接口43,用于与其他设备 或通信网络通信。

另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性 机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理 器执行时,使所述处理器执行前述图7所示实施例中提供的随机数生成器判别 方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的 各个模块可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中 的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付 出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施 方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件 结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做 出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个 其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存 储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当 理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分 技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离 本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号