基于CryptoAPI的生物医学真随机数的生成器.doc

上传人:99****p 文档编号:1994104 上传时间:2019-03-26 格式:DOC 页数:7 大小:31KB
下载 相关 举报
基于CryptoAPI的生物医学真随机数的生成器.doc_第1页
第1页 / 共7页
基于CryptoAPI的生物医学真随机数的生成器.doc_第2页
第2页 / 共7页
基于CryptoAPI的生物医学真随机数的生成器.doc_第3页
第3页 / 共7页
基于CryptoAPI的生物医学真随机数的生成器.doc_第4页
第4页 / 共7页
基于CryptoAPI的生物医学真随机数的生成器.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、基于 CryptoAPI 的生物医学真随机数的生成器【关键词】 随机数生成器 【Abstract】 AIM: To establish a true random number generator based on Microsoft CryptoAPI. METHODS: The random numbers were obtained by programming under Microsoft Visual C+ 6.0, via CryptGenRandom function, following the installation of Intel Security Driver (I

2、SD) on an Intel 815E chipset based personal computer. RESULTS: The author tested the generator with 500 random numbers in NIST FIPS 1401 and 2 RSquared test and the result showed that it fitted the need of independent and uniform distribution. The author also compared the random numbers produced by

3、Intel RNG based true random number generator and those from the random number table with statistics parameters, by using the same amount of 7500 random numbers in the same value domain. The result showed that SD, SE and CV of Intel RNG based random number generator were smaller than those of random

4、number table. The result of u test of two CVs indicated that there was no difference between the two methods. CONCLUSION: Intel CryptoAPI based random number generator can produce high quality random numbers with independent and uniform distribution features. 【Keywords】 CryptoAPI; Intel RNG unit; tr

5、ue random number; FIPS 1401; random number table 【摘要】 目的: 构建基于 Microsoft CryptoAPI的真随机数生成器. 方法:在 Intel 815E 芯片组的个人电脑上安装 Intel Security Driver(ISD)后,使用 Microsoft Visual C+ 6编程,通过CryptGenRandom函数获取真随机数. 结果:生成的 500个随机数通过了NIST FIPS 1401和 2 拟合优度检验(=0.05) ,表明本方法所生成的随机数满足独立性和分布均匀性的要求. 生成 7500个随机数经域值变换后与随机数

6、表中的同等数目的随机数进行了统计学比较,结果显示前者的均值偏移、SD, SE和 CV均小于后者. 结论:基于 CryptoAPI的真随机数生成器可以生成满足独立性和分布均匀性的真随机数. 【关键词】 CryptoAPI;Intel RNG Unit; 真随机数;NIST FIPS 1401;随机数表 0 引言 随机数在生物医学中使用非常广泛. 通过随机数生成器(random number generator, RNG)可以获取随机数字. 基于硬件源(例如热噪声和电流噪声等)的真随机数生成器(true random number generator)1具有最好的统计学特性,但是目前的硬件随机数生

7、成器(例如ComScire QNG等)价格昂贵. 微软公司(Microsoft) CryptoAPI系统构架分为两层:面向客户系统的界面层和下面的真正提供密码算法的计算层. 底层的每个驱动可以称之为“Cryptographic Service Provider”(CSP). 微软公司在发布 CryptoAPI的时候就已经内置了若干种 CSP,即 Microsoft Base Cryptographic Provider(MBCP). CryptGenRandom函数就位于 MBCP中的 Microsoft RSA Base Provider中. 对于能提供RNG的芯片组,在安装相应驱动,例如

8、Intel RNG的 Intel Security Driver(ISD) 2和 VIA的 VIA Random Number Generator(VRNG)3等之后,就能生成相应的 CSP,供 CryptoAPI体系调用. 因此使用CryptGenRandom函数所获得的随机数是真随机数. 1 材料和方法4 1.1 材料 在兼容机(intel PIII 667, 主板:ASUS TUSL2C,815E 芯片组,512M KingMax PC133 RAM)上使用 Microsoft Visual C+.net 2003编制了计算机程序. 1.2 方法使用 CryptGenRandom()函数

9、获取随机数(Fig 1). 使用的伪代码如下:#define WIN32_WINNT 0x400; #include ; #include ; #include iscp4ms.h. HCRYPTPROV hProv;DWORD randomNumber = 0;DWORD randomLength = 4;/获取句柄.If (!CryptAcquireContext(hProv, NULL, INTEL_DEF_PROV, PROV_INTEL_SEC, 0) printf(“No Found!n“,GetLastError(); return FAIL;/获取随机数(4 位).If (Cr

10、yptGenRandom(hProv, randomLength, (BYTE*) randomNumber)!=TRUE) /释放 CSP句柄. CryptReleaseContext(hProv,0); Return FAIL;/释放 CSP句柄.CryptReleaseContext(hProv,0); 2 结果 根据最少需要 80Mbit连续 RNG输出的原则5 ,我们生成了100Mbit连续随机数,部分数据如下((0,1)域,4 位小数)(Tab 1). 随机数的随机性检验常用 2 检验(罕用 KS检验和经验检验) ;分布均匀性检验我们使用 2 拟合优度检验法;独立性常用游程检验法检

11、验. 我们使用美国国家技术标准局 ( NIST)的 FIPS(Federal Information Processing Standards Publication)14016对所生成的随机数进行了测试, 结果显示,Intel 随机数生成器通过了统计学 FIPS1401测试,证明本实验所生成的随机数符合随机数的特征,通过了独立性检验、参数检验和组合规律检验(Tab 2).表 2FIPS1401测试结果(略) 为了验证所生成的随机数分布的均匀性,我们再用 2 拟合优度检验法对这些数作分布均匀性检验. 假设:H0: r1,r2,r3,rn为均匀总体的随机样本. 将样本 r1,r2,r3,rn(n

12、=500)的取值范围分布在m个(m=10)等宽的区间,用i-1m,im)(i=1,2,3,m)来表示第 i个小区间,即分成0.0,0.1), 0.1,0.2), 0.2,0.3), 0.3,0.4), 0.4,0.5), 0.5,0.6), 0.6,0.7),0.7,0.8), 0.8,0.9), 0.9,1.0),共 10个区间. 设rj(j=1,2,3,m)落入每个小区间的数目为 ni(i=1,2,3,m). 根据假设,rj落入每个小区间的概率为 1m,第 i个小区间的理论频数 ui=nm(i=1,2,m),统计量 V=mi=1(ni-ui)2ui=mnmi=1(ni-nm)2 渐进服从

13、2(m-1). 使用 Origin 7.5(SR1)对 500个随机数进行频数统计,得 m110的频数为 52, 53, 32, 49, 44, 43, 59, 48, 58, 62. 计算统计量值: V=mnmi=1(ni-nm)2=15010i=1(ni-50)2=14.32 给定显著性水平 =0.05,取 m=10,则自由度 v=m-1=9. 查 2 分布临界值为 18.307. 可知,V18.307,所以假设 H0成立. rn为来自均匀分布的总体的随机样本. Microsoft 公司的(Trusted Computing Platform Alliance)7,8是下一代操作系统安全构

14、架,因此使用基于 Windows CryptoAPI函数的随机数生成器具有广泛的使用性,是一种优秀的随机数生成器. 在生物医学上,随机数的性能取决于它的均匀性和距离理论频数的偏移程度. 我们选取了卫生统计学 北京:人民卫生出版社,1978:215-220后面随机数表中的所有随机数字(7500 个, 0,99)). 我们将基于 Intel RNG的随机数生成器所生成的 7500个随机数乘以 100后,截掉尾数,使其从(0,1)域转换成0,100域. 由于截尾(使用round()函数)有四舍五入的问题,因此其界值 1和 100不作为统计之用. 对随机数表(记为 A组)和随机数生成器所生成的随机数(

15、记为 B组)使用 SPSS 11.5统计频数后,用 Origin7.5(SR1)作频数图(Fig 2). 为了检验两个变异系数之间有无差别,常用检验. 由于本例中,测量值与真值(在本例中即为均值的偏移程度)接近于 0(分别是 0.6316和0.76173) ,变异系数很小(0.5%) ,因此检验以平均绝对误差、标准差等为准. 以上结果显示,均值偏移:AB;虽然两者的差别没有显著性(CV 差别为 0.00041%) ,但是 B组的频数离散度和最大偏移均小于 A组,因此我们认为基于 CryptoAPI的随机数生成所产生的随机数比基于随机数表的随机数表中的随机数具有更好的统计学性能. 3 讨论 以上

16、真随机数生成方法可以用于任何能提供硬件 CSP的操作系统中. 既可用于具有 Intel RNG的 Intel芯片组(包括 810, 815, 820和 840芯片组系列)的个人计算机;也可以用于具有 RNG单元的 VIA和 AMD等CPU芯片的个人计算机,具有较好的普及性. 另外这种生成方法使用真正的硬件随机数源,而非依靠拟蒙特卡罗方法(例如算法) ,因此具有极高的随机数性能. 在生物医学上常用随机数表法来获取数据. 使用本研究中的基于 CryptoAPI的真随机数生成器基于硬件发生器源,所生成的随机数具有不可预测性,独立性和分布的均匀性. 在具有 RNG单元的 CPU,包括 Intel ,

17、AMD和 VIA等的个人电脑上均可以使用,能够得到广泛的使用. 具有一定的实用性. 【参考文献】 1 Gary M and John V. 使您的软件运行起来:消除偏差. URL http:/ 2 Intel Security Driver (ISD): URL http:/ 3 VIA, The VIA PadLock Advanced Cryptography Engine (ACE): URL http:/.tw/en/padlock/padlock_hardware.jsp. 4 Intel Inc. Intel 82802 firmware hub: random number ge

18、nerator. Intel Inc., URL http:/. 5 Intel Platform Security Division. The Intel Random Number Generator. Intel Inc., URL http:/ 6 NIST, fact sheet on digital signature standard: URL http:/www.nist.gov/public_affairs/releases/digsigst.htm. 7 Intel Platform Security Division. The Intel Random Number Generator. Intel Inc., http:/ 8 Intel: Intel Trusted Computing: Integrated Security that Starts as the Platform levelURL: http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。