收藏 分享(赏)

基于CryptoAPI的生物医学真随机数的生成器_论文.docx

上传人:dreamzhangning 文档编号:2813453 上传时间:2018-09-28 格式:DOCX 页数:8 大小:20.55KB
下载 相关 举报
基于CryptoAPI的生物医学真随机数的生成器_论文.docx_第1页
第1页 / 共8页
基于CryptoAPI的生物医学真随机数的生成器_论文.docx_第2页
第2页 / 共8页
基于CryptoAPI的生物医学真随机数的生成器_论文.docx_第3页
第3页 / 共8页
基于CryptoAPI的生物医学真随机数的生成器_论文.docx_第4页
第4页 / 共8页
基于CryptoAPI的生物医学真随机数的生成器_论文.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、1 / 8基于 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+ , via CryptGenRandom function, following the installation of Intel Security Driver

2、(ISD) 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 b

3、y 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 rando

4、m number 2 / 8table. 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 u

5、nit; true 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 拟合优度检验(=) ,表明本方法所生成的随机数满足独立性和分布均匀性的要求. 生成 7500个随机数经域值变换后

6、与随机数表中的同等数目的随机数进行了统计学比较,结果显示前者的均值偏移、SD, SE 和 CV均小于后者. 结论:基于 CryptoAPI的真随机数生成器可以生成满足独立性和分布均匀性的真随机数. 【关键词】 CryptoAPI;Intel RNG Unit; 真随机数;NIST FIPS 1401;随机数表 0引言 3 / 8随机数在生物医学中使用非常广泛. 通过随机数生成器(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 材料 在兼容机(intel PIII 667, 主板:ASUS TUSL2C,815E 芯片组,512M KingMax PC133 RAM)上使用4 / 8Microsoft Visual C+.net 2017编制了计算机程序. 方法使用 CryptGenRand

9、om()函数获取随机数(Fig 1). 使用的伪代码如下:#define WIN32_WINNT 0x400; #include ; #include ; #include HCRYPTPROV hProv;DWORD randomNumber = 0;DWORD randomLength = 4;/获取句柄.If (!CryptAcquireContext( return FAIL;/获取随机数(4 位).If (CryptGenRandom(hProv, randomLength, (BYTE*) Return FAIL;/释放CSP句柄.CryptReleaseContext(hProv

10、,0); 2结果 根据最少需要 80Mbit连续 RNG输出的原则5 ,我们生成了 100Mbit连续随机数,部分数据如下((0,1)域,4位小数)(Tab 1). 随机数的随机性检验常用 2 检验(罕用 KS检验和经验检验) ;分布均匀性检验我们使用 2 拟合优度检验法;独立性常用游程检验法检验. 我们使用美国国家技术标准局 ( NIST)的 FIPS(Federal Information Processing Standards Publication)14016对所生成的随机数进行了测试, 结果显示,Intel 随机数生成器通过了统计学 FIPS1401测试,证明本实验所生成的随机数符

11、合5 / 8随机数的特征,通过了独立性检验、参数检验和组合规律检验(Tab 2).表 2FIPS1401测试结果(略) 为了验证所生成的随机数分布的均匀性,我们再用 2拟合优度检验法对这些数作分布均匀性检验. 假设:H0: r1,r2,r3,rn为均匀总体的随机样本. 将样本r1,r2,r3,rn(n=500)的取值范围分布在 m个(m=10)等宽的区间,用i-1m,im)(i=1,2,3,m)来表示第 i个小区间,即分成,), ,), ,), ,), ,), ,), ,),), ,), ,),共 10个区间. 设rj(j=1,2,3,m)落入每个小区间的数目为ni(i=1,2,3,m). 根

12、据假设,rj落入每个小区间的概率为 1m,第 i个小区间的理论频数 ui=nm(i=1,2,m),统计量 V=mi=1(ni-ui)2ui=mnmi=1(ni-nm)2 渐进服从 2(m-1). 使用 Origin (SR1)对 500个随机数进行频数统计,得m110的频数为 52, 53, 32, 49, 44, 43, 59, 48, 58, 62. 计算统计量值: V=mnmi=1(ni-nm)2=15010i=1(ni-50)2=给定显著性水平 =,取 m=10,则自由度 v=m-1=9. 查 2 分布临界值为 可知,V,所以假设 H0成立. rn为来自均匀分布的总体的随机样本. 6

13、/ 8Microsoft公司的(Trusted Computing Platform Alliance) 7,8是下一代操作系统安全构架,因此使用基于 Windows CryptoAPI函数的随机数生成器具有广泛的使用性,是一种优秀的随机数生成器. 在生物医学上,随机数的性能取决于它的均匀性和距离理论频数的偏移程度. 我们选取了卫生统计学 北京:人民卫生出版社,1978:215-220后面随机数表中的所有随机数字(7500 个, 0,99)). 我们将基于 Intel RNG的随机数生成器所生成的 7500个随机数乘以 100后,截掉尾数,使其从(0,1)域转换成0,100域. 由于截尾(使用

14、round()函数)有四舍五入的问题,因此其界值 1和 100不作为统计之用. 对随机数表(记为 A组)和随机数生成器所生成的随机数(记为 B组)使用 SPSS 统计频数后,用(SR1)作频数图(Fig 2). 为了检验两个变异系数之间有无差别,常用检验. 由于本例中,测量值与真值(在本例中即为均值的偏移程度)接近于 0(分别是和) ,变异系数很小(%) ,因此检验以平均绝对误差、标准差等为准. 以上结果显示,均值偏移:AB;虽然两者的差别没有显著性(CV 差别为%) ,但是 B组的频数离散度和最大偏移均小于A组,因此我们认为基于 CryptoAPI的随机数生成所产生的随机数比基于随机数表的随

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

16、的均匀性. 在具有 RNG单元的 CPU,包括 Intel , AMD和 VIA等的个人电脑上均可以使用,能够得到广泛的使用. 具有一定的实用性. 【参考文献】 1 Gary M and John V. 使您的软件运行起来:消除偏差. URL http:/developerWorks/cn/security/beating/ 2 Intel Security Driver (ISD): URL http:/design/software/drivers/platform/3463/isecdrv_ 3 VIA, The VIA PadLock Advanced Cryptography Eng

17、ine (ACE): URL 8 / 8http:/en/padlock/padlock_ 4 Intel Inc. Intel 82802 firmware hub: random number generator. Intel Inc., URL http:/ 5 Intel Platform Security Division. The Intel Random Number Generator. Intel Inc., URL http:/design/security/rng/ 6 NIST, fact sheet on digital signature standard: URL http:/public_affairs/releases/ 7 Intel Platform Security Division. The Intel Random Number Generator. Intel Inc., http:/design/security/rng/ 8 Intel: Intel Trusted Computing: Integrated Security that Starts as the Platform levelURL: http:/home/scenes/stories/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报