计算安全的模式匹配技术解析
1. 隐藏匹配位置
在某些场景中,可能只需要让Bob知道匹配的数量,而不透露匹配的实际位置。例如,在分析DNA序列时,我们更关注某个基因出现的频率,而非其具体位置。为实现这一目标,Alice可以选择一个均匀随机排列,对公式(3)中的Δj进行排列和重新随机化。然后将加密结果发送给Bob,执行πperm协议,使Bob能够验证Alice的操作。最后运行πdec0协议,Bob输出收到的值为0的加密结果的数量。由于Alice应用了随机排列,匹配位置被打乱,Bob无法得知实际的匹配位置。
2. 带通配符的安全模式匹配
在经典模式匹配问题的一个变体中,允许Bob在模式中使用通配符(用 ⋆ 表示),通配符可以匹配0和1。该问题的功能FPM−⋆定义如下:
[
((p, n), (t, m)) \to
\begin{cases}
({j | \overline{t} j \stackrel{\star}{\equiv} p} {j = 1}^{n - m + 1}, \lambda) & \text{if } |p| = m \text{ and } |t| = n \
(\lambda, \lambda) & \text{otherwise}
\end{cases}
]
其中,(\overline{t}_j) 是从t的第j个位置开始的长度为m的子串,(\stackrel{\star}{\equiv}) 表示“除了 ⋆ 位置外相等”。这个问题可在O(n + m)时间内解决。安全版本的解决方案核心思想是,Bob需以加密形式提供通配符位置,并且要修改Ali