伪随机数生成器

伪随机数生成器一 nbsp 点睛随机数可以通过硬件来生成 也可以通过软件来生成 通过硬件生成的随机数列 是根据传感器收集的热量 声音的变化等事实上无法预测和重现的自然现象信息来生成的 像这样的硬件设备就称为随机数生成器 而可以生成随机数的软件则称为伪随机数生成器 因为仅靠软件无法生成真随机数 因此要加上一个 伪 字 二 nbsp 伪随机数生成器的结构伪随机数生成器具有 内部状态 并根据外部输入的 种子 来生成

一 点睛

随机数可以通过硬件来生成,也可以通过软件来生成。

通过硬件生成的随机数列,是根据传感器收集的热量、声音的变化等事实上无法预测和重现的自然现象信息来生成的。像这样的硬件设备就称为随机数生成器。

而可以生成随机数的软件则称为伪随机数生成器。因为仅靠软件无法生成真随机数,因此要加上一个“伪”字。

二 伪随机数生成器的结构

伪随机数生成器具有“内部状态”,并根据外部输入的“种子”来生成伪随机数列。

伪随机数生成器

1 伪随机数生成器的内部状态

伪随机数生成器的内部状态,是指伪随机数生成所管理的内存中的数组。当有人对伪随机数生成器发出“给我一个伪随机数”的请求时,伪随机数生成器会根据内存中的数值(内部状态)进行计算,并计算结果作为伪随机数输出。随后,为了响应下一个伪随机数请求,伪随机数生成器会改变自己的内部状态。因此,将根据内部状态计算伪随机数的方法和改变内部状态方法组合起来,就是伪随机数生成的算法。

由于内部状态决定了下一个生成的伪随机数,因此内部状态不能被攻击者知道。

2 伪随机数生成器的种子

为了生成伪随机数,伪随机数生成器需要称为种子(seed)的信息。伪随机数的种子是用来对伪随机生成器内部状态进行初始化的。

伪随机数的种子是一串随机的比特序列,根据种子就可以生产出专属于自己的伪随机数列。伪随机数生成器是公开的,但种子是需要自己保密的,这就好像密码算法是公开的,但密钥只能自己保密。由于种子不可以被攻击者知道,因此不可以使用容易被推测的值,例如不可以用当前时间作为种子。

密码的密钥与伪随机数的种子之前的对比对请参考下图:

伪随机数生成器

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212646.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午7:35
下一篇 2026年3月18日 下午7:36


相关推荐

  • 组合数据类型练习,英文词频统计实例

    组合数据类型练习,英文词频统计实例1、列表实例:由字符串创建一个作业评分列表,做增删改查询统计遍历操作。例如,查询第一个3分的下标,统计1分的同学有多少个,3分的同学有多少个等。2、字典实例:建立学生学号成绩字典,做增删改查遍历操作

    2022年7月6日
    23
  • HandlerSocket_handlermapping原理

    HandlerSocket_handlermapping原理HandlerSocket的应用场景:MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoSQL产品比MySQL要快很多,而且前台网站上的80%以上查询都是简洁的查询业务。MySQL通过HandlerSock…

    2022年8月24日
    7
  • pycharm安装中文包为什么老是失败_安卓安装包格式

    pycharm安装中文包为什么老是失败_安卓安装包格式PyCharm版本:PyCharm2020.21.打开PyCharm进入File->Settings…2.找到Plugins并点击(挥着在搜索框输入Plugins并选择Plugins菜单)3.在Marketplace的搜索框输入chinese4.可以看到Chinese(Simplified)LanguagePackEAP安装包,点击Install安装5.等待安装完成,点击RestartIDE重启IDE窗口6.选择Re

    2022年8月28日
    2
  • Linux下wait, WIFEXITED, WEXITSTATUS的比较

    Linux下wait, WIFEXITED, WEXITSTATUS的比较偶尔翻到了这几个关键字,找到个文章复习了下:“点我”。记录下:wait的函数原型是:#include/*提供类型pid_t的定义*/#includepid_twait(int*status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已

    2022年4月20日
    171
  • linux 嵌入式 tts引擎_语音合成(TTS)的概念和分类[通俗易懂]

    linux 嵌入式 tts引擎_语音合成(TTS)的概念和分类[通俗易懂]智能音箱在ASR(语音识别)以及NLP自然语义处理常用框架-兔尔摩斯的文章-知乎https://zhuanlan.zhihu.com/p/55658291语音合成SpeechSynthesis或TexttoSpeech(TTS)语音合成(SpeechSynthesis)是人类语音的人工合成。用于此目的的计算机系统称为语音计算机或语音合成器,可以在软件或硬件产品中实…

    2022年4月19日
    281
  • java 格式化日期 星期_java 日期格式化

    java 格式化日期 星期_java 日期格式化packagecom sxt utils date1 importjava util Date importjava text DateFormat importjava text SimpleDateFo 日期格式化类 必须掌握 API GEra 标志符 TextADy 年 Year1996 96M 年中的月份 MonthJuly Jul

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号