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

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

3天内不再提示

高质量的随机数对于安全加密至关重要

星星科技指导员 来源:嵌入式计算设计 作者:Paul Dillien 2022-10-20 10:03 次阅读

随机数在加密中被广泛使用。它们可以构成关键安全参数(CSP)的基础,例如用于通过公共互联网进行交易的加密密钥。

通常,试图破坏加密的攻击者将专注于在随机数中查找或诱导可利用的模式,这使得比使用暴力搜索更有效地猜测密钥。攻击者可以采用许多不同的技术,例如改变电压和温度以尝试破坏噪声源的正常运行,或者使用其控制下的几乎相同的随机数发生器(RNG)的输出来帮助预测RNG在受攻击系统中的输出。

用作加密密钥的劣质随机数可能会危及使用该密钥处理的所有消息或数据的安全性。当 RNG 不提供预测电阻时,使用受危害的 RNG 创建新的加密密钥是不够的,并且在重新设定 RNG 种子之前,所有未来的消息和数据都处于危险之中。定义“低质量”充满了困难,因为证明一串数据是随机的还是不是随机的,是一项复杂而漫长的工作。幸运的是,从相反的方向看问题可以为什么是密码学上可接受的随机数提供答案。

美国国家标准与技术研究院(NIST)推荐一种适合嵌入FPGA或SoC的方法(规格SP800-90A /B /C)SP800-90A定义了确定性随机位发生器(DRBG),它是一种基于高级加密算法(AES)算法的纯数字电路。SB800-90B中考虑并定义了硬件噪声源,包括测试电路,这些电路可用于在系统中检测其输出是否不再是随机的(例如,由于篡改或故障),并进行统计测试以鉴定特定电路是否可用作硬件噪声源。SP800-90C考虑了如何在系统中组合DRBG和噪声源。将基于加密算法的DRBG与物理噪声源相结合,产生一个RNG,该RNG提供两全其美,基于硬件噪声源的预测电阻以及加密算法的保证统计特性。

RNG内核包括完成此任务的电路。它包括一个完整的AES内核,作为设计的关键部分。AES 算法的一种标准使用模式称为计数器 (CTR) 模式。在此模式下,计数器中的值使用密钥进行加密,以生成有效的随机 128 位位块。然后,通过使用随机位对数据进行XOR来加密或解密数据。计数器和 AES 单元在自动屏蔽点击率中的组合就像一个 DRBG。它产生一系列随机数,其值对于任何知道密钥的人来说都是完全可预测的,但是如果没有密钥,则很难确定。如果AES单元的密钥取自物理噪声源(播种DRBG),我们就有了SP800-90A中规定的CTR-DRBG方案的基本基础。

SP800-90A中的系统更进一步,提供不少于三组其他输入以及物理噪声(称为熵)。

在为 RNG 构造种子时,随机数输入与熵输入一起使用。Nonce确保计算出的种子不仅仅依赖于熵,并且保证在每次实例化中都会发生变化。Nonce 数据可以是简单的计数器,也可以是从时间戳派生的,但每次使用都必须不同,并防止篡改。

个性化字符串输入是实例化 RNG 时使用的另一个可选输入。这可能是每台计算机不同的序列号。这可确保 RNG 的两个副本的行为不同,并防止攻击者获取包含 RNG 的产品副本,以预测目标副本中的 RNG 的行为方式。

附加输入提供了一种机制,用于向 DRBG 包含其他熵。例如,在设计中通常很容易找到一组信号,这些信号看起来好像它们的值本质上是随机的,但很难将它们限定为SP800-90B所需的噪声源。使用额外的输入,这些位可以“搅拌到汤中”,即使它们没有好处,至少它们不会造成伤害。如果主熵源受到损害,这将提供额外的保护层。

DRBG以复杂但完全确定的方式组合了各种输入。它依赖于AES算法的安全属性,以确保攻击者无法预测或反向工程系统输出,前提是攻击者无法访问所有输入(包括AES密钥)。

系统的确定性性质对于系统中最后一个重要块(称为运行状况检查)的操作至关重要。启动时,它会将RNG与任何其他信号隔离开来,加载测试数据,并将输出与一组已知答案进行比较。运行状况检查在重置后根据请求自动启动,例如,如果系统的另一部分检测到攻击。如果运行状况检查失败(称为灾难性错误),则逻辑设计为锁定以阻止输出任何不可靠的数据。在发生灾难性错误后,需要通过重启电源或重新配置FPGA来复位系统。

除了所描述的DRBG电路之外,还需要熵源。在纯数字系统中,常见的选择是自由运行的环形振荡器,用于计时计数器。计数器的最低有效“n”位用作 n 位种子。环形振荡器的频率无法从外部准确确定,因为它会随着电源电压上的热变化和噪声而略有不同。如果环形振荡器运行相当长的时间,并且计数器相对较小(几位),则计数器值将在很大程度上是随机的。这个和许多其他物理噪声源的一个明显问题是,可能需要比物理噪声源所能提供的随机值更频繁地需要随机值。DRBG允许在从物理噪声源定期重新播种之间生成多个随机数。

RNG可能听起来很复杂(确实如此),但加密算法的强度取决于提供给它的密钥。因此,RNG是安全系统的重要组成部分。

审核编辑:郭婷

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

    关注

    1629

    文章

    21735

    浏览量

    603175
  • soc
    soc
    +关注

    关注

    38

    文章

    4165

    浏览量

    218218
收藏 人收藏

    评论

    相关推荐

    加密芯片的一种破解方法和对应加密方案改进设计

    使用芯片ID和随机数,结合逻辑加密芯片的加密方案,如果设计不合理,貌似安全可靠的加密方案,在实际使用是可能会被轻易破解。本文通过实例详细分析
    发表于 12-23 16:36 1次下载

    浅谈加密芯片的一种破解方法和对应加密方案改进设计

    目前市面上很多防抄板加密方案都是基于加密芯片的安全存储和密文通讯来实现对主MCU方案的保护。比如把主MCU用到的一些参数、配置信息等存储在加密芯片里面,然后通过芯片的ID、
    发表于 12-20 15:31

    浅谈加密芯片的一种破解方法和加密方案改进设计

    目前市面上很多防抄板加密方案都是基于加密芯片的安全存储和密文通讯来实现对主MCU方案的保护。比如把主MCU用到的一些参数、配置信息等存储在加密芯片里面,然后通过芯片的ID、
    发表于 12-20 15:10

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

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

    加密算法的选择对于加密安全有多重要

    加密算法的选择对于加密安全至关重要,因为它直接影响到数据保护的有效性和可靠性。以下是几个关键点来说明加密
    的头像 发表于 12-17 15:59 79次阅读

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

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

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

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

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

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

    蓝牙AES+RNG如何保障物联网信息安全

    功能可通过软件实现,也可以通过硬件实现。主要优势体现在:在保障通信安全方面,随机数生成器能够输出非重复且随机变化的数值。这些数值是构建多种安全机制的基础,例如鉴权与
    发表于 11-08 15:38

    雅特力AT32 MCU的随机数生成

    概述产品和生态系统安全性的需求比以往任何时候都更加重要。真随机数是所有安全系统的核心,其质量会影响设计的
    的头像 发表于 08-30 12:26 558次阅读
    雅特力AT32 MCU的<b class='flag-5'>随机数</b>生成

    高质量激光光束光学系统中的空间滤波

    和精度至关重要。 VirtualLab Fusion独特的模拟技术使用户能够对滤波进行详细建模,从而评估对光学系统性能和特性的影响。 用于光束切趾的圆形锯齿光阑 光束切趾在高能激光器和光束传输系统
    发表于 08-14 11:54

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

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

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

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

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

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

    稳中创新•产业升级•高质量发展 | 联诚发高质量发展工作推进会议召开

    2月21日下午,联诚发LCF以“稳中创新•产业升级•高质量发展”为主题的企业高质量发展工作推进大会在联诚发深圳总部隆重召开。擂起奋进催征的战鼓,争分夺秒抢抓宝贵春光,明确企业重点目标任务,全力以赴
    的头像 发表于 02-22 11:33 469次阅读
    稳中创新•产业升级•<b class='flag-5'>高质量</b>发展 | 联诚发<b class='flag-5'>高质量</b>发展工作推进会议召开