为 SoC 提供更高安全性的真随机数生成器

Synopsys 高级产品营销经理 Dana Neustadter

简介

连接设备的激增以及攻击、漏洞和恶意软件的不断演变,使得对产品和生态系统安全性的需求比以往任何时候都更加重要。真随机数是所有安全系统的核心,其质量会影响设计的安全性。许多加密操作需要随机数源,例如创建加密密钥以及计数器和协议参数的初始值。较弱或可预测的随机数则为攻击打开了大门,而这些攻击可能危及密钥、拦截数据并最终破解设备及其通信。

设计真随机数生成器 (TRNG),面对不同工艺、温度、电压和频率变化提供始终如一的高质量熵,是非常复杂的工作。为了确保最高质量,国际标准机构制定了标准,以可验证和经过严谨统计的方式证实 TRNG 的真随机性。

本文重点介绍了 TRNG 的重要性,描述了其主要组件和特性,列出了它们需要遵守的规范,并针对 Synopsys DesignWare TRNG 安全 IP 作了深度介绍。

TRNG 是什么及有何重要作用?

TRNG 是基于一种不可预测的物理现象(称为熵源)的功能或设备,用于生成非确定性数据(例如,一串连续的数字),来为安全算法提供种子 (seed)。

联网设备与日常生活密不可分,我们希望它们能够正常运行,同时也能保护企业和个人信息。TRNG 用于创建和保护机密和其他敏感信息,因而是保护这些设备的基础。它们隶属“信任链”,需要从 SoC 开始建立,转移到应用层并与云通信。信任链的强度取决于其最薄弱的环节。

可预测的随机数生成器 (RNG) 为许多可能入侵设备和危害数据的攻击打开了大门。有效的随机数必须是不可预测、在统计上独立(与任何先前生成的随机数无关)、均匀分布(任何数字生成的概率相等)且受保护(图 1)。

 

图 1:真随机数是保障安全的关键

真随机数用于游戏、博彩和密码学等应用,其随机性至关重要。例如,许多加密算法和安全协议依赖于密钥,其强度取决于攻击者需要确定多少位数的密钥才能破坏系统。如果密钥泄露,整个系统的安全强度就会受到影响。 

各种安全方案都需要真随机数:

  • 各种算法(对称、非对称、MAC)和协议(SSL/TLS、SSH、WiFi、LTE、IPsec 等)的密钥生成
  • 芯片制造(生成设备密钥和平台密钥)
  • 初始值(用于加密和 MAC 算法、TCP 数据包值等)
  • 各种加密函数的随机数生成和初始计数器值
  • 用于协议认证交换的激励
  • 防御物理攻击的侧信道防御解决方案采用的随机化输入

TRNG 的标准

一些标准和认证协会正在推动制定 TRNG 的规范和验证方法,以确定真随机解决方案的设计和认证指南。 

美国国家标准与技术研究院 (NIST) 机构制定了一套 NIST SP 800-90A/B/c 标准(“c”仍处于草案阶段),旨在界定 RNG 必须满足哪些统计分析标准,才能被视为足够随机的加密应用。德国标准机构 BundesamtfürSicherheitin der Informationstechnik (BSI) 长期以来一直有一套单独的 RNG 标准 (AIS 20/31)。 

这两个标准都用于筛查出看似随机的生成器,这些生成器看似有效,但可能存在破坏系统安全性的统计缺陷。然而,虽然这些标准提供了一些高级架构指南,但它们没有具体描述如何创建 TRNG;只是介绍了如何验证 TRNG 是否有效。实现细节则要依靠设计师的创造力,因而可以有许多备选方法。然而无论如何,TRNG 都必须符合前面提到的四个标准:它们必须是不可预测、均匀、独立且不可发现的。 

 

图 2:RNG 标准——NIST & BSI

除了 NIST SP 800-90A/B/c 和 BSI AIS 20-31 符合性测试之外,NIST 还发布了一个随机和伪随机数生成器的统计测试套件用于加密应用,称为 NIST SP800-20。然而,这些测试不足以检测随机数生成器中的一些弱点,因此业内还设计了 Diehard 和 Dieharder 套件等其他测试,旨在增强 TRNG 的随机化测试。 

诸如美国联邦信息处理标准 (FIPS) 140-2 和最近发布的 140-3,通用准则 (CC) 和中国国家商业密码管理局 (OSCCA) 等认证,旨在确保最终产品完全符合规范中规定的要求。专业实验室则会审查 TRNG 架构,评估随机性生成属性,测试并验证产品是否确实符合要求。

TRNG 解决方案

真随机很难实现。正确构造的 TRNG 需要从某种形式的随机过程(如晶体管中流动的电流产生的噪声,或放射性衰变事件间隔的时间)收集熵,然后调节熵信号以消除偏差并白化产生的输出序列频谱。必须根据工作温度、老化、电噪和电镦敏感性、电压变化和工作频率范围等因素来控制该过程。假如不控制这些因素,TRNG 电路可能会遭到试图影响其操作的外部人员修改。

一个 RNG 的架构范例就是为伪随机数生成器 (PRNG) 提供未知的随机种子,然后使用 PRNG 一段时间或产生一定数量的随机数据。此后 PRNG 的种子将被更新以被继续使用一段时间,依此类推。PRNG 的种子应该来自“熵源”的秘密随机输入,例如一个优质 TRNG。  

Synopsys 开发了符合标准且可通过认证的 TRNG,适用于任何数字器件,并且可在任何 ASIC 和大多数 FPGA 工艺技术中实现高度可移植性。TRNG 已经广泛部署到 5nm 工艺中,可接受客户配置,并支持各种富有吸引力的功能,包括广阔的系统时钟动态范围、冗余和可选数量的内部种子生成器、自动和手动更新种子、侧信道防御的数据流,以及各种接口(适用于 HDCP 2.3 内容保护模块):

  • DesignWare® 真随机数生成器芯核被归类为非确定性随机数生成器 (NRBG)。芯核包含熵源和白化电路,可产生均匀分布的随机比特序列。根据具体应用,可以直接使用 DesignWare TRNG 的输出或对 NIST SP 800-90A 批准的确定性随机数生成器 (DRBG) 提供种子。DesignWare TRNG 生成的随机数据旨在统计上等同于均匀分布的噪声。电路包含一个种子生成器,用于为 PRNG 提供非确定的随机种子。

 

图 3:DesignWare TRNG 框图

  • 适用于 NIST SP 800-90c 的 DesignWare 真随机数生成器芯核完全符合 NIST SPA800-90A/B/c 和 BSI AIS 20/31 规范。它生成在统计上等同于均匀分布的数据流。该芯核包含一个 NIST SP800-90B 认证的调节电路,合规的噪声源和经过 NIST SP800-90A 认证的 DRBG。该芯核支持高性能操作(500 MHz 时为 3.2 Gbps),可生成在统计上等同于均匀分布的数据流的随机数。在硅片中实现时,DesignWare TRNG 可以满足最高的企业和政府标准,并且可以支持 FIPS 140-2/140-3、Common Criteria 和 OSCCA 等最终产品认证。 

芯核可以选择包含多达 8 个虚拟 TRNG,从而可以在多个用户(例如在多核处理器系统中)之间安全地访问随机数。IP 还支持自动噪声收集,以在后台生成新熵并将其存储用于下一个种子生成,从而消除下一次更新种子所需的等待时间。

 

图 4:DesignWare TRNG NIST SP800-90c 框图

 

结语

需要保护联网设备及其通信免受不断变化的威胁和攻击,以保护生态系统和有价值的个人和企业信息。高质量的 TRNG 是在系统中建立信任链所需的基础技术,因为许多用于加密/认证和安全协议的加密算法依靠真随机数生成密钥、激励、初始值和nonce值。系统和应用中的总体安全强度取决于 TRNG 提供的熵源质量。攻击者可以利用随机数生成器中的缺陷来破坏算法原本安全的设备。Synopsys 开发了符合 NIST 和 AIS 标准的高效 TRNG,并可通过 FIPS 140-2/140-3、Common Criteria (CC) 和中国 OSCCA 等最终产品认证。

除了 TRNG 之外,Synopsys 还提供一系列高度集成的安全 IP 解决方案,这些解决方案使用一套通用的基于标准的构建模块和安全概念,为移动设备、汽车、数字家庭、IoT 和云计算市场中的各类产品实现最高效的芯片设计和最高级别的安全性。

Synopsys 的高度可配置性安全 IP 解决方案包括可集成到片上系统 (SoC) 的信任根内容保护加密,以及安全协议加速器。这些集成解决方案实现了许多安全标准的核心内容,支持机密性、数据完整性、用户/系统认证、不可否认性以及授权。综合来看,Synopsys 的安全 IP 解决方案有助于防止连接的设备遭受各种威胁,例如盗窃、篡改、旁路通道攻击、恶意软件和数据泄露等。

 

如需更多信息:DesignWare 真随机数生成器