位来 发自 凹非寺
量子位 报道 | 公众号 QbitAI

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

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

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

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

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

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

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

国内首个自主研发的基于主流TensorFlow框架的隐私AI框架可以解决以上种种问题:Rosetta (https://github.com/LatticeX-Foundation/Rosetta)

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

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

  • 面向AI需求,服务AI开发者

  • 完全开源,透明开放

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

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

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

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

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

Rosetta框架实例分析

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

#!/usr/bin/env python3
# Import rosetta package
import latticex.rosetta as rtt
import tensorflow as tf
# You can activate a backend protocol, here we use SecureNN
rtt.activate("SecureNN")
# Get private data from every party
matrix_a = tf.Variable(rtt.private_console_input(0, shape=(3, 2)))
matrix_b = tf.Variable(rtt.private_console_input(1, shape=(2, 1)))
matrix_c = tf.Variable(rtt.private_console_input(2, shape=(1, 4)))
# Just use the native tf.matmul operation.
cipher_result = tf.matmul(tf.matmul(matrix_a, matrix_b), matrix_c)
# Start execution
with tf.Session() as sess:sess.run(tf.global_variables_initializer())# Take a glance at the ciphertextcipher_result = sess.run(cipher_result)print('local ciphertext result:', cipher_result)# Set only party a and c can get plain resulta_and_c_can_get_plain = 0b101 # Get the result of Rosetta matmulprint('plaintext matmul result:', sess.run(rtt.SecureReveal(cipher_result, a_and_c_can_get_plain)))

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

python rosetta_demo.py --party_id=0python rosetta_demo.py --party_id=1python rosetta_demo.py --party_id=2

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

[2020-07-29 20:10:49.070] [info] Rosetta: Protocol [SecureNN] backend initialization succeeded!please input the private data (float or integer, 6 items, separated by space): 2 3 1 7 6 2

假设A方输入的私有矩阵为 , B 方输入的私有矩阵为 , C 方输入的素有矩阵为 

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

local ciphertext result: [[b'D\xa9P\xfeul\x00\x00#' b'\xcbj\x1c\x1f*D\x00\x00#' b'\xef\xdb\xa2\xddS\x90\xff\xff#' b'\xaa:\xbcD\x96\x83\xff\xff#'][b'\x16\xb3\xf6\xa9@x\x00\x00#' b'4\xff/\x99\xc9\xbb\xff\xff#' b'8\x11\xfa\xa1Y<\x00\x00#' b'_9\x92>\xea6\x00\x00#'][b'\xeb)\xf3\xa0\xfa\xc6\xff\xff#' b"\x1c'\xec\x80\xa1%\x00\x00#" b'\xf4\xcd\xc4\xb6\xfb\x1a\x00\x00#' b'B\x10\xeeNd\xe6\xff\xff#']]

在上述脚本的最后我们显式的调用了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 20:11: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 20:11:06.558] [info] Rosetta: Protocol [SecureNN] backend has been released.

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

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

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

分享内容

  • 隐私计算背景介绍

  • 如何实现隐私保护

  • 什么是Rosetta

  • Rosetta运行原理

  • Rosetta的应用场景

  • 未来的规划

嘉宾介绍:

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

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

直播&报名

直播时间:

2020年8月6日(周四),19:00-20:30

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

报名方式:

扫码添加小助手,备注“隐私”,将邀请您加入直播群。欢迎大家与谢翔老师、更多开发者一起探讨和交流隐私AI,也欢迎分享给需要的朋友:

—  —

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

每天5分钟,抓住行业发展机遇

如何关注、学习、用好人工智能?

每个工作日,量子位AI内参精选全球科技和研究最新动态,汇总新技术、新产品和新应用,梳理当日最热行业趋势和政策,搜索有价值的论文、教程、研究等。

同时,AI内参群为大家提供了交流和分享的平台,更好地满足大家获取AI资讯、学习AI技术的需求。扫码即可订阅:

加入AI社群,与优秀的人交流

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !

代码改动两三行,AI数据秒换隐身衣!隐私计算+AI?中科院博士实践分享一键切换...相关推荐

  1. 万字长文!深度剖析《数据安全法》下多方数据协同应用和隐私计算发展趋势

    本文作者:程勇 <数据安全法>的表决通过标志着国家鼓励数据依法合规利用.保障数据依法有序流通,明确国家实施大数据战略,推动以数据为关键生产要素的数字经济发展.<数据安全法>强调 ...

  2. 大数据交易市场崛起,隐私计算助力产业链数字化转型|算力智库隐私专栏

    大数据交易市场正在经历一个新的转折点.前几日,在2020年中国国际服务贸易交易会的论坛上,北京市市长陈吉宁宣布了建立大数据交易所的消息.几天后,<北京国际大数据交易所设立工作实施方案>正式 ...

  3. UCloud“安全屋”数据流通平台:隐私计算市场的“隐形冠军”

    点击蓝字  关注云报 <中华人民共和国数据安全法>.<关键信息基础设施安全保护条例>都将于2021年9月1日起开始施行,<中华人民共和国个人信息保护法>也在最近正式 ...

  4. 如何拥有一个AI模特?AI绘画换脸换装教程

    原文:如何拥有一个AI模特?AI绘画换脸换装教程 - 知乎 今天给大家分享的内容是:如何给图片换脸换装,拥有自己的AI模特. 掌握并灵活运用本节课的内容,你将获得一个免费高效的AI模特,可以大大提高服 ...

  5. 数据标注的终点会是众包么?(AI数据标注猿交流社区群欢迎加入)

        标注猿的第63篇原创        一个用数据视角看AI世界的标注猿    进入6月以来,很多行业内小伙伴的日子都不太好过了,留言咨询最多的问题就变成了是否有项目了.上半年的疫情影响逐渐显现出 ...

  6. 无处不智能:AI数据的“消费升级”,刚刚开始

    "新基建"的哨声吹响,想必大家已经从各个渠道感受到了产业智能化的火热. 这一次,AI不再停留于"人工智能又碾压人类了"的科幻剧情,而是化身为社会通用型技术,各种 ...

  7. 万向区块链蜂巢学院:王爽:隐私计算—数据经济、数据要素的基石

    3月24日晚,锘崴科技创始人.董事长王爽先生做客万向区块链蜂巢研习社直播间,分享隐私计算行业概述.隐私计算赋能数据要素化.隐私计算赋能医疗领域的应用等当下热门议题. 下文根据速记整理,略有不影响原意的 ...

  8. 让数据不再“裸奔”,隐私计算“四小龙”亮出通关密码

    文|魏启扬 来源|智能相对论(aixdlun) 当数据成为重要的生产要素,数据隐私保护与数据使用应该如何权衡? 今年4月,<中共中央.国务院关于构建更加完善的要素市场化配置体制机制的意见> ...

  9. 位列第五大生产要素,大数据该如何突破隐私安全魔咒?

    2020年4月9日,发布的<关于构建更加完善的要素市场化配置体制机制的意见>将数据定义为继土地.劳动力.资本.技术之后的第五大生产要素.在经济学中,能作为生产要素,至少要满足以下三个要求: ...

最新文章

  1. SpringCloud 介绍
  2. struts文件上传,获取文件名和文件类型
  3. revit建筑样板_黄石建筑工地工艺样板怎么做可按需定制
  4. Linux ubuntu安装搜狗输入法
  5. JSP的JavaBean前的知识点
  6. 系统广播 android.intent.action.KILL_BACKGROUND_SERVICE
  7. uses-sdk标签详解
  8. kubernetes 容器持久化存储PV、PVC、StorageClass
  9. boot版本是什么 cent os_BOOT是什么?该怎么打开啊!
  10. 【理论】浅解硬件网络通信+交换机芯片+通信系统设计
  11. docker 安装redis详细说明
  12. IOS错误之----警告 Local declaration of 'XXX' hides insta
  13. C++链表偶数在前,奇数在后的简单方法
  14. Tomcat部署静态页面
  15. Centos 查看/搜素日志 查找文件、目录、内容等 常用命令
  16. GG-CNN代码学习
  17. http://www.ibm.com/developerworks/cn/linux/l-ro...
  18. Mysql数值类型之float,double,decimal
  19. 在Word中画横线的四种方法
  20. 【TA-霜狼_may-《百人计划》】美术1.3 角色设计精要

热门文章

  1. 微信小程序制作-随笔2
  2. 在Objective C中定义私有的成员变量
  3. java性能调优03
  4. Nuget很慢,我们该怎么办
  5. 怎么区分五类线、超五类线和六类线
  6. SWT中调用Automation的方式
  7. esp分区引导修复失败_Windows10修复UEFI引导的具体方法
  8. iangularjs 模板_AngularJS中的模板安全与作用域绑定
  9. 数据库知识点补充::约束
  10. 汇编调用c语言函数 call printf,如何在汇编调用c语言函数?