一种资源受限下基于CUDA的序列碰撞快速搜索方法及系统技术方案

技术编号:35773308 阅读:23 留言:0更新日期:2022-12-01 14:16
本发明专利技术提出一种资源受限下基于CUDA的序列碰撞快速搜索方法及系统,涉及技术领域信息安全,通过初始参数设置,数据载入,匹配统计和排序,输出搜索结果。本发明专利技术能够在有限计算资源下进行重叠碰撞的高效搜索,极大提高检测数据量上限,解决难以在计算资源受限下高效搜索重叠碰撞的问题,能够更好地服务于RNG随机数质量检测工作。质量检测工作。质量检测工作。

【技术实现步骤摘要】
一种资源受限下基于CUDA的序列碰撞快速搜索方法及系统


[0001]本专利技术涉及
信息安全,具体涉及一种资源受限下基于CUDA的序列碰撞快速搜索方法及系统。

技术介绍

[0002]随着信息技术的发展,密码系统的应用需求越发广泛,而现代密码系统的安全性与随机数发生器(RNG)输出随机数的质量密切相关。随机性统计检验被广泛应用于RNG随机性测试,以检验其产生的随机数的均匀随机性。多个国家和组织都已出台各自的随机数检测标准规范,例如美国的NIST标准、德国的AIS标准、我国的随机数检测规范等等,以更好地服务信息产业的发展。在各种随机数检测标准中,对于固定长度的模板的检测始终占有重要的地位,主要包括有:不相交检测,非重叠模板匹配检测,重叠模板匹配检测,近似熵检测,序列检测等等。其中非重叠模板匹配检测和重叠模板匹配检测是对固定模板的频数检测,近似熵检测和序列检测是对所有模板的频数检测,而不相交检测是以非重叠方式检测模板碰撞性的检测,即任意一个模板在检测序列中是否重复出现。本专利技术主要关注以重叠方式查找长模板的碰撞性。
[0003]碰撞性是随机序列的一种统计指标,且是杂凑函数的重要技术指标,比较著名的是“生日碰撞问题”,后发展为密码分析中常见的生日攻击或碰撞攻击。首先,需要明确碰撞的相关定义。
[0004]碰撞:当从大小为n的总体中进行有放回取样时,定义碰撞数为取样数n与样本中不同元素个数n1的差,即碰撞数=n

n1。具体在长序列查重中,设有n个m比特模板,不同的模板数有n1个,则该长序列碰撞数=n

n1。
[0005]重复对数:当从大小为n的总体中进行有放回取样时,定义重复对数为n个样本互相相等的个数,即其中具体在长序列查重中,设有n个m比特模板,则该
[0006]非重叠统计:在长序列模板统计中不允许模板相互重叠,设N比特序列,则有个m比特模板,即按m比特分割该长序列进行统计。
[0007]重叠统计:在长序列模板统计中允许各模板重叠,设N比特序列,则有n=N

m+1个m比特模板,即按m比特宽度依次后移1比特对该长序列进行统计。
[0008]非平凡碰撞:在长序列模板统计中,若存在两个模板形成碰撞,且这两个模板起始位置之前的1比特和终点位置之后的1比特都不相等,则称为非平凡碰撞。
[0009]可以通过一个实例来解释这几个定义。设有12比特序列110110101101,则该序列有3个4比特非重叠模板:1101,1010,1101;9个4比特重叠模板:1101,1011,0110,1101,1010,0101,1011,0110,1101;其中非重叠统计存在1个碰撞和1个重复对数,重叠统计存在4个碰撞,5个重复对数,其中有2个4比特非平凡碰撞和1个6比特非平凡碰撞。
[0010]这里介绍现有标准中的一种非重叠查重检测——不相交检测,即将生成序列以非重叠方式统计进行碰撞性检测,其数学模型是基于生日碰撞原理得到出现重复的概率,进行小概率事件的拒绝判断。
[0011]生日碰撞模型如下:
[0012]设有m个球,随机取出n个出现碰撞的概率:
[0013][0014]其中m
(n)
=n(n

1)

(n

r+1)。当且m

∞,则P可做如下近似
[0015][0016]在AIS31提出的不相交检测中,测试随机比特串X,其长度为N,随机数比特位宽b,测试是否通过非重叠碰撞性检测。采用参数m=2
b
=2
48
,则出现重复的概率为P=1

exp(
‑2‑
17
)≈2

17
。可以看到在2
16
*48比特长的随机比特串中,将其分割为以48比特为单位模板的随机串,共2
16
个,出现48比特串模板重复的概率为2

17
,属于小概率事件,如果出现则拒绝其为随机串的假设。总结不相交检测(非重叠查重)的检测策略为:
[0017]不相交检测模型:n比特长序列,检测模板长度为m比特,重复概率为
[0018][0019]不相交检测策略示例:
[0020]表1
[0021][0022]通过生日问题可以延伸出6种经典碰撞问题,同时基于重叠及非重叠方式的查询可以得到更加丰富的统计检验方法。有了非重叠查重,自然想要考虑力度更大的重叠碰撞,即以重叠方式检测模板碰撞性。以n长4比特为例,非重叠方式有n/4个模板,重叠方式则有n

3个4比特模板。
[0023]首先,对于n比特长序列,检测模板长度为m比特,可以很轻松得到重复对数(≥碰撞数)的期望:
[0024][0025]根据此公式可得下表(列:待检序列长度;行:固定长度模板的长度;值:出现重复的概率估计的对数值
[0026]表2
[0027][0028]本专利技术主要关注序列中长比特长度(可选长度范围)的重叠碰撞搜索方法。
[0029]首先,最平凡的实现方法是:一般实现。直接将数据读入内存,按m比特重叠模板进行比较。复杂度为O(n2)。以1GB查72比特重复为例,该实现方式至少需要8
·
72GB内存;当数据量达到10GB时,则至少需要80
·
72GB内存;100GB时,至少需要800
·
72GB内存。显然这种实现方式需要超大内存,不适合通用计算机,且其本身逐对对比的复杂度也较高。
[0030]为了加快实现速度,较为高效的方法是:快排实现。直接将数据读入内存,按m比特重叠模板快排再比较。复杂度O(nlogn)。相比一般实现的方式,该实现方式大大降低了复杂度,但所需内存依然不变,这种实现方式更适合高性能计算机,然则其对内存的极高需求也极大降低了高性能计算机的数据量适用范围。
[0031]通过利用计算机的并行能力(CPU和GPU),显然可以极大加速搜索,然而这并没有改变计算资源的限制,从而极大限制了可检测数据量。因此,在实际工作中,为了兼顾计算资源和效率,急需高效的重叠碰撞搜索方法,而这无疑加大了搜索算法的设计难度。

技术实现思路

[0032]为了解决上述存在的计算资源受限和效率低的问题,即解决难以在计算资源受限下高效搜索重叠碰撞的问题,本专利技术提出一种资源受限下基于CUDA的序列碰撞快速搜索方法及系统,能够在有限计算资源下进行重叠碰撞的高效搜索,极大提高检测数据量上限,从而更好地服务于RNG随机数质量检测工作。
[0033]本专利技术所提出的一种资源受限下基于CUDA的序列碰撞快速搜索方法,包括以下步骤:
[0034]1)初始参数设置步骤:将检测模板分割为前缀和后缀,设定检查模板长度、前缀长度、后缀长度;设定CUDA并行线程,该线程包括线程块和线程束;设定输出碰撞模板本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种资源受限下基于CUDA的序列碰撞快速搜索方法,其特征在于,包括以下步骤:1)初始参数设置步骤:将检测模板分割为前缀和后缀,设定检查模板长度、前缀长度、后缀长度;设定CUDA并行线程,该线程包括线程块和线程束;设定输出碰撞模板长度范围;2)数据载入步骤:将待检测数据加载到GPU设备;3)匹配统计步骤:进行碰撞快速搜索时,对所述待检测数据进行CUDA并行匹配,得到所有前缀的频次;4)匹配排序步骤:利用CUDA并行,遍历所有前缀,通过匹配前缀得到相应的所有后缀数据,并对其进行排序,得到所有满足长度要求的碰撞及其所出现位置和长度并作为结果;5)输出步骤:将上述结果传输到CPU端进行结果处理并输出{碰撞长度;碰撞模板;碰撞位置}。2.如权利要求1所述的方法,其特征在于,初始参数设置步骤中,依据计算资源和重复对数的理论期望将检测模板分割为前缀和后缀。3.如权利要求1所述的方法,其特征在于,数据载入步骤中,首先通过CPU将待检数据读入,然后复制cudaMemcpyHostToDevice到GPU设备。4.如权利要求1所述的方法,其特征在于,数据载入步骤中,对于超出GPU显存负载的超大数据,通过CPU与GP...

【专利技术属性】
技术研发人员:陈东昱范丽敏陈华王舰
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1