《深入浅出HTTPS》读书笔记(5):随机数

密码学中随机数的用途非常大,其他密码学算法内部都会用到随机数。

1)效率

在软件或者密码学应用中需要大量的随机数,必须在很短的时间内生成随机数。

2)随机性

生成的随机数只要不存在统计学偏差,那么这个随机数就具备随机性(randomness)。

3)不可预测性

密码学中的随机数必须具备不可预测性,否则就会存在安全问题,当然非密码学应用使用具备随机性的随机数就足够了。

4)不可重现性

所谓不可重现性(unrepeat)就是不管经过多长时间,不会产生完全相同的随机数。

在软件层面不可能生成完全不一样的随机数,在一定周期内,密码学随机数算法最终会生成两个完全相同的随机数。

在密码学中应该尽量使用周期相对长的随机数。

【随机数的工作原理】

真正的随机数生成器TRNG(True Random Number Generator),伪随机数生成器PRNG(Preudo Random Number Generator),还是密码学伪随机数生成器CPRNG(Cryptography secure Preudo Random Number Generator),内部工作原理是一样的

随机数生成器内部会维护一个状态(internal state):

(1)对于TRNG来说,内部状态的数值来自外部设备,称为熵(entrory),比如动态的时间、变化的温度、声音的变化、鼠标位置。

(2)对于PRNG来说,内部状态的数值来自于模拟的数值,称为种子(seed)。

一个优秀的随机数生成器就在于寻找尽可能多的熵和种子,一旦熵和种子不够,随机数生成器就会停止运行。

相关推荐
老蒋新思维5 小时前
创客匠人峰会洞察:私域 AI 化重塑知识变现 —— 创始人 IP 的私域增长新引擎
大数据·网络·人工智能·网络协议·tcp/ip·创始人ip·创客匠人
北京盟通科技官方账号9 小时前
Ixxat Mobilizer系列:助力汽车组件的高效下线测试
网络协议·机器人·自动化·汽车·制造
此生只爱蛋10 小时前
【Linux】TCP机制
网络·网络协议·tcp/ip
会头痛的可达鸭10 小时前
Reqwest 库详细使用指南
http·rust·reqwest
北京耐用通信10 小时前
为安全加码,为效率提速:耐达讯自动化Ethernet/IP转DeviceNet电力自动化连接的可靠选择
人工智能·物联网·网络协议·自动化·信息与通信
老蒋新思维11 小时前
创客匠人峰会实录:AI 赋能 IP 定位破局 —— 创始人知识变现的差异化增长路径
网络·人工智能·网络协议·tcp/ip·数据挖掘·创始人ip·创客匠人
橘子真甜~11 小时前
C/C++ Linux网络编程11 - 数据加密与https协议
linux·服务器·网络·http·https·密码学·加密解密
韩凡12 小时前
网络协议(浅见)
网络·网络协议
abcefg_h12 小时前
Cookie,Session的介绍和如何保持TCP连接
网络·网络协议·tcp/ip·golang
渡我白衣13 小时前
Select的优化:poll
开发语言·网络·c++·人工智能·网络协议·tcp/ip·网络安全