We present Xenon, a solver-aided method for formally verifying that Verilog hardware executes in constant-time. Xenon scales to realistic hardware designs by drastically reducing the effort needed to localize the root cause of verification failures via a new notion of constant-time counterexamples, which Xenon uses to automatically synthesize a minimal set of secrecy assumptions. Xenon further exploits modularity in Verilog code via a notion of module summaries, thereby avoiding duplicate work across multiple module instantiations. We show how Xenon's assumption synthesis and summaries enable the verification of a variety of circuits including AES, a highly modular AES-256 implementation where modularity cuts verification from six hours to under three seconds, and ScarV, a timing channel hardened RISC-V micro-controller whose size exceeds previously verified designs by an order of magnitude.
翻译:Xenon是正式核实Verilog硬件在固定时间执行的方法。 Xenon向现实的硬件设计展示了Xenon 比例表,通过一个新概念,即恒定时间反比样本,将核查失败的根本原因本地化,Xenon用这个新概念自动合成一套最起码的保密假设。Xenon通过模块摘要概念进一步利用Verilog 代码中的模块性,从而避免多个模块瞬间重复工作。我们展示了Xenon的假设合成和摘要如何能够核查各种电路,包括AES,AES-256高模块AES-256实施,模块化将核查从6小时削减到3秒以下,以及ScarV,一个时间频道,其体积超过先前按数量顺序核实的设计的RISC-V微控制器。