• kbmMW安全第#3 基于硬件的随机数#2


    在之前的基于硬件的随机数博文中,我介绍了如何使用基于外部硬件的随机数生成器,来生成高质量的随机数。

    但是,后来英特尔和AMD的CPU也包含随机值生成器。从2015年6月开始,来自Ivy Bridge的Intel CPU和AMD CPU包含了伪随机数生成器指令RDRAND根据视图,虽然可能比其他伪随机数生成器更好,但是它仍然是伪的。从Intel Broadwell CPU和AMD Zen CPU还包括一个名为RDSEED的TRNG(真随机数发生器)操作码。

    kbmMW的下一个版本扩展了它的随机数生成器框架,现在还包括这4个:

    • TkbmMWCPURand32
    • TkbmMWCPURand64
    • TkbmMWCPUTRNG32
    • TkbmMWCPUTRNG64

    TkbmMWCPURandxx使用RDRAND伪随机数生成器指令,而TkbmMWCPUTRNGxx使用RDSEED真随机数生成器指令。

    在32位和64位应用程序中,所有4个都支持Intel和AMD CPU。

    实例化随机生成器时,它会自动检测CPU是否实际支持正确的指令。如果不是,则抛出异常。

    您应该使用内置的CPU还是外部硬件TRNG?这取决于您使用的CPU的版本,如果您相信英特尔/ AMD提供的随机数生成器中没有后门与您对外部硬件TRNG相同的信任。

    后门意味着所谓的TRNG可能像TRNG一样,但实际上它可以被欺骗/触发成非随机行为,这会影响加密和密码安全性。

    基本上我不能回答使用哪个。我确实相信一个开源解决方案而不是一个封闭源解决方案,因为什么呢?因为开源的可以检查他的实现细节,当然了,前提是你得有这方面的知识,另外,并​​非所有第三方TRNG都可以被认为是高质量的,尽管是开源的。

  • 相关阅读:
    Deepin 安装成功后开机进入系统黑屏
    Widows 关闭 Defender的方法
    yapi
    spring boot集成minio,最新版
    Minio第一课:走进 Minio
    Docker与IPtables
    解决:required a single bean, but 2 were found:
    Python之Beautiful Soup 4使用实例
    mysql -5.7.31 修改root密码
    mybatis/tk mybatis下实体字段是关键字/保留字,执行报错
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/10075007.html
Copyright © 2020-2023  润新知