0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

技术分享 | 随机数生成过慢导致系统阻塞怎么办?

启扬ARM嵌入式开发 2022-08-15 09:20 次阅读

/dev/random和/dev/urandom是linux上的随机数生成器,是个字符设备,为系统提供随机数。随机数主要应用在加密方面,没有加密的操作都是可预测且不安全的。

linux上随机数的生成原理

linux上随机数的生成原理是将系统的中断信息收集起来放入熵池中,通过算法生成更多无序的数据,有了大量的无序数据之后,每次获取随机数,就会从池子中读取指定的字节序列,而这些字节序列就是生成器生成的随机数。

linux开机时就会伴随着random设备的初始化,一般我们经常会遇见这两条log:

random: crng init done,

random: 7 urandom warning(s) missed due to ratelimiting,

这说明随机数已经初始化完成,可以随时请求使用。但是在某些时候会卡在这个log很长时间,这是因为在开机时系统中断不够或程序运行时熵不足,生成随机数非常缓慢,导致阻塞,进而导致无法开机、app无法正常运行等一系列bug。

为了解决这个问题,我们可以移植一个工具对熵池进行补熵,这样随机数生成器就会快速生成随机数,解决阻塞导致的一系列问题。

解决方案

解决这个问题的工具有很多,这里我们选用移植haveged工具,并使用启扬IAC-IMX8MM-kit开发板展示具体操作过程。

移植haveged-1.9.3

首先source我们的sdk开发环境,然后进入到源码内,通过configure配置makfile文件,命令如下:

./configure --host=aarch64-poky-linux --prefix=/home/ylook/haveged

配置完成后执行make && make install命令,会在/home/ylook/haveged目录下生成编译完成后的二进制文件以及相关库文件,如下图所示:

(注:笔者路径有所不同,根据环境自行更改即可)

279007a6-1a5a-11ed-9ade-dac502259ad0.png

注意:

为防止错误,可以使用file命令检查二进制文件架构,保证为aarch64架构即可。

将编译出来的二进制文件拷贝到板子的/usr/bin/目录,库文件拷贝到/usr/lib/目录,执行haveged --h命令,如下图所示:

27b356a2-1a5a-11ed-9ade-dac502259ad0.png

这里就相当于我们已经把板子里的环境配置好了,为了能够开机就使用该工具生成熵,所以我们需要在开机进程中将该工具设置为自动运行。

因为启扬i.MX8M Mini开发板上使用systemed工具配置相关服务,所以我们需要写一个service,然后让它开机运行,具体service如下:

27cc616a-1a5a-11ed-9ade-dac502259ad0.png

使用systemctl enable haveged之后重启就会生效,可从开机log中看出,如图所示,在很早之前初始化就已经完成了。

27efc4e8-1a5a-11ed-9ade-dac502259ad0.png

也可以使用命令cat /proc/sys/kernel/random/entropy_avail,查看当前熵值,在没有haveged之前该值只有几十几百,而开启之后有几千。

281a6a90-1a5a-11ed-9ade-dac502259ad0.png

这样,就完美解决了随机数生成过慢导致系统阻塞的问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 生成器
    +关注

    关注

    7

    文章

    315

    浏览量

    21002
收藏 人收藏

    评论

    相关推荐

    “安徽造”量子随机数芯片通过国家密码管理局检测

    近日,国家密码管理局商用密码检测中心出具报告,由安徽问天量子科技公司自主研发的WT-QRNG300量子随机数芯片通过检测。这是国内首家官方商密报告认定、且已实现商用量产及产业化的“量子随机数芯片
    的头像 发表于 12-19 19:06 258次阅读

    问天量子和方寸微电子联合发布量子随机数芯片

    近日,国家密码管理局商用密码检测中心出具报告,问天量子和方寸微电子联合自主研发的WT-QRNG300量子随机数芯片通过检测,这是国内首家官方商密报告认定、且已实现商用量产及产业化的“量子随机数芯片”产品。
    的头像 发表于 12-19 16:18 211次阅读

    对称加密技术有哪些常见的安全漏洞?

    对称加密技术在实际应用中可能面临的安全漏洞主要包括: 实现不当: 错误的加解密实现、弱随机数生成器或其他逻辑错误都可能导致安全漏洞。 漏洞利用: 利用已知的弱点或攻击手段,如理论上可行
    的头像 发表于 12-16 13:59 66次阅读

    LuatOS开发之4G模组随机数(random)|实战指南

    本次学习的实战是关于4G模组LuatOS开发的随机数示例指南,希望大家有所收获。
    的头像 发表于 11-30 09:51 178次阅读
    LuatOS开发之4G模组<b class='flag-5'>随机数</b>(random)|实战指南

    解析Air780E模组LuatOS开发的随机数(random) 示例篇

    本文主要解析的是低功耗4G模组Air780E的LuatOS开发随机数(random)实例,我以整理成文分享给大家。
    的头像 发表于 11-29 20:23 115次阅读
    解析Air780E模组LuatOS开发的<b class='flag-5'>随机数</b>(random) 示例篇

    雅特力AT32 MCU的随机数生成

    概述产品和生态系统安全性的需求比以往任何时候都更加重要。真随机数是所有安全系统的核心,其质量会影响设计的安全性。因此在没有内置硬件TRNG的AT32的微控制器系列中,如何提高随机数的有
    的头像 发表于 08-30 12:26 541次阅读
    雅特力AT32 MCU的<b class='flag-5'>随机数</b><b class='flag-5'>生成</b>

    如何在FPGA中实现随机数发生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7中实现4位伪随机数发生器(PRNGs)。
    的头像 发表于 08-06 11:20 662次阅读
    如何在FPGA中实现<b class='flag-5'>随机数</b>发生器

    大电流一体成型电感有噪音怎么办

    电子发烧友网站提供《大电流一体成型电感有噪音怎么办.docx》资料免费下载
    发表于 07-30 12:30 0次下载

    如何使用Python生成四位随机数

    为了实现这些目标,Python 为我们提供了random() 模块。random() 是一个内置的 Python 模块,用于生成随机数
    的头像 发表于 04-15 12:47 650次阅读

    电容负极熔断怎么办

    在现代科技发展的时代,电容器在各个领域都扮演着重要的角色。然而,由于各种原因,电容器的负极可能会发生熔断的情况。那么,当电容器的负极熔断时,我们应该怎么办呢?
    的头像 发表于 04-10 14:15 512次阅读
    电容负极熔断<b class='flag-5'>怎么办</b>

    TC389芯片上HSM的TRNG真随机数功能,如何判断其随机能力呢?

    想咨询一下,TC389芯片上HSM的TRNG真随机数功能,如何判断其随机能力呢?有什么资料或者测试内容吗?
    发表于 03-05 07:20

    请问rt-thread studio如何使用硬件随机数生成器?

    指导一下。 经过查询得知可以使用rt_hw_random_get()函数来获取硬件随机数,请文需要做什么配置才能使用rt_hw_random_get()函数。
    发表于 02-23 08:03

    修复辊压机轴承位磨损怎么办

    电子发烧友网站提供《修复辊压机轴承位磨损怎么办.docx》资料免费下载
    发表于 01-23 09:52 0次下载

    基于时分复用光学参量振荡器的5比特全光量子随机数发生器

    联合研究团队研制出一种基于时分复用简并点飞秒光学参量振荡器,具备高重复频率飞秒光纤激光器泵浦,通过在谐振腔中接入多通单元,能高效拓展光路,实现5比特全光量子随机数发生器,并能保持系统高度的紧凑性和稳定性。
    的头像 发表于 01-09 11:13 536次阅读
    基于时分复用光学参量振荡器的5比特全光量子<b class='flag-5'>随机数</b>发生器

    风机轴磨损怎么办

    电子发烧友网站提供《风机轴磨损怎么办.docx》资料免费下载
    发表于 01-07 11:04 0次下载