基于侧信道的反汇编器构建
1. 最优指令重建
在拥有隐马尔可夫模型(HMM)的所有参数(状态转移概率矩阵 A、发射概率分布 E 和初始状态分布 κ)以及一组观测值 x 的情况下,我们可以对隐藏马尔可夫过程的状态序列 π 进行重建,也就是重建微处理器执行的指令。有两种重建方式:
- 重建最有可能执行的状态序列。
- 给定观测值集合,重建在特定时间实例执行的最可能状态。
这两种解决方案虽然相似,但并不总是相同,它们分别使用维特比算法(Viterbi Algorithm)和前向 - 后向算法(Forward - Backward Algorithm)推导得出。
1.1 维特比算法
维特比算法用于确定最有可能导致观测值 $\hat{x} = {x_i}$ 的状态路径 $\pi = {\pi_i}$。具有最高概率的路径为:
$\pi^* = \arg\max_{\pi}p(\pi|\hat{x}) = \arg\max_{\pi}\frac{p(\hat{x}, \pi)}{p(\hat{x})} = \arg\max_{\pi}p(\hat{x}, \pi)$
该路径可以通过递归公式 $v_l(i + 1) = e_l(x_{i+1})\max_k(v_k(i)a_{kl})$ 和 $v_k(1) = \kappa_ke_k(x_1)$ 确定,其中 $v_k(i)$ 是结束于状态 $q_k$ 的最可能路径的概率。因此,除了具有最高概率的转移概率外,我们舍弃所有通向状态 $q_k$ 的转移概率。通常,对于每个 $v_l(i + 1)$,会存储一个指向先前状态概率 $v_k(i)$ 的指针以及概率本身。在到达最后一个观测值后,通过
基于侧信道的反汇编器构建方法
超级会员免费看
订阅专栏 解锁全文

10

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



