2.4 隐私计算安全性假设
一般而言,隐私计算应用中都会涉及一个安全性假设,包括敌手方的能力、行为和在体系中的数量。在这个安全性假设下,某种隐私计算协议、算法能够保证数据安全。
2.4.1 安全行为模型
根据模型对敌手方的能力以及行为假设的不同,安全行为模型一般分为以下三类。
1. 半诚实模型
在半诚实模型(Semi-Honest Adversaries' Security)中,假设敌手方会诚实地参与隐私计算的具体协议,严格遵照协议执行每一步,但是会试图通过从协议执行过程中获取的内容来推测其他参与方的隐私。这类半诚实模型还被称为Honest but Curious或Passive。
这类模型就好比你有一封重要的纸质合同文件要寄给一家合作企业,快递公司是一个很有信誉的企业,但你依然会担心途中哪个快递员会偷窥文件,所以你会把纸质合同装在信封里密封好。如果信封被打开过,收信人拿到信时一眼就可以看出来。对应到图1-1中隐私计算参与方的三个角色中,寄信人就是数据输入方,送信人就是计算方,收信人就是结果使用方。
2. 恶意模型
在恶意模型(Malicious Adversaries' Security)中,恶意敌手方不但会试图通过从协议执行过程中获取的内容来推测其他参与方的隐私,还可能会不遵照协议,采取例如伪造消息或者拒绝响应等行为来获取其他参与方的隐私。此类恶意模型还被称为Active。
还是以上面送信的例子为例,在这类模型中,你会假设可能已经有商业间谍潜伏在快递公司,负责其中某段路程的快递员不但会试图偷窥文件,还可能会伪造一份假的文件来传递。这时,你可能会在信件中加入一些不易察觉的记号,或者使用特殊的信纸来防范。
那么,既然存在恶意敌手,为什么还要假设半诚实模型呢?其实在一般情况下,发动主动攻击要比监听整个计算过程复杂得多。原因是主动攻击通常需要设计非常复杂的程序,难度很高。但是对于单纯获取计算过程中的数据而言,这是比较容易的,所以半诚实模型的假设在实际生活中也是普遍存在的。
3. 隐蔽模型
在隐蔽模型(Covert Adversaries' Security)中,系统中不诚实的参与方不但会试图通过从协议执行过程中获取的内容来推测其他参与方的隐私,还可能会试图通过改变协议行为来挖掘其他参与方的隐私信息。然而,如果不诚实的参与方尝试发起这样的作弊行为,其会有λ的概率被其他参与方检测出来。
与恶意模型不同的是,如果没有检测到攻击者(存在一定的概率检测不到攻击者),那么隐蔽模型中的攻击者可能会成功地实现作弊。这类系统被称为满足威慑因子为λ的隐蔽安全模型。
还是以上面送信的例子为例,在这类模型中,假设已经有商业间谍潜伏在快递公司,因此要求每个快递员在寄送件过程中都需要有另一个快递员在场实时监督,这样即使有商业间谍企图作恶也有一定的概率被发现。
一般而言,隐蔽模型的安全性高于半诚实模型,且威慑因子越高,安全性越高。恶意模型的安全性高于隐蔽模型。
在现实应用中,隐蔽模型通常还会配合奖惩机制,比如所有参与方进行一些物质抵押,一旦被发现恶意行为,抵押物将被罚没。在区块链加密货币的实现方案中,我们可以看到较多此类模型的应用。
2.4.2 不诚实门限
根据敌手方占参与方总数的比例,安全性假设还可细分为诚实多数制(Honest Majority)安全和非诚实多数制(Dishonest Majority)安全。具体地,如果一个有n个参与方的系统能在最多有t个参与者做出包括合谋在内的不诚实行为的情况下,仍保证隐私数据不被泄露,则称该系统为可容忍(t, n)不诚实门限的系统。一般而言,在n相同的情况下,t越大,隐私计算协议安全性越高。当t<n/2时,协议被称为诚实多数制协议;当n/2≤t≤n-1时,协议被称为非诚实多数制协议。
举例来说,如果隐私计算协议是一个恶意模型下的诚实多数制安全协议,并且假设有5个计算参与方参与隐私计算,那么只要5个参与方中有3个或3个以上属于诚实参与方,整个计算过程就是安全的,不会产生数据泄露问题。而如果只有2个或者更少的参与方是诚实的,也就是3个或者3个以上的参与方可能合谋、破坏协议并作弊,那么就会有数据泄露的风险。
注意
在应用隐私计算开发框架时,开发者首先应该了解该开发框架对应的安全性假设是否符合应用要求。