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

二进制密钥的随机性测试方法、装置、设备及介质与流程

2022-11-23 13:07:38 来源:中国专利 TAG:


1.本发明涉及信息安全技术领域,尤其涉及一种二进制密钥的随机性测试方法、装置、设备及介质。


背景技术:

2.随着现代信息技术的迅猛发展,信息系统已经成为网络安全、工业控制、电子商务等领域的重要组成部分。密码技术可以实现信息的保密性、完整性、可用性、可控性和不可否认性的,故可以保证信息系统的安全性。在现代加密通信体制中,密钥是信息加密的关键,为了实现“一次一密”要求密钥具有完全的真随机性。目前,加密密钥通常以二进制序列形式呈现,故具有良好随机性的二进制序列成为保障信息系统安全的重要基石,因此二进制序列随机性能的评价标准变得至关重要。
3.目前,现有的二进制序列的随机性检验方法,通常采用美国国家标准与技术研究所提供的sp800-22测试套件和ent测试套件,以实现对二进制序列的随机性检验。其中,sp800-22测试套件包括15个测试项,每一项测试都是建立在假设检验基础之上,且仅当15项测试全部通过后才可说明输入的二进制序列满足随机性要求。而ent测试套件包括5个测试项,只能从宏观上表征二进制序列的随机性,从而给出二进制序列具有随机性的可能性。
4.在现有的二进制序列的随机性检验方法中,需要进行多项测试,检验过程复杂,实时性差,且设置的检验通过条件严苛,导致检验结果鲁棒性差,精度不高。


技术实现要素:

5.本发明提供了一种二进制密钥的随机性测试方法、装置、设备及介质,可以提升二进制密钥的随机性测试的准确度和鲁棒性,且可以简化测试流程,从而可以提升随机性测试的实时性。
6.根据本发明的一方面,提供了一种二进制密钥的随机性测试方法,包括:获取待测试二进制密钥序列,并基于预设数据长度对所述待测试二进制密钥序列进行分割,以获取至少一个数据块;将各所述数据块输入至预训练的目标反向传播神经网络模型,获取所述目标反向传播神经网络模型输出的,各所述数据块对应的是否为随机二进制序列的分类结果;根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述待测试二进制密钥序列对应的随机性测试结果。
7.根据本发明的另一方面,提供了一种二进制密钥的随机性测试装置,包括:数据块获取模块,用于获取待测试二进制密钥序列,并基于预设数据长度对所述待测试二进制密钥序列进行分割,以获取至少一个数据块;分类结果获取模块,用于将各所述数据块输入至预训练的目标反向传播神经网络模型,获取所述目标反向传播神经网络模型输出的,各所述数据块对应的是否为随机二进制序列的分类结果;
随机性测试结果获取模块,用于根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述待测试二进制密钥序列对应的随机性测试结果。
8.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的二进制密钥的随机性测试方法。
9.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的二进制密钥的随机性测试方法。
10.本发明实施例的技术方案,通过获取待测试二进制密钥序列,并基于预设数据长度对待测试二进制密钥序列进行分割,以获取多个数据块;之后,将各数据块输入至预训练的目标反向传播神经网络模型,获取目标反向传播神经网络模型输出的,各数据块对应的是否为随机二进制序列的分类结果,并根据各数据块对应的是否为随机二进制序列的分类结果,获取待测试二进制密钥序列对应的随机性测试结果,通过采用预先训练的反向传播神经网络模型对二进制密钥序列进行随机性检测,可以提升二进制密钥的随机性测试的准确度和鲁棒性,且可以简化测试流程,从而可以提升随机性测试的实时性。
11.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1是根据本发明实施例一提供的一种二进制密钥的随机性测试方法的流程图;图2a是根据本发明实施例二提供的一种二进制密钥的随机性测试方法的流程图;图2b是根据本发明实施例二提供的一种二进制密钥的随机性测试方法的流程示意图;图3是根据本发明实施例三提供的一种二进制密钥的随机性测试装置的结构示意图;图4是实现本发明实施例的二进制密钥的随机性测试方法的电子设备的结构示意图。
具体实施方式
14.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
15.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
16.实施例一图1为本发明实施例一提供了一种二进制密钥的随机性测试方法的流程图,本实施例可适用于对密钥设备产生的二进制密钥进行随机性检测,以测试密钥设备性能的情况,该方法可以由二进制密钥的随机性测试装置来执行,该二进制密钥的随机性测试装置可以采用硬件和/或软件的形式实现,该二进制密钥的随机性测试装置可配置于电子设备中,典型的,电子设备可以是计算机设备或者服务器。如图1所示,该方法包括:s110、获取待测试二进制密钥序列,并基于预设数据长度对所述待测试二进制密钥序列进行分割,以获取至少一个数据块。
17.其中,待测试二进制密钥序列,可以是当前需要进行随机性测试的对应任意序列长度的二进制序列,每一位的取值为0或1。二进制密钥序列,可以用于对任意类型的传输数据(例如,工业控制数据、交通检测数据等)进行加密。在本实施例中,待测试二进制密钥序列,可以是密钥设备生成的二进制序列,通过对待测试二进制密钥序列进行随机性检测,可以实现对密钥设备的性能测试。
18.在本实施例中,在获取到待测试二进制密钥序列之后,可以基于预设数据长度对其进行分割,以获取多个对应预设数据长度的数据块。典型的,预设数据长度可以是1024。在一个具体的例子中,对于待测试二进制密钥序列r,将其分割为d个数据块{e1,...,ei,...,ed},其中,ei的长度为1024。
19.可选的,在基于预设数据长度对待测试二进制密钥序列进行分割之后,若检测到存在数据块的数据长度小于预设数据长度,可以采用0(或1)对该数据块进行补充,以确保获取的每个数据块的数据长度均为预设数据长度。
20.s120、将各所述数据块输入至预训练的目标反向传播神经网络模型,获取所述目标反向传播神经网络模型输出的,各所述数据块对应的是否为随机二进制序列的分类结果。
21.其中,目标反向传播神经网络模型,可以是基于反向传播(back propagation,bp)神经网络构建的分类模型,其输入可以是预设数据长度的二进制序列,输出可以是取值范围在[0,1]之间的数值。例如,当输出数值在取值范围[0,0.5)之间时,表示当前输入的二进制序列为非随机二进制序列,可以用0表示;而当输出数值在取值范围[0.5,1]时,表示当前输入的二进制序列为随机二进制序列,可以用1表示。
[0022]
在本实施例中,可以基于bp神经网络建立初始bp神经网络模型,并预先设置训练目标,例如,分类精准度;之后,可以基于带有类别标签的样本数据对该初始bp神经网络模
型进行有监督训练,直至检测到达成训练目标,获取训练完成的目标bp神经网络模型。
[0023]
其中,目标bp神经网络模型,可以分别包括一个输入层、多个隐藏层和一个输出层;输入层和隐藏层可以分别包括多个神经元节点,输出层可以包括1个神经元节点,典型的,输入层可以包括预设数据长度个神经元节点。在一个具体的例子中,目标bp神经网络模型,可以包括一个输入层,两个隐藏层和一个输出层;其中,输入层可以包括1024个tanh型神经元节点,每个隐藏层可以包括1000个tanh型神经元节点,输出层可以包括1个tanh型神经元节点。
[0024]
在一个具体的例子中,在获取到多个数据块之后,可以将每个数据块ei依次输入至目标bp神经网络模型(数据块的每一位数值对应输入层的一个神经元节点),以通过目标bp神经网络模型判断每个数据块是否为随机二进制序列,从而获取d个分类结果{c1,...,ci,...,cd}。其中,ci=1,表示ei为随机二进制序列;ci=0,表示ei为非随机二进制序列。
[0025]
上述设置的好处在于,可以克服对二进制序列长度的限制,可以提升测试对象的可扩展性,可以实现对任意长度的二进制序列的高效随机性测试。
[0026]
s130、根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述待测试二进制密钥序列对应的随机性测试结果。
[0027]
具体的,在获取到每个数据块对应的分类结果之后,可以统计所有数据块中分类结果为随机二进制序列(数值为1)的数据块的数量,并计算得到统计数量与数据块总数量的比值;例如,数据块的数量为d,分类结果为随机二进制序列的数据块的数量为a,则比值可以为a/d。之后,若检测到该比值大于预先设置的比值阈值,或者,该比值位于预先设置的置信区间之内,则可以确定该待测试二进制密钥序列满足随机性测试要求,具有真随机性。否则,则可以确定该待测试二进制密钥序列不满足随机性测试要求,不具有真随机性。
[0028]
在本实施例中,当确定待测试二进制密钥序列满足随机性测试要求,具有真随机性时,可以确定对应的密钥设备成功通过随机性测试。本实施例对密钥设备的类型不作具体限定。
[0029]
在本实施例中,通过利用bp神经网络解决二进制序列的随机性判断问题,有效提升了随机性检验的便捷性和快速性,从而确保了密钥的真随机性,有效提升了信息系统的安全性。
[0030]
本发明实施例的技术方案,通过获取待测试二进制密钥序列,并基于预设数据长度对待测试二进制密钥序列进行分割,以获取多个数据块;之后,将各数据块输入至预训练的目标反向传播神经网络模型,获取目标反向传播神经网络模型输出的,各数据块对应的是否为随机二进制序列的分类结果,并根据各数据块对应的是否为随机二进制序列的分类结果,获取待测试二进制密钥序列对应的随机性测试结果,通过采用预先训练的反向传播神经网络模型对二进制密钥序列进行随机性检测,可以提升二进制密钥的随机性测试的准确度和鲁棒性,且可以简化测试流程,从而可以提升随机性测试的实时性。
[0031]
在本实施例的一个可选的实施方式中,根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述待测试二进制密钥序列对应的随机性测试结果,可以包括:根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述各数据块中属于随机二进制序列的目标数据块的比例;判断所述各数据块中属于随机二进制序列的目标数据块的比例是否在预设置信
区间之内,若是,则确定所述待测试二进制密钥序列具有真随机性。
[0032]
其中,目标数据块,可以是分类结果为随机二进制序列的数据块。
[0033]
预设置信区间,可以是预先设置的数值范围,当属于随机二进制序列的目标数据块占所有数据块的比例在该数值范围之内时,表示待测试二进制密钥序列具有真随机性;而当该比例超出了该数值范围时,表示待测试二进制密钥序列不具有真随机性。在本实施例中,可以根据历史经验,为不同的待测试二进制密钥序列设置相同的置信区间,或者,可以根据分割的数据块的数量,为每个待测试二进制密钥序列分别设置对应的置信区间。
[0034]
在本实施例的另一个可选的实施方式中,在判断所述各数据块中属于随机二进制序列的目标数据块的比例是否在预设置信区间之内之前,还可以包括:基于公式,计算得到预设置信区间;其中,,表示显著性水平,为预设常数,表示数据块的数量。典型的,显著性水平可以是0.01。
[0035]
在本实施例中,通过根据数据块的数量设置相应的置信区间,可以针对不同长度的待测试二进制密钥序列,自动设置不同的置信区间,从而可以提升置信区间设置的合理性,可以避免完全基于经验设置测试规则导致的对测试数据的动态适应性差的问题,可以提升对测试数据的动态适应性。此外,可以将二进制序列的随机性检验问题转化为分配问题,从而可以提升二进制序列随机性测试的精度。
[0036]
实施例二图2a为本发明实施例二提供的一种二进制密钥的随机性测试方法的流程图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施方式结合。如图2a所示,该方法包括:s210、获取待测试二进制密钥序列,并基于预设数据长度对所述待测试二进制密钥序列进行分割,以获取至少一个数据块。
[0037]
s220、建立初始反向传播神经网络模型,并获取训练数据集和测试数据集。
[0038]
具体的,可以基于bp神经网络,构建对应初始模型参数的初始bp神经网络模型。其中,初始反向传播神经网络模型可以包括输入层、输出层和多个隐藏层,输入层的神经元节点数量可以等于预设数据长度。
[0039]
其中,测试数据集可以包括至少一个测试二进制序列,以及各测试二进制序列对应的类别标签。训练数据集,可以包括至少一个训练二进制序列,以及各训练二进制序列对应的类别标签。类别标签,可以是预先设置的数值,例如,1表示随机二进制序列,0表示非随机二进制序列。一组二进制序列和对应的类别标签,为一个样本。
[0040]
在本实施例中,可以在网络中直接获取已有的数据集,以作为训练数据集和测试数据集,也可以对随机生成的二进制序列进行类别标签标记,以获取训练数据集和测试数据集。
[0041]
s230、根据所述训练数据集对所述初始反向传播神经网络模型进行训练,以获取中间反向传播神经网络模型。
[0042]
具体的,利用训练数据集中的各训练二进制序列,对初始bp神经网络模型进行首次训练,以对初始bp神经网络模型的模型参数进行更新;当检测到初始bp神经网络模型对训练数据集中各训练二进制序列的分类结果满足预先设置的训练目标(例如,分类准确度)时,可以将当前的初始bp神经网络模型作为中间bp神经网络模型。
[0043]
s240、将所述测试数据集中各测试二进制序列输入至所述中间反向传播神经网络模型,获取所述中间反向传播神经网络模型输出的,各所述测试二进制序列对应的是否为随机二进制序列的分类结果。
[0044]
在本实施例中,在获取到中间bp神经网络模型之后,可以采用测试数据集对中间bp神经网络模型进行验证;具体的,利用中间bp神经网络模型判断各测试二进制序列是否为随机二进制序列,以获取每个测试二进制序列对应的分类结果。
[0045]
s250、根据各所述测试二进制序列对应的是否为随机二进制序列的分类结果,以及各所述测试二进制序列对应的类别标签,获取所述中间反向传播神经网络模型对应的测试精度。
[0046]
之后,对每个测试二进制序列对应的分类结果和对应的类别标签进行比对,以判断分类结果是否正确,从而获取分类结果正确的测试二进制序列的数量。进一步的,采用分类结果正确的测试二进制序列的数量除以测试二进制序列的总数量,将商值作为中间bp神经网络模型对应的测试精度。
[0047]
s260、若检测到所述中间反向传播神经网络模型对应的测试精度大于预设测试精度阈值,则将所述中间反向传播神经网络模型作为目标反向传播神经网络模型。
[0048]
具体的,在获取到当前的中间bp神经网络模型对应的测试精度之后,可以判断该测试精度是否大于预先设置的测试精度阈值,若是,则可以确定模型训练完成,将当前的中间bp神经网络模型作为目标bp神经网络模型。其中,预设测试精度阈值,可以是预先设置的测试精度值,例如,可以是95%、90%等。
[0049]
在本实施例中,通过利用数据驱动的方式生成二进制序列随机性检验模型,可以有效提升二进制序列的随机性检验的鲁棒性。
[0050]
s270、将各所述数据块输入至预训练的目标反向传播神经网络模型,获取所述目标反向传播神经网络模型输出的,各所述数据块对应的是否为随机二进制序列的分类结果。
[0051]
s280、根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述待测试二进制密钥序列对应的随机性测试结果。
[0052]
本发明实施例的技术方案,在将各数据块输入至预训练的目标反向传播神经网络模型之前,首先建立初始反向传播神经网络模型,并获取训练数据集和测试数据集;之后,根据训练数据集对初始反向传播神经网络模型进行训练,以获取中间反向传播神经网络模型,并将测试数据集中各测试二进制序列输入至中间反向传播神经网络模型,以获取中间反向传播神经网络模型输出的,各测试二进制序列对应的是否为随机二进制序列的分类结果;进一步的,根据各测试二进制序列对应的是否为随机二进制序列的分类结果,以及各测试二进制序列对应的类别标签,获取中间反向传播神经网络模型对应的测试精度;并在检测到中间反向传播神经网络模型对应的测试精度大于预设测试精度阈值时,将中间反向传播神经网络模型作为目标反向传播神经网络模型;通过基于预先设置的测试精度阈值判断
中间反向传播神经网络模型是否满足精度需求,可以提升目标反向传播神经网络模型的分类准确度,从而可以提升二进制密钥的随机性测试的准确度。
[0053]
在本实施例的一个可选的实施方式中,在根据各所述测试二进制序列对应的是否为随机二进制序列的分类结果,以及各所述测试二进制序列对应的类别标签,获取所述中间反向传播神经网络模型对应的测试精度之后,还可以包括:若检测到所述中间反向传播神经网络模型对应的测试精度小于或者等于预设测试精度阈值,则在所述测试数据集中提取第一预设比例的测试二进制序列添加至所述训练数据集中,以获取更新后的训练数据集;根据更新后的所述训练数据集继续对所述中间反向传播神经网络模型进行训练,直至检测到所述中间反向传播神经网络模型对应的测试精度大于预设测试精度阈值,将所述中间反向传播神经网络模型作为目标反向传播神经网络模型。
[0054]
在另一种场景下,若检测到当前的中间bp神经网络模型对应的测试精度小于或者等于预设测试精度阈值,表示当前的中间bp神经网络模型无法满足测试精度需求,则需要继续对当前的中间bp神经网络模型进行训练。
[0055]
具体的,从测试数据集中随机取出(无放回)第一预设比例的测试二进制序列和对应的类别标签添加到训练数据集中,以获取更新后的训练数据集和测试数据集。例如,测试数据集包括6000个测试二进制序列和对应的类别标签,第一预设比例为10%,则从测试数据集中取出6000
×
10%=600个测试二进制序列和对应的类别标签放入训练数据集中。
[0056]
之后,采用更新后的训练数据集继续对当前的中间bp神经网络模型进行训练,以获取更新后的中间bp神经网络模型,并利用更新后的中间bp神经网络模型对更新后的测试数据集中各测试二进制序列进行是否为随机二进制序列的判断,并根据判断结果获取更新后的中间bp神经网络模型对应的测试精度。若该测试精度大于预设测试精度阈值,则可以将该更新后的中间bp神经网络模型作为目标bp神经网络模型。
[0057]
此外,若测试精度仍小于或者等于预设测试精度阈值,则可以继续从测试数据集中取出第一预设比例的测试二进制序列,以继续对训练数据集进行更新,并可以采用再次更新的训练数据集继续对更新后的中间bp神经网络模型进行训练。重复上述过程,直至检测到中间bp神经网络模型对应的测试精度大于预设测试精度阈值,将当前的中间bp神经网络模型作为目标bp神经网络模型。
[0058]
在本实施例的另一个可选的实施方式中,获取训练数据集和测试数据集,可以包括:获取二进制随机序列集合和二进制非随机序列集合;所述二进制随机序列集合,包括随机生成的预设数量的对应预设数据长度的二进制随机序列,所述二进制非随机序列集合,包括随机生成的预设数量的对应预设数据长度的二进制非随机序列;获取各所述二进制随机序列对应的类别标签,并根据各所述二进制随机序列对应的类别标签,获取正标签集合;获取各所述二进制非随机序列对应的类别标签,并根据各所述二进制非随机序列对应的类别标签,获取负标签集合;根据所述二进制随机序列集合和所述正标签集合,获取二进制随机序列正样本集合,并根据所述二进制非随机序列集合和所述负标签集合,获取二进制随机序列负样本集
合;根据所述二进制随机序列正样本集合和所述二进制随机序列负样本集合,获取二进制随机序列样本集合;所述二进制随机序列样本集合包括预设数量的正样本和预设数量的负样本,所述正样本包括二进制随机序列和对应的正标签,所述负样本包括二进制非随机序列和对应的负标签;在所述二进制随机序列样本集合中提取第二预设比例的样本,以获取训练数据集,并根据所述二进制随机序列样本集合中剩余的样本,获取测试数据集。
[0059]
其中,预设数量,可以是预先设置的数量值,例如,可以是10000;第二预设比例,可以是预先设置的比例值,例如,可以是70%。
[0060]
在一个具体的例子中,随机生成10000组长度为1024的二进制随机序列,并生成二进制随机序列集合ey={ey1,...,eyp,...,ey10000},同时,可以随机生成10000组长度为1024的二进制非随机序列,并生成二进制非随机序列集合en={en1,...,enq,...,en10000};其中,eyp={ey_r1,...,ey_rpy,...,ey_r1024},ey_rpy=0或者1,py=1,...,1024;enq={en_r1,...,en_rqn,...,en_r1024},en_rqn=0或者1,qn=1,...,1024。
[0061]
之后,获取二进制随机序列集合ey中各二进制随机序列对应的类别标签,并由各类别标签组成正标签集合ley={ly1=1,...,lyp=1,...,ly10000=1},同时,获取负标签集合len={ln1=0,...,lnq=0,...,ln10000=0}。进一步的,基于二进制随机序列集合ey和正标签集合ley生成二进制随机序列正样本集合,其中,(eyp,lyp)构成一个正样本。同时,可以基于二进制非随机序列集合en和负标签集合len生成二进制随机序列负样本集合,其中,(enq,lnq)构成一个负样本。
[0062]
进一步的,将二进制随机序列正样本集合和二进制随机序列负样本集合组成二进制随机序列样本集合,其中,二进制随机序列样本集合包括10000个正样本和10000个负样本。之后,将二进制随机序列样本集合中的样本顺序进行打乱,并随机抽取其中的70%样本作为训练数据集,将剩余的30%样本作为测试数据集。
[0063]
在本实施例的另一个可选的实施方式中,根据所述训练数据集对所述初始反向传播神经网络模型进行训练,以获取中间反向传播神经网络模型,可以包括:根据所述训练数据集对所述初始反向传播神经网络模型进行训练,以获取所述初始反向传播神经网络模型中各层之间的连接权值矩阵;根据所述初始反向传播神经网络模型中各层之间的连接权值矩阵,获取中间反向传播神经网络模型;其中,所述初始反向传播神经网络模型包括输入层、多个隐藏层和输出层,所述输入层包括n个神经元节点,n等于预设数据长度,所述隐藏层包括m个神经元节点,所述输出层包括1个神经元节点。典型的,n=1024,m=1000。
[0064]
在一个具体的例子中,初始反向传播神经网络模型包括1个输入层、2个隐藏层和1个输出层,输入层和输出层分别包括1024个tanh型神经元节点和1个tanh型神经元节点,每
个隐藏层可以包括1000个tanh型神经元节点。由此,输入层和隐藏层1之间的连接权值矩阵w1的维度为1024
×
1001,隐藏层1和隐藏层2之间的连接权值矩阵w2的维度为1001
×
1001,隐藏层2和输出层之间的连接权值矩阵w3的维度为1001
×
1。
[0065]
具体的,在初始bp神经网络模型的训练过程中,可以基于训练数据集中各样本对各层之间的连接权值矩阵中的各元素值进行更新;当初始bp神经网络模型训练完成之后,获取当前的各层之间的连接权值矩阵,从而获取中间bp神经网络模型。
[0066]
在本实施例的一个具体的实施方式中, 二进制密钥的随机性测试方法的流程可以如图2b所示。首先,获取训练数据集和测试数据集。具体的,随机生成10000组长度为1024的二进制随机序列集合ey,并赋予集合中每一个序列正标签,形成正标签集合ley,进而根据ey和ley,生成二进制随机序列正样本集合。同时,随机生成10000组长度为1024的二进制非随机序列集合en,并赋予集合中每一个序列负标签,形成负标签集合len,进而根据en和len,生成二进制随机序列负样本集合。然后,基于二进制随机序列正样本集合和二进制随机序列负样本集合,生成二进制随机序列样本集合,并打乱样本顺序,进而随机提取70%样本,以生成训练数据集,并基于剩余30%样本生成测试数据集。
[0067]
然后,根据训练数据集和测试数据集,获取目标bp神经网络模型。具体的,构建初始bp神经网络模型,并利用训练数据集对初始bp神经网络模型进行训练,以获取中间bp神经网络模型。其次,利用测试数据集计算训练得到的中间bp神经网络模型的测试精度。判断测试精度是否大于90%,若是,则将中间bp神经网络模型作为目标bp神经网络模型。若否,则随机提取测试数据集中5%样本数据放入训练数据集,并利用训练数据集继续进行模型训练。
[0068]
进一步的,获取待测试二进制序列r,并将待测试二进制序列r分割为d个数据块;之后,分别将每个数据块输入到目标bp神经网络模型,以得到d个数据块的随机性,并根据d个数据块的随机性,得到二进制序列r的随机性结论。
[0069]
实施例三图3为本发明实施例三提供的一种二进制密钥的随机性测试装置的结构示意图。如图3所示,该装置包括:数据块获取模块310、分类结果获取模块320和随机性测试结果获取模块330;其中,数据块获取模块310,用于获取待测试二进制密钥序列,并基于预设数据长度对所述待测试二进制密钥序列进行分割,以获取至少一个数据块;分类结果获取模块320,用于将各所述数据块输入至预训练的目标反向传播神经网络模型,获取所述目标反向传播神经网络模型输出的,各所述数据块对应的是否为随机二进制序列的分类结果;随机性测试结果获取模块330,用于根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述待测试二进制密钥序列对应的随机性测试结果。
[0070]
本发明实施例的技术方案,通过获取待测试二进制密钥序列,并基于预设数据长
度对待测试二进制密钥序列进行分割,以获取多个数据块;之后,将各数据块输入至预训练的目标反向传播神经网络模型,获取目标反向传播神经网络模型输出的,各数据块对应的是否为随机二进制序列的分类结果,并根据各数据块对应的是否为随机二进制序列的分类结果,获取待测试二进制密钥序列对应的随机性测试结果,通过采用预先训练的反向传播神经网络模型对二进制密钥序列进行随机性检测,可以提升二进制密钥的随机性测试的准确度和鲁棒性,且可以简化测试流程,从而可以提升随机性测试的实时性。
[0071]
可选的,所述二进制密钥的随机性测试装置,还包括:初始反向传播神经网络模型建立模块,用于建立初始反向传播神经网络模型,并获取训练数据集和测试数据集;所述测试数据集包括至少一个测试二进制序列,以及各所述测试二进制序列对应的类别标签;中间反向传播神经网络模型获取模块,用于根据所述训练数据集对所述初始反向传播神经网络模型进行训练,以获取中间反向传播神经网络模型;测试二进制序列分类结果获取模块,用于将所述测试数据集中各测试二进制序列输入至所述中间反向传播神经网络模型,获取所述中间反向传播神经网络模型输出的,各所述测试二进制序列对应的是否为随机二进制序列的分类结果;测试精度获取模块,用于根据各所述测试二进制序列对应的是否为随机二进制序列的分类结果,以及各所述测试二进制序列对应的类别标签,获取所述中间反向传播神经网络模型对应的测试精度;第一目标反向传播神经网络模型获取模块,用于若检测到所述中间反向传播神经网络模型对应的测试精度大于预设测试精度阈值,则将所述中间反向传播神经网络模型作为目标反向传播神经网络模型。
[0072]
可选的,所述二进制密钥的随机性测试装置,还包括:训练数据集更新模块,用于若检测到所述中间反向传播神经网络模型对应的测试精度小于或者等于预设测试精度阈值,则在所述测试数据集中提取第一预设比例的测试二进制序列添加至所述训练数据集中,以获取更新后的训练数据集;第二目标反向传播神经网络模型获取模块,用于根据更新后的所述训练数据集继续对所述中间反向传播神经网络模型进行训练,直至检测到所述中间反向传播神经网络模型对应的测试精度大于预设测试精度阈值,将所述中间反向传播神经网络模型作为目标反向传播神经网络模型。
[0073]
可选的,初始反向传播神经网络模型建立模块,包括:序列集合获取单元,用于获取二进制随机序列集合和二进制非随机序列集合;所述二进制随机序列集合,包括随机生成的预设数量的对应预设数据长度的二进制随机序列,所述二进制非随机序列集合,包括随机生成的预设数量的对应预设数据长度的二进制非随机序列;正标签集合获取单元,用于获取各所述二进制随机序列对应的类别标签,并根据各所述二进制随机序列对应的类别标签,获取正标签集合;负标签集合获取单元,用于获取各所述二进制非随机序列对应的类别标签,并根据各所述二进制非随机序列对应的类别标签,获取负标签集合;第一样本集合获取单元,用于根据所述二进制随机序列集合和所述正标签集合,
获取二进制随机序列正样本集合,并根据所述二进制非随机序列集合和所述负标签集合,获取二进制随机序列负样本集合;第二样本集合获取单元,用于根据所述二进制随机序列正样本集合和所述二进制随机序列负样本集合,获取二进制随机序列样本集合;所述二进制随机序列样本集合包括预设数量的正样本和预设数量的负样本,所述正样本包括二进制随机序列和对应的正标签,所述负样本包括二进制非随机序列和对应的负标签;数据集获取单元,用于在所述二进制随机序列样本集合中提取第二预设比例的样本,以获取训练数据集,并根据所述二进制随机序列样本集合中剩余的样本,获取测试数据集。
[0074]
可选的,中间反向传播神经网络模型获取模块,包括:连接权值矩阵获取单元,用于根据所述训练数据集对所述初始反向传播神经网络模型进行训练,以获取所述初始反向传播神经网络模型中各层之间的连接权值矩阵;中间反向传播神经网络模型获取单元,用于根据所述初始反向传播神经网络模型中各层之间的连接权值矩阵,获取中间反向传播神经网络模型;其中,所述初始反向传播神经网络模型包括输入层、多个隐藏层和输出层,所述输入层包括n个神经元节点,n等于预设数据长度,所述隐藏层包括m个神经元节点,所述输出层包括1个神经元节点。
[0075]
可选的,随机性测试结果获取模块330,包括:比例获取单元,用于根据各所述数据块对应的是否为随机二进制序列的分类结果,获取所述各数据块中属于随机二进制序列的目标数据块的比例;真随机性确定单元,用于判断所述各数据块中属于随机二进制序列的目标数据块的比例是否在预设置信区间之内,若是,则确定所述待测试二进制密钥序列具有真随机性。
[0076]
可选的,随机性测试结果获取模块330,还包括:基于公式,计算得到预设置信区间;其中,,表示显著性水平,为预设常数,表示数据块的数量。
[0077]
本发明实施例所提供的二进制密钥的随机性测试装置可执行本发明任意实施例所提供的二进制密钥的随机性测试方法,具备执行方法相应的功能模块和有益效果。
[0078]
需要说明的是,本实施例的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0079]
实施例四图4示出了可以用来实施本发明的实施例的电子设备40的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0080]
如图4所示,电子设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(rom)42、随机访问存储器(ram)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(rom)42中的计算机程序或者从存储单元48加载到随机访问存储器(ram)43中的计算机程序,来执行各种适当的动作和处理。在ram 43中,还可存储电子设备40操作所需的各种程序和数据。处理器41、rom 42以及ram 43通过总线44彼此相连。输入/输出(i/o)接口45也连接至总线44。
[0081]
电子设备40中的多个部件连接至i/o接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许电子设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0082]
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如二进制密钥的随机性测试方法。
[0083]
在一些实施例中,二进制密钥的随机性测试方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由rom 42和/或通信单元49而被载入和/或安装到电子设备40上。当计算机程序加载到ram 43并由处理器41执行时,可以执行上文描述的二进制密钥的随机性测试方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行二进制密钥的随机性测试方法。
[0084]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0085]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0086]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电
气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0087]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0088]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0089]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0090]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0091]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献