paperbot · PL 论文追踪

全部论文 待读 收藏

P2 On Time-sensitive Control Dependencies

论时间敏感的控制依赖
TOPLAS 44(1)2021匹配度 3/10 · 该论文属于静态程序分析领域,提出时间敏感控制依赖算法并用于发现缓存计时泄漏,与用户画像中的 PL 方向有基础关联;但未涉及 LLM/Agentic 程序、浮点程序分析、贝叶斯程序分析或 AI 与 PL 的交叉,因此与核心研究方向不匹配。引用 2 inbox
Martin Hecker, Simon Bischof, Gregor Snelting
crossref: 2026-09-10

AI 速览

一句话:提出时间敏感控制依赖的高效算法,并用于发现缓存计时泄漏。

标准控制依赖只能说明语句 y 是否因 x 而被执行,却无法刻画 x 与 y 之间的时间间隔。本文系统研究时间敏感控制依赖:若 y 非标准控制依赖但时间敏感控制依赖于 x,则 y 总在 x 后执行,但二者间隔可变,从而可用于发现安全关键软件中的计时泄漏。作者给出时间敏感与非终止敏感控制依赖的性质和算法,并将 Cytron 的支配边界算法推广到这些依赖,且支持无唯一出口节点的控制流图(如反应式系统)。基于时间敏感控制依赖与切片,作者在 AES 实现中发现缓存计时泄漏,性能测试表明方法具有可扩展性。

问题
标准控制依赖不区分执行是否发生与执行时间间隔,因此难以发现由时间差异导致的泄漏;同时经典算法通常假设控制流图有唯一出口节点。
方法
定义时间敏感与非终止敏感控制依赖,系统建立其性质,并推广 Cytron 的支配边界算法以高效计算这些依赖,进而支持时间敏感切片。
评估
将方法用于 AES 实现中的缓存计时泄漏检测,并通过性能测量展示其可扩展性。
原文摘要(Abstract)

We present efficient algorithms for time-sensitive control dependencies (CDs). If statement y is time-sensitively control dependent on statement x , then x decides not only whether y is executed but also how many timesteps after x . If y is not standard control dependent on x , but time-sensitively control dependent, then y will always be executed after x , but the execution time between x and y varies. This allows us to discover, e.g., timing leaks in security-critical software. We systematically develop properties and algorithms for time-sensitive CDs, as well as for nontermination-sensitive CDs. These work not only for standard control flow graphs (CFGs) but also for CFGs lacking a unique exit node (e.g., reactive systems). We show that Cytron’s efficient algorithm for dominance frontiers [ 10 ] can be generalized to allow efficient computation not just of classical CDs but also of time-sensitive and nontermination-sensitive CDs. We then use time-sensitive CDs and time-sensitive slicing to discover cache timing leaks in an AES implementation. Performance measurements demonstrate scalability of the approach.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1206,
  title = {On Time-sensitive Control Dependencies},
  author = {Martin Hecker and Simon Bischof and Gregor Snelting},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {44},
  number = {1},
  year = {2021},
  doi = {10.1145/3486003}
}