• [其他问题] 隐私保护通话的软件怎么做有偿求助
    隐私保护通话的axb模式怎么做的
  • [其他问题] 华为云 隐私保护通话PrivateNumber AXE模式为什么建议不超过200个绑定分机号,超过了200个又会怎么样
    华为云 隐私保护通话PrivateNumber AXE模式为什么建议不超过200个绑定分机号,超过了200个又会怎么样,在线等 ,求解答
  • [问题求助] 隐私呼叫绑定168开头的手机号绑定失败
    手机号16812341234绑定隐私号AXB的时候返回{"resultcode":"1010002","resultdesc":"Invalid request.The number format is incorrect."}隐私保护通话 PrivateNumberhttps://support.huaweicloud.com/api-PrivateNumber/privatenumber_02_0002.html
  • [技术干货] 深入学习区块链的隐私保护(一)概述
    区块链作为公开账本解决了各方信任问题,但却带来了一个新的问题:用户的隐私如何得到保证?这在传统的集中式系统中,不存在此问题,或者说只有“可信”第三方拥有上帝视角。如果在区块链上用户的交易信息被恶意敌手进行分析和利用,将给用户带来严重的威胁。隐私保护问题不仅在公链中需要考虑,在部署商业应用的联盟链中显得更为迫切。如何解决公开、透明与隐私保护之间的矛盾,一直是区块链技术发展的重要方向,至今仍未完全解决。并且在一些特定的应用场景,需要根据实际需求结合各种密码组件设计相应的隐私保护算法。比特币没有提供真正的匿名性,可以称为伪匿名性,是因为比特币的账户地址从其对应的公钥中直接得到,不与用户在真实世界中的身份绑定,而现实中则使用CA(Certificate Authority)进行身份认证。比特币在区块链上的所有交易都是公开的,因此任何人都可以追踪到某个地址的交易。虽然创建新地址进行交易看来起增加了匿名性,但仍然不能解决所有交易都被公开的事实。论文【1】对用户地址间的关系进行了分析,结果如图1。而在联盟链应用场景中,例如银行间的转账,如果采用区块链系统进行记录交易,虽然严格一致的账本省去了繁琐的对账工作,但没有任何一家银行希望自己的资金往来完全暴露。并且欧盟于2018年5月实施了GDPR【2】(General Data Protection Regulation),这意味着在欧盟的企业如果想将用户的个人数据进行上链,那么必须保证用户数据的链上隐私性。 图1. 比特币地址关系图针对链上的一笔交易而言,接收者地址、发送者地址以及交易金额都是需要考虑的问题,以及除此之外的附加数据。对接收者和发送者地址的隐私保护我们称为匿名性;对交易金额的隐私保护我们称为机密性。在保证匿名性和机密性的同时,要达成多方校验和共识,我们称之为公开可验证性。常用在区块链隐私保护中的高级密码组件/方法如下: 签名类:签名类的隐私保护手段有盲签名、群签名以及环签名等。盲签名就是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术,消息者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名,例如基于椭圆曲线的盲签名ECBDS【3】。群签名是群参与者利用群公钥和自己的私钥对消息进行签名,验证者对消息进行验证时,无法确定该消息是群中的哪一个成员进行了签名,但群签名中存在管理员,群的管理员可以揭示签名者。而环签名则在群签名的基础上,去掉了群管理员的角色。群签名/环签名的方案例如可链接的群签名【4】和可追踪的环签名【5】等。非交互式零知识证明:非交互式零知识证明是指证明者无需交互,就能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。常见的NIZK有zk-SNARKs【6】、zk-STARKs【7】、Bulletproofs【8】等。同态加密技术:同态加密是一种特殊的加密方法,对密文直接进行处理,与对明文进行处理后再加密得到的结果相同。同态加密分为全同态和部分同态。全同态为可以对密文进行加减乘除四则运算,例如BGV方案【9】;部分同态分为加法同态、乘法同态、减法同态和除法同态。常用的有加法同态paillier【10】、Pederson承诺【11】和椭圆曲线点乘【12】等。可信执行环境:可信执行环境在系统中是一个独立的环境,受硬件机制保护,与现有系统隔离,提供从文件到内存的全方位安全。它作为一个安全、可靠、中立的环境,可以用来执行区块链系统中隐私性要求比较高的业务逻辑,例如将密文解密成明文再进行运算,不用担心明文数据被窃取,在离开可信环境前,再将结果转化成密文在区块链中传输。可信执行环境有SGX【13】等。目前有不少区块链上的隐私保护项目,将其分为两类,一种基于UTXO,另一种基于账户性。基于UTXO的项目有Mixcoin【14】、Zcash【15】、Monero【16】和Hawk【17】等。基于账户性的项目有Zether【18】和AZTEC【19】等。本文给出了区块链隐私保护的学习知识图谱,有兴趣的小伙伴可以一起多交流。————————————————版权声明:本文为CSDN博主「Xiao Dai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/nanshenyaohaohaode/article/details/106418537
  • [技术干货] 【论文分享】面向海洋观监测传感网的移动终端位置隐私保护研究
    面向海洋观监测传感网的移动终端位置隐私保护研究苏新1, 江苏1, 周一青2,31 河海大学物联网工程学院,江苏 常州 2310222 中国科学院大学,北京 1000493 中国科学院计算技术研究所,北京 100190摘要:移动边缘计算可支撑多类高可靠、低时延的海事应用,然而计算任务的卸载存在诸多安全隐患。为此,分析并量化了海洋移动终端由任务卸载导致的位置隐私泄露风险。建立有关位置隐私保护模型并提出一种基于动态缓存与空间匿名的位置隐私保护(DS-LPP, dynamic cache and spatial cloaking-based location privacy protection)算法。仿真结果表明,DS-LPP 算法在保护海洋移动终端位置隐私时,相比传统算法优构建匿名空间与中继节点选取性能更优,因而可有效应用于通信、计算资源相对匮乏的海洋观监测传感网,保障终端位置隐私保护连续性。关键词:海洋观监测传感网 ; 移动边缘计算 ; 位置隐私保护 ; 任务卸载1 引言随着 5G/6G 时代的到来以及物联网、人工智能、区块链等新兴技术的发展,我国正逐步加快海洋经济、海洋信息化建设。海洋立体观监测传感器网络(简称“传感网”)作为下一代海洋信息网络重要组成部分,可实现全天候、全自动、高密度、多要素、多维度的全球海洋立体观监测,是汇聚海洋空间、环境、生态、资源等各类数据,保障先进海洋观监测的基础设施。加快研究与部署海洋立体观监测传感网,可为实现海洋强国战略目标打下坚实的基础。 海洋立体观监测应用会在网络局部区域产生大量运算数据与网络负荷。面向与海事高可靠、低时延相关应用的需求,基于传统岸基云计算的大数据处理模式时延长,已无法满足相应需求。移动边缘计算技术允许海洋移动终端将产生的海洋观监测数据与计算任务卸载至网络边缘侧的边缘计算节点进行处理,可有效地降低数据传输和处理时延,节省任务传输所需带宽与能耗,减轻岸基设施负荷,提高服务质量。 面向海事实时定位、紧急救援等,计算任务的卸载处理存在诸多安全隐患。若边缘计算节点为不可信节点,海洋移动终端可能会因任务卸载暴露自身位置隐私。 目前,移动边缘计算研究大多关注陆地组网与车联网特征,部分研究涉及终端由任务卸载导致的隐私泄露问题,但主要围绕任务调度和卸载决策。例如,针对边缘计算中的位置隐私与使用模式隐私泄露,文献提出一种基于约束马尔可夫决策过程的隐私感知任务调度算法,使移动用户在保持预先设定的隐私水平时,优化时延与能耗性能。基于文献,文献进一步分析边缘计算中的位置隐私和使用模式隐私泄露问题,综合计算时延、能耗和隐私级别3个参数,建立隐私感知卸载模型。针对用户位置隐私威胁,基于卸载任务至远距离边缘服务节点能较好保护用户位置隐私的原理,文献权衡计算卸载中隐私保护与电池能耗的关系,利用深度“后决策”状态学习算法快速求解出最优卸载策略。 上述文献虽然考虑了边缘计算中相关隐私泄露问题,但只是在陆地组网中简单将隐私作为成本变量建立隐私感知卸载模型,针对面向海洋观监测传感网的海洋移动终端位置隐私保护,尚未进行合理隐私风险量化,也未曾提出相应隐私保护措施。此外,与陆地蜂窝网及车联网相比,海洋观监测传感网缺乏中心基础设施;通信带宽受限、通信环境复杂多变,易受天气、恶劣海况等因素影响;海洋移动终端计算、存储资源有限,对能耗敏感,较难在周围找到能源补给,且终端密度、速率、运行轨迹等难以预测,这些因素都对海洋移动终端位置隐私保护提出了严苛要求。 本文面向海洋观监测传感网,围绕海洋移动终端由任务卸载导致的位置隐私泄露问题开展研究。描述了基于移动边缘计算的海洋观监测传感网系统模型;分析并量化了海洋移动终端由任务卸载导致的位置隐私泄露风险;建立了一种基于分布式点对点通信制式的海洋移动终端位置隐私保护模型;提出了一种DS-LPP算法,能够确保海洋移动终端任务卸载时的位置隐私安全。2 相关工作据调研,海洋观监测传感网中针对移动边缘计算的安全与隐私保护研究工作尚处于初级阶段,相关研究成果匮乏。本文主要关注海洋移动终端任务卸载时的位置隐私保护。 当前,位置隐私保护研究主要围绕认知无线电、无线传感网、与基于位置服务(LBS, location-based service)3类应用场景。认知无线电中,需要在用户与数据库之间单独架设中间查询服务器,使用户在确保位置隐私安全情况下获得分配信道。该方案应用于海洋观监测传感网时将产生高昂通信设施建造成本。无线传感网中,源节点以随机多跳路由方式传输信息到汇聚节点确保位置隐私安全。但该措施将产生较高时延与网络通信开销,与移动边缘计算低时延、低带宽特点相违背。基于位置服务中,当用户向LBS服务器发送真实位置并请求位置服务时,其位置隐私可能遭受 LBS 服务器非法贩卖交易。为此,文献在实际用户周围添加虚拟用户,并将所有用户位置信息发送到LBS服务器,以此对攻击者造成位置信息干扰。上述方案可对用户位置隐私起到一定保护作用,但并未考虑用户移动速度。文献将用户真实位置泛化成随机矩形,并以随机矩形中心位置取代用户真实位置发送到LBS服务器,但当用户移动速度较慢时,用户真实位置与矩形中心位置相当接近,无法有效保护用户位置隐私。文献提出一种Mix-Zone方案,通过给用户分配多个“假名”,规定用户经过 Mix-Zone 并更换“假名”之后再与 LBS服务器通信,以切断用户身份与位置的真实对应关系,保护用户位置隐私。基于文献,文献对Mix-Zone 进行隐私分级得出基于联合熵的隐私度量模型,为系统构建最优 Mix-Zone 以及最大限度保护用户位置隐私提供判断依据,但该方案只是对规则道路拓扑进行数学建模与构建Mix-Zone,无法有效应用于拓扑结构动态复杂的海洋观监测传感网。文献提出CloakP2P算法与Dual-active算法两种协作节点搜索算法。用户与协作节点组成K-匿名区域,并将 K-匿名区域信息发送到 LBS 服务器确保位置隐私安全。然而 CloakP2P 算法利用逐跳洪泛搜索协作节点,用户每跳只能搜索少量协作节点,导致位置匿名时间延长。Dual-active算法利用周期逐跳洪泛搜索协作节点,虽有效降低位置匿名时间,但增加了大量网络通信开销。 LBS 位置隐私保护措施主要针对陆地组网中的行人与车辆。它们无须单独建立通信基础设施且并不通过随机多跳路由传输信息确保位置隐私安全。虽然这些特性满足移动边缘计算业务需求,但由于研究背景差异,LBS位置隐私保护措施难以直接应用于任务卸载时的海洋移动终端位置隐私保护。因此,本文结合海洋观监测传感网特性以及移动边缘计算特征,优化并改进现有针对LBS场景设计的隐私保护机制,最终提出切合海洋观监测传感网边缘计算场景的移动终端位置隐私保护方法。3 本文总结本文描述了基于移动边缘计算的海洋观监测传感网系统模型,分析并量化了海洋移动终端由任务卸载导致的位置隐私泄露风险。建立有关位置隐私保护模型,并提出 DS-LPP 算法确保终端位置隐私安全。仿真结果表明,增大 DS-LPP 算法中匿名参数 K 可提升终端位置隐私保护效果。在构建匿名空间方面,DS-LPP算法相比CloakP2P算法,可节省响应时间 74%,可节省通信开销90%,相比 Dual-active,可节省通信开销 94%。在中继节点选取方面,DS-LPP算法中LS-RNS算法策略总体链路稳定性高于随机策略 54.8%。研究成果可有效应用于环境恶劣以及通信、计算资源相对匮乏的海洋观监测传感网并保障终端位置隐私保护连续性。DS-LPP算法假设终端互联网络内各节点是可信的,可互相交换位置信息,与现实情况有所偏差。下一步将结合差分隐私相关概念进一步完善该算法。 4 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-4-00026.shtml
  • [需求建议] 开发一种无卡共享手机(共享电脑)
    我有一个开发开放式共享手机的一种创意技术,主要针对目前用户最常见的手机没电、关机及丢失问题,采用我的这种创意技术后,人们对手机的专属依赖性就减弱,共享手机就像出门打的一样方便快捷,再也不用担心手机没电到处找充电的地方,手机摔坏丢失遇重要事情无法联系了。当然我还有有关更超前的无卡手机创意技术,彻底让中国电信三大运营商逐渐消失的技术方案。
  • [知识分享] 区块链交易隐私如何保证?华为零知识证明技术实战解析
    >摘要:本文通过介绍华为如何在同态加密及零知识证明框架的集成介绍来介绍了一些对金融领域交易隐私保护的思路,通过代码结和应用场景描述了zksnark如何集成到现有联盟链体系保护交易隐私。本文分享自华为云社区[《区块链交易隐私如何保证?华为零知识证明技术实战解析》](https://bbs.huaweicloud.com/blogs/306971?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=paas&utm_content=content),作者:麦冬爸 。 # 什么是零知识证明? 证明者在不泄露任何有效知识的情况下,验证者可以验证某个论断是正确的。图1给出一个有趣的例子,Alice把自己的签名的信封放到一个保险箱中,Bob说他知道这个保险箱的密码,Alice让Bob证明给她看。Bob打开保险箱,把信封拿出来给Alice。Alice验证信封上的签名,确认了Bob确实知道这个密码。这个例子就是Bob没有告诉Alice密码却证明自己知道密码的的过程很好的解释了零知识证明的概念。基于非对称加密和数字签名的证书认证过程,其实也是一个零知识证明的过程,验证者并不需要知晓CA证书,就可以验证对方是由CA签发的下一级证书。零知识证明技术不管应用于金融还是其他领域,都可以对隐私保护,性能提升,或者安全性等场景带来很多帮助。下面,主要从隐私维度来分享华为零知识证明相关技术。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/142731hshzmqcbcrwripl3.png) 图1 零知识证明 # 零知识证明应用于同态加密保护交易隐私,使能金融业务 目前金融转账交易场景中对于隐私保护已经越来越重视,隐私也成为区块链急需解决的一个重要问题。那基于如下问题, A向B转账10元,需要区块链节点记账,但是不想让区块链节点知道交易金额以及最新余额,也是金融场景中一个非常常见的问题。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/142758euk3a2i6zhh7lsdb.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/142750wdoqoljctcoymcdk.png) 图2 同态加密 基于这种场景如何解决区块链技术应用于金融的隐私和可用性?华为目前引入同态加密(解决隐私问题)。同态加密(英語:Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。 换言之,这项技术令人们可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。在此基础上创新式提出了**同态加密范围证明**(一种针对数字的零知识证明技术,在不泄露具体数字值的情况下,获得数字的范围,从而验证数字所代表的交易的有效性)。 基于集成到区块链系统中的同态加密库以及修改同态加密库实现的零知识证明能力实现了隐私转账的能力,一个密文和另一个密文相加或相乘实现转账中的密文交易,零知识证明在整个的计算过程中不暴露任一方的信息证明对方可以完成转账这一流程,在不泄露具体数字的情况下得到数字的范围。从而验证数字所代表交易的有效性。 # 使用同态加密库的app端sample代码示例 下面我们看一下零知识证明在代码中是如何应用的,Demo代码使用地址:[概述_区块链服务 BCS_开发指南(Hyperledger Fabric增强版)_附录_同态加密_华为云](https://support.huaweicloud.com/devg-bcs/bcs_devg_0020.html)。下面讲解的代码都可以在上面的地址中下载全量代码查看。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/142938qcuggmazjqjmudym.png) 图3 同态加密链代码1 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/142952kylxsgh3ciijxdbe.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/143018vtws4a4g7omz7wxn.png) 图4 同态加密链代码2 图3是同态加密的链代码,首先定义好一个transaction的结构,在进行初始化,基于Query方法可以根据B的地址调用链码获取B的公钥 ,第二个红框获取A的当前加密余额,PrepareTxInfo方法构建A向B的转账信息,最后通过invoke调用完成A到B的转账的过程。在图4 transfer链代码方法中,首先通过getstate获取A和B两个账户的当前余额,然后最重要的一步,要去验证他的余额,所以说我们这个方法validatetxinfo,基于范围/等式证明验证交易数据的合规性,基于同态加密算法计算交易后的账户余额,最后更新交易后A账户和B账户的余额。同态加密的这一步中,应用了零知识证明的相关的这个技术和能力来实现了这个同态加密更加的高效和安全。 # 基于zksnark的零知识证明技术 ## 交互式证明和非交互式证明 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/143044cwjxcl5conchsupw.png) 图5 交互式证明 零知识证明又分为交互式证明和非交互式证明,有两个有趣的例子很好的解释了这个概念。如上图5所示,男子向女子声称有CD处的钥匙,女子不相信说“你拿出来给我看啊”,男子想“你让我拿我就拿多没面子啊”,男子说”这样吧,按下面步骤玩个游戏” 1.女子站在A点 2.男子从B点走到C点或者D点 3.男子从B点消失后,女子从A点走到B点 4.女子喊话“从左边出来”,或者“从右边出来” 5.男子按照女子的要求从对应一侧走出 女子说“你肯定作弊,刚才我喊左边出来,你刚好就是从左边进去的”, 男子说:“你回到A点,我们再来一遍” 如果每次都成功,说明B确实有CD处的钥匙,该证明是需要A,B不停的交互。 非交互式零知识(NizK)证明方案由算法设置、证明和验证定义,具体来说,我们有params=Setup(),其中输入是安全参数,输出是ZKP算法系统的参数。证明语法由证明=证明(x,w)给出。该算法接收某些NP语言L的实例x和见证w作为输入,并输出零知识证明。验证算法接收证明作为输入,并输出位b,如果验证者接受证明,则该位等于1。通俗一点就比如说我有一个秘密,我不想告诉别人,但是我又得让别人相信。我是知道这个秘密的,类似于这种,但是我们为什么需要有这种非交互式呢?因为交互式证明的其实只对原始的验证者有效,其他的任何人都不能够信任这个证明。这种场景下呢,就会导致这个验证者可以和这个证明人串通,证明人可以伪造证明。验证者也可以用这种方式做一些伪造。因此,验证者必须保存一些数据,直到相关的证明被验证完毕。这样就会造成一些秘密参数泄露的这种风险。这种交互式证明也有它的用处,就比如说一个证明人只想让一个特定的验证者来去验证,但是这个证证明人和验证者必须保持在线,并且去对每一个验证者执行同样的计算。 ## 什么是zk-snark? zk-SNARK 是 Zero-knowledge succinct non-interactive arguments of knowledge 的缩写,他的意思是: zero knowledge:零知识,即在证明的过程中不透露任何隐私数据: succinct:简洁的,主要是指验证过程不涉及大量数据传输以及验证算 法简单; non-interactive:无交互。证明者与验证者之间不需要交互即可实现证 明,交互的零知识证明要求每个验证者都要向证明者发送数据来完成证明, 而无交互的零知识证明,证明者只需要计算一次产生一个 proof,所有的验 证者都可以验证这个 proof。 zk-SNARK 是证明某个声明是真却不泄露关于该声明的隐私信息的一 个很有创新性的算法,他可以证明某人知道某个秘密却不会泄露关于这个 秘密的任何信息。这个算法可以解决什么问题呢? 它是对所有零知识证明问题的通用解决方法,由加密数字货币zcash首次使用并开源。zk-SNARK的优点: 1.通用库,可以解很多零知识证明问题 2.验证证明性能较高(300tps) zk-SNARK的不足: 1.底层模型不容易理解,用户需要根据具体的零知识证明问题,在上层构建自己的业务模型,这块开发的工作量较大。 2.生成每笔交易时延较长(57s) ## 应用场景 ZKP的应用场景包括匿名可验证投票、数字资产安全交换、安全远程生物识别认证和安全拍卖,具体如下。 匿名可核查投票:投票是保障一个国家或控股公司民主的重要组成部分。然而,选民的隐私可能在投票过程中被泄露。此外,投票结果很难得到安全的核实。ZKP是实施匿名可核查投票的一种可用方法。根据ZKP的使用,符合条件的选民可以在不泄露身份的情况下投票表决显示他们的权利。此外,ZKP允许符合条件的选民要求提供可核查的证据,证明他们的选票包含在负责报告投票结果的机构的最终计票中。 数字资产的安全交换:数字资产是二进制数据的集合,它们是唯一可识别和有价值的。如果两个用户希望交换其数字资产,则用户的隐私,包括身份和交换数字资产的内容,可能会在交换过程中泄露。根据ZKP的使用,数字资产可以在不泄露用户隐私的情况下交换。此外,ZKP生成了可验证的证据,其中包含数字资产交换的过程。 安全远程生物识别身份验证:远程生物识别身份验证是一种可用于通过使用指纹、面部图像、虹膜或血管模式等生物识别模式识别用户访问权限的方法。但是,在实施远程生物识别认证时,用户的生物识别模式可能会泄露给不受信任的第三方。使用ZKP可以解决这个问题。此外,ZKP生成还提供了可核查的证据,其中包括识别用户访问权限的过程。 安全拍卖:政府拍卖是政府从多个供应商中选择最低出价的拍卖,这些供应商以竞争性方式销售其商品和服务。本次拍卖包括两个阶段。在第一阶段,多个供应商投标,但公众不知道。在第二阶段,这些投标是开放的。政府选择中标供应商,后者出价最低。然而,中标供应商的选择可能会泄露其他中标供应商的投标和身份。ZKP可以解决这个问题。ZKP为每个输标供应商生成可核查的证据。该证明证实输标供应商的投标与中标供应商的投标之间的差额是正的。 ## zk-snark应用于区块链的挑战及实现 零知识证明是指一方(证明者)向另 一方(验证者)证明一个陈述是正确的, 而无需透露除该陈述正确以外的任何信 息,适用于解决 任 何NP问题。而区块 链 恰好可以抽象成多方验证交易是否有效 (NP问题)的平台,因此,两者是天然相 适 应的。将零知识证明应用到区块 链中 需要考虑的 技 术 挑战分为两大类:一类 是适用于隐私保护的区块链架构设计方 案,包括隐秘交易所花资产存在性证明、匿 名资产双花问题、匿名资产花费与转移、隐 秘交易不可区分等技术挑战;另一类是零 知识证明技 术 本身带来的 挑战,包括 参 数 初始化阶段、算法 性能以及安 全问题 等技术挑战。 华为集成了zksnark架构到区块链系统中来解决上面的挑战。我们知道有多种方法可以为区块链启用zkSNark。这些都降低了配对函数和椭圆曲线操作的实际成本。 1. 提高合约虚拟机的性能 相较第二种更难实现。可以在合约虚拟机中添加功能和限制,这将允许更好的实时编译和解释,而无需在现有实现中进行太多必要的更改。下面的转账场景就是基于此种方案的实现。 2. 仅提高某些配对函数和椭圆曲线乘法的在合约虚拟机的性能 通过强制所有区块链客户端实现特定的配对函数和在特定椭圆曲线上的乘法作为所谓的预编译契约来实现。好处是,这可能更容易和更快地实现。另一方面,缺点是我们固定在一定的配对函数和一定的椭圆曲线上。区块链的任何新客户端都必须重新实施这些预编译的合同。此外,如果有人找到更好的zkSNark、更好的配对函数或更好的椭圆曲线,或者如果在椭圆曲线、配对函数或zkSNark中发现缺陷,必须添加新的预编译合同。 ## 转账应用 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/143149iyybw38auyhcalpf.png) 图6 转账初始化 图6包含了对这个余额初始化的一个过程,及生成交易也就是真正转账的过程,下一步就是验证,证明,完成验证,最后一步,才是生成交易,也就是收款的一个过程。拿初始化举个例子,比如说爱丽丝初始化了一个100块钱的一个余额,然后鲍勃十块钱。转账的过程如下,爱丽丝转20块钱给鲍勃,就会生成生成一对Spending key / Paying Key ,相当于临时交易的一个账户,Paying Key给对方,Spending Key留给自己,用于证明交易链上的交易是谁的。 然后再基于这个生成相应的这个交易和相关的证明。完成交易生成这一步。下一步进行转账的验证证明的这个过程,验证逻辑如下, 验证逻辑:Nullifier NF.axxxxx1 和NF.axxxxx2 是否在Nullifiers 列表中,也就是说,是否有被花过;验证NF.axxxxx1 和NF.axxxxx2 是格式是否合法的花费凭据,且对应的commitment在链上(Proof + Merkle tree root),这里有需要验证Merkle tree root在 是有效的;验证input == output 金额守恒,即:100 + 0 = 80+0+20;数字范围满足要求:100-20 >0 && 20 > 0,把这个过程都验证完了以后呢,最后一步就是完成验证。完成验证的话,他其实还会做一些这个类似于交易内容的隐藏,身份隐藏,交易行为的隐藏,来保护整个的这个转账交易的过程的这个安全性。包括做一些类似于混淆电路的能力。有混淆的交易内容,且加密,验证者并不知道使用链上是哪个Commitment作为输入,只知道没有被花过,且在链上。身份隐藏让其无法确定接收方是谁,交易行为隐藏让其无法确定这个交易是发送还是接收。做一些安全性的保证之后呢,然后来完成整个的验证的过程。最后,生成交易,然后收款,整个转账过程就结束了。基于零知识证明的一个简单的一个能力,包括一个基础的转账,被华为集成在整个零知识证明使用接口中。集成的整个零知识证明架构也能用来开发一些零知识证明基础应用,做一些简单的解决方案。 # 总结 交易隐私保护这块的技术应该是比较多的,零知识证明技术并不一定是一个最好的选择,在安全领域中还有很多诸如同态,秘密分享,不经意传输,或者基于TEE硬件的一些隐私保护能力,可以去做一些隐私保护。但是零知识证明其优点也是很显著,未来区块链的隐私保护仍然任重而道远,如何实现快速高效、可信的零知识证 明算法以及如何实现能够抵抗量子计算 的零知识证明算法,都是需要进一步解决 的问题。基于线上我们提供的一些基本的能力,要是大家感兴趣,可以到之前的网址下载相应的代码示例。
  • [技术干货] 隐私保护下的迁移算法
    声明:本文首发于华为NAIE《网络人工智能园地》微信公众号,如有转载,请注明出处。微信公众号二维码为:http://weixin.qq.com/r/yx385OnEb7QQra2H90jZweixin.qq.com本文介绍一种特殊场景下的迁移算法:隐私保护下的迁移算法。首先,本文稍微回顾一下传统迁移算法的流程、特性和局限之处,然后文章介绍几种解决当源域数据有某些访问限制的场景下实现迁移的算法。具体包括:ADDA-CVPR2017,FADA-ICLR2020,SHOT-ICML2020。传统迁移算法UDDA首先说明这里说的传统迁移算法,主要指深度域适应(Deep Domain Adaptation),更具体的是无监督深度域适应(Unsupervised Deep Domain Adaptation, UDDA)。因为UDDA是最为常见,也是大家广泛关注的设定,因此这方面的工作远远多于其余迁移算法的设定。先介绍一下UDDA具体是做什么的:给定一个目标域(Target Domain),该域只有无标记数据,因此不能有监督地训练模型,目标域通常是一个新的局点、场景或者数据集;为了在目标域无标记数据的情况下建立模型,可以借助源域(Source Domain)的知识,源域通常是已有局点、场景或者数据集,知识可以是源域训练好的模型、源域的原始数据、源域的特征等。借助有标记信息的源域,目标域上即便没有标记数据,也可以建立一个模型。使得该模型对目标域数据有效的关键难点在于源域和目标域存在数据分布的差异,称之为域漂移(Domain Shift),如何去对齐源域和目标域的数据是UDDA解决的主要问题。UDDA通常包含下面的三种框架:首先,源域和目标域的数据(圆柱)会经过特征提取器(Encoder)提取特征(矩形),然后各种办法会对源域和目标域的特征进行操作,使得源域和目标域上数据的特征对齐。这里值得一提的是,UDDA通常假设源域和目标域的类别是一样的,比如源域和目标域都是去分类0-9十个手写数字,只不过源域和目标域的手写风格不一样。对源域和目标域特征进行操作的办法包括三种类别:基于统计对齐:使用各种统计量对齐源域和目标域特征的分布,比如对齐核空间均值(MMD Loss)、对齐协方差矩阵(CORAL Loss)等;基于对抗对齐:建立一个域分类器(Domain Classifier)作为判别器(Discriminator),目的要尽可能将源域和目标域的特征区分开来,使用梯度反转(Gradient Reversal Gradient,GRL)可以促使特征提取器提取和领域无关(Domain Invariant)的特征;基于重构对齐:将源域和目标域的特征通过同一个生成网络进行生成相应的数据,通过假设只有分布接近的样本才可以使用同一个网络生成数据对齐源域和目标域特征。关于以上几种UDDA的具体算法可以参加以前的文章:https://zhuanlan.zhihu.com/p/205433863zhuanlan.zhihu.com这里本文只给出UDDA的几个特性:源域数据可获得:UDDA假设源域数据存在并且可以获得;源域目标域数据可混合:UDDA通常假设源域和目标域数据可以在一起处理,即可以放在同一个设备上进行运算;训练预测过程是Transductive的:目标域数据必须和源域数据一同训练才可以使得特征提取器提取领域无关的特征,才可以将源域的模型迁移到目标域,因此当一批新的目标域的数据到来的话,并不能直接使用源域模型进行预测。总的来说,传统的UDDA方法假设源域数据可获得、源域目标域数据可混合、训练过程Transductive。然而,有一些场景下,源域数据不可获得,或者源域数据不可以外传,这种情况下如何进行迁移呢?首先,这里需要注意的是,源域数据不能外传和源域数据不可获得是两种情况,前者假设源域数据存在,但是不可以和目标域数据放在一起,后者是源域数据根本就不存在了。ADDAADDA是CVPR2017的一篇工作,来自论文《Adversarial Discriminative Domain Adaptation》,作者信息截图如下:一作Eric Tzeng来自于加利福尼亚大学伯克利分校,代表作有DDC和ADDA;二作Judy Hoffman来自斯坦福大学,代表作CyCADA,以及多篇在多领域迁移方面的理论文章,比如NeurIPS 2018的《Algorithms and Theory for Multiple-Source Adaptation》;三作Kate Saenko是波斯顿大学计算机科学计算机视觉组(Computer Vision and Learning Group,CVL)的Leader,是一名女性学者,Baochen Sun,Xingchao Peng,Kuniaki Saito等人都在该组深造或者深造过。CVL代表作有(个人评定,以下文章个人在学习DA的过程中或多或少阅读或者研究过):Xingchao Peng, Zijun Huang, Yizhe Zhu, Kate Saenko: Federated Adversarial Domain Adaptation. ICLR 2020Xingchao Peng, Yichen Li, Kate Saenko: Domain2Vec: Domain Embedding for Unsupervised Domain Adaptation. ECCV (6) 2020: 756-774Shuhan Tan, Xingchao Peng, Kate Saenko: Generalized Domain Adaptation with Covariate and Label Shift CO-ALignment. CoRR abs/1910.10320 (2019)Xingchao Peng, Zijun Huang, Ximeng Sun, Kate Saenko: Domain Agnostic Learning with Disentangled Representations. ICML 2019: 5102-5112Xingchao Peng, Qinxun Bai, Xide Xia, Zijun Huang, Kate Saenko, Bo Wang: Moment Matching for Multi-Source Domain Adaptation. ICCV 2019: 1406-1415Kuniaki Saito, Donghyun Kim, Stan Sclaroff, Trevor Darrell, Kate Saenko: Semi-Supervised Domain Adaptation via Minimax Entropy. ICCV 2019: 8049-8057Kuniaki Saito, Yoshitaka Ushiku, Tatsuya Harada, Kate Saenko: Adversarial Dropout Regularization. ICLR (Poster) 2018Xingchao Peng, Ben Usman, Neela Kaushik, Dequan Wang, Judy Hoffman, Kate Saenko: VisDA: A Synthetic-to-Real Benchmark for Visual Domain Adaptation. CVPR Workshops 2018: 2021-2026Eric Tzeng, Judy Hoffman, Kate Saenko, Trevor Darrell: Adversarial Discriminative Domain Adaptation. CVPR 2017: 2962-2971Baochen Sun, Kate Saenko: Deep CORAL: Correlation Alignment for Deep Domain Adaptation. ECCV Workshops (3) 2016: 443-450Baochen Sun, Jiashi Feng, Kate Saenko: Return of Frustratingly Easy Domain Adaptation. AAAI 2016: 2058-2065Eric Tzeng, Judy Hoffman, Trevor Darrell, Kate Saenko: Simultaneous Deep Transfer Across Domains and Tasks. ICCV 2015: 4068-4076回归正题,ADDA的训练流程图如下:首先是预训练阶段(Pre-training Stage),源域上利用有标记数据训练,采用交叉熵损失:其中  为源域的特征提取器,  为源域的分类器。然后是对抗对齐阶段(Adversarial Adaptation Stage),将源域的特征提取器拷贝给目标域  ,并且将分类器  固定住迁移到目标域。然后就是对  根据目标域数据进行微调,当且仅当目标域特征提取器  在目标域提取的特征和源域特征提取器  在源域数据提取的特征相似时,源域的分类器才可以很好地适应目标域,即下面几个公式的目的主要是使得  。简单的方法仍然是使用对抗进行训练。第一步训练域判别器(Discriminator)将源域的特征和目标域的特征进行区分开,  代表域判别器:第二步,训练  ,使得  让判别器尽可能分不开:重复以上两步,直到收敛。可以看出以上过程中, 源域特征提取器 只在源域预训练阶段使用到,然后拷贝给目标域,目标域微调特征提取器。换句话说,源域训练好的模型,包括特征提取器和分类器,传输到目标域之后,目标域只微调特征提取器,使得特征提取器提取的特征单向向源域的特征对齐,分类时使用的仍然是源域的分类器。为什么说这个方法可以推广到隐私保护呢?因为可以看到,源域的数据只在预训练阶段利用到,且后面对齐的过程中只用到了源域的特征  ,而不是  ,后者需要访问到源域原始数据。总的来说,ADDA容许源域和目标域的特征提取器不一致,将  参数解耦开来,并且训练过程中其实只用到了源域的特征。如果,源域数据和目标域数据不在同一设备上,假设源域数据的特征可以发送出去的话,该方案可以做到隐私保护。FADA正如上述介绍的CVL组,Xingchao Peng将ADDA扩充到多域版本,并且提出了FADA。FADA来自ICLR2020的《Federated Adversarial Domain Adaptation》,论文首页截图如下:该文提出了一个新的场景FADA,即联邦学习下的多域迁移。假设有很多个源域,每个源域的数据分布在单独的设备上,原始数据不能外传,如何在这种情况下将其模型复用到目标域呢?简而言之,如何在数据不能被发送出去的约束下进行特征对齐呢?该文假设各个领域的特征可以被发送出去,和ADDA假设一致。假设有  个源域,每个源域上都训练了一个特征提取器  和分类器  ,首先对于目标域的特征提取器  和分类器  ,使用联邦学习(Federated Learning)里面的加权平均方法:其中  衡量了每个源域对目标域的贡献,一般需要满足  。FADA中提到了一种动态加权(Dynamic Attention)的方式,这里不过多介绍,主要是通过源域当前模型融合到目标域之后对目标域特征区分度的提升幅度作为衡量的标准。简单的情况下,可以取  。总之,目标域上由于没有标记,不可能训练出  ,需要通过源域的模型进行加权平均得到。接下来,FADA使用特征提取器在各个域上提取特征,即  ,然后假设这些特征可以传输到同一个设备上,就可以在该设备上训练一个域判别器(Domain Identifier, DI),注意这里的判别器和ADDA中不一样,因为涉及到多个域,此处的域判别器是多分类器,具体而言是  分类。训练域判别器的损失函数如下:其中  是向量的第  项,即上述目标会训练域判别器使得第  源域的数据会被预测为第  类别,且目标域样本被预测为第  类。训练好域判别器之后,将  发送到各个源域所在的设备,然后训练各自的特征提取器  去混淆  :FADA总的框架图如下,该框架融合了很多方法,还包括特征解耦(Feature Disentangle)等等,这里不过多介绍。总的来说,FADA将多个源域和目标域的特征发送到一个指定的设备,在该设备上训练一个域判别器,然后将域判别器下发到各个源域作为对抗项促使相应的特征提取器提取领域无关的特征。可以说,FADA是ADDA的多领域扩展版本。SHOTSHOT是比较有意思的一篇工作,名称是《Do We Really Need to Access the Source Data? Source Hypothesis Transfer for Unsupervised Domain Adaptation》,来自ICML2020,作者信息截图如下:如果说ADDA和FADA都是假设源域数据不可以被发送出设备的话,SHOT假设源域数据获取不到,即源域数据丢失或者不存在。那么在只有源域模型和目标域众多无标记数据的情况下,如何迁移呢?SHOT解决了这个问题。首先SHOT指的是Source Hypothesis Transfer,Source Hypothesis指的是源域模型的分类器。SHOT和ADDA有一个一致的地方就是,都固定住了源域模型的分类器,微调源域的特征提取器。ADDA通过对抗损失(假设可以访问到源域数据的特征)进行微调目标域特征提取器,而SHOT则是通过伪标签(Pseudo Label)自监督地训练。首先,SHOT对源域模型进行有监督地训练,源域模型可以记为  ,其中  分别是源域的特征提取器和分类器,训练时采用标记平滑(Label Smoothing),促使训练的模型具有更好的可迁移性、泛化性。然后,将源域模型拷贝到目标域,  ,固定住  ,微调  。SHOT首先采用一个常见的信息最大化(Information Maximization, IM)损失,促使目标域上每个样本的分类概率的熵尽可能小,所有样本预测的概率平均值尽可能均匀。假设目标域样本  预测的结果为  ,其中  是一个Softmax的函数。那么记  为目标域样本预测概率的平均值(可以计算一个Batch的样本预测概率的平均值)。那么IM损失为:这一项损失并不能完全让目标域的特征提取器完全训练得当,因此需要使用下面的伪标签技术进行训练。伪标签技术很直观,就是利用当下的模型对无标记样本打标签,然后取预测结果置信度最高的部分样本来打标签,然后用这些伪标签的数据来继续训练这个模型。比如,对于目标域样本  ,根据模型预测概率的最大值  进行排序,选择最大的一部分对其打标签为  。直接使用伪标签训练很容易带来误差累计问题,因此需要尽可能使得伪标签打得准确,可以使用一个标签精炼(Label Refinery)的过程。具体而言包括:其中 是第  类样本的类中心,  是距离函数。以上几个公式可以看作是几步K-Means操作,第一个公式根据模型输出的概率值和每个样本的特征向量进行Soft加权得到类别中心,第二个公式根据每个样本和各个类中心的距离打标签,第三个公式是Hard加权更新类中心,第四个公式是根据距离打标签。该迭代可以重复很多次,但是一般来说使用这两步迭代之后的伪标签就会比较准确了。以上就是标签精炼的过程,主要是指使用目标域样本的关系(聚簇结果)来对伪标签进行进一步调整,而不仅仅是利用模型的预测结果。打了伪标签之后,模型可以根据交叉熵损失进行训练,综合IM损失,可以将模型性能提升至很高。总结总结一下,传统UDDA以及本文主要介绍的ADDA、FADA和SHOT可以使用下图来区分:参考文献Eric Tzeng, Judy Hoffman, Kate Saenko, Trevor Darrell: Adversarial Discriminative Domain Adaptation. CVPR 2017: 2962-2971Xingchao Peng, Zijun Huang, Yizhe Zhu, Kate Saenko: Federated Adversarial Domain Adaptation. ICLR 2020Jian Liang, Dapeng Hu, Jiashi Feng: Do We Really Need to Access the Source Data? Source Hypothesis Transfer for Unsupervised Domain Adaptation. CoRR abs/2002.08546 (2020)
  • [公告] Security SIG 会议预告 | 联邦学习任务中的数据安全和隐私保护
    主题《个人信息保护法》已于11月1日正式实施,可说是明文数据盛宴的结束,隐私计算春天的到来。隐私计算技术百花齐放,可归纳为可信执行环境,安全多方计算和联邦学习三大技术方向,本次SIG主题将围绕联邦学习展开。 联邦学习通过数据不动模型动的操作,实现了数据可用不可见的功能,其中“数据不动”是指数据不出本地的数据孤岛背景,“模型动”是指孤岛之间仅允许模型共享,“数据可用”是指联合模型是基于所有参与方训练数据得到的。 然而只把模型梯度上传就万事大吉无隐私泄露了吗?近年来有许多论文去探索联邦场景存在的隐私泄露,假设联邦聚合方是半诚实的,他会从梯度上尽可能多的推测参与方的信息,比如重构攻击,即利用梯度反转得到参与方的训练数据,这是一种比较强和深的攻击。还有成员推理攻击,即攻击者通过构造近似模型去判断给定的一个数据是否存在于参与方的训练数据库,当这个数据库本身属性很敏感时,“存在”就暴露了隐私,比如这个数据库是由患有某种疾病的病人信息组成的。以上两种皆是中心聚合方攻击参与方的场景,也有反过来的攻击方式,比如投毒和后门攻击等,本次SIG会议主要讨论前一种攻击方式。除了攻击,会议还会介绍横向端云联邦学习和云云联邦学习中,分别使用局部差分隐私和中心化差分隐私进行隐私保护的论文分享。 1//  Tips //为了便于大家获得更好的会议体验,建议大家提前通过链接https://mindspore.cn/federated/了解MindSpore已开源的联邦学习框架,通过链接https://www.mindspore.cn/mindarmour/了解差分隐私实现方法。会议结束之后,我们会把视频上传至MindSpore的bilibili官方账号。此外,我们也非常欢迎AI安全领域(如对抗样本、联邦学习、差分隐私、安全多方计算、模型可解释、deepfake、语音仿冒)的老师同学们主动报名,和大家分享自己的成果,找到志同道合的伙伴,共同解决难题!2//  会议详情 //会议时间:2021.12.2(周四) 19:15 ~ 20:25会议链接:https://meeting.tencent.com/dm/3REgCyoNYODZ腾讯会议ID:763-492-733(请大家在会议开始之前点击链接,根据链接提示下载好会议软件,谢谢!)3//  会议议程 //《端云与云云联邦学习中的攻击与防御》 时间:19:15 ~ 19:55演讲人:Tang Cong,MindSpore AI安全工程师《成员推理攻击》 时间:19:55 ~ 20:25演讲人:Xu Ke,华为安全专家自由讨论长按下方二维码加入MindSpore项目↓ MindSpore官方资料GitHub : https://github.com/mindspore-ai/mindsporeGitee : https : //gitee.com/mindspore/mindspore官方QQ群 : 486831414
  • [其他] 【转】隐私计算产业图谱与商业模式分析
    原作者:零壹财经原文链接: https://baijiahao.baidu.com/s?id=1715430319917702295&wfr=spider&for=pc目前,隐私计算市场尚处于发展的初期。从服务对象来看,在中国国内,隐私计算市场目前主要是一个面向企业的市场。但是在美国,已经出现了通过为企业提供隐私计算服务从而间接为个人提供隐私保护服务的模式,未来很有可能出现直接为个人提供隐私保护服务的应用。从行业发展成熟度来看,在中国国内,隐私计算市场的刚刚开始启动,应用刚刚落地,一切都正在尝试和探索当中。零壹智库在调研中发现,入局隐私计算的厂商背景相当多元化,这也从一个侧面印证了隐私计算这项技术将有可能影响到许多相关技术领域。一、隐私计算的To B市场与To C市场目前,在国内外,隐私计算主要是用在企业与企业之间的数据交互方面。因此,在现阶段,在全球范围内,隐私计算主要是一个To B市场。隐私计算厂商主要是通过为企业提供服务,起到保护个人隐私的作用。未来,隐私计算有出现To C市场的可能性。目前,个人数据主要是被分散存储在各种各样的场景应用中。比如,个人用户使用信用卡贷款,个人身份信息、贷款和还款的信息就会被存储在银行的信用卡中心。个人用户在网上购物,个人姓名、手机号、家庭住址、购买的物品和价格信息就会被存储在电商账户中。因此,目前的个人隐私保护在很大程度上要依赖各类企业对个人信息的保护。如果信用卡中心、电商公司、打车App、各级政府的信息系统没有保护好个人信息,个人信息就有泄露的可能。未来,有可能出现新的为个人提供信息保护的应用。这一预测来自零壹智库对加州大学伯克利分校教授、Oasis Labs创始人兼首席执行官宋晓冬的访谈。宋晓冬用“Data Vault(数据金库)”来描述未来可能出现的这一类新的应用。她认为隐私保护将逐渐落实在每个人身上,让个人成为数据的主人、并且从隐私的保护和分享中受益是大势所趋,要实现这一进程可能耗时不会超出10年的时间。二、隐私计算产业图谱(一)隐私计算产业生态隐私计算的产业生态当中,包含甲方、乙方和丙方三方。甲方指的是数据使用方。目前,这些机构集中在金融、政务、医疗、零售等几个领域。金融机构包括银行、保险等机构,其中银行数量最多。政务,各地政府部门,主要是实现政府不同部门之间的互联互通及数据共享,从而促进政府不同部门的协同,提高政府的效率以及决策质量。医疗机构,包括各地各级医院、药厂等。乙方,指的是数据源。目前金融类数据主要集中在政府、运营商、银联、互联网巨头手中。医疗数据在各地各级医院、医药公司、医保机构的系统里。政务数据主要包括是工商、司法、税务、海关、学历学籍等各政府职能部门日常运行积累的数据。政务数据,部分省市有政务数据共享平台和政务数据开放平台,但大多数数据往往散见于各地政府的各职能部门,难以互联互通,只有少数部门的数据是全国性的,其他数据都较为分散,即使是已经公开的信息很多也并不完整。丙方,指的是不拥有数据的服务机构,比如隐私计算厂商、云服务商、大数据服务商等。他们可能服务于数据源或者数据使用方,数据可能存放在他们的系统里,但是数据不属于他们。图1 隐私计算产业生态 (二)、隐私计算厂商图谱在业界,目前提供隐私计算服务的厂商大致可以分为几类:第一类,互联网巨头。目前,阿里巴巴、蚂蚁集团、微众银行、腾讯集团、百度集团、华为集团、京东集团、字节跳动等都互联网巨头都已经开始在隐私计算方向发力,旗下多个业务板块都推出了隐私计算产品。第二类,云服务商。目前,阿里云、腾讯云、百度云、京东云、金山云、华为云、优刻得等云服务商都推出了隐私计算服务。第三类,人工智能背景的公司。比如瑞莱智慧、医渡云、三眼精灵、渊亭科技。第四类,区块链背景的公司。比如矩阵元、Oasis、ARPA、趣链科技、零幺宇宙、宇链科技、翼帆数科、熠智科技、算数力、同济区块链等。第五类,有大数据背景的公司。比如星环科技。第六类,有安全背景的公司。比如阿里安全、腾讯安全、百度安全、安恒信息、神州融安、瓶钵科技、沙海科技等。第七类,软件服务商。比如普元信息、神州泰岳。第八类,有金融科技背景的公司。比如同盾科技、百融云创、富数科技、天冕科技、金智塔科技、冰鉴科技、甜橙金融等。第九类,供应链金融背景的公司。比如联易融、纸贵科技等。第十类,从隐私计算出发的初创公司。如华控清交、星云Clustar、数牍科技、蓝象智联、洞见科技、锘崴科技、翼方健数、冲量在线、光之树、融数联智、摩联科技、隔镜科技、神谱科技、同态科技、凯馨科技、煋辰数智等公司。图2 隐私计算厂商图谱 三、隐私计算公司商业模式与业务方向差异(一)商业模式据零壹智库调研了解,隐私计算公司目前有三种商业模式:第一,硬件销售。目前在隐私计算领域,有两种硬件,一种是FPGA加速卡,一种是隐私计算一体机,都是使用硬件提升隐私计算性能,更加符合实际应用场景需求。比如星云Clustar隐私计算软硬件一体机、蚂蚁摩斯隐私计算一体机等。第二,软件销售。就是销售隐私计算系统软件,大多数有隐私计算业务的公司都有这样的系统软件,比如蚂蚁摩斯多方安全计算平台、华控清交PrivPy 多方安全计算平台、同盾科技智邦平台iBond、瑞莱智慧隐私保护机器学习平台RealSecure、金智塔科技的“金智塔”隐私计算平台、天冕科技的天冕联邦学习平台WeFe、富数科技阿凡达安全计算平台、洞见科技INSIGHTONE洞见数智联邦平台、蓝象智联GAIA平台等。第三,平台分润。隐私计算公司软件销售积累了一定数量的客户之后,客户通过软件平台调用数据,获得收益之后,隐私计算公司可以获得这方面的收入。分润有三种方式:其一,数据源测分润。即根据数据调用量,在数据源收益中分润。其二,数据应用场景分润。在金融应用中,隐私计算主要应用于金融业务的风控和营销场景,可以从场景取得的收益中分润。其三,类数据代理模式。向数据源采购数据,加工成评分之后进行销售,整个过程中应用隐私计算技术。销售评分的价格,是在数据采购成本的基础上进行加价。但是,目前开源正在成为潮流,这使得在未来可能出现新的隐私计算商业模式。在中国,隐私计算的开源是从微众银行的隐私计算系统FATE开始的。2019 年 7月,微众银行一共发布了10款开源软件,其中就包括FATE——第一个开源联邦学习系统,开创了隐私计算系统开源的先例。当下,零壹智库了解到,在隐私计算领域,还有更多的公司已经或者正在加入开源的行列。比如,2020年初,字节跳动联邦学习平台 Fedlearner 开源。2020年5月,矩阵元隐私AI开源框架Rosetta发布。星云Clustar在FATE开源社区内开源了解决针对FATE平台自身存在的一些问题的方法,如解决FATE进程间通信问题的经验、技术、研究成果等。天冕科技联邦学习平台WeFe开放了全部源码,包含用户操作中心Board、网关GateWay、算法Kernel以及联邦基础设施Union等核心技术,共约30万行代码。富数科技也在考虑开源计划,并且倡导开源项目之间也要采用开放的、兼容的、公共的技术协议。对于B端,开源也在市场上逐渐发展为成熟的商业模式。主要的三种商业模式有:第一,在软件开源提供后,以软件后期的运维、部署、咨询、升级等技术手段盈利;第二,发行企业版与开源社区版双版本,企业版以服务于一些特点企业应用场景进行盈利;第三,通过将开源软件部署在云端服务器,需求方通过订阅的方式向提供方付费使用,同时这种模式也免去了实地部署等线下的过程与以及安装费用。因此,以后如果有更多的隐私计算平台开源,将可能发展出更多的商业模式。
  • [基础知识] MindSpore代码评析(十)MindSpore中的差分隐私(上)
    ## MindSpore代码评析(十)MindSpore中的差分隐私(上) #### 一、数据隐私保护的背景 在我们进行机器学习实践时,我们能找到不少医院、保险集团等机构发布的数据,这些机构发布这些数据是为了公共的科学研究。为防止隐私泄露问题,他们会特地删除数据中所有个人敏感信息,例如身份证号、姓名、住址等,但是即使这样,也会导致用户隐私的泄露。 用户数据隐私的问题一直是公众最为关心的事情之一,但企业也需要通过用户的数据来进行分析研究以实现技术进步,这一矛盾造成了这个世纪数据隐私问题的频发。 #### 二、从张子涵的工资看识别个人信息有多简单 举个例子,我们希望确定张子涵上班的收入,我们发现他的公司也发布了全体员工的工资信息。 ```python df =pd.read_csv('Employee_monthly_salary.csv', encoding='utf-8') df.head(5) ``` ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222228qurqkjoss7ccuvgi.png) 显然,该公司没有保护好员工的个人隐私,我们就能很容易的找到张子涵的信息。 ```python df.loc[df['Name'] == 'Zihan Zhang'] ``` ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222220dljvsbqaifodxdq9.png) 之后,公司为了保护员工隐私,只给出了删除员工姓名后的工资数据: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222315fxzpahs2len7gfoq.png) 但我们有着关于他的相关辅助信息,知道张子涵的生日和入职时间。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222304h8totg5h2gik6f1j.png) 此时,我们只需要做一次表的连结,即merge操作,从工资数据中找到所有生日和张子涵相同的人。 ```python pd.merge(zzh_row,df,on=['Date_of_Birth']) ``` 这样,我们就从几千人的数据中找到张子涵的工资为114441。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222327ouagn350npiimucy.png) 有时即使我们找到的数据有多行,比如有很多人生日和张子涵一样,但我们也能从中获得有用的信息: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222339imaubttb87ty3yvg.png) 从中我们可以知道张子涵工资的最大可能是267063,我们也可以查看行之间的差异,以确定哪些额外的辅助信息可以帮助我们区分它们(例如性别、职业、婚姻状况)。 #### 三、数据隐私保护的需求 数据隐私保护有着两个相悖的需求。即我们希望数据使用隐私保护技术后,可以安全发布,攻击者难以去匿名化,但是又需要保证原始数据的研究价值。传统的数据隐私保护方法无法同时兼顾这两种需求。 #### 四、差分隐私的基本概念 差分隐私的目的是使得数据库查询结果对于数据集中单个记录的变化不敏感。简单来说,就是单个记录在或者不在数据集中,对于查询结果的影响微乎其微。那么攻击者就无法通过加入或减少一个记录,观察查询结果的变化来推测个体的具体信息。 当我们用机器学习来完成某个重要的任务,例如用户信用分析,发布的机器学习模型可能在无意中透露训练集中的个体特征,恶意攻击者可能从发布的模型获得关于个体的隐私信息。 举例说明,当不使用差分隐私技术时,我们访问保险公司A发布的关于个人信用信息的数据库,查询1000个人的信用情况,返回100个人信用不良。接着我们查询999个人的信用情况,返回100个人信用不良。那我们就可以推测剩下的一个人信用不良。而当我们使用差分隐私技术后,查询1000人信用情况,返回的则是9.99%的信用不良概率,当查询999个人的时候,返回9.98%的信用不良概率。这样,我们就无法确定剩下的那个人到底是不是信用不良。 通过这种方式,我们既能够保证数据的研究价值,不影响数据的通用特征,又能防止攻击者从数据集中获得个体的特征。这种隐私保护方式无需考虑攻击者拥有的背景知识,即无论攻击者是否拥有与目前数据集有交集的其它数据集,都不会影响隐私保护。 #### 五、如何实现差分隐私 满足差别隐私的功能通常被称为机制。如果两个相邻的数据集![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222640uujrjcm2nnkrwoc2.png)满足如下关系,则机制满足差分隐私。其中![[公式]](https://www.zhihu.com/equation?tex=Pr)指的是概率,![[公式]](https://www.zhihu.com/equation?tex=S)是所有输出结果的集合,![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222614r9xfqwsjcpsqgurr.png) 表示隐私预算,与噪声负相关。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222439hoeo6ybf7ydtyq0s.png) 下图中,F1、F2分别表示对不同的输入进行的随机算法的输出,可以看出二者的差异在一个可控范围![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222703gar0hujceoqvaltq.png),即![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/2227364c0e0ktn8bejau4z.png)内。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222431gi4yiggrolzhy44e.png) 此定义的重要含义是对于数据集进行的随机算法**F**的输出将大致相同,**无论是否有**任何特定个人的数据。换句话说,内置到**F**中的随机性应该是"足够的",这样从隐私预算中观察到的输出不会揭示输入的哪个输入) 。想象一下,我的数据存在于![[公式]](https://www.zhihu.com/equation?tex=x)中,但不存在于![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/31/222759vnoo6vqywyjvtbqv.png)中。如果对手无法确定哪个是**F**的输入,则对手无法判断我的数据是否存在于输入中,更不用说该数据的内容了。 那具体怎么实现呢? 一个很自然而然的想法是“加噪声”。差分隐私可以通过加适量的干扰噪声来实现,但是不同的数据对于噪声的**敏感度**不同,例如入年龄数据集的数据间差异就没有工资数据集的数据差异大,对噪声的敏感度就较高,敏感度是决定该加多少噪声的重要因素,如果忽略敏感度而添加噪声就会导致数据集被污染,针对敏感度的研究,目前已有多种噪声添加的机制。 目前常用的添加噪音的机制有**拉普拉斯机制**、**指数机制**和**高斯机制**。其中拉普拉斯机制用于保护数值型的结果,指数机制用于保护离散型的结果。 #### 六、总结 简单来说,差分隐私的本质是"加噪",任何需要隐私保护的算法都可以使用差分隐私,由于差分隐私的串并联原理,只要算法中的每一个步骤都满足差分隐私要求,那么这个算法的最终结果将满足差分隐私特性。因此,差分隐私可以在算法流程中的任意步骤。 这篇博客我们讲了差分隐私的基本概念,下篇博客我将介绍MindSpore是如何实现差分隐私保护的,还请继续关注。 *文中数据集地址:[下载仓库 · starsgod/data_set - Gitee.com](https://gitee.com/starsgod/data_set/repository/archive/master.zip),本文中为演示稍作修改。*
  • [技术干货] 隐私计算联盟介绍——与华为共探隐私计算发展未来
    01 隐私计算联盟介绍联 盟 名 称:隐私计算联盟,简称为 CCC。联 盟 定 义:隐私计算联盟(CCC)成立于 2019 年 10 月 17 日,是 Linux 基金会的一个项目社区,致力于定义和加速采用隐私计算。联盟将采取开放式治理和协作,将全球顶尖的硬件供应商、云提供商和软件开发人员召集在一起,以加速推动隐私计算市场的发展;影响技术和法规标准;建立开源工具,为 TEE 开发提供合适的环境”并主持行业推广和教育计划。它的目的是解决使用中数据的计算信任和安全性,使加密的数据可以在内存中进行处理而不会暴露给系统的其余部分,从而减少了对敏感数据的暴露,并为用户提供了更好的控制和透明度。联 盟 成 员:隐私计算联盟(CCC)汇聚业界最顶尖的技术领导者,致力于提高了下一代互联网的计算信任度和安全性,参与联盟的成员包括:Oasis Labs、阿里巴巴、华为、英特尔、微软、Google Cloud、Red Hat、百度、字节跳动、Fortanix、Kindite、瑞士电信、腾讯和 VMware 等。02 隐私计算联盟贡献隐私计算联盟是针对使用中的数据的首批全行业计划之一,随着公司将更多的工作负载转移到跨多个环境(从本地到公共云再到隐私)的过程中,隐私计算联盟的重点尤其重要。联盟正式成立后,建立了开放的治理结构,包括一个理事会,一个技术咨询委员会以及对每个技术项目的独立监督团,旨在托管各种技术开源项目和开放规范,以支持隐私计算。目前联盟的贡献包括:Software Guard Extensions (Intel SGX) SDK:旨在帮助应用程序开发人员使用受保护的内存隔离区,保护选定的代码和数据免于在硬件层泄露或修改。Open Enclave SDK:这是一个开放源代码框架,允许开发人员使用单个包含抽象来构建受信任的执行环境(TEE)应用程序。一旦在多种 TEE 架构上运行,开发人员便可以构建应用程序。Enarx:一个为使用 TEE 保护应用程序提供硬件独立性的项目。联盟是开源的欧洲首脑会议的赞助商之一,在如何处理安全性数据会话中,联盟在国际社会频频发声并取得不错反响。03 华为可信智能计算产品华为云可信智能计算服务TICS基于可信计算环境TEE(鲲鹏Trustzone和Intel SGX),同时采用安全多方计算、同态加密、联邦学习、差分隐私等隐私增强计算技术,满足政府、企业和金融机构在数据资源开发利用中的多样隐私保护需求,实现数据可用不可见,推动多方机构协同进行模型训练和数据分析等多方数据隐私计算,兼顾性能提升和隐私保护,助力政企信用联合风控与政府数据融合共治,提升政府、企业和金融机构治理效能。未来,华为云可信智能计算服务TICS将持续注入更领先的技术,为行业智能升级提供无限可能。
  • [其他] 联邦学习与隐私保护的关系
    联邦学习与隐私保护的关系联邦学习的特点使其可以被用来保护用户数据的隐私,但是它和大数据、数据挖掘领域中常用的隐私保护理论,如差分隐私保护理论 (differential privacy) 与 k 匿名 (k-anonymity) 等方法,还是有较大的差别。联邦学习与传统隐私保护方法的原理不同。联邦学习通过加密机制下的参数交换方式保护用户数据隐私,数据和模型本身不会进行传输,也不能反猜对方数据,因此在数据层面不存在泄露的可能,也不违反更严格的数据保护法案如 GDPR 等。而差分隐私理论、k 匿名和 l 多样化等方法是通过在数据里加噪音,或者采用概括化的方法模糊某些敏感属性,直到第三方不能区分个体为止,从而以较高的概率使数据无法被还原,以此来保护用户隐私。相较而言,联邦学习对用户数据隐私保护更为有用。
  • [SQL] 【GaussDB(DWS)征文】GaussDB(DWS)安全:隐私保护现真招儿——数据脱敏
    【摘要】 GaussDB (DWS)产品数据脱敏功能,是数据库产品内化和夯实数据安全能力的重要技术突破。提供指定用户范围内列级敏感数据的脱敏功能,具有灵活、高效、透明、友好等优点,极大地增强产品的数据安全能力,实现敏感数据的可靠保护。更佳阅读体验,请移步【原创】GaussDB(DWS)安全:隐私保护现真招儿——数据脱敏引言        大数据时代的到来,颠覆了传统业态的运作模式,激发出新的生产潜能。数据成为重要的生产要素,是信息的载体,数据间的流动也潜藏着更高阶维度的价值信息。对于数据控制者和数据处理者而言,如何最大化数据流动的价值,是数据挖掘的初衷和意义。然而,一系列信息泄露事件的曝光,使得数据安全越来越受到广泛的关注。各国各地区逐步建立健全和完善数据安全与隐私保护相关法律法规,提供用户隐私保护的法律保障。如何加强技术层面的数据安全和隐私保护,对数据仓库产品本身提出更多的功能要求,也是数据安全建设最行之有效的办法。        GaussDB (DWS)产品8.1.1版本发布数据脱敏特性,提供指定用户范围内列级敏感数据的脱敏功能,具有灵活、高效、透明、友好等优点,极大地增强产品的数据安全能力。什么是数据脱敏?        数据脱敏(Data Masking),顾名思义,是屏蔽敏感数据,对某些敏感信息(比如,身份证号、手机号、卡号、客户姓名、客户地址、邮箱地址、薪资等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护。业界常见的脱敏规则有,替换、重排、加密、截断、掩码,用户也可以根据期望的脱敏算法自定义脱敏规则。        通常,良好的数据脱敏实施,需要遵循如下两个原则,第一,尽可能地为脱敏后的应用,保留脱敏前的有意义信息;第二,最大程度地防止黑客进行破解。        数据脱敏分为静态数据脱敏和动态数据脱敏。静态数据脱敏,是数据的“搬移并仿真替换”,是将数据抽取进行脱敏处理后,下发给下游环节,随意取用和读写的,脱敏后数据与生产环境相隔离,满足业务需求的同时保障生产数据库的安全。动态数据脱敏,在访问敏感数据的同时实时进行脱敏处理,可以为不同角色、不同权限、不同数据类型执行不同的脱敏方案,从而确保返回的数据可用而安全。        GaussDB (DWS)的数据脱敏功能,摒弃业务应用层脱敏依赖性高、代价大等痛点,将数据脱敏内化为数据库产品自身的安全能力,提供了一套完整、安全、灵活、透明、友好的数据脱敏解决方案,属于动态数据脱敏。用户识别敏感字段后,基于目标字段,绑定内置脱敏函数,即可创建脱敏策略。脱敏策略(Redaction Policy)与表对象是一一对应的。一个脱敏策略包含表对象、生效条件、脱敏列-脱敏函数对三个关键要素,是该表对象上所有脱敏列的集合,不同字段可以根据数据特征采用不同的脱敏函数。当且仅当生效条件为真时,查询语句才会触发敏感数据的脱敏,而脱敏过程是内置在SQL引擎内部实现的,对生成环境用户是透明不可见的。怎么用数据脱敏?        动态数据脱敏,是在查询语句执行过程中,根据生效条件是否满足,实现实时的脱敏处理。生效条件,通常是针对当前用户角色的判断。敏感数据的可见范围,即是针对不同用户预设的。系统管理员,具有最高权限,任何时刻对任何表的任何字段都可见。确定受限制用户角色,是创建脱敏策略的第一步。        敏感信息依赖于实际业务场景和安全维度,以自然人为例,用户个体的敏感字段包括:姓名、身份证号、手机号、邮箱地址等等;在银行系统,作为客户,可能还涉及银行卡号、过期时间、支付密码等等;在公司系统,作为员工,可能还涉及薪资、教育背景等;在医疗系统,作为患者,可能还涉及就诊信息等等。所以,识别和梳理具体业务场景的敏感字段,是创建脱敏策略的第二步。        产品内置一系列常见的脱敏函数接口,可以针对不同数据类型和数据特征,指定参数,从而达到不一样的脱敏效果。脱敏函数可采用如下三种内置接口,同时支持自定义脱敏函数。三种内置脱敏函数能够涵盖大部分场景的脱敏效果,不推荐使用自定义脱敏函数。MASK_NONE:不作脱敏处理,仅内部测试用。MASK_FULL:全脱敏成固定值。MASK_PARTIAL:使用指定的脱敏字符对脱敏范围内的内容做部分脱敏。        不同脱敏列可以采用不同的脱敏函数。比如,手机号通常显示后四位尾号,前面用"*"替换;金额统一显示为固定值0,等等。确定脱敏列需要绑定的脱敏函数,是创建脱敏策略的第三步。        以某公司员工表emp,表的属主用户alice以及用户matu、july为例,简单介绍数据脱敏的使用过程。其中,表emp包含员工的姓名、手机号、邮箱、发薪卡号、薪资等隐私数据,用户alice是人力资源经理,用户matu和july是普通职员。    假设表、用户及用户对表emp的查看权限均已就绪。创建脱敏策略mask_emp,仅允许alice查看员工所有信息,matu和july对发薪卡号、薪资均不可见。字段card_no是数值类型,采用MASK_FULL全脱敏成固定值0;字段card_string是字符类型,采用MASK_PARTIAL按指定的输入输出格式对原始数据作部分脱敏;字段salary是数值类型,采用数字9部分脱敏倒数第二位前的所有数位值。postgres=# CREATE REDACTION POLICY mask_emp ON emp WHEN (current_user != 'alice') ADD COLUMN card_no WITH mask_full(card_no), ADD COLUMN card_string WITH mask_partial(card_string, 'VVVVFVVVVFVVVVFVVVV','VVVV-VVVV-VVVV-VVVV','#',1,12), ADD COLUMN salary WITH mask_partial(salary, '9', 1, length(salary) - 2);       切换到matu和july,查看员工表emp。postgres=>SET ROLE matu PASSWORD 'Gauss@123'; postgres=>SELECT * FROM emp;  id | name |  phone_no   | card_no |     card_string     |        email         |   salary   |      birthday ----+------+-------------+---------+---------------------+----------------------+------------+---------------------   1 | anny | 13420002340 |       0 | ####-####-####-1234 | smithWu@163.com      | 99999.9990 | 1999-10-02 00:00:00   2 | bob  | 18299023211 |       0 | ####-####-####-3456 | 66allen_mm@qq.com    |  9999.9990 | 1989-12-12 00:00:00   3 | cici | 15512231233 |         |                     | jonesishere@sina.com |            | 1992-11-06 00:00:00 (3 rows) postgres=>SET ROLE july PASSWORD 'Gauss@123'; postgres=>SELECT * FROM emp;  id | name |  phone_no   | card_no |     card_string     |        email         |   salary   |      birthday ----+------+-------------+---------+---------------------+----------------------+------------+---------------------   1 | anny | 13420002340 |       0 | ####-####-####-1234 | smithWu@163.com      | 99999.9990 | 1999-10-02 00:00:00   2 | bob  | 18299023211 |       0 | ####-####-####-3456 | 66allen_mm@qq.com    |  9999.9990 | 1989-12-12 00:00:00   3 | cici | 15512231233 |         |                     | jonesishere@sina.com |            | 1992-11-06 00:00:00 (3 rows)    2. 由于工作调整,matu进入人力资源部参与公司招聘事宜,也对员工所有信息可见,修改策略生效条件。postgres=>ALTER REDACTION POLICY mask_emp ON emp WHEN(current_user NOT IN ('alice', 'matu'));        切换到用户matu和july,重新查看员工表emp。postgres=>SET ROLE matu PASSWORD 'Gauss@123'; postgres=>SELECT * FROM emp;  id | name |  phone_no   |     card_no      |     card_string     |        email         |   salary   |      birthday ----+------+-------------+------------------+---------------------+----------------------+------------+---------------------   1 | anny | 13420002340 | 1234123412341234 | 1234-1234-1234-1234 | smithWu@163.com      | 10000.0000 | 1999-10-02 00:00:00   2 | bob  | 18299023211 | 3456345634563456 | 3456-3456-3456-3456 | 66allen_mm@qq.com    |  9999.9900 | 1989-12-12 00:00:00   3 | cici | 15512231233 |                  |                     | jonesishere@sina.com |            | 1992-11-06 00:00:00 (3 rows) postgres=>SET ROLE july PASSWORD 'Gauss@123'; postgres=>SELECT * FROM emp;  id | name |  phone_no   | card_no |     card_string     |        email         |   salary   |      birthday ----+------+-------------+---------+---------------------+----------------------+------------+---------------------   1 | anny | 13420002340 |       0 | ####-####-####-1234 | smithWu@163.com      | 99999.9990 | 1999-10-02 00:00:00   2 | bob  | 18299023211 |       0 | ####-####-####-3456 | 66allen_mm@qq.com    |  9999.9990 | 1989-12-12 00:00:00   3 | cici | 15512231233 |         |                     | jonesishere@sina.com |            | 1992-11-06 00:00:00 (3 rows)        3. 员工信息phone_no、email和birthday也是隐私数据,更新脱敏策略mask_emp,新增三个脱敏列。postgres=>ALTER REDACTION POLICY mask_emp ON emp ADD COLUMN phone_no WITH mask_partial(phone_no, '*', 4); postgres=>ALTER REDACTION POLICY mask_emp ON emp ADD COLUMN email WITH mask_partial(email, '*', 1, position('@' in email)); postgres=>ALTER REDACTION POLICY mask_emp ON emp ADD COLUMN birthday WITH mask_full(birthday);        切换到用户july,查看员工表emp。postgres=>SET ROLE july PASSWORD 'Gauss@123'; postgres=>SELECT * FROM emp;  id | name |  phone_no   | card_no |     card_string     |        email         |   salary   |      birthday ----+------+-------------+---------+---------------------+----------------------+------------+---------------------   1 | anny | 134******** |       0 | ####-####-####-1234 | ********163.com      | 99999.9990 | 1970-01-01 00:00:00   2 | bob  | 182******** |       0 | ####-####-####-3456 | ***********qq.com    |  9999.9990 | 1970-01-01 00:00:00   3 | cici | 155******** |         |                     | ************sina.com |            | 1970-01-01 00:00:00 (3 rows)      4. 考虑用户交互的友好性,GaussDB (DWS) 提供系统视图redaction_policies和redaction_columns,方便用户直接查看更多脱敏信息。postgres=>SELECT * FROM redaction_policies;  object_schema | object_owner | object_name | policy_name |            expression             | enable | policy_description ---------------+--------------+-------------+-------------+-----------------------------------+--------+--------------------  public        | alice        | emp         | mask_emp    | ("current_user"() NOT IN ('alice'::name, 'matu'::name)) | t      | (1 row) postgres=>SELECT object_name, column_name, function_info FROM redaction_columns;  object_name | column_name |                                             function_info -------------+-------------+-------------------------------------------------------------------------------------------------------  emp         | card_no     | mask_full(card_no)  emp         | card_string | mask_partial(card_string, 'VVVVFVVVVFVVVVFVVVV'::text, 'VVVV-VVVV-VVVV-VVVV'::text, '#'::text, 1, 12)  emp         | email       | mask_partial(email, '*'::text, 1, "position"(email, '@'::text))  emp         | salary      | mask_partial(salary, '9'::text, 1, (length((salary)::text) - 2))  emp         | birthday    | mask_full(birthday)  emp         | phone_no    | mask_partial(phone_no, '*'::text, 4) (6 rows)        5. 突然某一天,公司内部可共享员工信息时,直接删除表emp的脱敏策略mask_emp即可。postgres=# DROP REDACTION POLICY mask_emp ON emp;更多用法详情,请参考GaussDB (DWS) 8.1.1产品文档。数据脱敏实现背后的秘密       GaussDB (DWS)数据脱敏功能,基于SQL引擎既有的实现框架,在受限用户执行查询语句过程中,实现外部不感知的实时脱敏处理。关于其内部实现,如上图所示。我们将脱敏策略(Redaction Policy)视为表对象上绑定的规则,在优化器查询重写阶段,遍历Query Tree中TargetList的每个TargetEntry,如若涉及基表的某个脱敏列,且当前脱敏规则生效(即满足脱敏策略的生效条件且enable开启状态),则断定此TargetEntry中涉及要脱敏的Var对象,此时,遍历脱敏列系统表pg_redaction_column,查找到对应脱敏列绑定的脱敏函数,将其替换成对应的FuncExpr即可。经过上述对Query Tree的重写处理,优化器会自动生成新的执行计划,执行器遵照新的计划执行,查询结果将对敏感数据做脱敏处理。        带有数据脱敏的语句执行,相较于原始语句,增加了数据脱敏的逻辑处理,势必会给查询带来额外的开销。这部分开销,主要受表的数据规模、查询目标列涉及的脱敏列数、脱敏列采用的脱敏函数三方面因素影响。      针对简单查询语句,以tpch表customer为例,针对上述因素展开测试,如下图所示。        图(a)、(b)中基表customer根据字段类型和特征,既有采用MASK_FULL脱敏函数的,也有采用MASK_PARTIAL脱敏函数的。MASK_FULL对于任何长度和类型的原始数据,均只脱敏成固定值,所以,输出结果相较于原始数据,差异很大。图(a)显示不同数据规模下,脱敏和非脱敏场景简单查询语句的执行耗时。实心图标为非脱敏场景,空心图标为被限制用户,即脱敏场景。可见,数据规模越大,带有脱敏的查询耗时与原始语句差异越大。图(b)显示10x数据规模下查询涉及脱敏列数不同对于语句执行性能的影响。涉及1列脱敏列时,带有脱敏的查询比原始语句慢,追溯发现,此列采用的是MASK_PARTIAL部分脱敏函数,查询结果只是改变了结果的格式,结果内容的长度并未变化,符合“带有脱敏的语句执行会有相应的性能劣化”的理论猜想。随着查询涉及脱敏列数的增加,我们发现一个奇怪的现象,脱敏场景反倒比原始语句执行更快。进一步追溯多列场景下脱敏列关联的脱敏函数,发现,正是因为存在使用MASK_FULL全脱敏函数的脱敏列,导致输出结果集部分相比原始数据节省很多时间开销,从而多列查询下带有数据脱敏的简单查询反倒提速不少。        为了佐证上述猜测,我们调整脱敏函数,所有脱敏列均采用MASK_PARTIAL对原始数据做部分脱敏,从而能够在脱敏结果上保留原始数据的外部可读性。于是,如图(c)所示,当脱敏列均关联部分脱敏函数时,带有数据脱敏的语句比原始语句劣化10%左右,理论上讲,这种劣化是在可接受范围的。上述测试仅针对简单的查询语句,当语句复杂到带有聚集函数或复杂表达式运算时,可能这种性能劣化会更明显。总结GaussDB (DWS)产品数据脱敏功能,是数据库产品内化和夯实数据安全能力的重要技术突破,主要涵盖以下三个方面:一套简单、易用的数据脱敏策略语法;一系列可覆盖常见隐私数据脱敏效果的、灵活配置的内置脱敏函数;一个完备、便捷的脱敏策略应用方案,使得原始语句在执行过程中可以实时、透明、高效地实现脱敏。总而言之,此数据脱敏功能可以充分满足客户业务场景的数据脱敏诉求,支持常见隐私数据的脱敏效果,实现敏感数据的可靠保护。【温馨提示】使用过程中,如有疑问,欢迎随时交流反馈。                                                   
  • [其他] 学习笔记 - 如何在机器学习的框架里实现隐私保护
    在大数据和人工智能的时代,人们能够更方便高效地获取信息。然而在获得便利的同时,我们的行为无时无刻不在被记录、被学习、被使用。如果在应用中不注重隐私保护,就很难阻止个人信息被用于非法目的。近年来,越来越多的人开始重视数据隐私,在选择使用客户端软件(App)时更加关注隐私条款。有研究表明,对于隐私的保护可以提高用户的使用率[1]。此外,在法律层面,欧盟《通用数据保护条例》(GDPR)规范了企业收集、管理、删除客户和个人数据,中国也在保护隐私方面完善了法律法规。我们时常能看到某公司因为用户数据隐私不合规被处罚的新闻。图1:GDPR 罚款漫画(引自 coredna.com)然而,没有数据,机器学习就如无米之炊。随着研究的发展,机器学习的模型变得越来越强,需要的训练数据也大大增加,比如,业界有些训练模型需要使用上百 G 的数据来训练数十亿的参数。而在很多专业领域如医疗、金融防欺诈等,数据则因为隐私或者利益被分割成孤岛,使得机器学习面临着有效数据不足的问题。因此,如果不能对数据隐私提供保证,那么信息流动和机器学习也无法实现。数据保护和机器学习似乎有着天然的矛盾, 因此,用户和服务提供商都面临的一个挑战是如何在机器学习的框架里实现隐私保护,取得隐私和效益的平衡。隐私一词在不同场景下指代的意义会有较大差别,在机器学习中亦是如此。接下来我们将分三节分别介绍不同层面的隐私保护(如图2)。具体来说,第一部分陈述机密计算,讨论如何实现机器学习中计算的机密性;第二部分陈述模型的隐私,差分隐私以及机器遗忘,讨论如何减少机器学习模型对数据的泄露;第三部分陈述分布式机器学习的隐私,即联邦学习,讨论在数据隔离分布式存储,如何利用机密计算和模型隐私的技术有效地进行隐私保护的机器学习。图2:本文结构示意图第一章 机密计算(Confidential computing)机密计算(confidential computing)是指数据的传输和计算过程是机密的(confidential)。当前实现机密计算的方法有可信执行环境(Trusted Executive Environment, TEE),同态加密(Homomorphic Encryption, HE)和多方安全计算(Multi-party Secure Computation, MPC)。可信执行环境(TEE)是处理器或虚拟系统上一个安全区域,可以保证在其中加载的数据和代码的机密性和完整性。简言之,TEE 可以被认为是认证用户在云端的一块飞地(enclave, 包括计算和存储资源),虽然物理上在云端,但逻辑上只受认证用户管辖。数据和可信程序在云端加密存储,只有在加载到 TEE 后才会解密,计算,计算结果再加密存储到云端。云端只负责提供可信的计算环境,对其中的计算无法干预。关于 TEE,硬件或者逻辑漏洞以及可扩展性是现在研究的重点。图3:TEE 实现方案同态加密,是一种加密方法,可以在密文上计算而不需要密钥,而且计算结果是机密的,需要使用密钥才能解密成明文。一般地,同态加密算法仅实现了同态加法和同态乘法,因此需要把计算归约成一个数域上的加法和乘法电路。例如为了实现在神经网络上的同态加密计算,需要对网络做一些改动使得其只包含加法乘法和多项式运算操作:把 ReLU 换成多项式激活函数,运算使用定点数等,来自微软研究院的 SEAL 项目[2]是目前比较流行的相关开源项目。但同态加密的实际应用还面临很大困难,由于它只能进行加法和乘法操作,相比于明文运算增加了相当大的计算开销,所以现在的技术大约只能扩展到 MNIST 和 CIFAR 的推断部分[3]。多方安全计算是参与方以各自隐私数据为输入共同计算一个函数值。在整个过程中,各参与方除了计算结果,对他方的隐私数据没有额外的认知。多方安全计算能够同时确保输入的机密性和计算的正确性,其思想本质是输入数据是计算结果的一种冗余表示,有(无穷)多种输入样例对应相同的计算结果,因此引入随机数来掩盖这种冗余性从而实现机密计算。多方安全计算需要设计协议来实现加法和乘法操作,但它的瓶颈在于通信复杂度的提升[4],如广泛应用的 Beaver 协议对于每个乘法操作需要一轮通信开销。当前开源项目 Facebook CrypTen [5]和 Openminded PySyft [6] 用 Python 实现了多方安全计算的协议,可以进行如数据分离,数据模型分离等场景下的模型训练和推断。当前的研究热点是如何设计协议,降低通信开销,以及如何连接应用场景和技术实现。表1:机密计算技术特征表1总结了三种机密计算技术的特征。机器学习研究者尝试着把这些机密计算的技术和机器学习的过程结合实现对计算过程隐私的保护,以及使用它们来降低模型差分隐私所需要的噪音[7]。第二章  模型的隐私(Model privacy)机密计算可以做到在训练过程中保护数据的隐私。那么训练后的模型会造成隐私训练数据的泄露吗?答案是可能的,因为机器学习的模型都会在一定程度上过拟合(泛化鸿沟),模型自身会记住(部分)训练数据,从而导致发布模型会造成隐私训练数据的泄露。一个例子是模型反向工程(model inversion, 从模型推断训练数据)[8] ,如图4就是攻击者只用姓名和人脸识别系统的黑盒(blackbox)访问恢复出的训练集中的数据。另一个例子是成员推断(membership inference),它推断某个样本是不是在训练集中,较高的成员推断成功率显示模型对训练数据的隐私有泄露[9]。图4:从人脸识别模型通过黑盒攻击恢复出训练集中的数据,其中左图为攻击推断结果,右图为真实图像[8]差分隐私(Differential Privacy, DP) 可以衡量和控制模型对训练数据的泄露。它从统计意义上刻画了单个数据样本对模型的影响。一个随机算法 M 符合 (ϵ,δ)-DP 意味着对于任何两个相邻的数据集 S, S' 和任意事件 E 满足P(M(S)∈E))≤e^ϵ P(M(S' )∈E)+δ. (1)实现算法差分隐私的一种通用做法是加噪音。加噪音会带来模型的性能损失,差分隐私机器学习(differential private machine learning) 就是研究如何更节省地加噪音,如何在给定隐私损失的要求下,加最少的噪音取得最好的性能。微软和中山大学在这方面的论文介绍了相关的研究工作[10]。研究人员发现加入的噪音和优化算法会相互影响:噪音会让优化算法避开最差曲率方向,优化算法的收缩性可以弱化之前步骤加的噪音。他们在分析中利用这种相互影响,推导出了一个新的基于期望曲率的理论性能界,可以显式地看出梯度扰动比另外两种扰动方式(目标扰动和输出扰动)的优势,并且给出了另外两种扰动无法利用这种相互影响的原因。据此,梯度扰动是一种实现差分隐私机器学习的有效算法。从2006年差分隐私被提出以来,隐私的度量也一直是这个领域很基础的一个问题,期间提出的概念包括 ϵ-DP、(ϵ,δ)-DP、Renyi-DP、(Truncated) Concentrated DP 等。隐私度量,顾名思义是要度量一个算法的隐私损失。(ϵ,δ)-DP 可以按照公式计算出一次统计查询对应的隐私损失(ϵ,δ)。通常一个复杂算法可以看成多次统计查询的复合(composition)和采样(sampling) ,因此分析一个复杂算法的隐私损失需要计算复合和采样两种操作的隐私损失。2019年[11]提出的高斯差分隐私(gaussian differential privacy)对采样和复合都给出了一个紧估计,在隐私损失的统计上比之前的 moments accountant 技术更精准,从而在相同隐私预算下要加的噪音更小,取得的性能更好。最近,另一个模型隐私的研究热点是模型遗忘(machine unlearning)。如果把实现差分隐私看成主动设计算法使得输出模型满足隐私要求,那么模型遗忘是一种被动解决模型隐私的方法。它旨在机器学习模型中实现用户的“被遗忘权利(the right to be forgotten)”。模型遗忘最直观的做法是在删除指定数据后的训练集上重新训练(retraining)这种做法的计算代价非常大,因此模型遗忘工作的主要目标是降低计算代价,一类方法是对训练好的模型进行后处理,使得模型遗忘算法的结果跟重新训练得到的模型是统计意义上近似不可区分的[12,13];另外一类方法是设计新的训练方法,降低重新训练的代价,这类方法通常将数据分成不同块, 每块数据单独训练一个子模型, 并汇总子模型的结果,这样删除一个数据点只需要重新训练一个子模型[14,15]。 第三章 联邦学习(Federated learning)联邦学习(federated learning)的愿景是在不共享数据的情形下进行多方联合机器学习,本质上是一种数据访问受限的分布式机器学习框架。相比于经典的分布式机器学习,联邦学习的第一层受限是数据隔离——数据在各个终端不共享,不均衡,交互通信要尽量少。微软和 CMU 合作的论文介绍了这方面的工作[16]。研究人员分析了在数据隔离的限制下一类分布式方差缩减算法(Variance Reduced Methods, i.e.,SVRG,SARAPH,MIG)的理论性能。在最自然的分布式设置下(终端节点运算内循环,参数服务器运算外循环)取得线性收敛性(强凸目标函数),并且算法的时间复杂度对条件数的依赖取得目前理论上的最好结果。分布式方差缩减算法相比于分布式梯度下降,显著降低了通信开销并利于保护隐私。在分析中,研究人员引入了 restricted smoothness 衡量本地目标函数和全局目标函数之差的平滑性,结果显示 restricted smoothness 决定了算法的收敛性。并且当数据不平衡,restricted smoothness 较差时,引入差异正则项,保证算法可以收敛。表2列举了各个分布式算法的通信和计算复杂度比较(*标识文中的算法),可以看出文中的分析对最自然的分布式方差缩减算法给出了最优的结果。表 2:分布式算法通信和计算复杂度比较联邦学习的第二层受限是隐私保护。直觉上,只共享参数更新而不共享原始数据可以在一定程度上保护原始数据的隐私。不过,论文[17]指出在深度模型**享单个样本的梯度可以泄露原始数据。他们提出梯度匹配(gradient matching)算法,利用给定输入在模型上的梯度可以相当准确地恢复出原始数据的输入和标签。图5展示了梯度匹配在 MNIST、SVHN、CIFAR、LFW 数据集上恢复输入的例子。虽然在复合多个样本点的梯度时,梯度匹配算法会失效,但这篇文章仍然展示了梯度对原始数据的暴露。通常,联邦学习的算法会使用前面介绍的机密计算的工具(同态加密或多方安全计算)来实现可证明的隐私保护[18,19],只是这些机密计算的方法会带来很大额外的计算和通信开销。图5:攻击者从共享的梯度中恢复出原始数据,从上到下分别是 MNIST、CIFAR100、SVHN、LFW [17]相比于同态加密完全在密文域学习和运算,是否存在一种数据弱加密方法,使得模型可以直接在其上训练、推断同时还能拥有一定的隐私保证呢?最近的工作 InstaHide[20],就利用 mixup[21] 和随机反转对原始图片弱加密。弱加密后的图片视觉上看不出原始图片的信息,但深度神经网络仍然可以直接在其上训练推断,取得了相当好的性能表现。此外,该工作还展示了这种弱加密算法可以抵抗多种攻击方法。不过值得指出的是这种弱加密还没有计算复杂性的理论,不能保证一定可以防住攻击。隐私保护与人们的生活息息相关,在实践和理论上也是挑战和机遇并存。我们期待与更多同仁一起努力,推动隐私保护领域的发展。(摘自  微软研究院AI头条 )
总条数:25 到第
上滑加载中