当前位置: 首页 > 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扩展协议来构造高效、精简的非线性计算协议, 如截断、比较协议等, 极大降低了安全推理的计算和通信开销。

相关文章:

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

2PC-NN安全推理与实际应用之间仍存在较大性能差距,因此只适用于小数据集或简单模型。Cheetah仔细设计DNN,基于格的同态加密、VOLE类型的不经意传输和秘密共享,提出了一个2PC-NN推理系统Cheetah,比CCS20的CrypTFlow2开销小的多&…...

Python 实现Excel XLS和XLSX格式相互转换

在日常工作中,我们经常需要处理和转换不同格式的Excel文件,以适应不同的需求和软件兼容性。Excel文件的两种常见格式是XLS(Excel 97-2003)和XLSX(Excel 2007及以上版本)。本文将详细介绍如何使用Python在XL…...

黑马智数Day1

src文件夹 src 目录指的是源代码目录,存放项目应用的源代码,包含项目的逻辑和功能实现,实际上线之后在浏览器中跑的代码就是它们 apis - 业务接口 assets - 静态资源 (图片) components - 组件 公共组件 constants…...

网络协议全景:Linux环境下的TCP/IP、UDP

目录 1.UDP协议解析1.1.定义1.2.UDP报头1.3.特点1.4.缓冲区 2.TCP协议解析2.1.定义2.2.报头解析2.2.1.首部长度(4位)2.2.2.窗口大小2.2.3.确认应答机制2.2.4.6个标志位 2.3.超时重传机制2.4.三次握手四次挥手2.4.1.全/半连接队列2.4.2.listen2.4.3.TIME_…...

制造企业MES系统委外工单管理探析

一、委外工单管理的重要性 在制造企业的生产过程中,委外工单管理是一项重要且复杂的任务。委外加工是指企业将某些生产任务外包给外部供应商完成,以降低成本、提高效率或满足特定需求。然而,委外加工过程中往往存在诸多不确定性,…...

【C语言-数据结构】顺序表的基本操作

顺序表的基本操作 【建议&#xff1a;如果对结构体还不太理解的话可以先看 C语言-结构体 这篇文章】 插入操作 ListInsert(&L,i,e)&#xff1a;插入操作&#xff0c;在表 L 中的第 i 个位置上插入指定元素 e 代码实现 #include <stdio.h> #include <stdbool.…...

使用Renesas R7FA8D1BH (Cortex®-M85)实现多功能UI

目录 概述 1 系统框架介绍 1.1 模块功能介绍 1.2 UI页面功能 2 软件框架结构实现 2.1 软件框架图 2.1.1 应用层API 2.1.2 硬件驱动层 2.1.3 MCU底层驱动 2.2 软件流程图 4 软件功能实现 4.1 状态机功能核心代码 4.2 页面功能函数 4.3 源代码文件 5 功能测试 5.1…...

【java】常见限流算法原理及应用

目录 前言 限流的作用 4种常见限流算法 固定窗口限流 基本原理 简单实现 优点和缺点 滑动窗口限流 基本原理 简单实现 优点和缺点 漏桶限流 基本原理 简单实现 优点和缺点 令牌桶限流 基本原理 简单实现 优点和缺点 算法比较与选择 前言 在现代分布式系统…...

Git 原理(提交对象)(结合图与案例)

Git 原理&#xff08;提交对象&#xff09; 这一块主要讲述下 Git 的原理。 在进行提交操作时&#xff0c;Git 会保存一个提交对象&#xff08;commit object&#xff09;&#xff1a; 该提交对象会包含一个指向暂存内容快照的指针&#xff1b; 该提交对象还包含了作者的姓…...

STM32如何修改外部晶振频率和主频

对于STM32F10x系列的单片机&#xff0c;除了STM32F10x_CL单片机&#xff0c;其它的单片机一般外部晶振HSE的时钟频率都默认是8MHz。如果我们使用的外部晶振为12Mhz&#xff0c;那么可以把上图绿色标记改为:12000000 72MHz的主频8MHz的外部晶振HSE*倍频系数9。当然如果像上面把外…...

【JAVA入门】Day48 - 线程池

【JAVA入门】Day48 - 线程池 文章目录 【JAVA入门】Day48 - 线程池一、线程池的主要核心原理二、自定义线程池三、线程池的大小 我们之前写的代码都是&#xff0c;用到线程的时候再创建&#xff0c;用完之后线程也就消失了&#xff0c;实际上这是不对的&#xff0c;它会浪费计算…...

图像亮度均衡算法

图像亮度均衡算法 图像亮度均衡算法的作用是提升图像的对比度和细节&#xff0c;使得图像的亮度分布更加均匀&#xff0c;从而改善视觉效果。通过调整亮度值&#xff0c;可以更好地揭示图像中的细节&#xff0c;尤其在低光或高光条件下的图像处理。 常见的图像亮度均衡算法包括…...

C++中的new与delete

目录 1.简介 2.底层 1.简介 new是升级版的malloc&#xff0c;它会先开空间再去调用构造函数。 delete是升级版的free&#xff0c;它会先调用析构函数再free掉空间。 class A { public:A(int a10, int b10){a a1;b b1;}private:int a;int b; };int main() {//new会先开空间…...

在HTML中添加视频

在HTML中添加视频&#xff0c;你可以使用<video>标签。这个标签允许你在网页上嵌入视频内容&#xff0c;并支持多种视频格式&#xff0c;如MP4、WebM和Ogg等。不过&#xff0c;由于浏览器对视频格式的支持程度不同&#xff0c;因此通常建议提供多种格式的视频文件&#x…...

YoloV10 训练自己的数据集(推理,转化,C#部署)

目录 一、下载 三、开始训练 train.py detect.py export.py 超参数都在这个路径下 四、C#读取yolov10模型进行部署推理 如下程序是用来配置openvino 配置好引用后就可以生成dll了 再创建一个控件&#xff0c;作为显示 net framework 4.8版本的 再nuget工具箱里下载 …...

Science Robotic 内在触觉实现直观的物理人机交互

触觉传感器和电子皮肤是为机器人提供物理交互感的常见设备&#xff0c;但当用于机器人的大面积覆盖时&#xff0c;它们会变得复杂且昂贵。德国宇航中心近期发表的Science Robotics研究工作&#xff0c;使用内部高分辨率关节力扭矩传感器&#xff0c;在机械臂中实现了固有的全身…...

string类(C++)

哈喽各位&#xff01;&#xff0c;久违了&#xff0c;最近怎么样捏&#xff0c;本次进入C的string类&#xff0c;加油加油呀&#xff01; 随记&#xff1a;鼓励创新&#xff0c;宽容失败&#xff01; 1.标准库的string类 1.1string类的了解 string的文献参考链接-->strin…...

【C语言】自定义类型——结构体

目录 一、结构体的类型的声明 二、结构体变量的创建和初始化 三、匿名结构体类型 四、结构体自引用 五、结构体内存对齐 &#xff08;1&#xff09;对齐规则 &#xff08;2&#xff09;计算结构体大小练习 &#xff08;3&#xff09;需要内存对齐的原因 &#xff08;4…...

MySQL练手题--日期连续类型(困难)

一、准备工作 Create table If Not Exists Failed (fail_date date); Create table If Not Exists Succeeded (success_date date); Truncate table Failed; insert into Failed (fail_date) values (2018-12-28); insert into Failed (fail_date) values (2018-12-29); inser…...

【AD24报错】运行DRC后出现 Un-Routed Net Constraint ### Net Not Assigned 的解决方案

AD24在运行PCB设计规则检查&#xff08;DRC&#xff09;后报错 Un-Routed Net Constraint ### Net Not Assigned 的解决方案 一、解决方案二、可能会报错Dead Copper的因素三、可能会报错Un-Routed Net Constraint的因素 Un-Routed Net Constraint ### Net Not Assigned 的解决…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...