【隐私计算】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,scale
是 →定点数:0.5 ×
= 16384
问题:乘法会让数字增大一个scale
的量级
0.5 × 0.5 → 16384 x 16384 = 268435456 = 0.25 ×
做几次乘法,就会溢出MPC的表示范围(如 )
需要设计协议将秘密分享的密文截断scale
倍,维持scale
不变,即 268435456 >> 15 = 0.25 x
-
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的协议可以直接接受
的秘密份额,而不局限于
, 避免了额外的计算和通信开销;
-
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语言-数据结构】顺序表的基本操作
顺序表的基本操作 【建议:如果对结构体还不太理解的话可以先看 C语言-结构体 这篇文章】 插入操作 ListInsert(&L,i,e):插入操作,在表 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 原理(提交对象) 这一块主要讲述下 Git 的原理。 在进行提交操作时,Git 会保存一个提交对象(commit object): 该提交对象会包含一个指向暂存内容快照的指针; 该提交对象还包含了作者的姓…...

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

【JAVA入门】Day48 - 线程池
【JAVA入门】Day48 - 线程池 文章目录 【JAVA入门】Day48 - 线程池一、线程池的主要核心原理二、自定义线程池三、线程池的大小 我们之前写的代码都是,用到线程的时候再创建,用完之后线程也就消失了,实际上这是不对的,它会浪费计算…...
图像亮度均衡算法
图像亮度均衡算法 图像亮度均衡算法的作用是提升图像的对比度和细节,使得图像的亮度分布更加均匀,从而改善视觉效果。通过调整亮度值,可以更好地揭示图像中的细节,尤其在低光或高光条件下的图像处理。 常见的图像亮度均衡算法包括…...

C++中的new与delete
目录 1.简介 2.底层 1.简介 new是升级版的malloc,它会先开空间再去调用构造函数。 delete是升级版的free,它会先调用析构函数再free掉空间。 class A { public:A(int a10, int b10){a a1;b b1;}private:int a;int b; };int main() {//new会先开空间…...
在HTML中添加视频
在HTML中添加视频,你可以使用<video>标签。这个标签允许你在网页上嵌入视频内容,并支持多种视频格式,如MP4、WebM和Ogg等。不过,由于浏览器对视频格式的支持程度不同,因此通常建议提供多种格式的视频文件&#x…...

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

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

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

【C语言】自定义类型——结构体
目录 一、结构体的类型的声明 二、结构体变量的创建和初始化 三、匿名结构体类型 四、结构体自引用 五、结构体内存对齐 (1)对齐规则 (2)计算结构体大小练习 (3)需要内存对齐的原因 (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设计规则检查(DRC)后报错 Un-Routed Net Constraint ### Net Not Assigned 的解决方案 一、解决方案二、可能会报错Dead Copper的因素三、可能会报错Un-Routed Net Constraint的因素 Un-Routed Net Constraint ### Net Not Assigned 的解决…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...