数据安全:一文读懂隐私计算

7fd8fb5f43ed23bbe1e5e180d38b061c.jpeg

让我们从一个生动的故事入手:想象两位百万富翁偶然在街头相遇,他们各自都想夸耀自己的财富,又不愿透露具体的财务状况。他们面临的挑战是,如何确定谁更富有而不泄露各自的具体数字。这其实是隐私计算技术面临的一种经典问题。

隐私计算是一组技术和方法,它们使我们能够在保护数据主体隐私的前提下,安全地存储、处理和分析数据。这些技术确保数据在加密或其他形式的保护下进行处理,从而在整个处理过程中保障数据内容的安全与隐私。

这些技术主要包括:安全多方计算、同态加密、联邦学习、机密计算、差分隐私以及零知识证明等。例如,通过安全多方计算,两位百万富翁可以在不直接透露各自资产的情况下,确认谁更为富有。

你可能已经意识到,这种能力——在不公开各自数据的前提下进行数据融合和安全计算——正是目前高效安全数据要素流通所追求的目标。

尽管隐私计算的相关概念颇为抽象,技术涉猎广泛,但我会尽量用简洁通俗的方式来解释每个概念。在介绍每种技术时,我不仅会阐述其定义,还会提供典型的应用场景和技术原理,让这些高深的技术变得更加贴近实际,易于理解。

一、安全多方计算

多方安全计算由姚期智在1982年提出,指一种计算范式,其中多个参与方可以合作计算一个函数,而无需将各自的输入数据暴露给其他参与方。该技术通过复杂的加密方法和协议确保,即便参与计算的一方或多方试图获取其他方的数据信息,也无法得知。

该技术能够满足人们利用隐私数据进行保密计算的需求,有效解决数据的“保密性”和“共享性”之间的矛盾。多方安全计算包括多个技术分支,主要用到的技术包括秘密共享不经意传输混淆电路等等。

1、秘密共享

定义:

秘密共享(Secret Sharing)是一种允许将一个秘密(如加密密钥或重要信息)分割成多个部分(称为份额)的密码学方法。这些份额分发给多个参与者,只有当一定数量的份额集合在一起时,才能重新构造出原始的秘密。秘密共享的目的是确保信息的安全性和可恢复性,即使其中一些份额丢失或被破坏。

b21a4c210e7f7c3e9af17fac289af8b2.png

应用案例:

在金融领域,银行和金融机构常常需要保护大量的客户数据和交易信息。这些信息通常通过加密算法加密保护,而加密密钥本身也需要被严格保护。使用秘密共享的一个真实应用是加密密钥的安全备份和恢复。

(1)密钥生成与分割

银行生成用于加密客户数据的主加密密钥。通过秘密共享算法(如Shamir的秘密共享),将这个密钥分割成多个份额。

(2)份额分发

将不同的份额分发给不同的高级管理人员,每人负责保管自己的密钥份额。这些人员可能包括高级安全管理员、IT部门的负责人和其他信任的高管。

(3)密钥恢复

只有在获得足够数量的份额(例如,5份中的3份)时,才能重新构造完整的密钥。这通常在需要对备份数据进行解密恢复的情况下进行。

原理解释:

让我们看一个更技术性的实现:

(1)假设你的秘密是一个数字,比如数字100(代表宝藏的位置)。

(2)你选择一个多项式,这个多项式的最高次数是t-1(在我们的例子中,t是需要的最少地图片数,假设是3,所以选择2阶多项式)。

(3)这个多项式的自由项(即常数项)是你的秘密(数字100)。

(4)然后,你在这个多项式上随机选择一些点(相当于切成的地图片),这些点的数量大于或等于你想要的最少片数。

(5)每个点的值(y值,多项式在该点x的值)就是你分发给朋友的地图片。

(6)如果你的朋友们集齐了足够数量的地图片(即点),他们可以使用数学方法(多项式插值)来计算出原多项式,特别是多项式的自由项,也就是秘密数字100。

2、不经意传输

定义:

不经意传输(Oblivious Transfer, OT)是一种可保护隐私的双方通信协议,消息发送者从一些待发送的消息中发送某一条给接收者,但并不知道接收者具体收到了哪一条消息。不经意传输协议是一个两方安全计算协议,协议使得接收方除选取的内容外,无法获取剩余数据,并且发送方也无从知道被选取的内容。

36e38ea7397b061d415827d1626c500a.png

应用案例:

一个用户可能希望从在线图书馆检索关于特定主题的资料,但不希望图书馆知道这一兴趣。通过OT,用户可以安全地查询所需信息而不暴露查询的具体内容:

(1)图书馆(服务器)准备

图书馆将其所有图书资料或文档编码和索引化。每种资料都赋予一个唯一的索引号。

(2)不经意传输的设置

选择一个合适的1-out-of-N OT协议,其中N是图书馆数据库中资料的总数。用户决定他需要查询的资料的索引号,但这个索引号需要保密,不被图书馆知道。

(3)密钥生成与请求

根据选择的OT协议,用户生成一组密钥,对应于他想要查询的资料索引。用户将所有公钥发送给图书馆(服务器),但不透露这些公钥对应的具体索引号。

(4)数据加密与发送

图书馆使用从用户处收到的每个公钥加密对应索引的资料信息。图书馆将所有加密后的资料发送给用户。

(5)数据的解密与访问

用户使用他为感兴趣的资料保留的私钥解密相应的加密资料。用户成功解密并访问到他所需的资料,而没有其他资料被揭示。

(6)完成交易

在整个过程中,图书馆无法确定用户查询了哪个资料,因为所有资料都被加密并发送了。用户得到了所需的资料,而没有透露他的兴趣点。

原理解释:

想象一下,Alice有两条消息,消息M0和消息M1,而Bob想要安全地从Alice那里获取M0,但不希望Alice知道他选择的是哪条消息。

Alice有两条消息:

  • M0 = "Hello" (我们用ASCII码转换为数字,"Hello" 转换为 72, 101, 108, 108, 111)

  • M1 = "World" (同样,"World" 转换为 87, 111, 114, 108, 100)

Alice生成两对RSA公私钥:

  • 公钥 puk0 和私钥 prk0

  • 公钥 puk1 和私钥 prk1

不经意传输的步骤:

(1)公钥发送

  • Alice 将两个公钥 puk0 和 puk1 发送给 Bob。

(2)Bob的选择和加密

  • 假设 Bob 想要 M0,他生成一个随机数 r = 12345。

  • Bob 使用公钥 puk0 对随机数进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傅一平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值