《深入浅出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)。

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

相关推荐
草根站起来37 分钟前
将网站改成HTTPS需要几步?
网络协议·http·https
80s77710 小时前
什么是动态IP?静态IP和动态IP有什么区别?
网络·网络协议·tcp/ip
IPdodo_15 小时前
代理 IP 服务商 SLA 怎么验?7 项指标与 Python 探测脚本实战
运维·python·网络协议·网络安全·代理ip
夜月yeyue16 小时前
SOME/IP-SD 服务发现故障
网络·单片机·网络协议·tcp/ip·安全·服务发现
2501_9160088917 小时前
iOS App 请求地址查看,不用配置看到 App 调了哪些接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
爱学堂IT分享20 小时前
码神之路-Netty-从零实现RPC框架+SpringBoot实战项目教程
spring boot·网络协议·rpc
Shawn Dev1 天前
没有公网 IP,如何让家里的服务器通过域名访问?——Cloudflare Tunnel 实战指南
服务器·网络协议·tcp/ip
幻步智能网络云专线1 天前
幻步智能网络专线的优势
网络·网络协议
虎王物联1 天前
Nginx反向代理实现IoT设备HTTPS接入:从证书配置到MQTT over WebSocket实战
运维·物联网·nginx·https
深圳市宝华视联2 天前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库