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

但是,后来英特尔和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都可以被认为是高质量的,尽管是开源的。

kbmMW安全第#3 - 基于硬件的随机数#2的更多相关文章

  1. kbmMW基于硬件生成随机数

    按作者的说法,Delphi提供的生成随机数不是真正随机的,因为他是根据种子计算的,即种子+算法生成的随机数,如果被人知道原始种子值和算法的调用次数,则可以重现随机数,因此在安全领域,这是不安全的.同时 ...

  2. 基于numpy的随机数构造

    class numpy.random.RandomState(seed=None) RandomState 是一个基于Mersenne Twister算法的伪随机数生成类 RandomState 包含 ...

  3. 基于硬件的消息队列中间件 Solace 简介之二

    前言...... 前面简单介绍了Solace来自于哪家公司, 主要能做哪些事情. 本篇主要进一步介绍Solace作为消息传递的中间件如何工作的. 传统意义上来讲, 每当我们谈到消息中间件时, 首先想到 ...

  4. HMS Core积极探索基于硬件耳返的功能,帮助唱吧整体唱歌延迟率降低60%

    唱吧的使命是让唱歌更简单.让生活更美好,其布局的K歌业务专注于让曲库更全.音质更好,开创了同框合唱.弹唱等有意思的游戏类K歌玩法.为了让用户拥有更加沉浸的娱乐体验,唱吧与HMS Core积极探索基于硬 ...

  5. [Python]基于权重的随机数2种实现方式

    问题: 比如我们要选从不同省份选取一个号码.每一个省份的权重不一样,直接选随机数肯定是不行的了,就须要一个模型来解决问题. 简化成以下的问题: 字典的key代表是省份,value代表的是权重,我们如今 ...

  6. Minimit Anima – 硬件加速的 CSS3 动画插件

    Minimit Anima 是一个实现 CSS3 Transforms 和 Transitions 动画的 jQuery 插件.基于硬件加速的 CSS3 动画执行更快,而且它有一个类似于 jQuery ...

  7. SQL Server数据库性能优化(三)之 硬件瓶颈分析

    参考文献 http://isky000.com/database/mysql-performance-tuning-hardware 由于对DBA 工作了解不多    所以只从网上简单的看了下  硬件 ...

  8. 基于KVM的虚拟化研究及应用

    引言 虚拟化技术是IBM在20世纪70年代首先应用在IBM/370大型机上,这项技术极大地提高了大型机资源利用率.随着软硬件技术的迅速发展,这项属于大型机及专利的技术开始在普通X86计算机上应用并成为 ...

  9. 在Android中访问内置SE和基于SE的卡模拟(一)

    2013-10-10 编写 前言 在“十问Android NFC手机上的卡模拟”文中仅仅简单的介绍了一下相关的概念,如果需要了解基于SE的卡模拟的更多细节,也就是,究竟在Android的NFC手机上, ...

随机推荐

  1. SWUST OJ(954)

    单链表的链接 #include <stdio.h> #include <stdlib.h> typedef struct LinkNode //单链表节点结构的定义 { cha ...

  2. Web 自动化测试框架 sweetest 介绍

    项目开源: https://github.com/tonglei100/sweetest 文章转载:https://segmentfault.com/a/1190000011612061 介绍 swe ...

  3. 解决Requests中文乱码【有用】,读取htm文件 读取txt文件报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0

    打开这个网址https://blog.csdn.net/chaowanghn/article/details/54889835 python在open读取txt文件时,出现UnicodeDecodeE ...

  4. 笔记react router 4(四)

    看完Router的变化,接着来说<Switch>组件. 在3.X中,你可以指定很多子路由,但是只有第一个匹配的路径才会被渲染. 就像这样, <Route path='/' compo ...

  5. vue methods computed watch区别

    一.methods和computed computed是计算属性,methods是方法. html: <p>Reversed message: "{{ reversedMessa ...

  6. [contest 782] 9.7

    [contest 782] 9.7 - XJOI 个人觉得温暖题啊,,,可是卡毛空间呀!!! T1 传送

  7. 将16进制unsigned char数组转换成整数

    /** * 将unsigned char数组转换成long long数值 * {0x00 0x00 0x20 0x00}转换之后得到8192 * * @param str 数组 * @param le ...

  8. js 鼠标滚动 禁用 启用

    function disabledMouseWheel() { var div = document.getElementById('divid'); if (div.addEventListener ...

  9. China’s movie heroes 《红海行动》展现中国英雄本色

    Recent years have seen a trend for big military movies. Whether it was last year’s British hit Dunki ...

  10. Receiver Operating Characteristics (ROC)

    The Receiver Operating Characteristics (ROC) of a classifier shows its performance as a trade off be ...