安全外包计算综述

安全外包计算: Secure Outsourcing Computation
参考文献:《Practical Secure Computation Outsourcing:A Survey》

1. 通用安全外包计算系统架构

首先介绍处理信息或数据流序列的安全外包计算系统架构,系统架构主要有两类参与者:用户(客户端),计算方(云服务器)。该系统架构的主要处理流程为:首先,用户确认计算任务与计算数据,并将计算任务通过密钥K加密后传输给云服务器。然后,云服务器计算出结果,该结果为密文形式,同时生成一个证明,该证明可用于计算结果的验证。最后,用户可以通过从云服务器端获得的信息通过密钥K解密出计算结果同时可以验证结果的正确性。另外,云服务器可以本地保存一个与上传任务相关的加密数据库,并且用户与服务器可能通过多轮交互计算完成一个计算任务。
需要注意的是,可能在一些系统模型中存在另一个参与方,该参与方主要负责结果验证、数据聚合或是其他辅助计算。另外,在一些系统模型中用户可能被拆分为数据拥有者以及数据使用者。

2. 安全外包计算中安全威胁

在安全外包计算中,存储在远程的用户数据是脱离用户控制的。在云计算中,一些安全威胁可以分为两类,一类为数据机密性,即计算输入数据以及计算结果数据的机密性,另一类是数据完整性。
根据云服务器服务方的行为,可以将云服务器敌手分为两种类型,半诚实敌手和恶意敌手。半诚实敌手,即诚实的但是具有好奇行为的敌手,这一类敌手会遵守计算协议,正确执行计算并返回正确结果,但是,该敌手还是会尝试获取一些数据或结果中的隐私信息,并从中获利。恶意敌手则会随意从计算以及数据中获取隐私信息,并且该敌手还会为了节约自身的计算以及空间资源而将不正确的计算结果返回给用户,同时敌手还会尽可以返回看似有效但是不正确的结果,看似有效是指能够有效避免用户验证发现计算结果是错误的。

3. 安全外包计算的需求

  • 输入隐私性(Input privacy):指服务器无法从用户数据中获取任何敏感或者有意义的信息
  • 输出隐私性(output privacy):指服务器无法从用户计算结果中获取任何敏感或有意义的信息
  • 可验证性(Verifiability):指从恶意云服务器返回的错误结果能够绕过验证过程的概率是可忽略的
  • 效能性(efficiency):指客户端能够尽可能的减少本地的计算负担,同时这也是外包计算的主要驱动力。
  • 结果正确性(correctness):指客户端能够成功的验证并恢复计算结果

4. 相关计算方法概述

  1. 安全多方计算(Secure Multi-player Computation):该方法能够使得多方合作计算任意函数,其中该函数从计算参与方中获取各方隐私数据作为函数输入,在保证数据保密性的情况下计算出该函数的结果,最后该结果能够被指定参与方获得。最早安全多方计算方法由Andrew Yao提出。
  2. 带有欺诈检测的委托计算(Delegating Computation with Cheating Detection):该方法假定一个网络中由多个具有不同计算能力的计算设备组成,这些计算设备可以彼此交互。其中,计算力较弱的计算设备能够就自己的计算任务委托给计算能力更强的设备进行计算,该方法类似于安全外包大规模计算。