[发明专利]一种用于生成Android设备真随机数的方法有效
| 申请号: | 201810674186.7 | 申请日: | 2018-06-26 |
| 公开(公告)号: | CN110647310B | 公开(公告)日: | 2021-09-03 |
| 发明(设计)人: | 曾勇;董丽华;宋彭飞;刘志宏;蒋忠元;马建峰 | 申请(专利权)人: | 西安电子科技大学 |
| 主分类号: | G06F7/58 | 分类号: | G06F7/58 |
| 代理公司: | 西安嘉思特知识产权代理事务所(普通合伙) 61230 | 代理人: | 孙涛涛 |
| 地址: | 710071*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 用于 生成 android 设备 随机数 方法 | ||
本发明涉及一种用于生成Android设备真随机数的方法,包括:每间隔j毫秒通过intr字段获取第一数值;根据所述第一数值获取第一序列;将所述第一序列中相邻的所述第一数值做差获取第二数值;根据所述第二数值获取第二序列;根据所述第二序列获取真随机数。本发明生成的Android设备的真随机数无需集成真随机数发生器芯片,通过利用系统中的中断次数信息生成的真随机数,从而使得本方法生成的真随机数不会受到硬件退化的影响,且可以在大多数Android设备进行使用。
技术领域
本发明属于信息安全技术领域,具体涉及一种用于生成Android设备真随机数的方法。
背景技术
密钥是保证Android(安卓)设备安全的重要组件之一,密钥的生成与使用均需要用到随机数,随机数的优劣直接影响到密钥的安全性,生成高质量的真随机数需要高熵值的随机源信息。
随机数生成方法主要包含两种:伪随机数生成方法和真随机数生成方法。伪随机数生成方法主要使用线性同余算法,而线性同余算法在循环迭代过程中,生成的伪随机数具有规律性,降低了随机数应该具备的随机性。在申请公布号:CN 103530086A,名称为“一种分散机制的软件随机数生成方法”的中国专利中利用线性同余算法生成随机数的方法,将随机数的N个字节按两个字节进行划分,按照预先设定的查询表进行查询,用查询结果替换原有的字节,将置换后的结果依次进行合并得到随机数。但由于置换表是固定的,置换并没有消除随机数的统计规律。在申请公布号:CN107769923A,名称为“一种基于CPU时钟和USB独立时钟的真随机数产生方法”的中国专利中将CPU时钟和USB独立时钟的抖动差异作为随机噪声源,生成随机数种子,采用散列算法对随机数种子进行散列操作,生成真随机数。
但是,目前研究大都是针对Android硬件信息进行研究,需要在Android设备的硬件上集成随机数发生器,虽然可以产生较好的随机数序列,使得随机数序列容易受到硬件使用过程退化的影响,并且现有的大部分Android设备上都没有集成真随机数发生器芯片,导致这种方法无法得到广泛应用。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种用于生成Android设备真随机数的方法。
本发明的一个实施例提供了一种用于生成Android设备真随机数的方法,包括:
每间隔j毫秒通过intr字段获取第一数值;
根据所述第一数值获取第一序列;
将所述第一序列中相邻的所述第一数值做差获取第二数值;
根据所述第二数值获取第二序列;
根据所述第二序列获取真随机数。
在本发明的一个实施例中,其特征在于,每间隔j毫秒通过intr字段获取第一数值,包括:
每间隔j毫秒获取一次/proc/stat文件中的intr字段的第一个数值作为第一数值,共获取k次。
在本发明的一个实施例中,所述j毫秒≥1毫秒。
在本发明的一个实施例中,根据所述第一数值获取第一序列,包括:
将k次获取的多个所述第一数值按照获取顺序形成所述第一序列。
在本发明的一个实施例中,将所述第一序列中相邻的所述第一数值做差获取第二数值,包括:
将所述第一序列中相邻的所述第一数值做差获取多个所述第二数值,其中,所述第二数值为k-1个。
在本发明的一个实施例中,根据所述第二数值获取第二序列,包括:
将k-1个所述第二数值按照获取顺序形成所述第二序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810674186.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高速大位宽乘法器
- 下一篇:一种不可操控的随机数生成方法及系统





