首页 » 智能 » 单片机还可以这样获得加密随机数?_随机数_单片机

单片机还可以这样获得加密随机数?_随机数_单片机

乖囧猫 2025-01-24 04:37:34 0

扫一扫用手机浏览

文章目录 [+]

随机数,顾名思义,便是随机天生的一个数据。

随机数

单片机还可以这样获得加密随机数?_随机数_单片机 单片机还可以这样获得加密随机数?_随机数_单片机 智能

举个例子,我们在一堆红豆中,随手抓一把红豆,那么手中这把红豆的粒数,便是一个随机数。

单片机还可以这样获得加密随机数?_随机数_单片机 单片机还可以这样获得加密随机数?_随机数_单片机 智能
(图片来自网络侵删)

由于我们无法详细预判抓的这一把红豆详细多少粒,这个数据是随机的,不可预算的,故这种办法产生的数据,就叫随机数。

(2)随机数的用法

随机数,可用于做一些须要随机的事宜,如抽奖,掷骰子等。

同时,随机数也多用于大略的加密。
通过随机天生的一个随机数,将一段须要加密的数据,进行一定的数据公式运算,然后发送出去,吸收方只要知道这段吸收到的数据中,哪一段是密钥随机数,哪一段是加密密文,就可以通过协定的公式反向运算,进行解密,就可以得到密文数据。

数据大略加密

二、天生随机数的方法

(1)通过单片机计数器的办法

通过单片机计数器的办法声明一个16位的变量CNT,并将其放置于主循环while(1)中,让其自加,如

当单片机运行到某一须要随机数的时候,如按键触发某个功能,须要获取随机数,来作为加密的随机码时,这时正在自增变革的CNT变量,提取其尾数(CNT%10),就可以作为一个伪随机数。

在这里,可能会有一个疑问了,为何这个值可以作为随机数利用呢?缘故原由如下:

1)裸机跑单片机属于单线程运行办法,在主循环while(1){}中,循环一次所需韶光,是根据每次循环所实行的内容决定的,具有不愿定性;

2)当我们按下按键时,由于按下的韶光点是不愿定的,以是CNT变革了多少,也具有不愿定性;

3)由于单片机主频很高,在我们触发时,CNT已经递增了数千个值了,故截取数据时,CNT的尾数,也是不愿定性的。

因此,可以用该办法,来天生一个我们想要的随机数。

(2)通过ADC的办法

利用ADC的办法,采集芯片内部温度传感器的办法。
来得到一个伪随机数。

我们自行测试能知道,单片机在通过ADC采集这个温度波形仿照旗子暗记时,该数值的尾数,变革是很随机的。
而温度传感器,受到不同时候温度的影响时,该值的尾数变革也是不愿定的。

因此。
我们可以通过该办法,来天生一个伪随机数。

ADC采集温度

(3)通过单片机自带的硬件随机数发生器的办法

有些单片机,集成了专有的硬件随机数发生器,通过获取该发生器的随机数值,即可得到一个空想的随机数。

如STM32F4 自带了硬件随机数发生器(RNG),RNG 处理器是一个以连续仿照噪声为根本的随机数发生器,在主机读数时供应一个32 位的随机数。

RNG发生器图

相关文章