Data security.隐私保护-多方安全计算技术基础

文章目录

  • Data security.隐私保护-多方安全计算技术基础
  • 一、多方安全计算的背景
    • 1.定义
    • 2.分类
      • 2.1不诚实参与方数量
      • 2.2敌手行为
      • 2.3敌手计算能力
      • 2.4输出可达性
      • 2.5计算模型
      • 2.6腐化策略(攻击者确定攻破并控制参与方的策略)
      • 2.7通信网络
    • 3.设计方法
      • 3.1秘密共享(Secret Sharing)
      • 3.2混淆电路(Garbled Circuit)
        • 不经意传输(Oblivious Transfer)
  • 二、混淆电路
    • 1.基本概念
    • 2.不经意传输(OT)
    • 3.不经意传输扩展
    • 4.不经意线性函数计算
    • 5.Yao两方安全计算协议基本框架
    • 6.恶意敌手模型下2PC协议
      • 6.1电路级C&C
      • 6.2门级C&C
      • 认证混淆电路方法
    • 7.常数轮多方安全计算协议
  • 三、秘密分享
    • 1.线性秘密分享
    • 2.MPC几类常用秘密分享方案
    • 3.基于秘密分享的MPC协议框架


Data security.隐私保护-多方安全计算技术基础


一、多方安全计算的背景

1.定义

多方安全计算(SMPC)用于解决一组互不信任的参与方各自持有秘密数据,协同计算一个既定函数的问题。多方安全计算在保证参与方获得正确结果的同时,无法获得计算结果之外的任何信息。在整个计算过程中,参与方对其所拥有的数据始终拥有绝对的控制权。

e.g.在一个分布式的网络中,有n个互不信任的参与方P1、P2、…、Pn,每个参与方Pi持有秘密数据xi (i=1,2,3,…,n)。这n个参与方执行既定函数,f(x1,x2,…,xn)→(y1,y2,…,yn),其中yi为参与方Pi得到的输出结果。任意参与方Pi除yi之外无法获得关于其他参与方Pj(i!=j)的任何输入信息。如果y1=y2=…=yn,则可以简单表示为f(x1,x2,…,xn)→y。

2.分类

2.1不诚实参与方数量

设t为不诚实的参与方的数量,n为总的参与方的数量
在这里插入图片描述

  • 诚实大多数:t<n/2
  • 不诚实大多数:t≥n/2(通常t=n-1)

2.2敌手行为

  • 半诚实敌手
    被动攻击、按照协议规定执行、可根据协议记录攻击隐私性
  • 恶意敌手
    主动攻击、执行任意攻击、发送任意消息

2.3敌手计算能力

  • 概率多项式时间
    计算安全协议。不诚实大多数、诚实大多数
  • 无限计算能力
    信息论安全协议。仅诚实大多数

2.4输出可达性

在不诚实大多数(t≥n/2)下可达到:

  • 中止安全(security with abort):恶意实体获得输出后,可终止协议,使诚实实体不能获得输出

在诚实大多数(t<n/2)下可达到:

  • 公平性(Fairness):如果一个实体获得输出,那么所有实体获得输出
  • 保证输出传送(Guaranteed output delivery):所有实体一定获得输出

大部分高效的MPC协议考虑中止安全性

2.5计算模型

大部分MPC协议考虑电路模型:

  • 布尔电路:由逻辑门(XOR、AND)组成的电路
  • 算术电路:域/环上操作(ADD、MULT)组成的电路

RAM-MPC研究相对较少,适合数据库输入:

  • RAM程序:由读、写操作组成的程序

2.6腐化策略(攻击者确定攻破并控制参与方的策略)

  • 静态腐化(static corruption):被腐化实体在协议运行前确定
  • 自适应腐化(adaptive corruption):敌手在协议运行过程中自适应决定腐化哪些实体

2.7通信网络

  • 同步网络:同一个交互轮的消息在固定延时 Δ \Delta Δ内一定到达
  • 异步网络:没有要求同步时钟,也没有要求预先固定的网络延时,更加现实的网络假设(要求t<n/3)

实际高效的MPC协议主要考虑静态腐化与同步网络

3.设计方法

3.1秘密共享(Secret Sharing)

秘密共享通过将秘密信息分割成若干的秘密份额并分发给多人掌管,以此来达到风险分散和容忍入侵的目的。一般来说,一个秘密共享方案由一个秘密分割算法和一个秘密重组算法构成,包含秘密分发者、秘密份额持有者和接收者三类角色。秘密分发者持有秘密信息并且负责执行秘密分割算法,并将秘密份额分发给秘密份额持有者。接收者是试图重组秘密信息的一方。当接收者希望重组秘密信息时,将从一组授权的秘密份额持有者中收集秘密份额,并执行秘密重组算法计算秘密信息,当有充足的秘密份额就可以重新恢复出秘密信息。一个参与方可以承担多个角色。

  • 通信带宽低、吞吐率高
  • 轮数与电路深度成线性关系

只适用于低延迟

3.2混淆电路(Garbled Circuit)

混淆电路是由姚期智先生提出的针对半诚实敌手模型的两方安全计算协议,核心思想是将任何函数的计算问题转化为由“与门”、“或门”和“非门”组成的布尔逻辑电路,再利用加密技术构建加密版本的布尔逻辑电路。姚氏混淆电路包含布尔逻辑电路构建和布尔逻辑电路计算两部分。

  • 通信带宽高
  • 常数轮复杂度

可用于高延迟

部分MPC协议融合了上述两种设计方法

不经意传输(Oblivious Transfer)

如下图所示,该协议中发送方Alice拥有两个秘密消息x0和x1,接收者Bob选择并且仅能恢复其中的一个秘密消息xb(b∈{0,1}),但无法得到关于x1-b的任何消息,Alice无法知晓接收方选择的是哪一个消息。
在这里插入图片描述

二、混淆电路

1.基本概念

在这里插入图片描述
如图,可以把混淆电路理解为有四个算法:首先是Garble(混淆)算法,它把要计算的函数对应的电路C作为输入,输出被混淆的电路GC、解码信息d和编码信息e;之后,将输入信息x和编码信息e作为输入,通过Encode(编码)算法,得到输出X,即加密后的输入信息;之后,Eval(求解)算法把被混淆的电路GC和加密后的输入信息X作为输入,得到加密后的输出信息Y;最后,通过Decode(解码)算法,以Y和d作为输入解码得到解码后的输出y。

2.不经意传输(OT)

在这里插入图片描述
OT: 协议中发送方Alice拥有两个秘密消息m0和m1,接收者Bob选择并且仅能恢复其中的一个秘密消息mb(b∈{0,1}),但无法得到关于m1-b的任何消息,Alice无法知晓接收方选择的是哪一个消息。
ROT: 是OT的变形,相较于OT,功能基本相同,但是消息是随机的,而接收者的选择也是随机的,而不是自选。
COT: 相关性的OT,功能也等价于OT,但是消息r和接受者的选择满足一个相关性。
在这里插入图片描述

3.不经意传输扩展

在这里插入图片描述

  • IKNP类
  • PCG类
  • PCF类

目前,计算几百/几千个OTs,IKNP类协议效率更高;计算上万个OTs,PCG类协议效率更高

4.不经意线性函数计算

在这里插入图片描述
协议比较:
在这里插入图片描述

tip:LWE为基于容错学习假设,LPN为基于带噪声学习假设(可用于对抗量子计算攻击者)

5.Yao两方安全计算协议基本框架

在这里插入图片描述

6.恶意敌手模型下2PC协议

Yao 2PC协议在半诚实敌手模型下安全,那么如何实现恶意敌手模型下2PC协议?即如何检测Garbler的恶意行为?可以采用Cut-and-Choose(C&C)方法

6.1电路级C&C

在这里插入图片描述

  • Garbler计算n个GCs
  • Evaluator随机选择一半GCs打开检查正确性
  • 如果都通过检查,则剩下一半的GCs用于计算

6.2门级C&C

在这里插入图片描述

  • Garbler计算n个混淆AND门
  • Evaluator随机选择一半打开检查正确性
  • 如果都通过检查,则剩下一半的混淆AND门粘合成一个GC

认证混淆电路方法

而目前,认证混淆电路方法效率会优于C&C方法,得到更多的使用。

  • 通过信息论消息认证码(IT-MAC)实现电路认证,保证计算结果正确性
  • 通过混淆电路的分布式生成,抵抗选择失败攻击(敌手猜测部分比特,观察协议是否中止)

在这里插入图片描述

7.常数轮多方安全计算协议

  • 核心问题:存在多个Garbler,如何抵抗合谋攻击?
  • 解决思路:所有参与方共同计算混淆电路

在这里插入图片描述

三、秘密分享

1.线性秘密分享

方案:

  • Share(x)→[x]=(x1,…,xn):将秘密x拆分成多个share,分给多个参与方
  • Reconstruct([x],i)→x:一定数量的参与方可以通过重构算法恢复出秘密x
  • Open([x])→x:拆分出的多个share一起可以还原秘密x

性质:

  • 割裂性:拥有部分key的参与方仅靠自身无法知道最终正确的结果,必须联合多个参与方
  • 决定性:对于严格的模式,必须所有参与方联合,才具有决定性(可恢复秘密);对于阈值的模式,需要至少约定数量的参与方联合,才具有决定性(可恢复秘密)
  • 加法同态性:[y]=∑ch*[xh]+c0(只需本地计算,无需通信)

2.MPC几类常用秘密分享方案

  • 加法秘密分享 (常用于不诚实大多数MPC)
  • Shamir秘密分享(阈值的秘密分享)(常用于诚实大多数MPC)
  • 复制秘密分享
  • 打包秘密分享

秘密分享方案详解

3.基于秘密分享的MPC协议框架

半诚实MPC协议的设计基本思路: 所有电路线值均被线性秘密分享,保证隐私性

  • 输入处理:对于Pi的每一个输入x,Pi运行[x]←Share(x)
  • 电路计算:

在这里插入图片描述

  • 输出处理:对于Pi的每个输出y,所有参与方运行y=Reconstruct([y],i)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/153946.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Apache和Resin环境中实现HTTP到HTTPS的自动跳转:一次全面的探讨与实践

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

设计模式 - 观察者模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 观察者模式属于行为型模式。在程序设计中&#xff0c;观察者模式通常由两个对象组成&#xff1a;观察者和被观察者。当被观察者状态发生改变时&#xff0c;它会通知所有的观察者对象&#xff0c;使他们能够及时做出响应&#xf…

rustlings本地开发环境配置

克隆自己的仓库 首先我们要在github上找到自己仓库并把它克隆到本地 git clone https://github.com/LearningOS/rust-rustlings-2023-autumn-******.git下载插件 rust-analyzer和Git Graph一个可以用来解析rust代码&#xff0c;另一个可以可视化管理git代码库 下载rustling…

基于安卓android微信小程序音乐播放器

运行环境 小程序前端框架&#xff1a;uniapp 小程序运行软件&#xff1a;微信开发者 后端技术:javaSsm(SpringSpringMVCMyBatis)vue.js 后端开发环境:idea/eclipse 数据库:mysql 项目介绍 音乐播放器小程序的设计主要是对系统所要实现的功能进行详细考虑&#xff0c;确定所要…

SpringCloud学习二

基本介绍&#xff1a; Eureka Server&#xff08;Eureka 服务端&#xff09;是Netflix开源的一款用于构建分布式系统中的服务发现和注册中心的组件。它在微服务架构中扮演着关键的角色&#xff0c;允许不同的微服务应用程序注册自己&#xff0c;并查询其他服务的位置信息&…

Rust专属开发工具——RustRover发布

JetBrains最近推出的Rust集成开发工具——RustRover已经发布&#xff0c;官方网站&#xff1a;RustRover: Rust IDE by JetBrains JetBrains出品过很受欢迎的开发工具IntelliJ IDEA、PyCharm等。 RustRover优势 Rust集成环境&#xff0c;根据向导可自动下载安装rust开发环境提…

Hadoop-2.5.2平台环境搭建遇到的问题

文章目录 一、集群环境二、MySQL2.1 MySQL初始化失败2.2 MySQL启动报错2.3 启动时报不能打开日志错2.4 mysql启动时pid报错 二、Hive2.1 Hive修改core-site.xml文件后刷新权限2.2 Hive启动元数据时报错2.3 Hive初始化MySQL报错2.3.1 报错信息2.3.2 错误原因2.3.3 参考文档 2.4 …

归纳所猜半结论推出完整结论:CF1592F1

https://www.luogu.com.cn/problem/CF1592F1 场上猜了个结论&#xff0c;感觉只会操作1。然后被样例1hack了。然后就猜如果 ( n , m ) (n,m) (n,m) 为1则翻转4操作&#xff0c;被#14hack了。然后就猜4操作只会进行一次&#xff0c;然后就不知道怎么做下去了。 上面猜的结论都…

[CISCN2019 总决赛 Day2 Web1]Easyweb 盲注 \\0绕过 文件上传文件名木马

首先开局登入 我们开始目录扫描 扫除 robots.txt 现在只有三个文件 最后发现 只有 image.php.bak存在 这里主要的地方是 \\0 因为第一个\会被转义 这里就会变为 \0 表示空白 那我们sql语句就会变为了 select * from images where id\0 但是这里我们不可以使用 \\ 因为…

计算机视觉--距离变换算法

计算机视觉 文章目录 计算机视觉前言距离变换 总结 前言 计算机视觉CV是人工智能一个非常重要的领域。 在本次的距离变换任务中&#xff0c;我们将使用D4距离度量方法来对图像进行处理。通过这次实验&#xff0c;我们可以更好地理解距离度量在计算机视觉中的应用。希望大家对计…

Arcgis日常天坑问题(1)——将Revit模型转为slpk数据卡住不前

这段时间碰到这么一个问题&#xff0c;revit模型在arcgis pro里导出slpk的时候&#xff0c;卡在98%一直不动&#xff0c;大约有两个小时。 首先想到的是revit模型过大&#xff0c;接近300M。然后各种减小模型测试&#xff0c;还是一样的问题&#xff0c;大概花了两天的时间&am…

基于ffmpeg给视频添加时间字幕

FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序&#xff0c;我们可以基于ffmpeg对视频进行各种操作。本文主要介绍基于ffmpeg给视频添加字幕&#xff0c;字幕的内容为视频所播放的时间&#xff08;故需要安装ffmpeg&#xff0c;具…

【Python】实现excel文档中指定工作表数据的更新操作

在做数值计算时&#xff0c;个人比较习惯利用excel文档的公式做数值计算进行对比&#xff0c;检查异常&#xff0c;虽然计算量大后&#xff0c;excel计算会比较缓慢&#xff0c;但设计简单&#xff0c;易排错 但一般测试过程中使用到的数据都不是最终数值&#xff0c;会不停根据…

【chrome基础】Chrome、Chromium、libcef、electron版本关系大揭秘!

文章目录 概述chrome、Chromium、cef、electron 版本管理chrome的各种概念和学习资料V8 bindings 设计谷歌V8引擎探秘&#xff1a;基础概念Chrome 的插件&#xff08;Plugin&#xff09;与扩展&#xff08;Extension&#xff09;Chrome插件开发 概述 Chrome、Chromium、libcef、…

使用GitLab CI/CD 定时运行Playwright自动化测试用例

创建项目并上传到GitLab npm init playwright@latest test-playwright # 一路enter cd test-playwright # 运行测试用例 npx playwright test常用指令 # Runs the end-to-end tests. npx playwright test# Starts the interactive UI mode. npx playwright

Oracle 简介与 Docker Compose部署

最近&#xff0c;我翻阅了在之前公司工作时的笔记&#xff0c;偶然发现了一些有关数据库的记录。当初&#xff0c;我们的项目一开始采用的是 Oracle 数据库&#xff0c;但随着项目需求的变化&#xff0c;我们不得不转向使用 SQL Server。值得一提的是&#xff0c;公司之前采用的…

Servlet

Servlet Servlet是Java提供的一门动态web资源开发技术&#xff0c;其实就是一个接口&#xff08;规范&#xff09;&#xff0c;将来我们需要自定义Servlet类实现Servlet接口即可&#xff0c;并由web服务器运行Servlet。 快速入门 创建Web项目&#xff0c;导入Servlet依赖坐标…

linux 安装下载conda并创建虚拟环境

目录 1. 下载安装2. 创建虚拟环境1. 下载安装 在window操作系统中下载anconda包,并通过scp传输到ubuntu操作系统 具体anconda包在如下界面: anconda包 目录 博主选择了最新的包:Anaconda3-2023.09-0-Linux-x86_64.sh 通过scp传输到ubuntu操作系统中: 并在ubuntu操作系…

8、Docker数据卷与数据卷容器

一、数据卷(Data Volumes) 为了很好的实现数据保存和数据共享&#xff0c;Docker提出了Volume这个概念&#xff0c;简单的说就是绕过默认的联合文件系统&#xff0c;而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。 数据卷 是一个可供一个或多个容器使用的特殊目…

信息系统项目管理师第四版学习笔记——项目进度管理

项目进度管理过程 项目进度管理过程包括&#xff1a;规划进度管理、定义活动、排列活动顺序、估算活动持续时间、制订进度计划、控制进度。 规划进度管理 规划进度管理是为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档的过程。本过程的主要作用是为如何在…