隐私保护之隐私信息检索

news2024/11/17 15:32:41

【引子】用户的隐私保护涉及多个方面,用户行为的隐私保护更是一个难点。周末读了一篇论文,https://cacm.acm.org/magazines/2010/4/81501-private-information-retrieval/fulltext,涉及了很多数学上的方法和概念,很是费劲,隐私信息检索会过犹不及么?企业这么做的动力在哪里呢?

互联网的普及意味着有大量的在线数据和检索信息不可或缺的资源, 在某种程度上,也对用户隐私构成了重大风险。事实上,在用户意图保密的情况下,用户通常对访问公共数据持谨慎态度。例如,公司可能希望不透露自己身份来搜索某些专利。

那么,如何在用户进行信息检索时保护用户的隐私呢?这或许会涉及到一种名为隐私信息检索的技术。

58cf24625605842c7110df87e206efa8.jpeg

什么是隐私信息检索?

隐私信息检索是一种加密协议,旨在保障数据使用者的私隐,允许客户端从公共数据库中检索记录,同时向数据所有者隐藏检索记录的身份。实际上,检索数据而不向数据所有者透露其身份的可能性几乎为零。当然,有一个简单的解决方案: 当用户需要单个数据时,可以要求获得整个数据库的副本。然而,这种解决方案涉及了巨大的通信开销,可能是不可接受的。对于那些希望完全保护自己隐私的用户,这种简单的解决方案是最佳的。

在1995年,业界提出了 隐私信息检索方案,在该方案的协议中,用户查询保存数据库的每个服务器,确保每个单独的服务器得不到关于用户感兴趣项的标识信息。

隐私信息检索方案与一类特殊的纠错码密切相关,这类纠错码被称为“局部可解码码”,它们本身就是人们感兴趣的对象。纠错码有助于确保信息在嘈杂信道上的可靠传输,以及在取设备容易出错的介质上可靠地存储信息。这种编码允许人们向消息中添加冗余或位字符串,并将其编码成更长的位字符串,即使一定比例的位字符串被破坏,消息仍然可以恢复。在纠错码的典型应用中,消息首先被分成小块,然后每个小块被分别编码。这种编码策略允许对信息进行有效的随机访问检索,因为只需要对感兴趣的部分数据进行解码。不幸的是,这种策略产生了较差的噪音恢复能力,因为,即使是一个单一的块完全损坏,一些信息就会丢失。

鉴于这种局限性,似乎更可取的做法是将整个信息编码成一个前向纠错的单一码字。这种解决方案提高了对噪声的鲁棒性,但是很难令人满意,因为需要查看整个码字,以便恢复消息的任何特定位。这种解码复杂度对于当今的大规模数据集来说是不可能的。

隐私信息检索方案提供了有效的随机存取检索和高噪声恢复能力,允许通过只查看少量随机选择的码字比特就可以对任意比特的信息进行可靠的重建。

1c87e839520e69d37849e87ca8a2cfb7.jpeg

初识隐私信息检索

如果将数据建模为 n 位字符串 X,该字符串只在少量服务器 S1,... ,Sk 之间复制。用户持有一个索引 i (介于1和 n 之间的整数) ,并对获取位 Xi 的值感兴趣。为了实现这个目标,用户随机查询每个服务器,并接收响应,从中计算所需的位 Xi。对每个服务器的查询是独立于 i 分布的,因此,每个服务器不会获得关于用户需要什么的信息。

用户的查询不一定是对特定单数据集的请求,它们指定由服务器计算的函数; 例如,一个查询可能指定一组介于1和 n 之间的索引,而服务器的响应可能是存储在这些索引的数据位 XOR。

隐私信息检索方案的主要参数是通信复杂度,或者说是 度量用户和服务器之间通信的总比特数的函数。目前最有效的双服务器隐私信息检索协议的通信复杂度为 O (n的1/3次方)。然而,涉及三个或更多服务器的隐私信息检索方案已经得到了改进。

Hadamard 编码允许以非常大的代码长度为代价,超快速地恢复消息位。例如,给定一个有10%损坏的编码,只读取两个代码位就能恢复消息的任何位,概率为80%。这意味着可以从许多不同的码字比特的 k 元组中恢复消息的每个比特 Xi。因此,解码器的每个查询的分布必须在一定程度上接近于编码位上的均匀分布。

验证协议是私有的,也非常简单,因为对于[ k ]中的每个 j,查询 Qj 均匀地分布在码字坐标集上,总的通信量由 k (logN + 1)给出。

0b5eed648f8cd7eaabf14f0b0c881281.jpeg

早期的隐私信息检索

隐私信息检索方案的目标是通过提供一个简单的(d + 1)服务器方案,使用 O (n的1/d次方)通信来访问 n 位数据,这个方案背后的关键思想是有限多项式插值。

设 p > d 是素数,{0,... ,p1}模 p 的加法和乘法满足实数上的标准恒等式。也就是说,数字{0,... ,p1}相对于这些操作形成一个有限域。这个字段用 Fp 表示。在下面处理定义在有限域上的多项式。这种多项式具有实数多项式所具有的所有代数性质。具体地说,一个单变量多项式在任意 d + 1点上的值唯一地决定了它在d 的 Fp 上的多项式。

设 m 是一个大整数。设 E1,... ,En 是 m 维 Fp 上 n 个向量的一个集合。该集合是固定的,并且独立于 n 位数据库x。假设服务器和用户都知道该集合,在隐私信息检索协议的预处理阶段,每个(d + 1)上的服务器在 m 个变量中用相同程度的 d 多项式 f 表示数据 x。这种多项式的关键性质是对于[ n ]中的每个 i: f (Ei) = xi。为了保证这样一个多项式 f 的存在,选择 m 相对于 n 来说比较大。一般地,设置 m = O (n1/d)就足够了。

假设用户想要检索数据库的第 i 位,并且知道了向量 E1,... ,En 的集合。因此,用户的目标是恢复 Ei 的多项式 f (由服务器持有)的值。显然,用户不能从任何服务器显式地请求 f (Ei) 的值,因为这样的请求会破坏协议的隐私性; 也就是说,一些服务器会知道用户需要哪个数据位。相反,用户间接地得到 f (Ei)的值,特别地,用户在 Fp 上生成 m 维向量 P1,... ,Pd + 1的随机集合,这样:

每个向量 P 都是均匀随机的,因此没有提供关于 Ei 的信息;

任意次 d 多项式(包括多项式 f)在 P1,... ,Pd + 1的值决定了多项式在 Ei。

用户向每个服务器发送一个向量 P1,... ,Pd + 1。然后,服务器在它们接收到的向量处计算多项式 f,并将它们获得的值返回给用户。用户将值 f (P1)、 ... 、 f (Pd + 1)组合起来得到所需的值 f (Ei)。该协议是完全私有的,通信相当于将维数 m 的(d + 1)向量发送到服务器,并将一个值返回给用户。

1d1a16a78dd128e2e88baf8f9f586c4c.jpeg

现代的隐私信息检索

现代的隐私信息检索方案不再基于多项式,其关键技术要素是一个具有限制交集的大集合族的设计。设 k 是一个小整数,它将 n 位消息编码成码字。这个构造包括两个步骤: 第一个步骤是构造一个具有限制交集的集合族问题的简化; 第二个步骤是期望集合族的代数构造。

步骤1:

C 是 F2线性映射。对于 Fn2中的任意两个消息 x1,x2,有 C (x1 + x2) = C (x1) + C (x2) ,其中向量的和在每个坐标中被计算为模2;

解码算法通过读取已损坏的代码字的某个 k 元组坐标并输出这些坐标中值的异或(XOR)来进行。对于[ n ]中的 i,让 Ei 表示一个二元 n 维向量,其唯一的非零坐标是 i。每个线性映射都允许一个组合描述。也就是说,对[ n ]中的每个 i 指定:

C (Ei)坐标的一组 Ti,设置为1。这些集合完全指定了编码,因为对于任何消息 x,C (x) =C (Ei) ; 和一种码字坐标的 k 大小子集族,在重构第 i 个消息位时可由译码算法读取。必须满足某些组合约束,这些限制的基本理由如下:

解码必须是正确的,以避免编码位被破坏。这意味着,对于[ n ]中的每一个 i,j 和其中的任意 k 集合,如果 i = j,则 STj 的大小必为奇数,否则为偶数;

译码算法的各个查询的分布必须接近于均匀。这意味着对于[ n ]中的每一个 i,其中的 k 集合的并集相对于编码坐标的数目必须是大的。

步骤2:

设计满足这些约束条件的集合 Ti 和 Qi。这个结构是由几何直觉支持的。考虑了基数 k 的有限域上的编码坐标集和 m 维向量集之间的双向影射。在 Fk 上的 m 维线性空间中,选择集 Ti 作为某些平行超平面的并集,用基本代数来讨论交点的大小。

计算型隐私信息检索方案之所以具有吸引力,是因为它们避免了维护数据库的复制副本的需要,并且不会对用户隐私造成损害。

结论

近年来,隐私信息检索已经成长为一个庞大而深入的领域,并与其他领域相连。隐私信息检索主要涉及两个方面,一方面是通信的复杂性,另一方面是,为了响应用户查询,服务器必须执行的计算量。

【关联阅读】

  • 隐私计算与区块链的融合思考

  • 隐私计算中可信执行环境的一知半解

  • 隐私计算之全同态加密

  • 隐私计算中的联邦学习

  • 从隐私到隐私计算

  • 与代码无关的网络安全

  • 放心用吧!浅谈DuerOS的安全性

  • 零信任安全的认知

  • 物联网安全与区块链

  • 从构造函数看线程安全

  • QCon:工程师成长的金字塔思维

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

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

相关文章

Python--matplotlib基础绘图

前言 本章来说一下绘图,毕竟在软硬件行业,设备端的日志有了,前面也讲了抽取数据,怎么能不绘图呢。 在工作中,我也是经常会遇到研发有这样的需求,把数据整理出来,做成图,便于分析BUG。…

类变量和类方法

类变量和类方法 引入 思考:有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在有多少小孩在玩? 静态变量内存分析 1、静态变量被对象共享 2、静态变量可能在堆中,也可能在方法区的静态域中,这…

Python中的类和实例是什么意思

目录 python中的类是什么 python中的实例是什么 python中的类和实例有什么区别 总结 python中的类是什么 在Python中,类是一种用于创建对象的蓝图或模板。类定义了对象的属性和方法。对象是类的实例,它拥有类定义的属性和方法。 通过定义类&#xff…

【Ajax】笔记-JQuery发送jsonp请求

前端 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>jQuery-jsonp</title><style>#re…

Linux安装操作(Mac版本)

Parallels Desktop的简介 Parallels Desktop是Mac平台上的虚拟机软件&#xff0c;也是Mac平台最好的虚拟机软件之一。它允许用户在Mac OS X系统上同时运行其他操作系统&#xff0c;例如Windows、Linux等。Parallels Desktop为Mac用户提供了使用其他操作系统和软件的便利性&…

如何在Delphi中用CnPack的魔法,快速搭建你的项目结构(cnwizard)

1、打开工具&#xff0c;如下图。 2、使用现有模板创建文件夹结构。 按照树状结构创建文件夹结构&#xff1a; 1&#xff09;打开窗体。点击第一个图标。 2&#xff09;选择要创建文件夹结构的文件夹。 3&#xff09;结果如下&#xff1a; 3、模仿指定的一个文件夹结构创建。…

春秋云镜 CVE-2021-34257

春秋云镜 CVE-2021-34257 WPanel4-CMS Authenticated RCE漏洞 靶标介绍 WPanel是一个用于构建博客、网站和网络应用程序的CMS。 WPanel 4 4.3.1 及更低版本存在安全漏洞&#xff0c;该漏洞源于通过恶意 PHP 文件上传到 (1) 仪表板的头像图像、(2) 帖子文件夹图像、(3) 页面文…

简单理解 ChatGPT 和模型训练

介绍 这些令人着迷的对话机器人使用自然语言理解来理解输入。NLU 是自然语言处理的一个子集&#xff0c;使机器能够理解自然语言&#xff08;文本/音频&#xff09;。NLU 是大多数 NLP 应用程序&#xff08;例如机器翻译、语音识别、构建聊天机器人等&#xff09;中的关键组件。…

【Docker】Docker安装Elasticsearch服务的正确方式

文章目录 1. 什么是Elasticsearch2. Docker安装Elasticsearch2.1 确定Elasticsearch的版本2.2. Docker安装Elasticsearch2.3. 给Elasticsearch安装中文分词器IKAnalyzer&#xff08;可选的&#xff09; Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套&…

无门槛使用GPT+Cloud Studio辅助编程完成Excel自动工资结算

目录 前言一、Cloud Studio产品介绍1.1 注册Cloud Studio 二、项目实验2.1 选择合适的开发环境2.2 实验项目介绍2.3 实验步骤 前言 chatgpt简单介绍: ChatGPT是一种基于GPT的自然语言处理模型&#xff0c;专门用于生成对话式文本。它是OpenAI于2021年发布的&#xff0c;在广泛…

移动端购物车模块设计

效果图 技术栈 vue3、vant4、element-plus 源码如下 页面布局 <template><!-- 地址 start--><AddressList class"address"/><!-- 地址 end--><!-- 购物车商品列表 start--><van-swipe-cell class"goods-cell" v-for…

DevOps系列文章之 java调用python脚本

在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件&#xff08;推荐&#xff09; 调用python脚本中的函数 简单介绍 官网地址 首页 | (jython.org) Jython项目提供了Java中的Python实现&#xff0c; 为Python提供了…

ffplay——QT项目移植

一、ffmpeg源码编译 参考&#xff1a; https://blog.csdn.net/sgzed/article/details/119850119 在生成时做了一些修改&#xff1a; ./configure --toolchainmsvc --enable-shared --enable-postproc --enable-gpl --prefixwindows 二、对文件做调整 ffplay只需要三个文件&…

超越极限!YOLOv5引入FasterNet主干网络,目标检测速度飙升

目录 一、背景介绍1.1 目标检测算法简介1.2 YOLOv5简介及发展历程 二、主干网络选择的重要性2.1 主干网络在目标检测中的作用2.2 YOLOv5使用的默认主干网络 三、FasterNet简介与原理解析3.1 FasterNet概述3.2 FasterNet的网络结构3.2.1 基础网络模块3.2.2 快速特征融合模块3.2.…

好用的备忘录app如何使用预设提醒功能?

备忘录的预设提醒功能是什么意思呢&#xff1f;就是在使用的过程中&#xff0c;提前预设好常用的提醒的时间&#xff0c;比如明天某个时间点、下周某个时间点等等&#xff0c;在需要设置提醒的时候&#xff0c;就可以直接使用。好用的备忘录app如何使用预设提醒功能&#xff1f…

什么是SCRUM认证体系 ?

Scrum认证是一个针对个人职业发展的认证体系&#xff0c;基础级认证主要面向Scrum的三个角色&#xff1a;Scrum Master、Scrum Product Owner 和 Developers。Scrum认证体系由Scrum官方机构—国际Scrum联盟&#xff08;ScrumAlliance.org&#xff09;制定和维护&#xff0c;Scr…

HCIP——重发布及路由策略实验

重发布及路由策略实验 一、实验拓扑二、实验要求三、实验思路三、实验步骤1、配置接口IP地址以及环回地址2、配置动态路由协议3、重发布4、更改接口类型5、配置路由策略 一、实验拓扑 二、实验要求 1、使用双点双向重发布2、所有路由器进行最佳选路3、存在备份路径&#xff0c…

第三章 ref与reactive

ref ref 变为响应式数据shallowRef 浅层响应式数据&#xff08;响应式到 .value为止&#xff09;isRef 判断是否为ref响应式数据triggerRef 强制触发依赖更新customRef 自定义ref函数 <template><div class"App">{{ stu }}<button click"chang…

Java并发编程第3讲——线程安全

目录 1 线程安全 1.1 谈谈你对线程安全的理解 1.2 Java中操作共享数据分类 1.2.1 不可变&#xff08;Immutable&#xff09; 1.2.2 绝对线程安全&#xff08;Thread-safe&#xff09; 1.2.3 相对线程安全&#xff08;Thread-compatible&#xff09; 1.2.4 线程兼容&…

外观模式——提供统一入口

1、简介 1.1、概述 在软件开发中&#xff0c;有时候为了完成一项较为复杂的功能&#xff0c;一个类需要和多个其他业务类交互&#xff0c;而这些需要交互的业务类经常会作为一个完整的整体出现&#xff0c;由于涉及的类比较多&#xff0c;导致使用时代码较为复杂。此时&#…