状态化应用Pi演算中的私有与公共状态单元研究
1. 标记双模拟与私有状态单元编码
标记双模拟依赖于转换的直接比较,而非任意上下文。在仅含私有状态单元的封闭扩展进程中,标记双模拟能完全捕捉观察等价性,即有定理:≈ = ≈l 。
私有状态单元可用受限通道进行编码,这一发现十分重要,后续还会用于证明相关定理。不过,在对安全协议建模时,用受限通道表示私有状态单元存在弊端,使用自动工具ProVerif时可能引入虚假攻击。原因在于ProVerif将进程演算转换为Horn子句时,会抽象掉受限通道的部分特性。为解决此问题,引入了锁、读、写和解锁等原语,有助于在ProVerif中为有状态协议设计更好的转换方式。
编码规则如下:
⌊0⌋S = 0
⌊P | Q⌋S = ⌊P⌋S | ⌊Q⌋S
⌊νn.P⌋S = νn. ⌊P⌋S if n /∈Ns
⌊! P⌋S = ! ⌊P⌋S
⌊u(x).P⌋S = u(x). ⌊P⌋S
⌊u⟨M⟩.P⌋S = u⟨M⟩. ⌊P⌋S
⌊if M = N then P else Q⌋S = if M = N then ⌊P⌋S else ⌊Q⌋S
⌊s →M⌋S = cs⟨M⟩
⌊νs.P⌋S = νcs. ⌊P⌋S if s ∈Ns
⌊lock s.P⌋S =
cs(x). ⌊P⌋S∪{s→x} if s /∈dom(S) and x is fresh
0
otherwise
⌊unlock s.P⌋S =
cs⟨M⟩| ⌊P⌋T if S = T ∪{s →M}
0
otherwise
⌊read s as x.P⌋S =
⌊P {M/x}⌋
超级会员免费看
订阅专栏 解锁全文
13

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



