抗泄漏程序的组合合成
1. 选择分解策略
在合成抗泄漏程序时,合理的电路分解策略至关重要。虽然从理论上讲,可以将给定电路分解成任意小的子电路,但过于精细的分解可能导致次优结果。为了解决这个问题,提出了以下分解策略:
1. 依赖分析 :执行类似于基于约束的整体合成中使用的依赖分析,识别出不依赖任何秘密的公共子电路,并将其从其余部分中分离出来,以避免对其进行抗泄漏转换。
2. 复用子电路优先 :寻找在多个位置使用的子电路(即根节点扇出大于 1 的子电路),优先对其进行单独合成,并在使用位置进行组合。这种方法不仅可以节省合成工作量,还可以在共享子电路在不同上下文中产生不同输出时,得到更小的合成结果。
3. 并行合成 :对于多输出电路,在根节点应用并行组合,为每个输出分别进行合成。
4. 设置合成大小边界 :设置整体合成电路的最大尺寸边界,并根据该边界进行系统分解。在原型实现中,采用了“自适应”版本的分解过程,即根据情况动态调整边界,并在某些条件下选择使用预制电路。
示例
以一个电路为例,当 n = 2 时,应用组合合成算法进行分解:
1. 并行分解 :将电路分解为两部分,左树计算 p1 ⊕ k1 ⊕ k2,右树计算 k2 ⊕ p2。
2. 右树处理 :右树无法进一步分解,直接应用 MonoSynth 将其转换为抗泄漏形式。
3. 左树处理 :如果整体合
超级会员免费看
订阅专栏 解锁全文
14

被折叠的 条评论
为什么被折叠?



