云南大学软件学院 实验报告
课程:信息安全 技术技术 实验 学期: 任课教师: 许红星
专业: 信息安全 学号: 姓名: 成绩:
实验 2 随机数产生
一、 实验内容
利用密码技术或者专门的随机数产生算法产生随机数,并对产生的随机数进行统计分析。
二、 实验原理
(一) 本次实验使用了两种方法生成随机数,分别如下:
1、使用 RC4 算法产生随机数:
原理:RC4 算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分。在初
始化的过程中,密钥的主要功能是将 S-box 搅乱,i 确保 S-box 的每个元素都得到处理,j
保证 S-box 的搅乱是随机的。而不同的 S-box 在经过伪随机子密码生成算法的处理后可以
得到不同的子密钥序列,并且,该序列是随机的。
详细代码请见代码附录。
2、使用 rand 函数生成随机数:
rand 函数不是真正的随机数生成器,而 srand()会设置供 rand()使用的随机数种子。如果你
在第一次调用 rand()之前没有调用 srand(),那么系统会为你自动调用 srand()。而使用同种
子相同的数调用 rand()会导致相同的随机数序列被生成。
因此,在这个实验中,我使用了时间作为随机数种子,时间时刻在变化,因此每次生成的
随机数都是不同的
详细代码请见代码附录。
(二) 生成的随机数序列,我采用了 matlab 对随机数进行统计分析。
三、 实验步骤
(一) 我使用 RC4 加密过程产生的密钥流即为产生的随机数,文件有多大就会产生多少个随
机数,这里我产生了 100 个随机数,如图 1 所示:
1