android 随机数函数,一种用于生成Android设备真随机数的方法与流程

本发明提出一种无需硬件集成真随机数发生器的Android设备真随机数生成方法,通过获取系统中断次数信息,经过处理生成真随机数,避免了硬件退化影响,适用于大多数Android设备。
摘要由CSDN通过智能技术生成

8b53561f0cfc3d65a9992745d31b204b.gif

本发明属于信息安全技术领域,具体涉及一种用于生成android设备真随机数的方法。

背景技术:

密钥是保证android(安卓)设备安全的重要组件之一,密钥的生成与使用均需要用到随机数,随机数的优劣直接影响到密钥的安全性,生成高质量的真随机数需要高熵值的随机源信息。

随机数生成方法主要包含两种:伪随机数生成方法和真随机数生成方法。伪随机数生成方法主要使用线性同余算法,而线性同余算法在循环迭代过程中,生成的伪随机数具有规律性,降低了随机数应该具备的随机性。在申请公布号:cn103530086a,名称为“一种分散机制的软件随机数生成方法”的中国专利中利用线性同余算法生成随机数的方法,将随机数的n个字节按两个字节进行划分,按照预先设定的查询表进行查询,用查询结果替换原有的字节,将置换后的结果依次进行合并得到随机数。但由于置换表是固定的,置换并没有消除随机数的统计规律。在申请公布号:cn107769923a,名称为“一种基于cpu时钟和usb独立时钟的真随机数产生方法”的中国专利中将cpu时钟和usb独立时钟的抖动差异作为随机噪声源,生成随机数种子,采用散列算法对随机数种子进行散列操作,生成真随机数。

但是,目前研究大都是针对android硬件信息进行研究,需要在android设备的硬件上集成随机数发生器,虽然可以产生较好的随机数序列,使得随机数序列容易受到硬件使用过程退化的影响,并且现有的大部分android设备上都没有集成真随机数发生器芯片,导致这种方法无法得到广泛应用。

技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种用于生成android设备真随机数的方法。

本发明的一个实施例提供了一种用于生成android设备真随机数的方法,包括:

每间隔j毫秒通过intr字段获取第一数值;

根据所述第一数值获取第一序列;

将所述第一序列中相邻的所述第一数值做差获取第二数值;

根据所述第二数值获取第二序列;

根据所述第二序列获取真随机数。

在本发明的一个实施例中,其特征在于,每间隔j毫秒通过intr字段获取第一数值,包括:

每间隔j毫秒获取一次/proc/stat文件中的intr字段的第一个数值作为第一数值,共获取k次。

在本发明的一个实施例中,所述j毫秒≥1毫秒。

在本发明的一个实施例中,根据所述第一数值获取第一序列,包括:

将k次获取的多个所述第一数值按照获取顺序形成所述第一序列。

在本发明的一个实施例中,将所述第一序列中相邻的所述第一数值做差获取第二数值,包括:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值