MCU真随机数发生器的使用方法
本帖最后由 smartpower 于 2019-7-6 09:13 编辑1. MCU自带真随机数发生器,可以作为防御攻击的通信加密或认证加密。 .
2. 不使用随机数的通信加密方法简介,该通信过程可以被记录下来,下次用于攻击。设AB具有相同的对称加密密钥,如DES密钥或AES密钥。
A发送加密后的“扣款10元”--------------B回复加密后的“已扣款10元”
C记录下了加密后的“扣款10元”并发送给B,B同样也会回复“已扣款10元”,C没有密钥但C通过记录回放的方式对B进行了攻击。
3. 使用随机数的通信加密方法简介,该通信过程被记录下来,但不能用于攻击。
设AB具有相同的对称加密密钥,如DES密钥或AES密钥。
A发送取随机数指令到B
B回复8个或16个字节的随机数,该随机数由真随机数发生器产生。
AB均使用内部密钥对随机数进行加密,生成会话密钥。
A发送会话密钥加密后的“扣款10元”--------------B回复会话密钥加密后的“已扣款10元”
C记录下了A的所通信数据,并依次发送给B,但由于B回复的随机数每次不相同,故生成的会话密钥不相同,所以不会执行扣款10元的指令。
4. 真随机数和伪随机数的区别:伪随机数由算法生成,每次RESET后,生成的随机序列完全相同。真随机数由硬件模块物理生成,每次RESET后生成的序列均不相同。
十年前,我就用了这种方式做加密,用在portable DVD 上面。当时采用的是,自定义的双线通信,CLK, DAT. 工控秀才 发表于 2019-7-6 09:25
十年前,我就用了这种方式做加密,用在portable DVD 上面。当时采用的是,自定义的双线通信,CLK, DAT. ...
牛人也~ 以前我是用ADC对热噪声进行转换得到随机数。 伪随机数虽然是由算法产生的,但是会和随机事件进行交叉生成,所以不可能每次都相同的
例如通过检测按键两次按下的时间差,以及从RST到按键按下的时间长短,这些都是可以做为随机数的 xzy568 发表于 2019-7-7 16:40
伪随机数虽然是由算法产生的,但是会和随机事件进行交叉生成,所以不可能每次都相同的
例如通过检测按键两 ...
作为应用,各路大神可各显神通。
当需要过认证时,只能选择硬件随机源。
硬件随机源有多种认证。
随机数认证介绍文档:
https://wenku.baidu.com/view/9708028cf80f76c66137ee06eff9aef8951e480d.html
你这是要做USB key之类的东西吧,这个只能用硬件了
其实产生的随机数也是有筛选的,只有经过筛选的才能用,而且随机数足够长,如128bit,出现重复的可能性就很低
如果要求很高,就应该在密码学家的指导下完成设计,要考虑所有的步骤有没有缺陷,并通过认证 近20年前,我写过此类程序,开始觉得很难,上手后也就那么回事。
两个不相干的过程就可以产生随机数。 这两年新出的中高端MCU基本上都带真随机数模块了 真随机数 + 硬件加密是真的强大啊 我这边目前有3个PIN的加密芯片,成本也很有优势。可提供软硬件移植
页:
[1]