计算机编程中的安全计算与类型系统探索
1. 安全远程计算
1.1 子集的异或代数
在安全远程计算中,我们将类型 E 定义为自然数集合 [0..N) 的幂集 P[0..N),简记为 PN。对于操作 ⊕,我们采用对称集合差运算,记为 Δ。对于 N0, N1 ∈ PN,有 N0ΔN1 = N0 - N1 ∪ N1 - N0。并且对于 E ∈ PN,有等式:
|[ visA a: PN; visB b: PN;
(aΔb):= E ]|
=
skip .
这其实就是子集的加密引理。
1.2 远程超级计算机的安全使用
假设有用户代理 U 想要计算 y := F.x,其中变量 x 和 y 对用户 U 可见,而函数 F 公开但过于复杂,用户 U 自身资源无法计算。最初,用户 U 想将计算任务交给超级计算机代理 A,期望实现:
y:= F.x
⊑
|[ visA a, a′;
a:= x; a′:= F.a; y:= a′ ]|
然而,这不是安全的,因为代理 A 会得知 x 和 y 的值。
假设函数 F 满足 F.(x0 ⊕ x1) = F.x0 ⊕ F.x1,且用户 U 非常重视隐私,愿意支付两次超级计算机运行的费用,第二次由代理 B 运行。此时,提出如下改进:
y:= F.x
⊑
|[ visA a; visB
超级会员免费看
订阅专栏 解锁全文
10万+

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



