当前位置: 首页 > news >正文

【隐私计算】Cheetah安全多方计算协议-阿里安全双子座实验室

2PC-NN安全推理与实际应用之间仍存在较大性能差距,因此只适用于小数据集或简单模型。Cheetah仔细设计DNN,基于格的同态加密、VOLE类型的不经意传输和秘密共享,提出了一个2PC-NN推理系统Cheetah,比CCS'20的CrypTFlow2开销小的多,计算效率更快,通信效率更高。主要贡献有两点:

  • 基于格的同态加密的协议可在不进行任何昂贵同态Rotation操作的情况下评估线性层;

  • 提出了非线性函数的几个精简且通信高效的原语。

一、优化技术

Fast Convolution

ResNet50有49个卷积层,卷积中的一次过滤等于向量内积,一次卷积等于矩阵-向量乘。

矩阵×向量等于18、26,把矩阵变换为多项式,将向量代入多项式中,再将两个多项式进行乘法,18与26就是其中某个系数,我们只要把这个系数选出来就可以完成矩阵、向量乘。 

Ring-LWE(如BGV)加密,支持多项式同态计算。

 Ring-LWE与卷积层的天然结合,大大提升了性能。

SilentOT

非线性操作(Sigmoid / ReLU)一般需要使用OT/GC实现

  • CryptFLOW2已经证明纯OT方案比OT+GC好
  • CryptFLOW2使用的是IKNP-OT系列方案(Crypto03,CCS13)

自Boyleet.al.(CCS19)起,学者提出了一系列新一代SilentoT方案

  • Ferret (CCS20),Silver(Crypto21)

  • 通信量远低于IKNP-OT,计算量稍高于IKNP-OT

但是直接将已有协议中的IKNP-OT替换为Silent OT并不能取得提升(SIRNN、SP21),需要结合其他创新点,而不是简单的替换。

Truncation

MPC下很难表示浮点数→一般使用带scale(精度)的定/点整数表示小数

例如:明文0.5,scale2^{15} →定点数:0.5 × 2^{15} = 16384

问题:乘法会让数字增大一个scale的量级

0.5 × 0.5 → 16384 x 16384 = 268435456 = 0.25 × 2^{30}

做几次乘法,就会溢出MPC的表示范围(如 2^{64})

需要设计协议将秘密分享的密文截断scale倍,维持scale不变,即 268435456 >> 15 = 0.25 x 2^{15} 

  • SecureML(SP17)、DELPHI(USENIX'Sec20)的本地截断方案有小概率出错,不适合ResNet这种大型网络

      例:x=x1+x2,但(x>>15) != (x1>>15)+(x2>>15)

  • CryptFLOW2的截断协议没有错误,但是成本很高。整个推理中50%+的成本花在截断...

2个Share本地截断加2个修正才能得到真正的截断结果,然而其中1个修正没有必要,所以只保留有意义的修正,以降低截断成本,此时再结合Silent OT,如此便能得到非常显著的提升。

采用新的truncation协议,解决大错误,但是容忍1bit错误,实验证实1bit错误对NN推理结果没有影响。

 当待Truncation的数符号已知的时候(如ReLU)性能可以进一步提升。

二、性能提升

结合其他创新点:SlientOT优化比较协议、RLWE密文压缩、Batchnorm fuse等。

相比CryptFLOW2,在同网LAN和跨网WAN性能下都提升了数倍,80s完成ResNet50推理。

注:SecureQ8是需要非共谋第三方辅助的方案

三、算子实现

非线性算子实现

  • 底层基于EMP-toolkit开源库的Ferret RCOT

  • 衍生出各种OT primitive

  • 非线性算子调用OT primitive

线性算子实现

  • 使用RLWE生成自定义大小的(矩阵)乘法三元组(基于SEAL)

  • *为了更具备通用性,与Cheetah原论文的乘法设计有所不同

四、如何在隐语中使用Cheetah

  • 在配置中设置协议类型为Cheetah即可

    • C++: protocol_kind=4

    • Python: "protocol": "CHEETAH"

  • 上层应用代码无需改动

总结

Cheetah提供了一个高度优化的2PC-NN推理架构, WAN设定下,在不到2.5分钟的时间内对ResNet50模型进行安全推理,消耗2.3GB的通信量, 非常高效, 适合大规模神经网络训练推理, 是目前最好的2PC-NN工作之一。

  • 卷积和矩阵向量乘法中涉及的同态Rotation旋转操作是基于格的HE方案的性能瓶颈之一,Cheetah通过构造映射巧妙地消除了同态Rotation运算,也没有使用SIMD,加快了同态运算的效率;

  • 基于HE的协议可以直接接受Z_{2^\iota }的秘密份额,而不局限于Z_p, 避免了额外的计算和通信开销;

  • Cheetah使用了基于VOLE类型的OT扩展协议来构造高效、精简的非线性计算协议, 如截断、比较协议等, 极大降低了安全推理的计算和通信开销。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ls 命令:列出目录
  • 探索自闭症寄宿学校的专属教育模式
  • 相图数据对于纳米材料研究的积极作用
  • 【Redis入门到精通三】Redis核心数据类型(List,Set)详解
  • 解决selenium爬虫被浏览器检测问题
  • [第一章]java快速入门
  • 6.C_数据结构_查询_哈希表
  • 【深度学习 Transformer VIT】Transformer VIT:拆解“视觉变形金刚”,笑谈技术细节
  • 十种果冻的做法
  • 生信初学者教程(四):软件
  • 一起对话式学习-机器学习03——模型评估与模型选择
  • 中电信翼康基于Apache Dolphinscheduler重构“星海·济世医疗数据中台”实践经验分享
  • 【网络通信基础与实践第四讲】用户数据报协议UDP和传输控制协议TCP
  • JavaWeb纯小白笔记02:Tomcat的使用:发布项目的三种方式、配置虚拟主机、配置用户名和密码
  • 什么是上层建筑?
  • 4个实用的微服务测试策略
  • Android Volley源码解析
  • export和import的用法总结
  • Facebook AccountKit 接入的坑点
  • GraphQL学习过程应该是这样的
  • Hexo+码云+git快速搭建免费的静态Blog
  • HTML中设置input等文本框为不可操作
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • nfs客户端进程变D,延伸linux的lock
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • React中的“虫洞”——Context
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • underscore源码剖析之整体架构
  • XForms - 更强大的Form
  • 从重复到重用
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 一、python与pycharm的安装
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​Spring Boot 分片上传文件
  • ​渐进式Web应用PWA的未来
  • ![CDATA[ ]] 是什么东东
  • (+4)2.2UML建模图
  • (06)金属布线——为半导体注入生命的连接
  • (5)STL算法之复制
  • (function(){})()的分步解析
  • (二)原生js案例之数码时钟计时
  • (附源码)php投票系统 毕业设计 121500
  • (六)vue-router+UI组件库
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (五)c52学习之旅-静态数码管
  • .bat批处理出现中文乱码的情况
  • .NET 中的轻量级线程安全
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net打印*三角形
  • /bin/bash^M: bad interpreter: No such file ordirectory