中文

使用数据流认证在加密数据上进行计算

密码学与安全 2017-10-03 v1

摘要

在将数据发送到云端之前对其进行加密可以保护其免受黑客和恶意内部人员的攻击,但这要求云端能够在加密数据上进行计算。可信(硬件)模块,例如 Intel 的 SGX 等安全飞地,可以非常高效地在加密内存中运行整个程序。然而,已有演示表明软件漏洞为攻击者提供了向程序中插入任意代码的充分机会。该代码随后可以修改程序的数据流,并通过 SGX 侧信道将程序中的任何机密泄露给云端的观察者。由于任何较大的程序都充斥着软件漏洞,因此将整个程序外包给 SGX 飞地并非明智之举。一种具有较小可信代码库的安全替代方案是全同态加密(FHE)——加密计算的终极目标。然而,由于其极高的计算复杂性,它不太可能在不久的将来被采用。因此,研究人员提出了若干方案,通过转换程序以在较弱的加密方案上执行加密计算。然而,当前的方法在处理基于加密数据做出控制流决策的程序时会失败。在本文中,我们引入了数据流认证(DFAuth)的概念。DFAuth 防止对手任意偏离程序的数据流。因此,攻击者无法如前所述在 SGX 上实施攻击。这使得所有程序,甚至包括对控制流决策变量进行操作的程序,都可以在加密数据上进行计算。我们使用一种新颖的认证同态加密方案、一个生成完全可执行程序的 Java 字节码到字节码编译器以及 SGX 飞地实现了 DFAuth。一个在敏感医疗数据上执行机器学习的转换后的神经网络,可以在 0.86 秒内对加密输入和加密权重进行评估。

关键词

引用

@article{arxiv.1710.00390,
  title  = {Computation on Encrypted Data using Data Flow Authentication},
  author = {Andreas Fischer and Benny Fuhry and Florian Kerschbaum and Eric Bodden},
  journal= {arXiv preprint arXiv:1710.00390},
  year   = {2017}
}