[发明专利]一种基于Burrows-Wheeler变换的随机数检测方法在审
申请号: | 201911098432.X | 申请日: | 2019-11-12 |
公开(公告)号: | CN110825348A | 公开(公告)日: | 2020-02-21 |
发明(设计)人: | 吴燕;杨胜天 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06F7/58 | 分类号: | G06F7/58 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310012 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 burrows wheeler 变换 随机数 检测 方法 | ||
1.一种基于Burrows-Wheeler变换的随机数检测方法,其特征在于,所述方法包括:
设输入序列为在集合{0,1}中取值的二元序列S,其长度为n;预设的算法参数有模式长度Lpattern(2≤Lpattern≤10),初始化模式长度Lpattern=2;p_value列表M,初始化M列表为空;
步骤一:检测待测序列S的长度n,若n≤106bits,则终止检测;否则,继续下一步;
步骤二:对序列S进行频数检测,若该检测的输出结果p_value≥0.01,则执行下一步,否则终止检测;
步骤三:对序列S进行Burrows-Wheeler变换处理,输入参数为步骤一中的待测序列S和模式长度Lpattern,具体步骤为:
(3-1)在序列S末尾添加结束符号-1,形成新序列S';
(3-2)新序列S'的索引号从0开始,对新序列S'的第1到n-k个后缀按照词典序进行排序,其中k设置为最大后缀长度9,获取排序后的后缀数组SA,即对应于序列S'中的后缀序列的起始位置号;
(3-3)依次根据SA数组中每一元素值,即位置编号,输出S'中对应于该位置编号的比特的前一个比特,得到S经Burrows-Wheeler变换处理后的结果BWT_Array:
BWT_Array[i]=S'[SA[i]-1],0<i<n-k;
步骤四:对BWT_Array进行全序列检测和滑动窗检测;
(4-1)全序列检测:
对BWT_Array进行线性复杂度检测和随机偏移检测,将每个检测项输出的p_value值分别添加到M列表中;
(4-2)滑动窗检测:
输入参数为BWT_Array;对BWT_Array进行游程检测和离散傅里叶变换检测,执行步骤如下:
(a)后缀长度L与模式长度Lpattern满足L=Lpattern-1,窗口长度w为w=n/2L,窗口长度w最小允许的长度根据具体检测项设置,游程检测为w≥100bits,离散傅里叶变换检测为w≥1000bits;
(b)将BWT_Array以滑动窗口长度w为“分组长度”(block length)分块,若每个子块长度分别满足(a)中要求的最小允许长度,则在每个子块上分别执行传统随机数检测中的游程检测和离散傅里叶变换检测,得到游程检测p_value列表以及离散傅里叶变换检测p_value列表;否则,终止不满足条件的检测项执行;
(c)在游程检测p_value列表和离散傅里叶变换检测p_value列表中分别找到最小值p_valuemin,根据公式将这两个检测项的p_value值并分别添加到M列表中;
(d)将Lpattern加1,若2≤Lpattern≤10,继续执行步骤(a),否则执行(4-3);
(4-3)检查p_value列表M,若列表M的所有p_value值均大于0.01,则输出“序列S随机性检测通过”,否则输出“序列S随机性检测不通过”。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911098432.X/1.html,转载请声明来源钻瓜专利网。