1. 项目概述与核心价值在硬件安全领域生成真正不可预测的随机数是构建可信赖加密系统和物理不可克隆功能PUF的基石。传统的伪随机数生成器PRNG依赖算法和种子其“随机性”本质上是确定性的一旦算法或种子被破解整个安全体系便岌岌可危。因此基于物理过程固有随机性的真随机数生成器TRNG成为了高安全等级应用的刚需。近年来利用新兴存储器件的随机特性构建TRNG成为一个热门方向其中自旋转移矩磁随机存储器STT-MRAM因其独特的物理机制和优异的器件特性展现出了巨大的潜力。我最近深入研读并实践了IEEE EDL上的一篇经典论文《Random Number Generation by Differential Read of Stochastic Switching in Spin-Transfer Torque Memory》。这项技术巧妙地利用了STT-MRAM写操作中切换时间的随机性通过一种称为“差分读取”的电路方法直接提取出高质量的随机比特流。最吸引人的是该方法无需复杂的概率校准电路或后处理算法如Von Neumann校正器在保证高随机性的同时极大地简化了系统设计和功耗。对于从事物联网终端安全芯片、硬件信任根Root of Trust设计或是对新型计算范式如随机计算、神经形态计算中随机源感兴趣的朋友来说这无疑是一个兼具创新性和实用性的优秀方案。本文将带你彻底拆解这项技术的原理、实现细节和工程考量。我会从STT-MRAM的物理基础讲起详细解释“随机切换时间”这一熵源的产生机制然后重点剖析差分读取电路是如何将这种物理随机性转化为数字“0”和“1”的。我们不仅会复现论文中的关键实验数据和NIST测试结果还会深入探讨在实际芯片设计中可能遇到的挑战例如工艺偏差的影响、读取速度与随机性的权衡以及如何优化脉冲形状矩形波vs三角波以获得更宽的工作窗口。我的目标是让你读完本文后不仅能理解这项技术的精髓更能评估其在你自身项目中的应用可行性。2. STT-MRAM物理基础与随机熵源解析要理解基于STT-MRAM的TRNG首先必须吃透其核心——磁隧道结MTJ的随机切换行为。这不仅仅是器件特性更是整个随机数生成器的“心脏”。2.1 磁隧道结与双稳态系统STT-MRAM的存储单元核心是一个磁隧道结。简单来说它像是一个三明治结构两层铁磁材料钴铁硼被一层极薄的绝缘势垒层氧化镁隔开。其中一层磁矩方向被“钉扎”固定称为参考层另一层的磁矩方向可以自由翻转称为自由层。当自由层与参考层的磁矩方向平行时电子更容易隧穿过绝缘层器件呈现低电阻态当两者反平行时隧穿概率大大降低器件呈现高电阻态。这两个稳定的电阻态分别代表数字“0”和“1”。关键点在于自由层磁矩的翻转不是一个确定性的“开关”过程。你可以把它想象成一个处在碗底的小球代表一个磁化方向要翻到另一个碗底代表相反的磁化方向需要越过中间的一道“能量山脊”。这道山脊的高度就是能量势垒。在绝对零度下如果没有足够能量小球永远无法自己翻过去。但在室温下环境会提供随机的热涨落热能相当于不停地给这个小球施加随机的、微小的推力。当我们要写入数据时会施加一个写电流或电压这个电流产生的自旋转移矩STT效应相当于在能量势垒的一侧“挖低”了山脊降低了翻转难度。但即便如此具体在哪个时刻热涨落恰好能帮助磁矩完成最终的翻转是完全随机的。2.2 随机切换时间的物理模型这种随机性直接体现在“切换时间”上。当我们施加一个大于临界值的写电压脉冲时MTJ从一种电阻态切换到另一种电阻态所需的时间不是一个固定值而是一个服从指数分布的随机变量。论文中给出了一个核心公式来描述矩形脉冲下的平均切换时间t_set τ_0 * exp(Δ * (1 - V/V_0))。这里Δ是热稳定因子与能量势垒成正比V是施加的电压V_0是一个特征电压。这个公式清晰地揭示了几个工程上的关键事实指数依赖切换时间对电压极其敏感。电压V轻微增加t_set会呈指数级下降。这意味着在TRNG设计中写电压的稳定性至关重要微小的波动会导致切换时间统计特性的巨大变化。热涨落主导公式中的τ_0是一个尝试时间常数通常在皮秒到纳秒量级。整个切换过程是热辅助的STT翻转其随机性根源就是热涨落。这保证了熵源的物理不可预测性。分布特性由于热涨落的泊松特性在固定电压下大量重复写入操作得到的切换时间t_set会呈现一个很宽的分布。有些切换发生得早短时间有些发生得晚长时间。这个“早”和“晚”的差异就是我们要提取的随机比特信息。注意这里讨论的是“切换时间”的随机性。另一种常见的TRNG方案是利用“切换电压”的随机性即固定脉冲宽度看器件在哪个电压值下发生翻转。两者物理本质相同但电路实现方式和特性有所不同。本文的差分读取方案对“切换时间”的随机性利用得更为巧妙。2.3 作为熵源的优越性为什么选择STT-MRAM的随机切换作为熵源对比其他物理熵源如电阻式随机存取存储器RRAM的随机 telegraph 噪声、环形振荡器的相位抖动等它具有几个独特优势CMOS工艺兼容性好STT-MRAM是当前最接近大规模量产的新型存储器之一后端工艺与CMOS集成度高易于在标准芯片中实现嵌入式TRNG模块。速度快、功耗低STT-MRAM的写入速度可达纳秒甚至亚纳秒级这意味着潜在的高随机数生成吞吐率。且其操作功耗相对较低。高耐久性相比一些基于阻变机制的器件STT-MRAM的读写耐久性极高通常超过10^15次非常适合需要持续不断生成随机数的应用场景。物理特性稳定其随机性源于基本的磁学和热力学原理受环境干扰如均匀外磁场、温度的影响相对较小尤其是采用差分技术后抗干扰能力更强。理解了这个物理基础我们就能明白后续所有的电路设计其根本目的就是设计一个“高精度、高灵敏度的计时器”来测量并比较这个随机的t_set并将比较结果转化为比特流。3. 差分读取技术原理与电路实现传统的TRNG方案面临一个核心难题如何保证输出“0”和“1”的概率各为50%如果直接测量单次切换时间并与一个固定阈值比较由于工艺偏差、电压温度波动这个固定阈值很难精确设定导致输出有偏。论文提出的“差分读取”方法以一种极其巧妙的方式绕开了这个难题。3.1 核心思想自身比较消除偏差差分读取的核心思想不是去测量一个“绝对”的切换时间而是去比较同一个MTJ器件在两个连续写周期中的“相对”切换速度。具体流程如下周期n-1对MTJ施加一个写脉冲例如从高阻态AP切换到低阻态P并测量整个脉冲期间流经器件的总电荷量Q_{n-1}。这个电荷量等于电流对时间的积分。如果切换发生得早低电阻态维持时间长平均电流大总电荷Q就反之切换发生得晚Q就小。周期n紧接着对同一个MTJ施加一个复位脉冲从P回到AP再施加下一个相同的写脉冲。同样测量这个写周期内的总电荷量Q_n。差分与判决计算两个连续周期的电荷量之差ΔQ Q_n - Q_{n-1}。如果ΔQ 0则判决输出为“1”如果ΔQ 0则判决输出为“0”。为什么这样能保证无偏因为Q_{n-1}和Q_n来自同一个物理器件、同一种操作它们受到的所有共同的系统性偏差如器件电阻的绝对值、写驱动电流的绝对值、环境温度对基线电流的影响在作差时会被完美抵消。剩下的差异纯粹由两个周期中切换时间的随机波动决定。由于热涨落是时间无关的前一个周期切换快还是慢对后一个周期完全没有影响因此Q_{n-1}和Q_n是独立同分布的随机变量。它们的差值ΔQ的分布将以0为中心对称从而自然保证了输出“0”和“1”的概率均衡。3.2 电路实现框图与工作波形一个典型的差分读取TRNG电路框图包含以下几个关键模块脉冲发生器产生精确可控的写脉冲矩形波或三角波和复位脉冲。脉冲宽度t_p是一个关键设计参数它需要与器件的典型切换时间匹配。MTJ器件与选择晶体管标准的1T1R STT-MRAM单元。晶体管作为选通开关。积分器这是电路的核心。通常由一个运算放大器和一个积分电容C_int构成。流经MTJ的电流I_MTJ被转换为积分电容上的电压V_int (1/C_int) * ∫ I_MTJ dt。这个电压与电荷量Q成正比。采样保持与差分电路在每个写周期结束时采样保持电路捕获当前积分器的输出电压代表Q_n。然后差分放大器或数字域的减法器计算当前采样值与前一个周期采样值的差值。比较器与锁存器一个过零比较器判断差分信号的极性正或负并锁存输出随机比特。其工作时序波形可以概括为一个完整的随机比特生成周期包含“复位-写入测量Qn-1-复位-写入测量Qn-差分判决”几个阶段。在第二个写入周期结束后即可输出一个随机比特并开始下一个比特的生成循环。3.3 脉冲形状的选择矩形波 vs 三角波论文中探索了两种写脉冲形状矩形波和三角波。这是一个非常重要的工程折中点。矩形脉冲优点电路实现简单脉冲发生器设计直接。缺点对电压幅值V极其敏感。如前文公式所示切换时间t_set随电压指数变化。因此为了获得良好的随机性V必须被精确控制在一个很窄的“甜蜜区”内。从论文的图5可以看出矩形脉冲仅在Varound 0.6V附近能通过所有NIST测试电压偏高或偏低都会导致测试失败。这给电源管理电路带来了很大压力。三角斜坡脉冲优点对电压幅值的鲁棒性极强。论文中的公式推导和实验数据都表明在三角脉冲下切换电压V_set与最大电压V_A呈对数关系V_set ≈ V_0 * ln(t_0*V_A / (V_0*t_p))。对数关系的敏感性远低于指数关系。因此如图5所示三角脉冲在很宽的V范围内例如0.4V到0.8V以上都能保持高随机性。这大大放宽了对电源电压精度的要求提高了系统的可靠性和良率。缺点生成线性度良好的三角波需要更复杂的电路如数模转换器DAC或充电泵电路会带来一定的面积和功耗开销。实操心得在早期的原型验证中可以从矩形脉冲入手快速验证电路逻辑和差分读取的基本功能。但在面向产品设计时强烈建议采用三角脉冲方案。它所增加的电路复杂度远小于为矩形脉冲设计一个超高精度、超稳定电压源所带来的挑战和风险。三角脉冲方案带来的设计余量和电压容差对于大规模量产至关重要。4. 系统设计与关键参数考量要将一个原理性的TRNG转化为一个可靠、高效的IP模块需要从系统层面进行一系列精心设计。这里分享几个我在仿真和实践中总结的关键考量点。4.1 积分器电容C_int的选取积分电容的值需要仔细计算它直接影响输出信号摆幅和系统速度。信号幅度电荷量Q ∫ I dt。I是MTJ的电流在切换前后差异很大。假设写脉冲幅度为V_pulseMTJ低阻态为R_L高阻态为R_H脉冲宽度为t_p。那么最大可能的电荷差发生在一次切换极早、另一次切换极晚的极端情况。粗略估算最大差分电荷ΔQ_max ≈ (V_pulse / R_L - V_pulse / R_H) * t_p。电容值计算积分器输出电压V_out Q / C_int。为了被后续比较器可靠分辨V_out需要大于比较器的输入失调电压和噪声。假设比较器灵敏度为V_sense则要求ΔQ_max / C_int V_sense。因此C_int ΔQ_max / V_sense。速度与噪声权衡C_int越小同样的电荷产生的电压信号越大对比较器要求越低但电容本身的热噪声kT/C也会更大。C_int越大噪声越小但信号幅度也小需要更高增益的前置放大器会增加功耗和设计复杂度。通常需要在仿真中迭代找到一个平衡点。对于典型的STT-MRAM参数R_L2kΩ,R_H4kΩ,V_pulse0.6V,t_p10nsΔQ_max在皮库仑量级。若V_sense10mV则C_int大约在几十到几百飞法量级。4.2 脉冲宽度t_p与吞吐率优化脉冲宽度t_p的选择与器件的开关特性紧密相关。理论依据t_p应略大于器件的平均切换时间t_set。如果t_p太短大部分脉冲结束时切换还未发生导致Q的取值全部集中在低值区域随机性熵值降低。如果t_p太长虽然切换都能完成但浪费了时间降低了随机数生成吞吐率。吞吐率计算生成一个随机比特需要两个写周期和一个复位周期。假设每个脉冲宽度为t_p复位脉冲宽度也为t_p则生成一个比特的最短时间约为3 * t_p。因此最大理论吞吐率Throughput_max ≈ 1 / (3 * t_p)。若t_p10ns则理论吞吐率可达33 MHz。这已经远高于许多基于振荡器采样的TRNG。实际限制实际吞吐率还会受到积分器建立时间、采样保持时间、比较器延迟以及数字控制逻辑开销的影响。电路的实际最高工作频率需要根据后端布局布线后的时序分析来确定。4.3 工艺、电压、温度PVT变化的影响分析一个健壮的TRNG必须能在不同的工艺角、电压波动和温度变化下正常工作。工艺偏差MTJ的R_L、R_H、开关临界电流I_c0等参数存在晶圆内和晶圆间的偏差。差分读取技术的最大优势就在于只要同一个芯片上的同一个MTJ单元在两个连续周期内的特性保持一致这些绝对值的偏差在作差时就会被抵消。这是它相比需要匹配两个不同器件的差分方案的核心优势。电压波动电源电压VDD的波动会影响写脉冲的幅度V_pulse。如前所述三角脉冲方案对此有很强的鲁棒性。但对于矩形脉冲必须通过片上稳压器LDO带隙基准源来提供一个极其稳定的写电压。温度变化温度会影响MTJ的热稳定因子Δ和隧穿磁阻比。温度升高热涨落加剧平均切换时间变短。同样由于是差分比较只要温度在两个连续周期内变化不大通常满足因为周期极短其影响也会被大幅抑制。但对于极端温度范围的应用可能需要考虑在电路中对积分器的增益进行微调以补偿电流幅度的整体漂移。我的经验是在电路设计阶段必须进行全面的蒙特卡洛仿真和PVT仿真。重点观察在不同工艺角、电压和温度下差分信号ΔQ的分布是否仍然保持以零为中心的良好对称性以及其标准差是否足够大以确保比较器能可靠判决。仿真中应注入MTJ参数的统计分布模型以获得更真实的结果。5. 随机性测试与NIST SP-800-22套件详解设计出一个TRNG电路只是第一步证明其产生的比特流是“真随机”的需要通过严格的统计测试。行业黄金标准是美国国家标准与技术研究院NIST发布的SP-800-22测试套件。论文中声称其方案无需后处理即可通过全部测试这是其核心亮点之一。我们来深入理解这些测试意味着什么以及在实际中如何操作。5.1 NIST测试套件概览与核心思想NIST SP-800-22包含15项统计测试每一项都从不同角度检验一个二进制序列是否具有随机序列应有的统计特性。它们的目标是发现序列中可能存在的非随机模式、相关性或偏差。常见的测试包括频率检验检验序列中“0”和“1”的比例是否接近1:1。块内频率检验将序列分成多个块检验每个块内“0”和“1”的比例。游程检验检验连续相同比特游程的长度和数量是否符合随机序列的预期。非重叠模块匹配检验检验序列中是否出现了不该频繁出现的特定比特模式。通用统计检验检验序列的压缩能力过于可压缩的序列是非随机的。测试逻辑每个测试会计算出一个P-value值。如果P-value 0.01则认为序列在该测试项上是随机的。通常需要对一个很长的序列如1百万比特进行测试并将其分割成多个子序列计算通过每个测试的子序列比例。5.2 论文结果解读与三角脉冲的优势论文中的表I和图5是评估其TRNG性能的关键。表I数据展示了在不同电压下使用矩形和三角脉冲生成的比特流通过各项NIST测试的详细结果。“PASS”的条件是P-value 0.0001且通过测试的子序列比例达到要求。可以看到对于矩形脉冲在0.5V和0.7V时部分测试失败如“RandomExcursions”仅在0.6V左右的一个狭窄窗口内全部通过。而对于三角脉冲在0.4V, 0.6V, 0.8V下全部测试通过。图5的启示这张图直观地展示了非重叠模板测试的通过率。三角脉冲的通过率在高电压范围内保持平坦且接近100%而矩形脉冲则呈现出一个尖锐的峰值。这完美印证了前文的理论分析三角脉冲的电压鲁棒性远优于矩形脉冲。实操要点当你设计自己的TRNG并准备进行NIST测试时有几点需要注意样本量要足够大NIST建议测试至少1000个长度为1,000,000比特的序列。对于芯片初样生成如此大量的数据需要时间。通常可以先用软件或FPGA原型生成数据做前期验证。关注“Proportion”和“P-value”一个健康的TRNG不仅总体P-value要大于0.01每个子序列的通过比例也要在置信区间内。例如对于1000个子序列通过比例应在0.98到0.02的区间之外具体值查表。测试环境必须在最差工艺角、电压和温度条件下进行测试以确保芯片在所有情况下都能产出高质量随机数。5.3 后处理与熵源健康监测虽然该方案声称无需后处理但在最高安全等级的应用中增加一个轻量级的后处理模块如一个简单的线性反馈移位寄存器或CRC作为“熵提取器”仍然是常见做法。这可以进一步平滑可能存在的微小偏差并抵御某些潜在的攻击模型如通过操纵环境温度轻微影响熵源。此外一个实用的TRNG IP还应包含在线健康测试功能。例如可以定期对一小段输出的比特流进行简单的频率测试或游程测试。如果检测到“0”和“1”的比例严重偏离0.5例如超出48%/52%则触发警报指示熵源可能失效或受到攻击系统可以切换至备用安全模式。6. 常见问题、挑战与未来展望在实际将这项技术产品化的过程中会遇到一些论文中未深入提及的挑战。这里结合我的项目经验分享一些常见问题和解决思路。6.1 器件老化与耐久性问题问题STT-MRAM虽然耐久性极高但经过数十亿甚至上万亿次写操作后MTJ的特性如隧穿氧化层质量、磁各向异性是否会发生漂移这种漂移会如何影响切换时间的随机性分布影响分析如果老化导致所有切换时间系统性变快或变慢由于差分读取是自身比较影响可能不大。但如果老化引入了新的噪声机制或改变了热涨落的统计特性则可能影响随机性质量。应对策略寿命测试在芯片设计阶段必须对TRNG单元进行加速老化测试收集大量数据分析随机性指标如NIST测试结果随循环次数的变化趋势。自适应校准可以设计一个后台校准电路周期性地监测输出比特的“0”、“1”比例。如果检测到微小但持续的偏差可以微调解码比较器的参考电平从0点稍微偏移或者动态调整写脉冲的幅度V以补偿器件特性的长期漂移。6.2 攻击与防护考量任何物理熵源都可能受到攻击。针对此类TRNG的潜在攻击包括环境操纵攻击攻击者试图通过剧烈改变芯片温度或施加强磁场来影响MTJ的切换特性。差分读取对此有天然抵抗力因为两个连续周期处于几乎相同的恶劣环境下。但极端快速的温度瞬变仍需考虑。故障注入攻击通过激光、电磁脉冲等手段在特定时刻干扰电路工作例如使比较器产生错误输出。侧信道攻击通过分析功耗、电磁辐射或时序试图推测内部随机状态。防护措施物理防护将TRNG模块置于芯片的安全区域用顶层金属屏蔽增加探测难度。逻辑防护在TRNG输出后加入一个FIFO缓冲区和后处理逻辑使输出比特率与内部物理生成速率解耦增加通过侧信道分析关联内外事件的难度。持续监控如前所述集成在线健康测试一旦检测到异常立即停止输出或重置。6.3 与其他TRNG技术的比较为了更全面地评估这项技术我们将其与几种主流方案进行简要对比技术方案熵源优点缺点适用场景环形振荡器采样多个振荡器相位抖动纯数字电路面积小设计简单随机性质量中等对PVT敏感吞吐率较低对随机性要求不高的低成本应用基于SRAM PUF上电状态SRAM单元上电初始值的随机性无需额外电路与标准SRAM兼容通常只用于生成静态密钥ID不适合持续产生随机流芯片指纹、静态密钥生成基于RRAM/相变存储器随机切换阻变/相变阈值电压或时间的随机性熵源丰富单元尺寸小器件耐久性可能不如STT-MRAM需要概率跟踪或复杂电路嵌入式非失存储与TRNG融合设计本文STT-MRAM差分读取MTJ热辅助切换时间的随机性随机性好无需后处理电压鲁棒性高三角波CMOS兼容高耐久需要模拟积分/差分电路设计复杂度高于纯数字方案高安全等级、高吞吐率应用如高速加密、安全启动6.4 未来扩展与研究方向这项技术仍有广阔的优化和创新空间多单元并行与吞吐率提升可以设计一个阵列包含多个独立的STT-MRAM TRNG单元并行工作然后将它们的输出进行异或XOR混合。这不仅能大幅提升总吞吐率还能进一步提升输出序列的随机性因为异或操作可以掩盖单个单元可能存在的微弱相关性。与存算一体/神经形态计算集成STT-MRAM本身是新兴的存内计算候选器件。将TRNG功能与计算单元集成可以为随机计算、随机神经网络提供原位、低功耗的随机源避免数据搬运开销这是一个非常前沿的方向。更先进的工艺节点随着STT-MRAM工艺向更小节点演进器件的开关速度会更快功耗会更低。这有望将TRNG的吞吐率推向吉赫兹级别同时保持极低的能量每比特Energy-per-bit指标。基于STT-MRAM差分读取的TRNG技术以其坚实的物理基础、巧妙的电路设计、优异的测试表现为硬件安全提供了一条极具吸引力的技术路径。它告诉我们好的安全方案往往源于对器件物理特性的深刻理解以及将这种特性转化为系统优势的巧妙构思。
基于STT-MRAM差分读取的真随机数生成器:原理、实现与NIST测试
1. 项目概述与核心价值在硬件安全领域生成真正不可预测的随机数是构建可信赖加密系统和物理不可克隆功能PUF的基石。传统的伪随机数生成器PRNG依赖算法和种子其“随机性”本质上是确定性的一旦算法或种子被破解整个安全体系便岌岌可危。因此基于物理过程固有随机性的真随机数生成器TRNG成为了高安全等级应用的刚需。近年来利用新兴存储器件的随机特性构建TRNG成为一个热门方向其中自旋转移矩磁随机存储器STT-MRAM因其独特的物理机制和优异的器件特性展现出了巨大的潜力。我最近深入研读并实践了IEEE EDL上的一篇经典论文《Random Number Generation by Differential Read of Stochastic Switching in Spin-Transfer Torque Memory》。这项技术巧妙地利用了STT-MRAM写操作中切换时间的随机性通过一种称为“差分读取”的电路方法直接提取出高质量的随机比特流。最吸引人的是该方法无需复杂的概率校准电路或后处理算法如Von Neumann校正器在保证高随机性的同时极大地简化了系统设计和功耗。对于从事物联网终端安全芯片、硬件信任根Root of Trust设计或是对新型计算范式如随机计算、神经形态计算中随机源感兴趣的朋友来说这无疑是一个兼具创新性和实用性的优秀方案。本文将带你彻底拆解这项技术的原理、实现细节和工程考量。我会从STT-MRAM的物理基础讲起详细解释“随机切换时间”这一熵源的产生机制然后重点剖析差分读取电路是如何将这种物理随机性转化为数字“0”和“1”的。我们不仅会复现论文中的关键实验数据和NIST测试结果还会深入探讨在实际芯片设计中可能遇到的挑战例如工艺偏差的影响、读取速度与随机性的权衡以及如何优化脉冲形状矩形波vs三角波以获得更宽的工作窗口。我的目标是让你读完本文后不仅能理解这项技术的精髓更能评估其在你自身项目中的应用可行性。2. STT-MRAM物理基础与随机熵源解析要理解基于STT-MRAM的TRNG首先必须吃透其核心——磁隧道结MTJ的随机切换行为。这不仅仅是器件特性更是整个随机数生成器的“心脏”。2.1 磁隧道结与双稳态系统STT-MRAM的存储单元核心是一个磁隧道结。简单来说它像是一个三明治结构两层铁磁材料钴铁硼被一层极薄的绝缘势垒层氧化镁隔开。其中一层磁矩方向被“钉扎”固定称为参考层另一层的磁矩方向可以自由翻转称为自由层。当自由层与参考层的磁矩方向平行时电子更容易隧穿过绝缘层器件呈现低电阻态当两者反平行时隧穿概率大大降低器件呈现高电阻态。这两个稳定的电阻态分别代表数字“0”和“1”。关键点在于自由层磁矩的翻转不是一个确定性的“开关”过程。你可以把它想象成一个处在碗底的小球代表一个磁化方向要翻到另一个碗底代表相反的磁化方向需要越过中间的一道“能量山脊”。这道山脊的高度就是能量势垒。在绝对零度下如果没有足够能量小球永远无法自己翻过去。但在室温下环境会提供随机的热涨落热能相当于不停地给这个小球施加随机的、微小的推力。当我们要写入数据时会施加一个写电流或电压这个电流产生的自旋转移矩STT效应相当于在能量势垒的一侧“挖低”了山脊降低了翻转难度。但即便如此具体在哪个时刻热涨落恰好能帮助磁矩完成最终的翻转是完全随机的。2.2 随机切换时间的物理模型这种随机性直接体现在“切换时间”上。当我们施加一个大于临界值的写电压脉冲时MTJ从一种电阻态切换到另一种电阻态所需的时间不是一个固定值而是一个服从指数分布的随机变量。论文中给出了一个核心公式来描述矩形脉冲下的平均切换时间t_set τ_0 * exp(Δ * (1 - V/V_0))。这里Δ是热稳定因子与能量势垒成正比V是施加的电压V_0是一个特征电压。这个公式清晰地揭示了几个工程上的关键事实指数依赖切换时间对电压极其敏感。电压V轻微增加t_set会呈指数级下降。这意味着在TRNG设计中写电压的稳定性至关重要微小的波动会导致切换时间统计特性的巨大变化。热涨落主导公式中的τ_0是一个尝试时间常数通常在皮秒到纳秒量级。整个切换过程是热辅助的STT翻转其随机性根源就是热涨落。这保证了熵源的物理不可预测性。分布特性由于热涨落的泊松特性在固定电压下大量重复写入操作得到的切换时间t_set会呈现一个很宽的分布。有些切换发生得早短时间有些发生得晚长时间。这个“早”和“晚”的差异就是我们要提取的随机比特信息。注意这里讨论的是“切换时间”的随机性。另一种常见的TRNG方案是利用“切换电压”的随机性即固定脉冲宽度看器件在哪个电压值下发生翻转。两者物理本质相同但电路实现方式和特性有所不同。本文的差分读取方案对“切换时间”的随机性利用得更为巧妙。2.3 作为熵源的优越性为什么选择STT-MRAM的随机切换作为熵源对比其他物理熵源如电阻式随机存取存储器RRAM的随机 telegraph 噪声、环形振荡器的相位抖动等它具有几个独特优势CMOS工艺兼容性好STT-MRAM是当前最接近大规模量产的新型存储器之一后端工艺与CMOS集成度高易于在标准芯片中实现嵌入式TRNG模块。速度快、功耗低STT-MRAM的写入速度可达纳秒甚至亚纳秒级这意味着潜在的高随机数生成吞吐率。且其操作功耗相对较低。高耐久性相比一些基于阻变机制的器件STT-MRAM的读写耐久性极高通常超过10^15次非常适合需要持续不断生成随机数的应用场景。物理特性稳定其随机性源于基本的磁学和热力学原理受环境干扰如均匀外磁场、温度的影响相对较小尤其是采用差分技术后抗干扰能力更强。理解了这个物理基础我们就能明白后续所有的电路设计其根本目的就是设计一个“高精度、高灵敏度的计时器”来测量并比较这个随机的t_set并将比较结果转化为比特流。3. 差分读取技术原理与电路实现传统的TRNG方案面临一个核心难题如何保证输出“0”和“1”的概率各为50%如果直接测量单次切换时间并与一个固定阈值比较由于工艺偏差、电压温度波动这个固定阈值很难精确设定导致输出有偏。论文提出的“差分读取”方法以一种极其巧妙的方式绕开了这个难题。3.1 核心思想自身比较消除偏差差分读取的核心思想不是去测量一个“绝对”的切换时间而是去比较同一个MTJ器件在两个连续写周期中的“相对”切换速度。具体流程如下周期n-1对MTJ施加一个写脉冲例如从高阻态AP切换到低阻态P并测量整个脉冲期间流经器件的总电荷量Q_{n-1}。这个电荷量等于电流对时间的积分。如果切换发生得早低电阻态维持时间长平均电流大总电荷Q就反之切换发生得晚Q就小。周期n紧接着对同一个MTJ施加一个复位脉冲从P回到AP再施加下一个相同的写脉冲。同样测量这个写周期内的总电荷量Q_n。差分与判决计算两个连续周期的电荷量之差ΔQ Q_n - Q_{n-1}。如果ΔQ 0则判决输出为“1”如果ΔQ 0则判决输出为“0”。为什么这样能保证无偏因为Q_{n-1}和Q_n来自同一个物理器件、同一种操作它们受到的所有共同的系统性偏差如器件电阻的绝对值、写驱动电流的绝对值、环境温度对基线电流的影响在作差时会被完美抵消。剩下的差异纯粹由两个周期中切换时间的随机波动决定。由于热涨落是时间无关的前一个周期切换快还是慢对后一个周期完全没有影响因此Q_{n-1}和Q_n是独立同分布的随机变量。它们的差值ΔQ的分布将以0为中心对称从而自然保证了输出“0”和“1”的概率均衡。3.2 电路实现框图与工作波形一个典型的差分读取TRNG电路框图包含以下几个关键模块脉冲发生器产生精确可控的写脉冲矩形波或三角波和复位脉冲。脉冲宽度t_p是一个关键设计参数它需要与器件的典型切换时间匹配。MTJ器件与选择晶体管标准的1T1R STT-MRAM单元。晶体管作为选通开关。积分器这是电路的核心。通常由一个运算放大器和一个积分电容C_int构成。流经MTJ的电流I_MTJ被转换为积分电容上的电压V_int (1/C_int) * ∫ I_MTJ dt。这个电压与电荷量Q成正比。采样保持与差分电路在每个写周期结束时采样保持电路捕获当前积分器的输出电压代表Q_n。然后差分放大器或数字域的减法器计算当前采样值与前一个周期采样值的差值。比较器与锁存器一个过零比较器判断差分信号的极性正或负并锁存输出随机比特。其工作时序波形可以概括为一个完整的随机比特生成周期包含“复位-写入测量Qn-1-复位-写入测量Qn-差分判决”几个阶段。在第二个写入周期结束后即可输出一个随机比特并开始下一个比特的生成循环。3.3 脉冲形状的选择矩形波 vs 三角波论文中探索了两种写脉冲形状矩形波和三角波。这是一个非常重要的工程折中点。矩形脉冲优点电路实现简单脉冲发生器设计直接。缺点对电压幅值V极其敏感。如前文公式所示切换时间t_set随电压指数变化。因此为了获得良好的随机性V必须被精确控制在一个很窄的“甜蜜区”内。从论文的图5可以看出矩形脉冲仅在Varound 0.6V附近能通过所有NIST测试电压偏高或偏低都会导致测试失败。这给电源管理电路带来了很大压力。三角斜坡脉冲优点对电压幅值的鲁棒性极强。论文中的公式推导和实验数据都表明在三角脉冲下切换电压V_set与最大电压V_A呈对数关系V_set ≈ V_0 * ln(t_0*V_A / (V_0*t_p))。对数关系的敏感性远低于指数关系。因此如图5所示三角脉冲在很宽的V范围内例如0.4V到0.8V以上都能保持高随机性。这大大放宽了对电源电压精度的要求提高了系统的可靠性和良率。缺点生成线性度良好的三角波需要更复杂的电路如数模转换器DAC或充电泵电路会带来一定的面积和功耗开销。实操心得在早期的原型验证中可以从矩形脉冲入手快速验证电路逻辑和差分读取的基本功能。但在面向产品设计时强烈建议采用三角脉冲方案。它所增加的电路复杂度远小于为矩形脉冲设计一个超高精度、超稳定电压源所带来的挑战和风险。三角脉冲方案带来的设计余量和电压容差对于大规模量产至关重要。4. 系统设计与关键参数考量要将一个原理性的TRNG转化为一个可靠、高效的IP模块需要从系统层面进行一系列精心设计。这里分享几个我在仿真和实践中总结的关键考量点。4.1 积分器电容C_int的选取积分电容的值需要仔细计算它直接影响输出信号摆幅和系统速度。信号幅度电荷量Q ∫ I dt。I是MTJ的电流在切换前后差异很大。假设写脉冲幅度为V_pulseMTJ低阻态为R_L高阻态为R_H脉冲宽度为t_p。那么最大可能的电荷差发生在一次切换极早、另一次切换极晚的极端情况。粗略估算最大差分电荷ΔQ_max ≈ (V_pulse / R_L - V_pulse / R_H) * t_p。电容值计算积分器输出电压V_out Q / C_int。为了被后续比较器可靠分辨V_out需要大于比较器的输入失调电压和噪声。假设比较器灵敏度为V_sense则要求ΔQ_max / C_int V_sense。因此C_int ΔQ_max / V_sense。速度与噪声权衡C_int越小同样的电荷产生的电压信号越大对比较器要求越低但电容本身的热噪声kT/C也会更大。C_int越大噪声越小但信号幅度也小需要更高增益的前置放大器会增加功耗和设计复杂度。通常需要在仿真中迭代找到一个平衡点。对于典型的STT-MRAM参数R_L2kΩ,R_H4kΩ,V_pulse0.6V,t_p10nsΔQ_max在皮库仑量级。若V_sense10mV则C_int大约在几十到几百飞法量级。4.2 脉冲宽度t_p与吞吐率优化脉冲宽度t_p的选择与器件的开关特性紧密相关。理论依据t_p应略大于器件的平均切换时间t_set。如果t_p太短大部分脉冲结束时切换还未发生导致Q的取值全部集中在低值区域随机性熵值降低。如果t_p太长虽然切换都能完成但浪费了时间降低了随机数生成吞吐率。吞吐率计算生成一个随机比特需要两个写周期和一个复位周期。假设每个脉冲宽度为t_p复位脉冲宽度也为t_p则生成一个比特的最短时间约为3 * t_p。因此最大理论吞吐率Throughput_max ≈ 1 / (3 * t_p)。若t_p10ns则理论吞吐率可达33 MHz。这已经远高于许多基于振荡器采样的TRNG。实际限制实际吞吐率还会受到积分器建立时间、采样保持时间、比较器延迟以及数字控制逻辑开销的影响。电路的实际最高工作频率需要根据后端布局布线后的时序分析来确定。4.3 工艺、电压、温度PVT变化的影响分析一个健壮的TRNG必须能在不同的工艺角、电压波动和温度变化下正常工作。工艺偏差MTJ的R_L、R_H、开关临界电流I_c0等参数存在晶圆内和晶圆间的偏差。差分读取技术的最大优势就在于只要同一个芯片上的同一个MTJ单元在两个连续周期内的特性保持一致这些绝对值的偏差在作差时就会被抵消。这是它相比需要匹配两个不同器件的差分方案的核心优势。电压波动电源电压VDD的波动会影响写脉冲的幅度V_pulse。如前所述三角脉冲方案对此有很强的鲁棒性。但对于矩形脉冲必须通过片上稳压器LDO带隙基准源来提供一个极其稳定的写电压。温度变化温度会影响MTJ的热稳定因子Δ和隧穿磁阻比。温度升高热涨落加剧平均切换时间变短。同样由于是差分比较只要温度在两个连续周期内变化不大通常满足因为周期极短其影响也会被大幅抑制。但对于极端温度范围的应用可能需要考虑在电路中对积分器的增益进行微调以补偿电流幅度的整体漂移。我的经验是在电路设计阶段必须进行全面的蒙特卡洛仿真和PVT仿真。重点观察在不同工艺角、电压和温度下差分信号ΔQ的分布是否仍然保持以零为中心的良好对称性以及其标准差是否足够大以确保比较器能可靠判决。仿真中应注入MTJ参数的统计分布模型以获得更真实的结果。5. 随机性测试与NIST SP-800-22套件详解设计出一个TRNG电路只是第一步证明其产生的比特流是“真随机”的需要通过严格的统计测试。行业黄金标准是美国国家标准与技术研究院NIST发布的SP-800-22测试套件。论文中声称其方案无需后处理即可通过全部测试这是其核心亮点之一。我们来深入理解这些测试意味着什么以及在实际中如何操作。5.1 NIST测试套件概览与核心思想NIST SP-800-22包含15项统计测试每一项都从不同角度检验一个二进制序列是否具有随机序列应有的统计特性。它们的目标是发现序列中可能存在的非随机模式、相关性或偏差。常见的测试包括频率检验检验序列中“0”和“1”的比例是否接近1:1。块内频率检验将序列分成多个块检验每个块内“0”和“1”的比例。游程检验检验连续相同比特游程的长度和数量是否符合随机序列的预期。非重叠模块匹配检验检验序列中是否出现了不该频繁出现的特定比特模式。通用统计检验检验序列的压缩能力过于可压缩的序列是非随机的。测试逻辑每个测试会计算出一个P-value值。如果P-value 0.01则认为序列在该测试项上是随机的。通常需要对一个很长的序列如1百万比特进行测试并将其分割成多个子序列计算通过每个测试的子序列比例。5.2 论文结果解读与三角脉冲的优势论文中的表I和图5是评估其TRNG性能的关键。表I数据展示了在不同电压下使用矩形和三角脉冲生成的比特流通过各项NIST测试的详细结果。“PASS”的条件是P-value 0.0001且通过测试的子序列比例达到要求。可以看到对于矩形脉冲在0.5V和0.7V时部分测试失败如“RandomExcursions”仅在0.6V左右的一个狭窄窗口内全部通过。而对于三角脉冲在0.4V, 0.6V, 0.8V下全部测试通过。图5的启示这张图直观地展示了非重叠模板测试的通过率。三角脉冲的通过率在高电压范围内保持平坦且接近100%而矩形脉冲则呈现出一个尖锐的峰值。这完美印证了前文的理论分析三角脉冲的电压鲁棒性远优于矩形脉冲。实操要点当你设计自己的TRNG并准备进行NIST测试时有几点需要注意样本量要足够大NIST建议测试至少1000个长度为1,000,000比特的序列。对于芯片初样生成如此大量的数据需要时间。通常可以先用软件或FPGA原型生成数据做前期验证。关注“Proportion”和“P-value”一个健康的TRNG不仅总体P-value要大于0.01每个子序列的通过比例也要在置信区间内。例如对于1000个子序列通过比例应在0.98到0.02的区间之外具体值查表。测试环境必须在最差工艺角、电压和温度条件下进行测试以确保芯片在所有情况下都能产出高质量随机数。5.3 后处理与熵源健康监测虽然该方案声称无需后处理但在最高安全等级的应用中增加一个轻量级的后处理模块如一个简单的线性反馈移位寄存器或CRC作为“熵提取器”仍然是常见做法。这可以进一步平滑可能存在的微小偏差并抵御某些潜在的攻击模型如通过操纵环境温度轻微影响熵源。此外一个实用的TRNG IP还应包含在线健康测试功能。例如可以定期对一小段输出的比特流进行简单的频率测试或游程测试。如果检测到“0”和“1”的比例严重偏离0.5例如超出48%/52%则触发警报指示熵源可能失效或受到攻击系统可以切换至备用安全模式。6. 常见问题、挑战与未来展望在实际将这项技术产品化的过程中会遇到一些论文中未深入提及的挑战。这里结合我的项目经验分享一些常见问题和解决思路。6.1 器件老化与耐久性问题问题STT-MRAM虽然耐久性极高但经过数十亿甚至上万亿次写操作后MTJ的特性如隧穿氧化层质量、磁各向异性是否会发生漂移这种漂移会如何影响切换时间的随机性分布影响分析如果老化导致所有切换时间系统性变快或变慢由于差分读取是自身比较影响可能不大。但如果老化引入了新的噪声机制或改变了热涨落的统计特性则可能影响随机性质量。应对策略寿命测试在芯片设计阶段必须对TRNG单元进行加速老化测试收集大量数据分析随机性指标如NIST测试结果随循环次数的变化趋势。自适应校准可以设计一个后台校准电路周期性地监测输出比特的“0”、“1”比例。如果检测到微小但持续的偏差可以微调解码比较器的参考电平从0点稍微偏移或者动态调整写脉冲的幅度V以补偿器件特性的长期漂移。6.2 攻击与防护考量任何物理熵源都可能受到攻击。针对此类TRNG的潜在攻击包括环境操纵攻击攻击者试图通过剧烈改变芯片温度或施加强磁场来影响MTJ的切换特性。差分读取对此有天然抵抗力因为两个连续周期处于几乎相同的恶劣环境下。但极端快速的温度瞬变仍需考虑。故障注入攻击通过激光、电磁脉冲等手段在特定时刻干扰电路工作例如使比较器产生错误输出。侧信道攻击通过分析功耗、电磁辐射或时序试图推测内部随机状态。防护措施物理防护将TRNG模块置于芯片的安全区域用顶层金属屏蔽增加探测难度。逻辑防护在TRNG输出后加入一个FIFO缓冲区和后处理逻辑使输出比特率与内部物理生成速率解耦增加通过侧信道分析关联内外事件的难度。持续监控如前所述集成在线健康测试一旦检测到异常立即停止输出或重置。6.3 与其他TRNG技术的比较为了更全面地评估这项技术我们将其与几种主流方案进行简要对比技术方案熵源优点缺点适用场景环形振荡器采样多个振荡器相位抖动纯数字电路面积小设计简单随机性质量中等对PVT敏感吞吐率较低对随机性要求不高的低成本应用基于SRAM PUF上电状态SRAM单元上电初始值的随机性无需额外电路与标准SRAM兼容通常只用于生成静态密钥ID不适合持续产生随机流芯片指纹、静态密钥生成基于RRAM/相变存储器随机切换阻变/相变阈值电压或时间的随机性熵源丰富单元尺寸小器件耐久性可能不如STT-MRAM需要概率跟踪或复杂电路嵌入式非失存储与TRNG融合设计本文STT-MRAM差分读取MTJ热辅助切换时间的随机性随机性好无需后处理电压鲁棒性高三角波CMOS兼容高耐久需要模拟积分/差分电路设计复杂度高于纯数字方案高安全等级、高吞吐率应用如高速加密、安全启动6.4 未来扩展与研究方向这项技术仍有广阔的优化和创新空间多单元并行与吞吐率提升可以设计一个阵列包含多个独立的STT-MRAM TRNG单元并行工作然后将它们的输出进行异或XOR混合。这不仅能大幅提升总吞吐率还能进一步提升输出序列的随机性因为异或操作可以掩盖单个单元可能存在的微弱相关性。与存算一体/神经形态计算集成STT-MRAM本身是新兴的存内计算候选器件。将TRNG功能与计算单元集成可以为随机计算、随机神经网络提供原位、低功耗的随机源避免数据搬运开销这是一个非常前沿的方向。更先进的工艺节点随着STT-MRAM工艺向更小节点演进器件的开关速度会更快功耗会更低。这有望将TRNG的吞吐率推向吉赫兹级别同时保持极低的能量每比特Energy-per-bit指标。基于STT-MRAM差分读取的TRNG技术以其坚实的物理基础、巧妙的电路设计、优异的测试表现为硬件安全提供了一条极具吸引力的技术路径。它告诉我们好的安全方案往往源于对器件物理特性的深刻理解以及将这种特性转化为系统优势的巧妙构思。