[发明专利]一种基于CPU时钟和USB独立时钟的真随机数产生方法有效
申请号: | 201610709154.7 | 申请日: | 2016-08-23 |
公开(公告)号: | CN107769923B | 公开(公告)日: | 2019-11-19 |
发明(设计)人: | 曾学文;李杨;叶晓舟 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/06 |
代理公司: | 11472 北京方安思达知识产权代理有限公司 | 代理人: | 王宇杨;王蔚<国际申请>=<国际公布>= |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cpu 时钟 usb 独立 随机数 产生 方法 | ||
本发明公开了一种基于CPU时钟和USB独立时钟的真随机数产生方法,所述方法包括:采用CPU时钟和USB独立时钟的抖动差异作为随机噪声源,生成随机数种子,采用散列算法对随机数种子进行散列操作,生成所需的真随机数。该方法在硬件上只依靠现代CPU电路板上普遍具备的CPU主时钟和USB模块独立时钟,相比外接物理噪声源、外接多种时钟源计数电路、CPU访问外设或重复内存访问运算等操作来产生真随机数的方法,更加简便高效,可用于密钥生成、数字签名和密钥协商等信息安全处理操作中需要真随机数的场合。
技术领域
本发明涉及密码技术领域,具体涉及一种基于CPU时钟和USB独立时钟的真随机数产生方法,该方法可用于密钥生成、数字签名和密钥协商等需要生成真随机数的场合。
背景技术
随机数广泛用于密钥产生、数字签名、密钥协商等方面,在密码应用中十分重要,随机数产生方法的安全性直接影响密码系统的安全性。多数情况下,攻击者难以直接破解密码算法,而采用猜测密码算法所用的秘密随机数等迂回攻击方法,往往得到秘密随机数便可攻破整个密码系统。
随机数产生包括真随机数产生和伪随机数产生两类。真随机数产生通常基于自然界中具备随机性质的物理熵源,如掷硬币的正反面、电路噪声、环境噪声、温度变化,这种方法产生随机数的随机性非常好,完全不可预测和回溯,但需要依靠相应的物理条件才能获取,该方式的产生效率低,应用受限。实际中更多使用的是伪随机数产生方法。伪随机数产生器也称为确定性随机数产生器,即在确定输入种子的情况下,其输出也确定。伪随机数的产生一般采用软件或可编程硬件算法实现,通常需要采用具备随机性质的数据源作为熵源,以提供一串不可预测的数据作为种子。
为避免单一随机数熵源失效造成安全设备功能性失效,我国部分新的安全技术规范中要求安全设备中至少具备两种随机数熵源。部分高性能CPU中增加基于多个时钟源输入驱动的专门电路提供真随机数发生功能,可以作为一种随机数熵源。
在椭圆曲线密码签名应用中,确保采用不重复的真随机数对保障应用的安全性尤其重要。2010年后曾发生两起因秘密随机数泄露而导致密码系统被破解的著名安全漏洞事件。一是Sony PlayStation3游戏终端平台被破解,导致非法软件未经Sony数字签名即可进入平台运行,二是Android中的比特币钱包因随机数产生器缺陷导致钱包被盗。两起安全漏洞事件的原因都是因为椭圆曲线数字签名所用的真随机数泄露从而被破解。
基于椭圆曲线密码的数字签名和随机数泄露相关步骤说明如下。
限于篇幅,椭圆曲线密码及相关的有限域和点加、倍点和点乘与有限域运算可参考相关技术资料。下面只对椭圆曲线签名及其随机数泄露过程予以说明。
椭圆曲线数字签名算法(ECDSA)步骤如下:
签名和验签双方共同约定使用特定的椭圆曲线E(Fp):E:y^2≡x^3+ax+b(mod p),为描述特定的椭圆曲线,需明确六个参数:T=(p,a,b,G,n,h),
p:代表有限域Fp的素数,
a,b:椭圆方程的参数,
G:椭圆曲线的一个基点G=(xG,yG),
n:椭圆曲线基点G的阶,
h:余因数,h=#E(Fp)/n,#E(Fp)表示椭圆曲线上点元素的个数。
签名方的密钥对:(d,Q);(d为私钥,Q为公钥,Q=dG)
待签名的信息:m;
输出签名:Signature(m)=(r,s)
签名过程如下:
1、生成一个秘密随机数k,0<k<n,计算R=kG=(xR,yR),
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610709154.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种密钥的写入方法
- 下一篇:校验POS机APK签名的方法及系统