[发明专利]一种基于CPU时钟和USB独立时钟的真随机数产生方法有效
申请号: | 201610709154.7 | 申请日: | 2016-08-23 |
公开(公告)号: | CN107769923B | 公开(公告)日: | 2019-11-19 |
发明(设计)人: | 曾学文;李杨;叶晓舟 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/06 |
代理公司: | 11472 北京方安思达知识产权代理有限公司 | 代理人: | 王宇杨;王蔚<国际申请>=<国际公布>= |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cpu 时钟 usb 独立 随机数 产生 方法 | ||
1.一种基于CPU时钟和USB独立时钟的真随机数产生方法,所述方法包括:采用CPU时钟和USB独立时钟的抖动差异作为随机噪声源,生成随机数种子,采用散列算法对随机数种子进行散列操作,生成所需的真随机数。
2.根据权利要求1所述的基于CPU时钟和USB独立时钟的真随机数产生方法,其特征在于,所述方法具体包括:
步骤1)开启USB帧开始SoF中断,SoF中断处理程序定期重复执行,读取CPU主时钟计数,获得连续两次SoF事件间的计时读数变化量,取变化量的最低若干比特,与随机数种子池中原有种子拼接成比特串,累积放入随机数种子池,直到随机数种子比特串大于或等于特定长度b;所述原有种子的初始值为空;
步骤2)取随机数种子池中最新得到的特定长度b的随机种子比特串,采用散列算法对随机种子进行散列运算,得到初始随机数;
步骤3)获取CPU主机系统时间和累计读取随机数种子池次数,依次串接在所述初始随机数后,采用与步骤2)不同的散列算法对串接后的随机数进行散列运算,输出散列值作为备用随机数;
步骤4)如果该随机数不是用于离散对数或椭圆曲线密码签名操作,则所述备用随机数为所要生成的真随机数。
3.根据权利要求2所述的基于CPU时钟和USB独立时钟的真随机数产生方法,其特征在于,如果是针对离散对数或椭圆曲线密码数字签名而生成真随机数,在步骤4)之后还包括:
步骤5)将待签名消息的散列值与所述备用随机数串接,采用与步骤3)不同的散列算法进行散列运算,输出散列值,将该散列值作为本次椭圆曲线数字签名的真随机数。
4.根据权利要求2或3所述的基于CPU时钟和USB独立时钟的真随机数产生方法,其特征在于,所述步骤1)中的变化量的最低若干位为最低2bit。
5.根据权利要求2或3所述的基于CPU时钟和USB独立时钟的真随机数产生方法,其特征在于,所述步骤2)的特定长度b为256bit。
6.根据权利要求2所述的基于CPU时钟和USB独立时钟的真随机数产生方法,其特征在于,所述步骤2)和步骤3)中的散列算法为SHA-256或国密SM3。
7.根据权利要求3所述的基于CPU时钟和USB独立时钟的真随机数产生方法,其特征在于,所述步骤2)、步骤3)和步骤5)中的散列算法为SHA-256或国密SM3。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610709154.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种密钥的写入方法
- 下一篇:校验POS机APK签名的方法及系统