首页 > 编程语言 >安全编程技术实验四

安全编程技术实验四

时间:2022-11-26 17:25:24浏览次数:40  
标签:检验 生成 安全 算法 实验 随机数 设计 编程技术

随机数生成算法实现及质量测试

一、实验目的

该实验为设计性实验,实验目的如下:
1.学会如何采用软件方式设计和实现一个高质量的随机数生成算法。
2.掌握常用的随机数质量测试的方法。

二、实验内容

1.设计一个伪随机数生成算法。
2.对(1)设计的伪随机数生成算法进行编程实现。
3.对(2)产生的伪随机数进行统计检验

三、实验要求

1、本实验一人一组,编程语言任选。
2、要求学生掌握伪随机数的生成原理,了解常用的伪随机数生成算法,并熟练掌握所选的编程语言。
3、要求学生能够设计一个伪随机数生成算法,并编程实现,具体要求如下:
(1)界面友好,操作方便。
(2)从界面输入需要生成的随机数个数和范围,并从界面输出生成的随机数(十六进制)。
(3)对生成的伪随机数进行统计检验。
4、实验报告要求:
(1)实验报告要求包括实验目的、实验要求、实验内容(算法的设计)、实验结果(伪随机数质量)分析和实验体会等,重点在于实验内容(算法的设计)和实验结果(伪随机数质量)分析。实验报告要求上传和打印。
(2)理论联系实际,认真分析设计的伪随机数生成算法的优点和缺点。
(3)写出伪随机数生成算法设计和实现过程中的心得和体会,并回答实验中的思考题。
(4)实验报告撰写规范请见附。

四、实验环境

计算机:Windows11、CodeBlocks C

五、实验提示

1.本实验可以参考以下资料:
(1)《编写安全的代码(第2版)》,(美)MichaelHoward,DavidLeBlanc,机械工业出版社,2005年
(2)《伪随机数生成及其在Java中的实现与应用》,王瑞胡、王宇,电脑开发与应用,2006年
(3)《伪随机数生成及其在计算机密码安全中的应用》,王瑞胡,网络通讯与安全,2005年
(4)《伪随机数随机性的一种新检验》,时正华、袁永生,诃海大学学报,2005年
(5)《一种伪随机数生成算法的研究与实现》,赵学峰,电脑学习,2005年
(6)《高质量程序设计指南——C++/C语言(第二版)》,林锐、韩永泉,电子工业出版社,2003年
2.更多关于伪随机数生成成算法设计及质量测试的参考资料请到实验室服务器或BB系统下载。

六、实验运行截图

七、实验代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int a;
    int b,c,d;
    srand((unsigned)time(NULL));
    printf("输出区间:");
    scanf("%d %d",&b,&c);
    printf("输入个数:");
    scanf("%d",&d);
    int e,i;
    e = c-b;
    for(i=0; i<d; i++)
    {
        a = rand() % e + b;
        printf("%d(%#x)\n",a,a);
    }
    return 0;
    return 0;
}

八、实验总结

通过本次实验我对随机数的生成有了进一步的认识,学会了用time种子每次生成不同不随机数,之前只会用取余来获取几位数的随机数,通过本次学习则学会了如何获取任何范围内的随机数,并且学会了对随机数的统计检验。

九、思考题

除了你在实验中所用的方法,对伪随机数进行质量测试的方法还有哪些?

参数检验、均匀性检验(x2检验、柯氏检验、序列检验)、独立性检验(相关系数检验、列联表检验)、最值检验。

标签:检验,生成,安全,算法,实验,随机数,设计,编程技术
From: https://www.cnblogs.com/daijun123/p/16927791.html

相关文章

  • 安全编程技术实验五
    WindowsCryptoAPI的使用一、实验目的该实验为设计性实验,实验目的如下:1.熟悉WindowsCryptoAPI提供的常用函数接口。2.掌握WindowsCryptoAPI的使用。二、实验内容及步骤......
  • 安全编程技术实验一
    缓冲区溢出一、实验目的该实验为验证性实验,实验目的如下:1、掌握缓冲区溢出的基本原理。2、掌握预防缓冲区溢出的方法,并且在实际编程中严格遵循这些方法。二、实验内容......
  • 安全编程技术实验二
    Windows系统中的访问控制一、实验目的该实验为验证性实验,实验目的如下:1.掌握访问控制列表的基本原理。2.学会通过编程实现更改Windows操作系统中文件或目录的访问控制......
  • 实验5 继承和多态
    1.实验4pets.hpp1#include<iostream>2#include<string>3usingnamespacestd;4classMachinePets{5private:6stringnickname;7......
  • 实验5-类的继承
    1.pets.hpp.1#pragmaonce2#include<iostream>3#include<string>45usingnamespacestd;67classMachinePets{8public:9MachinePets......
  • windows系列---【安全清理电脑C盘,释放空间】
    1.使用windows工具释放磁盘空间 2.删除缓存使用win+R,输入"%temp%",回车确认,删除所有文件。 3.使用存储感知清理空间 4.卸载没有用的软件......
  • GaussDB拿下的安全认证CC EAL4+究竟有多难?
    摘要:近日,经过全球知名独立认证机构SGSBrightsight实验室的安全评估,华为云GaussDB企业级分布式数据库内核获得全球权威信息技术安全性评估标准CCEAL4+级别认证本文分享自......
  • GaussDB拿下的安全认证CC EAL4+究竟有多难?
    摘要:近日,经过全球知名独立认证机构SGSBrightsight实验室的安全评估,华为云GaussDB企业级分布式数据库内核获得全球权威信息技术安全性评估标准CCEAL4+级别认证本文分享自华......
  • 实验五:全连接神经网络手写数字识别实验
    |班级链接|https://edu.cnblogs.com/campus/czu/classof2020BigDataClass3-MachineLearning||作业链接|https://edu.cnblogs.com/campus/czu/classof2020BigDataClass3-Ma......
  • 实验四
    任务一#include<stdio.h>#defineN4intmain(){inta[N]={1,9,8,4};charb[N]={'1','9','8','4'};inti;printf("sizeof(int)=%d\n",......