一款释放数据价值的项目,开源了!

news2024/12/23 23:13:15

在大数据和 AI 的时代背景下,数据已经成为了重要财富,大到政务数据、企业核心数据,小到个人信息、银行卡余额,这些数据无一例外都是“隐私数据”,如果在使用和流转时发生泄漏都会造成巨大的损失。

那有没有什么方法,可以在不暴露数据隐私的前提下,让数据流动起来发挥更大的价值呢?在这个问题的驱使下我们找到了今天的主角——隐私计算。

一、什么是隐私计算?

隐私计算是指在不泄露数据本身的情况下,实现数据分析和计算的技术,具有“数据可用不可见”的特点,让数据安全合规地流动起来。

下面用一个经典的百万富翁问题,来帮助理解什么是“数据可用不见”。

假设有两个百万富翁,他们都想知道谁更富有,但又不想让对方或者第三方,知道自己具体有多少钱。

  • 数据本身:具体的财富值(数据)
  • 计算:比大小(可用)
  • 不泄露:对方或第三方(不可见)

按照常理,进行比大小的计算是需要知道两个数是多少,才能比较大小,但这里不知道具体的数字。所以上面这个问题在普通人看来是无解的,但其实这是一个密码学问题,也被称为“多方安全计算”(MPC)问题,由姚期智院士在 1982 提出,并给出了解决方案——混淆电路,实现了数据的可用不可见。

从隐私计算的技术发展时间线,我们不难看出隐私计算还是一个比较“新”的技术。随着零知识证明、差分隐私、全同态加密、联邦学习等技术的相继问世,目前已形成**三大应用技术路线多方安全计算(MPC)、联邦学习(FL)、可信执行环境(TEE),**隐私计算作为数据流通的重要技术已应用于金融、医疗、政务、广告等领域。

  • 金融:联合反洗钱、银(行)证(券)数据共享等
  • 医疗和健康:流行病接触者追踪等
  • 政务:案件调查、人口普查等

随着欧盟 2018 年生效的《通用数据保护法案》,Google、Facebook 等科技巨头都收到了巨额罚单。近两年,我国也相继出台了 《数据安全法》《个人信息保护法》。因此,如何让数据安全地流通起来,已经不再是一道附加题而是一道必答题。

如果我们把上面的“百万富翁”换成企业/机构的话,就可以很容易得出隐私计算技术就是数据安全流通的答案 🔑。

二、PrimiHub

那么,对于没有隐私计算技术背景的程序员、或是没有相关研发团队的企业/机构,如何才能快速用上隐私计算技术,让数据流通起来创造更大的价值呢?

今天,HelloGitHub 给大家带来一款由密码学专家团队打造的开源隐私计算平台——PrimiHub,它开箱即用、支持 CLI 和可视化 Web 界面,让你无需具备隐私计算技术背景,就能上手发起隐私计算任务。

GitHub 地址:https://github.com/primihub/primihub

下面,我将先介绍如何快速上手 PrimiHub,最后通过演示一个完整的应用案例,让你能够真正的入门 PrimiHub,并将隐私计算应用到实际的业务中。

三、快速上手

PrimiHub 是在隐私计算应用技术之上构建的隐私计算平台,封装了底层的密码学协议让开发者专注于业务、更容易上手。下面就让我们实际上手体验一下,让数据流动起来吧!

3.1 安装

虽然 PrimiHub 提供了 Docker、可执行文件、本地编译的安装方式,但是如果你只是想在本地体验一下,我强烈推荐 Docker 一键安装,因为真的是太 easy 了 ~

# 第一步:下载
git clone https://github.com/primihub/primihub.git
# 第二步:进入目录
cd primihub
# 第三步:启动
docker-compose up -d

3.2 发起任务

PrimiHub 将复杂的隐私计算技术封装成了一个个任务,只需要修改配置文件,然后执行命令发起任务即可。

PrimiHub 目前支持联合统计、隐私求交、匿踪查询、联邦学习等功能。

  • 联合统计:多个参与方在不暴露私有数据的情况下,共同完成均值(AVG)、求和(SUM)、最大值(MAX)、最小值(MIN) 等计算
  • 隐私求交:在不暴露参与方私有数据的情况下,实现两个或多个参与方之间的数据交集计算。
  • 匿踪查询:保证用户向数据源方提交查询请求时,在数据源方不知道用户查询条件和结果的前提下完成查询。
  • 联邦学习:一种分布式模型训练技术,在数据不动、模型出域的前提下完成全局模型的训练。

下面是通过命令行发起一个「隐私求交」任务的全过程,task_config_file 参数指定配置文件。

# 1. 进入容器
docker exec -it primihub-node0 bash
# 2. 发起隐私求交任务
./primihub-cli --task_config_file="example/psi_ecdh_task_conf.json"
I20230616 13:40:10.683375    28 cli.cc:524] all node has finished
I20230616 13:40:10.683745    28 cli.cc:598] SubmitTask time cost(ms): 1419
# 3. 查看结果
cat data/result/psi_result.csv
"intersection_row"
X3
...

3.3 更多配置示例

为了方便用户上手,PrimiHub 在 example 目录下,提供了 50 多种隐私计算任务的配置文件,可作为模板快速配置自己的数据源发起任务。

文件任务
mpc_statistics_sum_task_conf.json联合统计三方求和(SUM)任务
psi_ecdh_task_conf.json隐私求交求两个集合的交集
keyword_pir_task_conf.json匿踪查询
hfl_plaintext.json线性回归横向联邦明文模式训练
hfl_paillier.json线性回归横向联邦同态模式训练
更多配置示例

四、应用案例

这里我们将通过在 PrimiHub 管理平台模拟演示一个匿踪查询(隐匿查询)的应用案例:检察院要向公安机关查询张三(身份证号)是否有涉毒记录,但是公安机关不想把全量数据提供给检察院查询,检察院也不想暴露他们当前正在侦查的对象。

上面的场景,双方可以通过 PrimiHub 的隐匿查询功能来满足双方需求,实现公安机关看不到检察院的查询,检察院也不用拿到公安机关的全量数据,下面开始操作。

4.1 注册并登陆

匿踪查询需要两方以上进行协同,所以需要选择「节点 1:模拟检察院」和「节点 2:模拟公安机关」进行注册。

节点 1:https://node1.primihub.com/#/register
节点 2:https://node2.primihub.com/#/register

注册完成后打开两个网页分别登陆,刚模拟注册的检察院和公安机关的账号。

4.2 匿踪查询

4.2.1 准备工作

本地准备好待查询的数据如下表,以及查询条件身份证号:110221xxxxx

姓名身份证号籍贯出生日期涉赌时间
张三110221xxxxx北京市
李四1102211xxxx北京市
王二11022119xxx北京市

4.2.2 上传数据资源

打开「节点 2」网页(公安机关账号)在「我的资源」点击「添加资源」按钮,将上面表格作为数据资源上传(实际场景中可通过配置数据库进行查询),最后点击保存。

4.2.3 新建匿踪查询任务

打开「节点 1」网页(检查院)在「隐匿查询」发起一次查询任务,在「选择查询资源」处选择上一步模拟公安机关上传的数据资源,最后点击「查询」按钮。

4.2.4 查看结果

在「节点 1」网页(检查院)的「隐匿查询」下可以查看上一步创建的「匿踪查询」任务状态,任务运行结束后,点击「导出结果」即可下载结果文件,查看匿踪查询返回的记录。

至此,我们就用 PrimiHub 管理平台完成了一次完整的「匿踪查询」任务。模拟了检察院在公安机关提供的涉赌记录数据中,查询目标对象(110221xxxxx)的涉赌信息。在查询过程中,检察院仅获得查询对象的信息,公安机关也看不到检察院的查询记录,保证了检察院的办案独立性

五、最后

PrimiHub 是由原语科技开源的隐私计算平台,具有开箱即用、功能丰富、容易上手、灵活配置等特点。

  • 开箱即用:拥有 Web 界面、命令行 和 Python SDK 多种使用方式
  • 功能丰富:支持匿踪查询、隐私求交、联合统计、联合建模、数据资源管理等功能
  • 灵活配置:支持自定义扩展语法、语义、安全协议等
  • 自主研发:多方安全计算、联邦学习、同态加密、可信计算等隐私计算技术

隐私计算作为前沿技术,其开发难度可想而知,开源不易如果体验后觉得 PrimiHub 还不错,就点一个 Star✨ 吧!

GitHub 地址:https://github.com/primihub/primihub

在国内外科技巨头纷纷布局隐私计算产业的当下,花些时间学习一下「隐私计算」属实是波只赚不亏的技术投资。虽然目前隐私计算受限于性能等因素还远没到普及的程度,但从各国对于隐私保护的重视程度,隐私数据安全合规的使用和流动注定是未来的趋势。相信待时机成熟之时,隐私计算会和现在的大模型一样,迎来属于自己的时代。

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

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

相关文章

骨传导耳机对人体有危险吗?会损害听力吗?

如果在使用骨传导耳机的时候控制好时间和音量,是不会对人体带来危险和造成伤害的。 下面跟大家解释一下为什么骨传导耳机对人体没有危害,最大的原因就是骨传导耳机不需要空气传导,而是通过颅骨传到听觉中枢,传输过程中几乎没有噪…

U8G2 各显示屏初始化过程

主函数:u8g2lib.h --------各显示屏初始化函数 u8g2_d_setup.c-------- 主要函数 u8g2_SetupDisplay (u8g2, u8x8_d_ist3088_320x240, u8x8_cad_011, byte_cb, gpio_and_delay_cb); u8x8_d_ist3088_320x240, u8x8_cad_011 对应相应的初始化函数

Linux更新g++

不同版本的g会支持不同的c标准,若是g标准过低会导致一些c新的标准无法使用。 比如c11出的regex就需要g 4.9以上的标准才能使用。 一般更新g需要使用一些额外的软件源,便于我们更新g,这里采用Developer ToolSet来更新g。 更新步骤 首先使用ro…

易基因: WGBS等揭示DNA甲基化调控林地草莓植株高度和果实大小的分子机制|植物发育

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 DNA甲基化影响基因组稳定性、转座子沉默和基因表达;它主要发生在对称CG和CHG以及不对称CHH (H A, C或T)中的胞嘧啶上。RNA介导的DNA甲基化(RNA-directed DNA methylation&am…

Containerd安装详细步骤

Containerd安装详细步骤 从k8s的1.24版本开始,k8s默认的容器运行时就是Containerd了,所以想要安装学习k8s的1.24以后的版本 都需要安装Containerd,废话不多说,请看以下安装步骤。 1、离线安装包下载地址 https://github.com/con…

Layui快速入门之第四节 按钮

目录 一:基本用法 二:不同主题的按钮 基本案例: 三:不同尺寸的按钮 基本案例: 四:按钮圆角 五:按钮图标 六:按钮混搭 七:按钮组合 八:按钮容器 一…

基于Android高校智慧公寓选房APP的设计与实现

基于Android高校智慧公寓选房APP的设计与实现 摘 要 学生宿舍选房是大学新生入学必须面临的问题。能够统计各宿舍的分配使用情况,清楚查看宿舍状态,图像化展示,一目了然。并与其它系统共用一个数据中心&a…

PDF怎么转图片?四种转换方法分享

PDF文件是一种非常常见的文档格式,然而,有时候我们需要将PDF文件转换成图片格式。比如我们可能需要将PDF文件中的某些页面或图表转换成图片格式以便于编辑或分享。在这篇文章中,我们将介绍四种将PDF文件转换成图片的方法。 方法一&#xff1a…

源代码加密

需求背景 随着各行各业业务数据信息化发展,各类产品研发及设计等行业,都有关乎自身发展的核心数据,包括业务数据、代码数据、机密文档、用户数据等敏感信息,这些信息数据有以下共性: 属于核心机密资料,万…

程序员面试金典16.20: T9键盘

题目: 在老式手机上,用户通过数字键盘输入,手机将提供与这些数字相匹配的单词列表。每个数字映射到0至4个字母。给定一个数字序列,实现一个算法来返回匹配单词的列表。你会得到一张含有有效单词的列表。映射如下图所示&#xff1…

图片怎么转成PDF?分享三个转换方法

在日常工作中,我们经常需要将图片转换成PDF格式,方便存储和共享。下面分享三种转换方法,帮助大家快速完成转换。 方法1:使用在线转换工具 我们可以在电脑上打开PDF转换应用,进入后再左侧找到文件转PDF列表&#xff0c…

面试:如何实现分布式锁?看清楚,不是实现分布式事务!!

面试复盘:如何实现分布式锁? 目录 面试复盘:如何实现分布式锁? 1.分布式锁要求 2.实现方案 3.数据库分布式锁 3.1 悲观锁 3.2 乐观锁 4.Zookeeper 分布式锁 4.1 引入 Curator 和 ZooKeeper 4.2 配置 ZooKeeper 连接 4.3 编…

Geekbench 6 for Mac性能测试软件

Geekbench 6是一款跨平台的系统性能测试软件,可以对处理器和内存等硬件进行评测,并提供了单核和多核两种测试模式。该软件适用于 Windows、macOS、Linux 和 iOS 等多种操作系统平台。 Geekbench 6 测试可以帮助用户快速准确地了解自己设备的性能表现&…

vue3中el-tree的使用及后端传参

实现效果&#xff1a; 如上图所示&#xff0c;实现el-tree的基本使用&#xff0c;回显及联调。 1.点击弹框弹出样式&#xff0c;node-key是id,与后端字段名对应 <Dialog v-model"menuVisible" title"菜单分配"><el-tree:data"treeData&qu…

笔记本开启WiFi

笔记本开启WiFi 为了节省流量&#xff1a;笔记本开启WiFi 条件 支持热点的电脑&#xff1b;我的是华硕飞行堡垒7。 注意事项 笔记本连接公司网络&#xff0c;公司网络通常都在监管下的&#xff0c;手机连接wifi后&#xff0c;刷抖音、购物网站&#xff0c;公司后台会捕获你…

windows使用supervisor-win部署flask项目

安装supervisor-win 截止目前最新版本为4.7.0 pip install supervisor-win 配置文件 保存名为supervisor-win.ini的配置文件&#xff0c;其中port*:9001代表监控所有IP地址&#xff0c;由于windows没有办法使用uwsgi&#xff0c;所以这里配置了两个program&#xff1a;[pro…

Log4Qt日志框架(2)-深入分析和使用

Log4Qt日志框架&#xff08;2&#xff09;-深入分析和使用 0 源码1 核心类及其关系2 深入分析 0 源码 支持自动创建默认properties文件如果默认不满足需求&#xff0c;也支持自定义配置文件在原有的log4qt基础单独封装类&#xff0c;在程序开始出初始化后&#xff0c;可以在任何…

AP9196 DC-DC升降 升降压 6A 恒流DEMO原理图

应用范围 户外照明 智能照明 带锂电应用方案 太阳能路灯 补光灯

解密01背包问题:如何在有限空间中实现最大价值?

文章目录 01背包 - 问题分析01背包题目第一问1. 状态表示2. 分析状态转移方程3. 初始化4. 填表顺序5. 返回值 第二问1. 状态表示2. 状态转移⽅程3. 初始化4. 填表顺序5. 返回值 C运行代码 01背包 - 问题分析 01背包是指在一个有容积限制&#xff08;或者重量限制&#xff09;的…

了解消息中间件的基础知识

为什么要使用消息中间件&#xff1f; 解耦&#xff1a;消息中间件可以使不同的应用程序通过解耦的方式进行通信&#xff0c;减少系统间的依赖关系提供异步通信&#xff1a;消息中间件可以实现异步消息传递&#xff0c;提高系统的响应性能。流量削峰&#xff1a;消息中间件可以…