SEEDLAB2.0-Pseudo Random Number Generation Lab

本文探讨了Linux系统中伪随机数生成的原理,包括使用时间作为种子的不安全性,以及/dev/random和/dev/urandom设备在生成加密密钥时的区别。/dev/random会因熵值耗尽而阻塞,而/dev/urandom则能持续生成但可能随机性较低。实验展示了通过观察熵值变化和设备输出来理解随机数质量的方法,并指出在实际应用中推荐使用/dev/urandom以避免阻塞问题。

Pseudo Random Number Generation Lab
本次实验将会学习:
伪随机数生成
生成随机数时的错误
生成加密密钥
/dev/random和/dev/urandom设备文件

Task 1错误的方式生成加密密钥
伪随机数的生成事实上是可以预测的
比如下面的代码使用当前时间用作伪随机数生成的种子
在这里插入图片描述

Time()会返回从1970-01-01 00:00:00开始以来的秒数
编译后运行几次可以看到
在这里插入图片描述

将srand那一句注释后
在这里插入图片描述

从结果可以看到,注释了srand后,光用rand是非常危险的

Task2 猜测key
根据描述场景,暴力破解即可

Task3 测量内核的熵
单单使用软件是很难生成真随机数的。大多数系统会从物理世界获得随机性,linux从以下获得随机性:
在这里插入图片描述

第一个是用两次按键之前的计时,第二个是用鼠标的移动以及中断的计时,第三个是使用中断计时收集随机数(当然,也不是所有中断都是好的随机数,比如,计时器中断就不是好选择,因为这是可预测的,而磁盘中断是一个更好的选择),最后一个是测量块设备请求的完成时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值