- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种实用的随机序列生成方法
摘要:采用PC声卡随机噪声作为随机源,使用安全散列算法(SHA-256)对采集到的随机源序列进行处理,形成一种随机序列产生方法。依照FIPS14022标准对产生的随机序列进行测试,结果表明该随机序列的生成方法可行、实用。
关键词:PC;随机序列;密码生成
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)09-1991-02
A Practical Method of Random Sequences Producing
NI An-sheng1,TANG Chi2
(1.Xian Communications Instutute, Xian 710106, China; 2.The Fourth Military Medical University, Xian 710032, China)
Abstract: Utilizing the noise of PC soundcard as random resource to obtain random sequences, which was then processed by the secure hash algorithm SHA-256. Thus a method of random sequences producinging was made. The random sequences were tested according to American standard FIPS14022. It shows that the method is feasible and practical with the testing results.
Key words: PC; random sequences; password generator
随机数在密码学中发挥重要作用,如密钥管理、加密解密、数字签名、身份认证等都需要用到随机数,密码系统的安全性一般依赖于随机数的生成[1]。理想情况下,密钥应当是真正随机的。随机数是通过随机二进制序列组合而成的,目前用于产生随机二进制序列的方法主要有两类[2]:一种是通过一定的算法由软件或电路生成随机序列,称为伪随机序列,是可以重复产生的;另一种是通过物理现象,如振荡器的频率不稳定性、放射性衰减期间粒子散发的时间间隔、电阻器热噪声、混沌现象等生成随机序列,这类序列具有不可预测性,不可重复,在密码学意义上是安全的。
通过算法不能实现真正的随机数,因此一般通过使用硬件随机数生成器的方法来获取真随机数。但是这种方法增加了成本,不适合低成本应用程序开发和小型项目应用。PC上有许多可供利用的随机源,如:硬盘磁道寻道时间、鼠标键盘响应时间、网络数据包校验码、缓冲区数据等。有关研究表明[3-4],利用PC附带的随机源生成随机数,可以满足低成本应用程序和小型项目开发的要求。目前,PC声卡早已经成为标准的配置,绝大部分主板都内置了声卡。因此,选用声卡噪声作为随机数发生源无需额外增加开发成本,具有较强的代表性。本文以麦克风和声卡作为随机信号的采集设备,以DirectX中的Sound API函数进行信号获取,采用Microsoft Visual C++.net 2005完成软件设计。
1 基本原理
PC在使用中,麦克风采集到的声音信号含有随机噪声,声卡将该信号采样后传送给主机,一般情况下采样频率为44.1KHz,采样精度为16bits,采样数据末若干位将由于含有噪声信号表现出随机性。因此,可以用采样信号的末若干位(一般少于等于2位)来初步组合随机序列。当随机序列达到一定长度时,使用美国国家标准和技术协会(NIST) 公布的安全散列标准算法SHA-256,对其进行散列变换,增强序列的随机性,形成一个256位的随机序列。根据要求的随机序列长度,进行多次随机序列生成组合。随机序列生成组合过程如图1所示。
2 测试及结果
2.1 测试标准
对随机序列的统计学测试方法有许多种,这些方法虽能从各个侧面统计序列的均匀行和独立性,但没有统一的参数指标进行比较。美国NIST在FIPS 14022 中提出了基于密码系统的安全标准[5],其中包括随机序列发生器的测试方法和合格标准,测试方法主要有:monobit测试、poker测试、runs测试及long runs 测试。要求从产生的随机序列中选取20000位连续的0-1比特流进行实验。该测试简化了统计检验标准,更具操作性与比对性。
2.1.1 monobit测试
计算比特流中1的个数。当1的个数在9725~10275范围之内时表示随机数发生器通过monobit测
文档评论(0)