隐私计算实训营学习六:隐语PIR介绍及开发指南

文章目录

  • 一、隐语实现的PIR总体介绍
    • 1.1 PIR的定义和种类
    • 1.2 隐语PIR功能分层
  • 二、Index PIR-SealPIR介绍
  • 三、Keyword PIR- Labeled PSI介绍
  • 四、隐语PIR后续计划

一、隐语实现的PIR总体介绍

1.1 PIR的定义和种类

PIR(Private Information Retrieval PIR)隐匿查询:用户查询服务端数据库中的数据,但服务端不知道用户查询的是哪些数据。
在这里插入图片描述
分类:

  1. 按服务器数量分类:单服务器方案(Single Server)、多服务器方案(Multi-Server)。
  2. 按查询类型分类:Index PIR、Keyword PIR。

隐语目前支持的PIR方式:

  1. Single Server Index PIR : SealPIR。

  2. Single Server Keyword PIR:Labeled PSI。

1.2 隐语PIR功能分层

隐语PIR实现位置: 实现位置主要在SPU的代码库。 下层依赖YACL的密码库,上层secretflow层有相应的调用接口(pir_setup、pirquery及基于内存的pir_mem_query)。
在这里插入图片描述
隐语PIR预处理调用接口pir_setup: 提示pir_setup 单方任务,可以使用的secretflow单机模拟配置,或者直接调用spu的python接口。

'''
pir_setup 数据预处理,参数说明:
input_path:服务端数据文件路径,建议绝对路径
key_columns:Key对应的列名
label_columns:Label对应的列名,多列,用逗号分隔
oprf_key_path:服务端ecc密钥文件,32B,二进制文件
mum_per_query:每次查询的id数量
label_max_len:Label数据拼接后填充到固定的长度大小
'''
reports = spu.pir_setup(server='bob',input_path='/path/B_PIR_DATA.csv',key_columns='id',label_columns=['register_date','age'],oprf_key_path='/path/oprf_key.bin',setup_path='/path/setup_path',num_per_query=1,label_max_len=18,
)

隐语PIR调用接口pir_query:

#pir_query双方执行查询任务, 参数说明:
'''
客户端配置input_path:查询id对应的csv文件路径Key_columns:Key对应的列名output_path:PIR查询结果输出的文件路径
#服务端配置oprf_key_path:服务端ecc密钥文件,32B,二进制文件setup_path:预处理阶段结果输出路径
'''
# client
alice_config = {'input_path':/path/A_PIR_ID.csv’,'key_columns’: id','output_path':/path/sf_pir_out.csv’,
}
# server
bob_config = {'oprf_key_path':/path/oprf_key.bin,'setup_path':/path/setup_path’,
}
query_config = {alice: alice_config,bob: bob_config,
}
reports = spu.pir_query(server='bob’,config=query_config,
)

二、Index PIR-SealPIR介绍

Index PIR-SealPIR: 隐语实现的Index PIR基于SealPIR,SealPIR基于BFV的同态方案,SealPIR主要用到的多项式为密文加法、明文乘密文、密文替换。
在这里插入图片描述
SealPIR基于同态密码实现Index PIR的基本原理: 客户端将查询向量(0,1向量)使用同态算法进行加密,加密后发送给服务端,服务端使用该数据进行累积得待查询数据加密结果,返回給客户端;客户端解密得到带查询数据。
存在问题:请求的消息报文太大,包含了n个密文向量。
在这里插入图片描述
SealPIR主要贡献:
1、多个数据pack到一个HE Plaintext同态明文多项式:查询的db_index转换为plaintext_index。 原始数据B1、B2、B3pack到明文多项式P1,B4、B5、B6pack到P2,用户查询B4情况下,需要将数据库的查询index转换为多项式的查询index P2,服务端返回P2的加密值,客户端同态解密得到明文多项式,再依据pack的偏移找到B4的偏移系数拼接为明文数据。
在这里插入图片描述

2、查询向量压缩到一个密文:显著减少通信量,server端可通过计算expand得到查询密文向量。 客户端查询向量压缩将原始n个密文压缩到同态明文多项式,对该明文多项式加密得到查询密文,服务端得到查询密文使用expand扩展算法得到具体n个密文向量,再使用n个向量进行同态乘得到结果。
在这里插入图片描述

3、支持多维查询:多维查询将数据转换为 n ∗ n的矩阵,减少expand计算量。
在这里插入图片描述

4、支持多个查询:使用cuckoo hash支持同时进行多个查询。
在这里插入图片描述

PIR实现位置:
在这里插入图片描述

三、Keyword PIR- Labeled PSI介绍

Keyword PIR:隐语实现的基于Labeled PIR方案。 基本原理使用两个差值多项式,包括一个匹配多项式和一个Lable差值多项式,在匹配多项式P(key)为0情况下对应的差值多项式Q(key)的值对应三个带查询值。
在这里插入图片描述

Keyword PIR也使用了BFV的方案: 明文编码方式使用BatchEncode,每个位置上的数据支持基于位置的加法和乘法。
在这里插入图片描述
在这里插入图片描述

1、减少乘法次数和计算量: 客户端通过窗口机制减少发送密文个数,发送2的次方倍数。服务端可以通过分区将每个bin划分为若干个子集,每个子集对应一个差值多项式,降低相应的多项式次数。
在这里插入图片描述

2、使用extremal postage stamp bases减少通信量。
在这里插入图片描述

3、Paterson-Stockmeyer算法,减少密文乘法。
在这里插入图片描述

隐语label PIR的主要工作:

  1. 以微软的开源代码功能为核心;
  2. OPRF采用隐语的实现:支持的ecc曲线包括:FourQ, Secp256k1, SM2;
  3. Label的自动填充;
  4. 增加了服务的预处理结果保存功能:可以支持离线和查询(多次)两个阶段。

服务端预处理setuo阶段流程:

  1. 参数选择:对cuckoo hash、同态多项式明文、密文进行参数选择;
  2. 对服务端数据进行prf计算:prf得到256bit,前128bit根据截取用于匹配,后128bit作为对称算法密钥加密label;
  3. 根据prf前128bit截断后将数据插入Simple Hash;
  4. 对Simple Hash每一行分别划分bin bundle,并计算相应的差值多项式matching polynomial和label polynomial;
  5. 将插值多项式系统packing到同态算法明文。

在这里插入图片描述

客户端和服务端(query)阶段-流程:

  1. 客户端向服务端请求参数;
  2. 执行oprf协议;
  3. 计算查询值的同态密文幂集合;
  4. 使用同态私钥解密服务端返回的同态密文;
  5. 满足匹配条件时,使用oprf的后128bit解密得到label。
    在这里插入图片描述
    Lable PIR的主要参数: ItemParams每个元素在明文多项式对应的系数;TableParams包括cuckoo hash个数和表大小;QueryParams查询次数;SEALParams同态参数包括多项式次数(明文模/密文模)。
    在这里插入图片描述
    PIR实现位置:
    在这里插入图片描述

四、隐语PIR后续计划

在这里插入图片描述

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

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

相关文章

使用VNP时 本地服务/Dbeaver 无法连接数据库

在家使用VPN连接,启动本地Eclipse 的springboot 服务时,无法正常连接数据库。 解决方法: 在启动项配置中增加 -Djava.net.preferIPv4Stacktrue 之后,使用 Dbeaver时,也出现如下连接异常: 解决方法: 在dbe…

C语言:文件操作(2)

4.2 fputc的使用 这里写自定义目录标题 fputc的定义: 主要功能:一个字符一个字符的写进文件,将int类型的字符character写进文件流(FILE* stream)中,返回一个整形。如果成功fputc会返回写进文件的字符&…

城市雨量水位监测站

TH-SW2在繁华的现代都市中,有这样一个默默奉献的守护者,它时刻监测着城市的雨量和水位,为城市的安全提供着重要的保障。它就是我们今天要介绍的——城市雨量水位监测站。 一、雨量水位监测站的重要性 城市雨量水位监测站是城市防洪排涝体系的…

全局UI方法-弹窗三-文本滑动选择器弹窗(TextPickDialog)

1、描述 根据指定的选择范围创建文本选择器,展示在弹窗上。 2、接口 TextPickDialog(options?: TextPickDialogOptions) 3、TextPickDialogOptions 参数名称 参数类型 必填 参数描述 rang string[] | Resource 是 设置文本选择器的选择范围。 selected nu…

AI图像重绘解决方案

高质量的图像素材往往成本高昂且制作周期长,给企业带来了不小的困扰。美摄科技凭借其领先的AI图像重绘解决方案,为企业提供了一种高效、便捷且成本可控的图像优化途径,助力企业重塑视觉形象,引领市场新风尚。 美摄科技的AI图像重…

NASA数据集——2014 年、2015 年和 2017 年北美地区土壤地球物理属性值(源层厚度 (ALT)、介电常数、土壤水分剖面、表面粗糙度)

ABoVE: AirSWOT Color-Infrared Imagery Over Alaska and Canada, 2017 简介 文件修订日期:2019-04-25 数据集版本: 1 摘要 本数据集提供了根据 2014 年、2015 年和 2017 年 8 月和 10 月在阿拉斯加北部 12 个研究地点(除个别地点外)采集…

LLM大语言模型(八):ChatGLM3-6B使用的tokenizer模型BAAI/bge-large-zh-v1.5

背景 BGE embedding系列模型是由智源研究院研发的中文版文本表示模型。 可将任意文本映射为低维稠密向量,以用于检索、分类、聚类或语义匹配等任务,并可支持为大模型调用外部知识。 BAAI/BGE embedding系列模型 模型列表 ModelLanguageDescriptionq…

CCIE-11-IPSec-VPN

目录 实验条件网络拓朴实验目的 开始配置1. R2 Ping R3确定基础网络是通的2. 配置R23. 配置R34. 测试 实验条件 网络拓朴 实验目的 为PC1和PC2建立IPSec VPN PC1可以ping通PC2 开始配置 1. R2 Ping R3确定基础网络是通的 R2#show ip int br Interface IP…

UE5启用SteamOSS流程

一、安装OnlineSubsystemSteam插件 1、在UE里安装OnlineSubsystemSteam 2、设置默认开始地图 3、设置DefaultEngine.ini文件: 打开项目根目录/Config/DefaultEngine.ini文件 打开官网的配置说明 复制并粘贴到该文件中 4、设置运行模式 5、测试 确保Steam平台已…

【MATLAB源码-第24期】基于matlab的水声通信中海洋噪声的建模仿真,对比不同风速的影响。

操作环境: MATLAB 2022a 1、算法描述 水声通信: 水声通信是一种利用水中传播声波的方式进行信息传递的技术。它在水下环境中被广泛应用,特别是在海洋科学研究、海洋资源勘探、水下军事通信等领域。 1. **传输媒介**:水声通信利…

人工智能本地化的时代即将到来

2024 年 3 月 26 日,我有幸应邀参加了在北京凤凰中心举办的AI PC发布会。在这次活动中,英特尔展示了基于第一代酷睿 Ultra 高能效 X86 处理器的商用客户端,充分展现了 AI 加速下企业业务数字化的新趋势。英特尔成功地实现了对 AIGC 的最后一公…

51单片机学习笔记11 使用DS18B20温度传感器

51单片机学习笔记11 使用DS18B20温度传感器 一、DS18B20简介1. 主要特点2. 工作原理3. 引脚说明4. ROM 二、1-wire协议简介1. 总线结构:2. 通信方式:3. 数据传输:4. 设备识别:5. 供电方式:6. 应用场景:7. 优…

在rv1126上实现数字识别

有个项目,需要用到识别数字。 使用rv1126,实现数字的识别,如下图。 效果上还是存在有些问题,但还是比较好的。 1.采用的数据集少 2.数据分布不一。0,1两个数据集内容多,5,6,7&am…

webpack搭建开发环境

webpack搭建开发环境 一.webpack开发模式二.webpack打包模式三.webpack打包模式应用四.Webpack 前端注入环境变量五.Webpack 开发环境调错 source map六. Webpack 设置解析别名路径七.优化-CDN的使用八.多页面打包九.优化-分割公共代码一.webpack开发模式 作用:启动 Web 服务…

健身房预约管理系统(源码+文档)

健身房预约管理系统(小程序、ios、安卓都可部署) 文件包含内容程序简要说明含有功能:项目截图客户端首页我的预约登录教练预约时间我的注册页个人资料课程预约课程预约 管理端订单管理团课管理教练管理分类管理用户管理 文件包含内容 1、搭建…

Vue3性能优化之自定义指令实现图片懒加载

图片懒加载是一种常见性能优化的方式,进入网址时不全部加载图片 当用户进入图片可视区域时加载 不仅大大减少了服务器的压力 也可以时首屏时间变短 图片懒加载的实现原理:在图片没进入可视区域的时候,只需要让 img 标签的 src 属性指向一张…

【5G 接口协议】CU与DU之间的F1协议介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

从词表到RLHF一镜到底训练一个大模型

第6章 如何训练大语言模型 本章节主要探讨训练大语言模型的步骤和方法论。 目前,可能大家接触的最多的模型训练方式是微调,也能收到一定程度的比较好的效果,其中有代表性的项目有Github上的Alpaca, Baize,Vicuna等。 6.1 Pretrain 预训练 有了微调,为什么还需要预训练,直…

第116讲:使用Mycat-eye管理Mycat数据库服务

文章目录 1.Mycat的管理工具2.Mycat-eye介绍3.部署Mycat-eye3.1.安装Zookeep3.2.安装Mycat-eye3.3.访问Mycat-eye 4.在Mycat-eye中导入Mycat服务的信息 1.Mycat的管理工具 Mycat默认开通2个端口,可以在server.xml中进行修改。 8066 数据访问端口,即进行…

管易云和金蝶云星空单据接口对接

管易云和金蝶云星空单据接口对接 接入系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台。K/3Cloud支持的协同应用…