本技术涉及信息安全领域,尤其涉及一种比特频数筛查方法、装置、电子设备及介质。
背景技术:
1、随着信息化和计算机技术的发展,人们在享受信息化带来的众多好处的同时,网络安全问题已成为信息时代人类共同面临的挑战。
2、随机数发生器的输出被称为随机数,广泛应用于各个领域,比如对称密码算法和非对称密码算法的密钥产生、挑战应答机制中的挑战值、数字签名方案中的秘密信息、抵抗侧信道分析攻击等。
3、随机数质量的检测可以采用较为通用的统计测试方法,检查输出质量是否存在明显缺陷。常见的统计测试套件包括美国nist sp 800-22《a statistical test suite forrandom and pseudorandom number generators for cryptographic applications》、我国的国家标准gm/t 0005-2021《随机性检测规范》标准等。这两个标准文档都建议15种统计检测方法,其中均建议使用块内频数检测方法。
4、块内频数检测将n比特的待检序列按分块长度m划分为n个非重叠的子序列,多余比特舍弃;然后计算各子序列中比特1所占的比例;接着将所有子序列中比特1所占的比例进行累加,随后计算p值,并与显著水平比较,判断检序列是否通过检测。
5、目前现有的块内频数检测进行随机性测试时,其做法有两种:
6、第一种是基于比特的处理方式:首先将待检测数据转化为比特,然后在每个分块中,逐比特统计比特1个数,计算分块中比特1所占的比例,接下来进行统计量和p值计算等执行步骤。该种方式可参见美国国家标准与技术研究院nist提供的随机性检测套件。但是这种方式未充分考虑cpu的计算资源,导致很大的计算资源浪费,块内频数检测算法中为了算出统计量需要执行n次减法、n次平方、n次除法、mn+n次加法和2次乘法,其中n为完整的子序列的个数。
7、第二种是基于查表的处理方式:直接对待检的字节数据进行查表,通过预先简历查找表的方式对每个分块查表统计比特1个数,计算分块中比特1所占的比例,接下来进行统计量和p值计算等执行步骤。该种方式可参见文献:罗影,张文科,尹一桦,等.单比特频数检测和块内频数检测的快速实现研究[j].通信技术,2015,48(9):1073-1077.并且,第二种方案比第一种方案具有更高的执行效率。但是这种方式需要事先建立查找表,表的规模根据实际处理情况,可为8比特表和16比特表,需要额外增加存储空间。前者需要额外增加256字节的存储空间,后者需要增加64kb的存储空间。
技术实现思路
1、为了解决上述技术缺陷之一,本技术实施例中提供了一种比特频数筛查方法、装置、电子设备及介质。
2、本技术实施例第一方面提供了一种比特频数筛查方法,所述方法包括:
3、接收随机数发生器的原始随机数,并将所述随机数发生器的原始随机数作为第一数据进行存储;
4、对存储的所述第一数据中比特1的个数进行统计,并根据统计结果将符合要求的多个第一数据和每个第一数据中的比特1的个数作为第二数据进行存储;
5、对所述第二数据进行统计评估,并根据统计评估结果将符合要求的第二数据作为第三数据进行存储;
6、根据外部请求输出存储的所述第三数据。
7、优选地,所述对存储的所述第一数据中比特1的个数进行统计,并根据统计结果将符合要求的多个第一数据和每个第一数据中的比特1的个数作为第二数据进行存储的过程包括:
8、统计每个所述第一数据中比特1的个数;
9、计算每个所述第一数据中比特0的个数和比特1的个数的偏差量;
10、当所述偏差量小于或等于预设偏差量上限时,对所述第一数据和所述第一数据中比特1的个数作为第二数据进行存储;
11、当所述偏差量大于预设偏差量上限时,丢弃所述第一数据。
12、优选地,所述统计每个所述第一数据中比特1的个数的过程包括:
13、设定初始值,将第一数据中比特1的个数m1重置为0,将第一数据中余下的未处理比特长度r设置为m,m为第一数据原始比特长度;
14、当余下的未处理比特长度r大于0时,将所述第一数据的未被处理部分取前s比特数据,记为数据d,并更新未处理比特长度r=r-s;
15、计算所述数据d的比特1的个数z;
16、更新所述第一数据中比特1的个数m1=m1+z,并重复上述计算过程直至余下的未处理比特长度r等于0;
17、输出更新后的所述第一数据中比特1的个数m1。
18、优选地,当所述余下的未处理比特长度r小于s时,所述统计所述第一数据中比特1的个数的过程还包括:
19、将所述第一数据加载至数据d,将所述数据d的末尾s-r比特置0,并更新未处理比特长度r=0。
20、优选地,所述对所述第二数据进行统计评估,并根据统计评估结果将符合要求的第二数据作为第三数据进行存储的过程包括:
21、根据所述第二数据中每个第一数据中比特1的个数计算统计量;
22、根据所述统计量计算p值和q值;
23、当所述p值大于或等于预设数值时,将所述第二数据作为第三数据进行存储;
24、当所述p值小于预设数值时,丢弃所述第二数据。
25、优选地,所述方法还包括:
26、当所述第一数据的数据量达到第一预设值后,对所述第一数据中比特1的个数进行统计。
27、优选地,所述方法还包括:
28、当所述第二数据的数据量达到第二预设值后,对所述第二数据进行统计评估,所述第二预设值大于第一预设值。
29、本技术实施例第二方面提供了一种比特频数筛查装置,所述装置包括:
30、块缓存模块,用于接收随机数发生器的原始随机数,并将所述随机数发生器的原始随机数作为第一数据进行存储;
31、块统计模块,用于对块缓存模块存储的所述第一数据中比特1的个数进行统计,并根据统计结果将符合要求的多个第一数据和每个第一数据中的比特1的个数作为第二数据发送至主缓存模块;
32、主缓存模块,用于将块统计模块发送的第二数据进行存储;
33、检测评估模块,用于对所述第二数据进行统计评估,并根据统计评估结果将符合要求的第二数据作为第三数据发送至数据存储模块;
34、数据存储模块,用于将检测评估模块发送的第三数据进行存储,并根据外部请求输出所述第三数据。
35、优选地,所述块统计模块具体用于:
36、统计每个所述第一数据中比特1的个数;
37、计算每个所述第一数据中比特0的个数和比特1的个数的偏差量;
38、当所述偏差量小于或等于预设偏差量上限时,将所述第一数据和所述第一数据中比特1的个数作为第二数据发送至所述主缓存模块;
39、当所述偏差量大于预设偏差量上限时,丢弃所述第一数据。
40、优选地,所述块统计模块具体还用于:
41、设定初始值,将第一数据中比特1的个数m1重置为0,将第一数据中余下的未处理比特长度r设置为m,m为第一数据原始比特长度;
42、当余下的未处理比特长度r大于0时,将所述第一数据的未被处理部分取前s比特数据,记为数据d,并更新未处理比特长度r=r-s;
43、计算所述数据d的比特1的个数z;
44、更新所述第一数据中比特1的个数m1=m1+z,并重复上述计算过程直至余下的未处理比特长度r等于0;
45、输出更新后的所述第一数据中比特1的个数m1。
46、优选地,所述块统计模块具体还用于:
47、当所述余下的未处理比特长度r小于s时,将所述第一数据加载至数据d,将所述数据d的末尾s-r比特置0,并更新未处理比特长度r=0。
48、优选地,所述检测评估模块具体用于:
49、根据所述第二数据中每个第一数据中比特1的个数计算统计量;
50、根据所述统计量计算p值和q值;
51、当所述p值大于或等于预设数值时,将所述第二数据作为第三数据发送至所述数据存储模块;
52、当所述p值小于预设数值时,丢弃所述第二数据。
53、优选地,所述块缓存模块具体还用于:当所述第一数据的数据量达到第一预设值后,将所述第一数据发送至所述块统计模块。
54、优选地,所述主缓存模块具体还用于:当所述第二数据的数据量达到第二预设值后,将所述第二数据发送至所述检测评估模块,所述第二预设值大于第一预设值。
55、本技术实施例第三方面提供了一种电子设备,包括:处理器和存储器;
56、其中,在所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;当所述指令被所述处理器执行时,使得所述电子设备执行如本技术实施例第一方面所述的方法。
57、本技术实施例第四方面提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,所述电子设备执行如本技术实施例第一方面所述的方法。
58、采用本技术实施例中提供的比特频数筛查方法,在整体方法流程中,无需额外增加宝贵的存储空间。本技术实施例首先将第一数据进行存储和处理,然后再对第二数据进行存储和处理,通过两步走的实施方式,将运算量分配到两个步骤中执行,避免了一次性大量数据短时间处理导致的浪涌。同时在第一数据处理时就进行了数据的筛选,大大提升了在第二数据处理过程中的通过率以及计算效率。本技术实施例充分利用cpu特点,利用cpu提供的计算一个数据块的比特1个数的指令,加速了数据块统计分析,大大提升了执行效率,特别适合云计算、海量数据计算块内频数检测的场景。