当前位置:  首页 科学 详情

代码改动两三行,隐私计算+AI,Rosetta让隐私计算与AI攻守结合,如何实现隐私保护

发布来源:互联网    发布时间:2020-08-01 15:34

脱了马甲我照样儿认识你!

这句在2000春晚赵本山的经典台词,放在隐私圈有了新的解释:在不看到数据“真面目”的情况下,照样能得到答案。

数据的进击与人工智能的野望

随着人工智能(AI)技术的不断发展和各种产品落地,数据作为各种人工智能算法的原材料,其价值已经普遍得到大家认可。各个公司能够采集到的数据毕竟有限,想得到更精准的训练模型,就需要将数据联合起来挖掘更大的价值。

但真正让数据“流动”并不简单,对于拥有数据的各个企业来说,面临着很大的矛盾:通过数据和交互显然可以提升AI算法的效果,但同时又必须要保障自己的数据不泄露出去。

Rosetta让隐私计算与AI攻守结合

而解决数据的动态使用、中的安全问题,正是“隐私计算+AI”技术的专长。其融合在数据的使用、处理过程之中,保障计算过程本身(广义的讲,还包括计算结果)不会泄露原始明文数据本身的信息。

国内首个自主研发的基于主流TensorFlow框架的隐私AI框架可以解决以上种种问题:Rosetta

“Rosetta”名称取自古埃及的罗塞塔石碑(Rosetta Stone)其上记载着古埃及象形文字、埃及草书和古希腊文三种文字。

这里寓意着Rosetta框架将承载和结合AI、隐私AI和区块链三种典型的技术。这使得Rosetta的发展方向聚焦在以下三个方面:

面向AI需求,服务AI者

完全开源,透明开放

持续集成高效、可扩展的隐私保护技术后端

目前开源的 Rosetta 0.2.0版本中,以TensorFlow这一流行AI框架为基础,深度改造其python前端和后端kernel,融合了最前沿的安全多方计算(MPC)算法协议。

那么让我们揭开Rosetta的神秘面纱,先睹为快,举一个简单的“硬核”例子:

假设现在有三个个体A,B和C各自都具有自己采集到的一批私有数据,并且已经各自经过标准的特征工程等方式将其表达为三个矩阵Ma,Mb和Mc,正如大部分的AI算法(比如推荐)那样,某一个步骤中需要执行矩阵乘法这样的算子操作。

显然为了保护数据的隐私,三方之间是不能将各自的数据直接明文的传输给其他参与者的,而这样的计算又必须要进行数据的交互,这时,用户可以引入Rosetta框架后很快的解决这一问题。

Rosetta框架实例分析

比如,各方在本地有一样的如下脚本rosetta_demo.py (这里为了更加直观的体验,我们以各方通过console输入简单的数据来示例,真实场景下可以调用隐私数据文件读取接口来输入)

代码改动两三行,隐私计算+AI,Rosetta让隐私计算与AI攻守结合,如何实现隐私保护(图1)

A 、B和C方在完成配置好网络拓扑配置文件后,分别运行

各方分别按照提示在终端中输入各自的私有数据,比如A方可以按照如下提示输入其对应的矩阵元素值:

2020-07-29 :49.070 info Rosetta: Protocol SecureNN backend initialization succeeded!

假设A方输入的私有矩阵为

代码改动两三行,隐私计算+AI,Rosetta让隐私计算与AI攻守结合,如何实现隐私保护(图2)

B方输入的私有矩阵为

代码改动两三行,隐私计算+AI,Rosetta让隐私计算与AI攻守结合,如何实现隐私保护(图3)

C方输入的素有矩阵为

代码改动两三行,隐私计算+AI,Rosetta让隐私计算与AI攻守结合,如何实现隐私保护(图4)

我们先直接打印出算子计算的结果,此时各方本地输出的是各不相同的被编码后的密文信息,比如:

local ciphertext result: b“Dxa9Pxfeulx00x00” b“xcbjx1cx1f*Dx00x00” b“xefxdbxa2xddSx90xffxff” b“xaa:xbcDx96x83xffxff”

b“x16xb3xf6xa9@xx00x00” b“4xff/x99xc9xbbxffxff” b“8x11xfaxa1Yxea6x00x00”

bxebxf3xa0xfaxc6xffxff bx1cxecx80xa1%x00x00 bxf4xcdxc4xb6xfbx1ax00x00 bBx10xeeNdxe6xffxff

在上述脚本的最后我们显式的调用了SecureReveal接口来将隐私AI的结果“解密”出来,且通过设定参数为5来要求只有A和C可以得到明文值,所以A方和C方将得到类似如下的正确明文结果:

plaintext matmul result: b“8.000000” b“14.000000” b“18.000000” b“4.000000”

b“4.000000” b“7.000000” b“9.000000” b“2.000000”

b“24.000000” b“42.000000” b“54.000000” b“12.000000”

2020-07-29 :06.452 info Rosetta: Protocol SecureNN backend has been released.

而B方则不会得到正确的明文计算结果,其输出是:

plaintext matmul result: b“0.000000” b“0.000000” b“0.000000” b“0.000000”

b“0.000000” b“0.000000” b“0.000000” b“0.000000”

b“0.000000” b“0.000000” b“0.000000” b“0.000000”

2020-07-29 :06.558 info Rosetta: Protocol SecureNN backend has been released.

可以看出除了必要的数据预处理接口外,我们完全的复用了TensorFlow中的算子,在更复杂的计算逻辑图中,你可以像这个trivial例子中的Matmul一样,直接使用native TensorFlow的算子即可,不需要感知任何后端复杂的隐私协议!

AI者能在不需要对隐私AI技术有任何了解的情况下,只需要改动两三行代码即可将现有AI代码转换为具备数据隐私保护功能的程序,Rosetta可以说是AI者的“贴心小马甲”

为了更相近了解这种隐私保护技术,量子位邀请到矩阵元算法科学家谢翔博士进行直播,Rosetta如何将隐私计算能力赋予人工智能,让我们的隐私更安全。

内容

隐私计算背景介绍

如何实现隐私保护

什么是Rosetta

Rosetta运行原理

Rosetta的应用场景

未来的规划

嘉宾介绍:

代码改动两三行,隐私计算+AI,Rosetta让隐私计算与AI攻守结合,如何实现隐私保护(图5)

谢翔,中国科学院软件研究所博士,矩阵元算法科学家,负责公司整体隐私计算技术的预研和产品化,主导设计和Rosetta开源框架。

格密码理论、同态加密、零知识证明、安全多方计算等密码学算法和协议设计的专家。发表论文10余篇,曾在密码学的顶尖学术会议Eurocrypt,CCS上发表论文。

直播&报名

直播时间:

2020年8月6日(周四)-

其中时间为60分钟,问答交流环节30分钟

报名方式:

添加小助手,qbitbot9,将邀请您加入直播群。

本文相关词条概念解析:

计算

计算与人类由于现代人类各个课题学科繁多,涉及面广,而分类又细。而当今的每个学科都需要进行大量的计算。

数据

数据就是数值,也就是我们通过观察、实验或计算得出的结果。数据有很多种,最简单的就是数字。数据也可以是文字、图像、声音等。数据可以用于科学研究、设计、查证等。数据背景是接收者针对特定数据的信息准备,即当接收者了解物理符号序列的规律,并知道每个符号和符号组合的指向性目标或含义时,便可以获得一组数据所载荷的信息。数据作为信息的载体,当然要分析数据中包含的主要信息,及分析数据的主要特征。数据(Data)是载荷或记录信息的按一定规则排列组合的物理符号。

相关资讯

相关推荐

网友评论