随机数的检验及发生

原创 2003年03月02日 12:17:00

随机数的检验及发生
    在加密解密的过程中随机数起着相当重要的作用。所以随机数的质量受到关注。如何高效产生高质量的随机数是一个重要课题。
以ASCII码组成的随机数为例,随机数最基本的检验:
     我们知道有256个ASCII码其数值是0到255,当一组随机数个数较多时其平均值应为127.5。
     两组组元相同的随机数其重码率约为1/256=0.00390625。
    如果偏离此 2 数较远则不是好的随机数。
随机数发生的方法:
   有用 C 语言中的随机数发生器产生的随机数一般还可以。如果想用高质量的随机数。可参考以下方法:
   《序列数改造方法》
   先造一个序列仍以ASCII码组成的随机数为例,例如想造一个有2560个元素的随机数列:
                   1 先造一个数值由零到255的循环数列长度为2560
                   2 随机抽取两的序号使它们的数值交换
                   3 使 2 进行足够多次取其一部分检测其效果,直到满意。

这里基于一个原理:如果我们随机的去变化一个数的集合,它只能是越来越无序化。就象在一个盘子里放着大小一样但颜色不同的几小堆沙子,我们去搅和这些沙子只能使它们融合的越来越好,而不可能相反。
所以尽管上面“随机抽取两的序号使它们的数值交换”是用伪随机数来完成的。但也不可能产生向有序化发展的趋势。在实际操作中,可以加一些“倒序”、“取反”之类的操作以加快进程。
                                                                                                                           

NIST 随机数测试sts-2.1.1软件下载使用详解(windows和linux)

前段时间写了一个随机数生成器,由于要测试随机数的随机性能,所以xiza
  • Tom_VS_Jerry
  • Tom_VS_Jerry
  • 2014年05月17日 18:43
  • 8382

Java_随机生成4位验证码

import java.util.*;//导入java.util包下的类 public class JavaDemo10 { public static void main(String ...
  • a191030148
  • a191030148
  • 2013年03月10日 22:50
  • 20585

web登录:随机验证码的设计和实现

本文特点: 针对验证码的生成做了很多算法优化和调整,支持一个典型的验证码生成和验证流程,利用缓存服务器解决聚群部署架构中数据同步的问题。 基本需求: 登录页面显示一个随机验证码图片、有背景干扰...
  • ClementAD
  • ClementAD
  • 2015年09月28日 19:35
  • 10904

MATLAB中的随机数发生函数

MATLAB中有两个基本的(伪)随机数发生函数, rand与randn. 前者产生0和1之间均匀分布的随机数, 后者产生均值为0, 方差为1的正态分布的随机数. 统计工具箱(Statistics To...
  • moonsheep_liu
  • moonsheep_liu
  • 2012年05月17日 11:11
  • 4949

Java获取随机数的3种方法和总结

  • 2014年09月06日 14:17
  • 54KB
  • 下载

afl取随机数字字母

  • 2014年10月14日 23:09
  • 2KB
  • 下载

随机数

  • 2014年11月08日 14:40
  • 392B
  • 下载

C++生成随机数的静态库

  • 2014年09月22日 17:15
  • 7KB
  • 下载

linux获取真正随机数源码

  • 2017年02月24日 11:47
  • 490B
  • 下载

随机数的产生

  • 2015年05月24日 23:06
  • 411B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:随机数的检验及发生
举报原因:
原因补充:

(最多只允许输入30个字)