网页安全计算技术解析
1. 服务器被破坏情况分析
当服务器 $P_{n + 1}$ 被破坏,且 $1 \leq i \leq n$ 为最后一个诚实方的索引时,模拟器 $S$ 会得到值 $y_i = \tilde{f} i(x_1, \ldots, x_n)$,此值为合适的部分真值表。在直至 $i - 1$ 的每次迭代中,模拟过程与之前相同。在第 $i$ 次迭代中,$S$ 通过使用公钥 $p {k_{i + 1}}, \ldots, p_{k_{n + 1}}$ 对从可信方收到的部分真值表进行加密,来模拟诚实方 $P_i$ 发送的消息。和之前一样,敌手的输出分布与真实执行情况无法区分。
在上述协议中,使用基于 El - Gamal 的可重随机化加密,每个参与方的指数运算少于 $3n$ 次,所以总指数运算次数最多为 $3n^2$。因此,该协议对于大量(但不是极大量)的参与方可能是实用的,也许对于上千个参与方也可行。不过,参与方必须按顺序工作,如果 $n$ 太大,这可能会成为一个限制。此外,在这个具体实现中,参与方可以以任意顺序连接并与服务器交互,这对于实际实现和部署是一个重要特性。
2. 恶意情况处理
由于半诚实协议对于不诚实方使用的任何随机硬币都是安全的,所以只需添加签名,使腐败方和/或服务器无法修改之前各方发送的消息,并添加(非交互式)零知识证明以证明行为良好,就能在恶意模型中实现安全。对于具体的 El Gamal 实现,所有这些证明都可以高效完成,因为它们都可以简化为关于离散对数相等的复合语句,并且可以使用随机预言模型中的 Fiat - Shamir 变换将其变为非交互式。具体来说,每个参与方需要进行 $O(n^2)$ 次指数运算,