【课堂笔记】隐私计算实训营第四期:隐私求交PSI

隐私计算实训营第四期:隐私求交PSI

  • 安全求交集(PSI)定义
  • PSI功能和分类
    • 最基础的PSI:Two-Party Semi-Honest PSI
    • 如何设计Two-Party Semi-Honest PSI
      • 方法1:一个基于Hash的PSI
      • 方法2:基于Diffie-Hellman密钥交换的PSI
      • 方法3:基于不经意伪随机函数(OPRF)的PSI
        • Oblivious Pseudo-Random Function,OPRF
        • Cuckoo Hashing and Simple Hashing
    • 应用
      • 交集使用
        • case1:交集是秘密的,但是交集的元素个数是可知的。
        • case2:交集是秘密的,但是和交集相关的数据是可用的。
        • case3:交集是秘密的,但是交集的统计信息可见。
      • 多方PSI
        • 常规多方PSI
        • 特殊多方PSI
      • 计算模型
        • One-way Model
        • Mutual Model
      • 安全模型
        • 半诚实安全PSI
        • 恶意安全PSI
        • 非对称PSI
  • PSI最新进展
    • 离线优化阶段
    • 使用新方法替换掉Cukcoo hashing
    • 在交集上支持安全计算
    • 亿级计算
    • 分钟级别完成
  • PSI和其他隐私计算技术结合
    • PSI + DP
      • case1:PSI Intersection Use
      • case2:性能提升
    • PSI + TEE

安全求交集(PSI)定义

  • 安全求交集:Private Set Intersection(PSI)
  • Ailce 有集合X,Bob 有集合Y,在进行了PSI之后,Alice可以拿到X与Y的交集,但是不会知道Y中的其他元素。
    fig1

PSI功能和分类

最基础的PSI:Two-Party Semi-Honest PSI

  • 用途:计算交集。

    • 交集可以被双方或者一方看到;
    • 保护非交集元素;
  • 什么是半诚实安全?

    • 假设双方为Alice和Bob,其中Alice是攻击者,Alice严格遵守和执行协议,但是对Bob的隐私感兴趣。

如何设计Two-Party Semi-Honest PSI

  • 挑战1:隐藏非交集元素(hiding)
    • 密码学级别的安全隐藏。
    • 可以通过添加噪声来实现信息隐藏。
  • 挑战2:计算交集元素(comparing)
    • 当两元素相等时,即使添加了噪声也应该被计算出来。
  • 挑战3:效率高(efficiency)
    • PSI应用范围广泛,所以应该保证高效率。

方法1:一个基于Hash的PSI

 实际上这种方法并不安全。
  • 基础想法:对元素进行Hash后进行比较。
    • 这里的Hash函数应该是密码学上的Hash,不能进行逆运算。
    • 不能出现碰撞,或者碰撞概率极低。
  • 方法示意图如下:
    fig2

接收者和发送者分别对他们持有的元素进行Hash,然后对Hash结果进行比较。

  • 方法属性:
    • Hiding:Hash函数不可逆。
    • Comparing:相同的元素有相同的Hash值。
    • Efficiency:Hash函数运算效率高。
  • 方法存在的问题:
    • 如果双方的元素是高熵的,那么方法1是大致可行的。
    • 如果X集合和Y集合是无限长的,那么 穷举攻击大概就失效了。但是现实生活中集合不可能是无限长的,而是有限长度的(如身份证号)。

方法2:基于Diffie-Hellman密钥交换的PSI

  • Diffie-Hellman

  • 基础想法:该方法看起来像“Double Encryption”

    • Alice对自己的集合进行“加密”发送给Bob,Bob再对自己的集合进行“加密”发送给Alice,双方对对方发来的密文再“加密”一次,如果元素相同的话再次“加密”得到的数据是一样的。
  • 方法属性:

    • Hiding:明文数据被加密为“密文”数据。
    • Comparing:“加密”满足交换律,与加密次序无关。
    • Efficiency:DH加密效率高。
  • Diffie-Hellman 密钥交换

    • Discrete Logarithm Problem(DLP):给定四个大整数 p 、 g 、 x 、 y p、g、x、y pgxy,满足 g x = y m o d p g^x=y\ mod\ p gx=y mod p,其中 p p p 是一个大素数。满足这样的公示下找到 x x x 是困难的。
    • 计算 g x m o d p g^x\ mod \ p gx mod p 是高效的。(Efficiency)
    • 给定 y 、 g 、 p y、g、p ygp 来求解 x x x 是困难的。(Hiding)
    • g x y m o d p g^{xy}\ mod\ p gxy mod p g y x m o d p g^{yx}\ mod\ p gyx mod p 是相等的。(Comparing)(交换律)
  • 方法示意图如下:
    fig3

接收方先把自己的元素通过密钥a做Hash发送给发送方,发送方对接收到的数据通过自己的密钥b再做Hash后发送给接收方,接收方使用自己的密钥a计算接收到的密文,然后做比较。

方法3:基于不经意伪随机函数(OPRF)的PSI

  • 不经意伪随机函数(OPRF)
  • 基础想法:发送方在自己的集合上计算伪随机函数,然后讲结果发送给接收方;接收方在自己的集合上通过与发送方交互来计算相同的伪随机函数。
  • 方法属性:
    • Hiding:发送方不会得到接收方的明文数据,接收方不知道伪随机函数的计算细节。
    • Comparing:相同的数据使用相同的伪随机函数计算后得到的结果是相同的。
    • Efficiency:OPRF效率高。
Oblivious Pseudo-Random Function,OPRF
  • 什么是不经意伪随机函数(Oblivious Pseudo-Random Function,OPRF)
    • OPRF:给定一个 k k k,它来自发送方,给定一个输入元素 e e e ,它来自接收方。
      • 双方交互地计算 F k ( e ) F_k(e) Fk(e)
      • 接收方知道输出值 F k ( e ) F_k(e) Fk(e) 但是不知道密钥 k k k
      • 发送方不知道输出值 F k ( e ) F_k(e) Fk(e) 和输入值 e e e
  • OPRF for PSI
    • 接收方在自己的集合上使用发送方发来的密钥 k k k 计算OPRF;
    • 发送方在自己的集合上评估OPRF,并把结果发送给接收方;
    • 接受方通过OPRF计算交集。
  • OPRF示意图如下:
    fig4
Cuckoo Hashing and Simple Hashing
  • 接收方使用cuckoo hash来插入他的元素到哈希表;
  • 发送方使用简单hash讲他的元素插入到哈希表;
  • 该方法把OPRF的 O ( n 2 ) O(n^2) O(n2) 次比较减少到 O ( n ) O(n) O(n).
  • 该方法如图:
    fig5
  • 基于OPRF的方法(KKRT PSI Protocol)总结如下图:
    fig6

应用

  • 设计黑/白明单,撞库等等

交集使用

  • 动机
    • 交集可能并不是自身数据,而是属于第三方。
case1:交集是秘密的,但是交集的元素个数是可知的。
  • 只有交集的元素个数对授权方可见。
  • 实现方法:
    • PHE + Polynomial evaluation
    • DH-based PSI with shuffle
case2:交集是秘密的,但是和交集相关的数据是可用的。
  • 交集是加密的,但是交集里的相关数据对于授权方可见。
  • 实现方法:
    • 基于电路的PSI
    • DH-PSI with permutation and PHE
case3:交集是秘密的,但是交集的统计信息可见。
  • 实现方法:
    • FHE PSI + Differential Privacy
    • DH-PSI + Differential Privacy

多方PSI

常规多方PSI
  • 动机
    • 只有 N N N 方的交集才可见。
  • 挑战
    • 任意两方的交集不可见;
  • 实现方法:
    • PHE + Polynomial representation
    • OPPRF
特殊多方PSI
  • 动机
    • 交集在某些两方之间计算,然后结果对一些特殊的参与者可见。
  • 挑战
    • 需要次次修改系统;
    • 需要定制算法。
  • 实现方法:
    • PSI protocol with customization based on requirements

计算模型

One-way Model
  • 动机
    • 只有一方知道交集。
  • 实现方法:
    • OPRF-based PSI
Mutual Model
  • 动机
    • 两方都能看到交集。
  • 实现方法:
    • DH-PSI

安全模型

半诚实安全PSI
  • 动机
    • 简单、高效
    • 大部分隐私计算都是用半诚实PSI
  • 挑战
    • 安全假设太强。
恶意安全PSI
  • 动机
    • 更强的安全性。
    • 更现实的安全性假设。
    • 定义了恶意敌手。
  • 挑战
    • 更多的计算和通信开销。
  • 实现方法:
    • PSI protocol with extra verification
非对称PSI
  • 动机

    • 一方比另一方持有多的元素;
    • 现实中的场景更多。
  • 挑战

    • 在非对称PSI情境下对称PSI的方法效率较低。
  • 实现方法:

    • ECC-OPRF-PSI
    • FHE PSI

PSI最新进展

离线优化阶段

  • 使用最新的OT
  • 使用VOLE替换OT

使用新方法替换掉Cukcoo hashing

  • 引入 Probe-and-Xor-of-Strings(PaXos)
  • 引入 Oblivious Key-Value Store(OKVS)

在交集上支持安全计算

  • Programmable OPRF
  • PSI with DP

亿级计算

  • 高带宽
  • 高算力

分钟级别完成

PSI和其他隐私计算技术结合

PSI + DP

  • 差分隐私是用来保护个体元素的。

case1:PSI Intersection Use

  • 动机
    • 添加噪声,在统计学上是正确的,但是一个元素是否是交集元素变成 “DP难”问题。
  • 挑战
    • 交集是加密的,一方需要在密文上调价噪声很困难。
  • 实现方法:
    • FHE-PSI + DP
    • DH-PSI + DP

case2:性能提升

  • 通过DP减少padding的大小。

PSI + TEE

  • 原始想法:
    • TEE creates salt;
    • 参与方使用salt哈希数据;
    • TEE知道交集;
    • TEE可以将结果发送给参与方。
  • 简单、高效、灵活。
  • 并不是密码学的方法,是硬件方法。

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

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

相关文章

数据结构(基本概念及顺序表——c语言实现)

基本概念: 1、引入 程序数据结构算法 数据: 数值数据:能够直接参加运算的数据(数值,字符) 非数值数据:不能够直接参加运算的数据(字符串、图片等) 数据即是信息的载…

Springboot+Vue的项目搭建(一)

一、JDK配置环境变量 1、在官网下载jdkJava Downloads | Oracle 中国 2、下载之后双击安装。 3、配置环境变量,做法:此电脑->右键->属性->高级系统设置 然后点击确定即可 点击winr java -version 检查一下是否配置成功 二、maven包管理器…

使用 JavaScript 制作 To-Do List

使用 JavaScript 制作 To-Do List 本文记录了使用 HTML、CSS 和 JavaScript 制作一个简单的 To-Do List 网页的全过程,包含功能描述、代码实现以及优化方向。 **🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的…

esp32c3开发板通过micropython的mqtt库连MQTT物联网消息服务器

MQTT介绍 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,旨在设备之间进行通信,尤其是在网络条件较差的情况下。MQTT v3.1.1 和 MQTT v5 是该协议的两个主要版本。 MQTT v3.1.1: 优点&#xff…

stm32启动过程解析startup启动文件

1.STM32的启动过程模式 1.1 根据boot引脚决定三种启动模式 复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于…

数据结构查找-哈希表(开发地址法+线性探测法)+(创建+查找+删除代码)+(C语言代码)

#include<stdlib.h> #include<stdio.h> #include<stdbool.h> #define NULLKEY -1//单元为空 #define DELKEY -2//单元内容被删除 #define M 20 typedef struct {int key;//关键字int count;//统计哈希冲突探测次数 }HashTable; //插入到哈希表 void InsertHT…

〔 MySQL 〕数据类型

目录 1.数据类型分类 2 数值类型 2.1 tinyint类型 2.2 bit类型 2.3 小数类型 2.3.1 float 2.3.2 decimal 3 字符串类型 3.1 char 3.2 varchar 3.3 char和varchar比较 4 日期和时间类型 5 enum和set mysql表中建立属性列&#xff1a; 列名称&#xff0c;类型在后 n…

数据库审计工具--Yearning 3.1.9普民的使用指南

1 页面登录 登录地址:18000 &#xff08;不要勾选LDAP&#xff09; 2 修改用户密码 3 DML/DDL工单申请及审批 工单申请 根据需要选择【DML/DDL/查询】中的一种进行工单申请 填写工单信息提交SQL检测报错修改sql语句重新进行SQL检测&#xff0c;如检测失败可以进行SQL美化后…

tcp 超时计时器

在 TCP&#xff08;传输控制协议&#xff09;中有以下四种重要的计时器&#xff1a; 重传计时器&#xff08;Retransmission Timer&#xff09; 作用&#xff1a;用于处理数据包丢失的情况。当发送方发送一个数据段后&#xff0c;就会启动重传计时器。如果在计时器超时之前没有…

前端(4)——demo分享

这两天需要用HTML、CSS和js简单组合一个html网页用于展示一些数据内容&#xff0c;这是我简单组合别人的一些文件形成的简单demo&#xff0c;大家也可以拿过去使用。 登录界面&#xff1a; 场景选择界面&#xff0c;有五个场景&#xff0c;每个场景中都需要展示一些特定的数据…

Java-空链处理

什么是 null 在 Java 中&#xff0c;null 是一个非常常见的关键字&#xff0c;用于表示“没有值”或“空”。然而&#xff0c;对于初学者来说&#xff0c;null 的本质可能会感到有些困惑。在本文中&#xff0c;我们将详细探讨 null 在 Java 中的含义和使用。 在 Java 中&…

PyTorch使用教程-深度学习框架

PyTorch使用教程-深度学习框架 1. PyTorch简介 1.1-什么是PyTorch ​ PyTorch是一个广泛使用的开源机器学习框架&#xff0c;特别适合深度学习的应用。它以其动态计算图而闻名&#xff0c;允许在运行时修改模型&#xff0c;使得实验和调试更加灵活。PyTorch提供了强大的GPU加…

供应链管理、一件代发系统功能及源码分享 PHP+Mysql

随着电商行业的不断发展&#xff0c;传统的库存管理模式已经逐渐无法满足市场需求。越来越多的企业选择“一件代发”模式&#xff0c;即商家不需要自己储备商品库存&#xff0c;而是将订单直接转给供应商&#xff0c;由供应商直接进行发货。这种方式极大地降低了企业的运营成本…

Pr:音频过渡

Adobe Premiere Pro 自带一组共三个音频过渡 Audio Transitions效果。 对音频剪辑之间应用交叉淡化 Crossfade过渡&#xff0c;操作方式类似于应用视频过渡效果。 对于交叉淡化&#xff0c;要保证前剪辑的出点之后及后剪辑的入点之前有足够的预留内容&#xff08;也称“手柄”&…

前端页面开发步骤详解

目录 前言1. 页面搭建1.1 HTML 标签结构1.2 CSS 样式设计 2. 数据绑定与事件处理2.1 数据绑定2.2 表单校验 3. 调用后台接口3.1 接口文档与工具封装3.2 参数传递与接口调用 结语 前言 在前端开发过程中&#xff0c;从页面搭建到与后台接口对接是一个必不可少的完整流程。无论是…

A037-基于Spring Boot的二手物品交易的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

两行命令搭建深度学习环境(Docker/torch2.5.1+cu118/命令行美化+插件),含完整的 Docker 安装步骤

深度学习环境的配置过于繁琐&#xff0c;所以我制作了两个基础的镜像&#xff0c;希望可以帮助大家节省时间&#xff0c;你可以选择其中一种进行安装&#xff0c;版本说明&#xff1a; base 版本基于 pytorch/pytorch:2.5.1-cuda11.8-cudnn9-devel&#xff0c;默认 python 版本…

EXCEL延迟退休公式

如图&#xff1a; A B为手工输入 C2EOMONTH(A2,B2*12) D2EOMONTH(C2,IF(C2>DATEVALUE("2025-1-1"),INT((DATEDIF(DATEVALUE("2025-1-1"),C2,"m")4)/4),0)) E2EOMONTH(A2,B2*12IF(EOMONTH(A2,B2*12)>DATEVALUE("2025-1-1"),INT(…

区块链技术在数据安全中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 区块链技术在数据安全中的应用 区块链技术在数据安全中的应用 区块链技术在数据安全中的应用 引言 区块链技术基础 1.1 区块链的…