毕业设计论文简述大随机数生成程序的开发与测试.doc
《毕业设计论文简述大随机数生成程序的开发与测试.doc》由会员分享,可在线阅读,更多相关《毕业设计论文简述大随机数生成程序的开发与测试.doc(19页珍藏版)》请在三一办公上搜索。
1、简述大随机数生成程序的开发与测试摘要大随机数已经在当今社会的各个领域中都频繁使用,特别是在加密技术中已经成了不可缺少的一部分,像RSA,MD5中随机数成为加密技术的关键。本设计主要为第3代移动通信系统(3G)提供符合要求的随机数(1024位),首先取得系统时间和RAND()函数所产生的随机数作为最初的随机初值,经过三重DES(两密钥通过MD5算法得来)和异或的变换,保证其随机数的足够随机,然后通过16次的循环得到一个组合起来的1024位随机数,设计还提供一个检验随机数是否随机的平台,采用了均匀性检测,即频率检测的方法检测随机数的随机性,通过检测发现,所产生的随机数能够达到我们所期望的随机性。设
2、计还对常见的随机数的生成方法进行了检析,提供多种随机数的生成方法,并且也提供了多种随机数的检测方法供大家参考,希望对大家有所帮助。关键字:随机数;RSA;MD5;加密技术;均匀性检测ConfidentialPagePage 2 of 24 25/20/2023Big Random Number Generator Algorithm Research and ImplementAbstractThe big random number is used everywhere in modern society especially in the encryption technology. Th
3、e random number is the key technology of the encryption.This design mainly provides the request random number (1024) for 3rd Generation of mobile communication system. The way to provide the number is discussed in this article, and the Randomness test is discussed too. There are many ways to finish
4、the task which are shown in this paper. We hope these techniques can be useful. Key words: Random number; RSA; MD5; Encryption technology; Even line of examination目 录论文总页数: 19页1 引言11.1随机数的概念11.2课题背景11.3 国内外研究现状11.4 本课题研究的意义11.5 本课题的研究方法12常见随机数生成方法简析22.1 迭代取中法22.2 乘同余法22.3 混同于法22.4 反变换法32.4.1 平均分布 :3
5、2.4.2 指数分布 :42.4.3 正态分布随机变量的生成 :42.5 离散型随机变量43随机数的检验54 大随机数产生的机理64.1 流程图64.2 DES算法简介75 算法实现86 检验随机数137 系统测试14结 论16参考文献17致 谢18声 明191 引言1.1随机数的概念在现今的计算机中所产生的随机数,都是伪随机数。即,可以通过一定手段和方法发现或破译其中的规律。真随机数,也有了一定的研究,比如:通过声音或原子衰变等所产生的随机数。伪随机数可以通过一定的数学算法,近似真随机数但仍然不是真随机数。1.2课题背景随机数已经在当今社会的各个领域中都频繁使用,特别是在加密技术中已经成了不
6、可缺少的一部分,甚至很多加密技术的保密程度就取决于随机数。像RSA,MD5需求大量随机数的密码技术正需求一个好的随机数发生器的产生。如今很多随机数产生器已经存在,但那些都存在很多的不足,比如产生的随机数位数不够,不是足够随机等等问题,所以编制一个能够产生我们需要足够大的且足够随机的随机数的随机数产生器就变得很重要。1.3 国内外研究现状通过查阅质料和在网上了解,国外对随机数的研究领先于国人对随机数的研究,但是总体来说对随机数的研究都还不够深入与透彻,都还不能脱离伪随机数的阴影,但的确目前的技术支持与环境配置等方面都还制约着我们大多数只能在研究伪随机数的层面,我们只可能的尽量地做到无限接近真随机
7、数,而不能达到真正的随机。特别在随机数的检测这方面,虽然检测的方法很多,但是都不够完善,没有一个很公用很全面的检测方法诞生,所以在随机数的研究中还有很深的东西需要我们去挖掘。1.4 本课题研究的意义保证我们能够很快速的得到需要的随机数,而且随机数能够足够大足够随机,尽量能够实用在需要用到随机数的任何地方,特别是在科研领域,比如第3代移动通信系统(3G)中需要的1024随机数,就能满足它的要求,我们所要做的就是使产生的随机数尽量的靠近真随机数。1.5 本课题的研究方法工作任务:1.大致了解随机数产生器的发展过程和现阶段的大概情况,认识现阶段随机数产生器的产生方式和所用到的知识,结构体系是怎样的。
8、2.分析他们的优点和缺点,能够保留的优点就要尽量用到,如果有不足应该怎样改正,加上自己的理解和题目的要求做一个满意的随机数产生器。要求: 使用VC+平台,编写一个能产生1024位的随机数发生器,而且随机数还要是足够随机的,并且还要编制一个检验平台,能在该平台上检验该随机数是足够随机的。设计思路:采用VC+6.01使用VC+实现控件的开发与界面的设计,尽量使外观简单容易实用,输出结果方便易看2借鉴其他随机数产生器的产生方法,参阅AES,DES中随机数的产生方法,借鉴出其中的精华,补上自己的构思与想法尽量使随机数不出现重复。2常见随机数生成方法简析2.1 迭代取中法这里在迭代取中法中介绍平方取中法
9、 , 其迭代式如下 : Xn+1=(Xn2/10s)(mod 102s) Rn+1=Xn+1/102s 其中, Xn+1 是迭代算子,而 Rn+1 则是每次需要产生的随机数。 第一个式子表示的是将 Xn 平方后右移 s 位,并截右端的 2s 位。 而第二个式子则是将截尾后的数字再压缩 2s 倍,显然 :0=Rn+1= sizeof(DWORD)memcpy(&bufni, &dwRes, sizeof(dwRes);ni += sizeof(dwRes);maxlen -= sizeof(dwRes);dwRes = GetCurrentThreadId();if (maxlen = size
10、of(DWORD)memcpy(&bufni, &dwRes, sizeof(dwRes);ni += sizeof(dwRes);maxlen -= sizeof(dwRes);dwRes = GetTickCount();if (maxlen = sizeof(DWORD)memcpy(&bufni, &dwRes, sizeof(dwRes);ni += sizeof(dwRes);maxlen -= sizeof(dwRes);ms.dwLength = sizeof(MEMORYSTATUS);GlobalMemoryStatus(&ms);if (maxlen = sizeof(M
11、EMORYSTATUS)memcpy(&bufni, &ms, sizeof(MEMORYSTATUS);ni += sizeof(MEMORYSTATUS);maxlen -= sizeof(MEMORYSTATUS);return ni;void CCreRndNum:GetKey() int sysInfoLen = get_SystemStatus_W32(300);CString sKey32; /字符串型int iKey3232; /转换后的整型 sKey32 = CMD5Checksum:GetMD5(buf,sysInfoLen);/字符串for(int i = 0; i 32
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 简述 随机数 生成 程序 开发 测试
链接地址:https://www.31ppt.com/p-4864055.html