一种基于加密算法的真随机数发生器的后处理方法技术

技术编号:37556191 阅读:26 留言:0更新日期:2023-05-15 07:40
本发明专利技术公开了一种基于加密算法的真随机数发生器的后处理方法,属于随机数产生技术领域,所述方法包括:步骤1:利用预设的伪随机源对输入的熵数据进行加扰运算;步骤2:对运算后的熵数据进行加密处理;步骤3:对加密处理后的熵数据进行置换处理,以调整数据顺序,减小组内数据的相关性;步骤4:对置换处理后的熵数据再引入新的伪随机源进行加扰运算。本发明专利技术的基于加密算法的真随机数发生器的后处理方法,包括预处理、加密处理、置换处理和加扰处理四大步骤,在加密算法的基础上,对随机数生成的后处理过程进行了优化,能够提高生成随机数的随机性,更好地保护信息的安全。更好地保护信息的安全。更好地保护信息的安全。

【技术实现步骤摘要】
一种基于加密算法的真随机数发生器的后处理方法


[0001]本专利技术涉及随机数产生
,特别是指一种基于加密算法的真随机数发生器的后处理方法。

技术介绍

[0002]在如今的信息时代,信息安全越来越显得重要,也越来越受到人们的关注和重视。作为信息加密与安全通信协议基础的随机数,最主要的特性就是随机性与不可预测性。随机数的产生通常采用随机数发生器,伪随机数发生器(PRNG)利用算法作为随机源,产生的伪随机数并不是完全随机的,其在一定的周期内具有周期性和可预测性。真随机数发生器(TRNG)是指利用非确定性的物理现象,如电子噪声、频率抖动、辐射衰变、单光子发射/探测、量子效应等,作为随机源,产生的随机数具有不可预测且不可复制性。与伪随机数相比,真随机数发生器通过利用物理现象来产生不可预测且不可复制性的随机数,能够更好地保护信息的安全。
[0003]在电路设计中,最常见的真随机数产生方法有三种:(1)直接放大法,直接利用放大电路中的电阻热噪声等物理噪声,通过比较器进行比较后获得随机数序列;(2)振荡采样法,利用带有抖动的慢振荡器,通过D触发器采样一个周期固定的快振荡器得到的随机数序列;(3)离散时间混沌法,利用混沌电路不可预测以及对初始条件敏感的依赖性的特点产生随机数序列。一般来说,基于模拟电路的结构,熵源的统计分布更加理想,且熵源噪声不随采样周期的变化而改变;基于数字电路的结构,集成度高,便于在FPGA(现场可编程门阵列)等通用可编程平台上实现,但熵源的统计特性与模拟电路相比不够理想。
[0004]真随机数发生器生成随机数的过程分为两个部分,第一个部分是熵的生成,是指利用前面所说的各类噪声源生成随机的熵,包括物理熵源和熵的采集,第二部分是后处理部分,是把前面生成的熵数据进行处理,提高随机数的随机性。理论上物理随机源生成的数据是完全随机的,但实际应用中,由于噪声的存在以及设计本身的限制,生成的随机数并不是完全随机,甚至在默写情况下随机性会很差,所以需要再处理一下,提高生成随机数的随机性。常用的后处理方法是使用现有的密码加密算法,包括对称算法、非对称算法、HASH(哈希)函数以及消息认证码等。
[0005]直接使用加密算法作为随机数的后处理算法,因为不是专门设计用于后处理的,同时算法本身在处理数据时的重复性,使得生成的随机数的随机性不是很好,特别是当前面物理随机源生成的熵值不高的情况下,生成的随机数很难达到标准要求。

技术实现思路

[0006]本专利技术要解决的技术问题是提供一种基于加密算法的真随机数发生器的后处理方法,提高生成随机数的随机性。
[0007]为解决上述技术问题,本专利技术提供技术方案如下:
[0008]一种基于加密算法的真随机数发生器的后处理方法,包括:
[0009]步骤1:利用预设的伪随机源对输入的熵数据进行加扰运算;
[0010]步骤2:对运算后的熵数据进行加密处理;
[0011]步骤3:对加密处理后的熵数据进行置换处理,以调整数据顺序,减小组内数据的相关性;
[0012]步骤4:对置换处理后的熵数据再引入新的伪随机源进行加扰运算。
[0013]进一步的,所述真随机数发生器预设至少两组相互独立的伪随机源;
[0014]所述步骤1进一步为:
[0015]从预设的伪随机源中动态选择其中一组伪随机源对输入的熵数据进行异或运算。
[0016]进一步的,所述真随机数发生器预设一组独立伪随机源用作所述加密处理的加密密钥,所述加密密钥定期更新。
[0017]进一步的,所述加密处理采用的加密算法是SM4算法。
[0018]进一步的,所述加密处理的加密运算过程包括至少2种模式,每种模式下的轮迭代运算的次数不同;
[0019]所述步骤2进一步为:
[0020]从所述至少2种模式中动态选择其中一种模式对运算后的熵数据进行加密处理。
[0021]进一步的,所述加密处理的加密运算过程包括8种模式:第一种模式下,加密运算只做4次轮迭代运算;第二种模式下,加密运算只做8次轮迭代运算;第三种模式下,加密运算只做12次轮迭代运算;第四种模式下,加密运算只做16次轮迭代运算;第五种模式下,加密运算只做20次轮迭代运算;第六种模式下,加密运算只做24次轮迭代运算;第七种模式下,加密运算只做28次轮迭代运算;第八种模式下,加密运算做完整的32次轮迭代运算。
[0022]进一步的,所述步骤3进一步为:
[0023]对加密处理后的熵数据进行等分,组成nxn的矩阵,通过矩阵置换输出新数据,以调整数据顺序,减小组内数据的相关性。
[0024]进一步的,n为大于等于4的整数。
[0025]进一步的,所述步骤4进一步为:统计原始输入的熵数据中0和1的占比,当0和1的个数都大于预设阈值时,引入新的伪随机源对置换处理后的熵数据再进行一次加扰运算。
[0026]本专利技术具有以下有益效果:
[0027]本专利技术的基于加密算法的真随机数发生器的后处理方法,包括预处理、加密处理、置换处理和加扰处理四大步骤,在加密算法的基础上,对随机数生成的后处理过程进行了优化,能够提高生成随机数的随机性,更好地保护信息的安全。
附图说明
[0028]图1为本专利技术的基于加密算法的真随机数发生器的后处理方法的流程示意图;
[0029]图2为图1中预处理的原理框图。
具体实施方式
[0030]为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0031]如前所述,真随机数发生器生成随机数的过程分为两个部分,第一部分是熵的生
成,第二部分是后处理部分,把前面生成的熵数据进行处理,提高随机数的随机性。本专利技术主要是在后处理部分进行了改进。
[0032]本专利技术的基于加密算法的真随机数发生器的后处理方法,如图1所示,包括:
[0033]步骤101:预处理
[0034]利用预设的伪随机源对输入的熵数据进行加扰运算;
[0035]本步骤中,输入的熵数据即来源于真随机数发生器生成随机数过程的第一部分(熵的生成)。
[0036]步骤102:加密处理
[0037]对运算后的熵数据进行加密处理;
[0038]步骤103:置换处理
[0039]对加密处理后的熵数据进行置换处理,以调整数据顺序,减小组内数据的相关性。
[0040]步骤104:加扰处理
[0041]对置换处理后的熵数据再引入新的伪随机源进行加扰运算,以再次减小数据的相关性。
[0042]本步骤完成后,即可按照真随机数发生器生成随机数的常规过程,利用加扰处理后的熵数据产生随机数。
[0043]本专利技术的基于加密算法的真随机数发生器的后处理方法,包括预处理、加密处理、置换处理和加扰处理四大步骤,在加密算法的基础上,对随机数生成的后处理过程进行了优化,能够提高生成随机数的随机性,更好地保护信息的安全。...

【技术保护点】

【技术特征摘要】
1.一种基于加密算法的真随机数发生器的后处理方法,其特征在于,包括:步骤1:利用预设的伪随机源对输入的熵数据进行加扰运算;步骤2:对运算后的熵数据进行加密处理;步骤3:对加密处理后的熵数据进行置换处理,以调整数据顺序,减小组内数据的相关性;步骤4:对置换处理后的熵数据再引入新的伪随机源进行加扰运算。2.根据权利要求1所述的方法,其特征在于,所述真随机数发生器预设至少两组相互独立的伪随机源;所述步骤1进一步为:从预设的伪随机源中动态选择其中一组伪随机源对输入的熵数据进行异或运算。3.根据权利要求2所述的方法,其特征在于,所述真随机数发生器预设一组独立伪随机源用作所述加密处理的加密密钥,所述加密密钥定期更新。4.根据权利要求1所述的方法,其特征在于,所述加密处理采用的加密算法是SM4算法。5.根据权利要求4所述的方法,其特征在于,所述加密处理的加密运算过程包括至少2种模式,每种模式下的轮迭代运算的次数不同;所述步骤2进一步为:从所述至少2种模式中动态选择其中一种模式对运算后的熵...

【专利技术属性】
技术研发人员:杨洪杰
申请(专利权)人:青岛方寸微电子科技有限公司
类型:发明
国别省市:

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

1