安全两方计算系统及其高效实现
背景与挑战
安全多方计算(SMPC)旨在允许多个参与方在不泄露各自输入数据的情况下共同计算一个函数。其基本要求包括正确性和输入隐私性。SMPC的部署模式主要分为服务器代理模式和点对点模式。安全两方计算系统存在设计难点,尤其是在算术运算(如点乘、内积、矩阵乘法)和布尔运算(如AND)方面,以及非线性运算(如比较操作)的优化和定点数精度的维持。
线性运算
安全神经网络推理中,简单图片只需简单模型,而复杂图片需要复杂模型,如ResNet50。安全双方ResNet50推理的现有最佳工作是CryptFLOW2,但其推理速度较慢。
线性层计算
卷积(CONV)和全连接(FC)层涉及向量或矩阵的乘法。通过同态加密技术,如Paillier或BFV,可以在密文空间中执行这些运算。同态加密技术分为加法同态、乘法同态和全同态加密。全同态加密技术如BFV、BGV、CKKS和TFHE支持高效的SIMD Packing,但BFV需要明文模数t为素数。
向量内积
向量内积的计算可以通过SIMD Packing+密文旋转或多项式编码实现。多项式编码方案只需一次同态乘法,性能显著提升。
非线性运算
非线性层计算
ReLU和MaxPool等非线性层涉及比较操作。比较操作可以通过布尔电路加法器或比较树实现。比较树通过分而治之的方法减少了通信轮数和AND门数目。
比较操作所需原语
比较操作需要1-of-2 OT和AND门。Silent OT方案可以在接近0通信开销的情况下生成大量Random Correlated OT,从而优化性能。
截断操作
由于乘法会导致数字增大一个scale的量级,需要能够将秘密分享的密文截断scale倍,维持scale不变。Cheetah协议提供了高效截断协议,通过比较操作和算术加法秘密分享实现。
性能与总结
Cheetah协议在性能上接近3PC框架,计算代价低,通信量中等,通信轮数少。系统最优化的设计需要根据不同的计算任务、底层原语做调整和参数选取。具体优化包括选择Mod2"或Mod p、数据编码方式(SIMD或多项式)、比较操作方式(电路、PureAND triple或1-of-N OT)等。
开源与未来
Cheetah协议已开源,并即将开源隐语框架。蚂蚁共享智能+阿里安全部将推动更多相关技术的发展。