随机数实验报告

随机数实验报告

ID:47537954

大小:247.01 KB

页数:9页

时间:2020-01-14

随机数实验报告_第1页
随机数实验报告_第2页
随机数实验报告_第3页
随机数实验报告_第4页
随机数实验报告_第5页
资源描述:

《随机数实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、云南大学软件学院实验报告姓名:学号:班级:信息安全日期:成绩:课程名称信息安全技术 实验项目随机数产生实验目的利用密码技术或者专门的随机数产生算法产生随机数,并对产生的随机数进行统计分析实验内容(算法、程序、步骤和方法)1)设计一种随机数算法利用上学期在密码技术中学到的RC4加密算法来实现此次随机数生成,此次实验主要用到的是RC4密钥流的产生过程。RC4每次生成一个0-255(8bit)的数字,本次统计随机数是将这个8bit的数字,分为两个4bit(0-15)的随机数来统计,统计的随机数的范围是从0-15。2)实现该随机数

2、算法主要是利用RC4算法,该算法的原理和核心代码将在下面详细阐述:初始化S:开始时,S中元素的值被置为按升序从0-255(unsignedchar型),即S【0】=0,......,S【255】=255。同时建立一个临时向量T。设密钥长度为keylen字节,讲K的值赋给T的前kenlen个元素,并循环重复用K的值赋给T剩下的元素,直至T全部被赋值。具体实现过程如下://------初始化S数组和T数组uncharS[256]={0};uncharT[256]={0};for(inti=0;i<256;i++){S[i]=i

3、;T[i]=K[i%keylen];//循环复用K}然后用T长生的S的初始置换,从S【0】到S【255】,对每个S【i】,根据由T【i】确定的方案,将S【i】置换为S【i】中的另一字节,具体实现如下://-------用T数组影响S数组intj=0;inti;for(i=0;i<256;i++){j=(j+S[i]+T[i])%256;Swap(&S[i],&S[j]);}向量S一旦完成初始化,输入密钥就不再被使用。密钥流的生成是从S【0】到S【255】,对每个S【i】,根据当前S的值,将S【i】与S中的另一个字节置换。当

4、S【255】完成置换后,操作继续重复从S【0】开始://------随机数的产生i=0;j=0;intc[MAX]={0};//用来保存随机序列for(intn=0;n

5、组c[n]中}1)对该算法产生的随机数进行统计,分析其效果统计随机数的时候,一定要注意把生成的一个unsignedchar的数字当成两个随机数统计,比如生成的数字时6b(16进制),就要当成6和b两个数字统计。具体的统计过程的核心代码如下://------统计次数和频率intn[16];//用来存储随机数(0-15)的次数floatf[16];//用来存储随机数(0-15)的频率for(inti=0;i<16;i++)//初始化次数和频率{n[i]=0;f[i]=0.0;}统计次数的这一个模块非常重要,一定要把生成的数据(

6、unsignedchar型)的数据当成两个随机数字来读,具体过程如下:for(inti=0;i

7、=(float)n[i]/(MAX*2);//因为生成的是MAX个8bit的数据,换成16进制(4bit)//就是2MAX个16进制的数字了}for(intk=0;k<16;k++){printf("%2d出现的次数为:%2d,",k,n[k]);printf("%2d出现的频率为:%f",k,f[k]);}最后看看每个随机数出现了多少次,和随机数出现的次数在总的数字里占的比例。看看每个随机数的次数和频率是否大致相等。比较接近就可以证明是随机的。下面的数据记录和计算模块,将会对统计结果进行详细说明。数据记录和计算当从键

8、盘输入“abcd”的初始向量时,产生的2*MAX(即20000)随机数情况如下:0-15的次数和频率如下:从上述的统计结果可以看书0-15出现的次数大致都为1200多,频率大致都为0.06多,结果都比较接近。再来测一组数据,从键盘输入“12eh5”的初始向量时,产生的2*MAX(即20000)随机数情况

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。