蚂蚁集团异构平台开放算法协议与开源实践

时间:2022-10-06 01:23:48

来源:DataFunSummit

导读 本文将介绍异构平台开放算法协议与开源实践。

分享分为三部分:

1. 开放协议背景

2. ECDH-PSI 协议架构

3. 开源实践

分享嘉宾|陆宇飞 蚂蚁集团 技术专家

编辑整理|丁知逾 北方工业大学

出品社区|DataFun



01

开放协议背景

基于开发算法协议的互联互通是指通过定义算法执行流程中交互接口的协议,使不同平*立开发的算子可以实现互联互通的一种方式。
开放协议互联互通有利于:
第一、增加算法安全透明度,提升安全可信度。因为开放算法协议就是要把算法最底层的交互协议开放出来,让整个算法安全公开透明。
第二、减少算法容器的安全审核成本,提升效率。这是因为企业与其它厂商互通时不再需要引入外部的算法容器,也就不再需要走安全审核流程,效率提升。
第三、促进行业算法迭代与进步。因为一旦算法协议的接口标准化后,厂商之间的算法产品相互替换性增加,如果某一厂商的算法引擎成为瓶颈,则厂商有更多动力去做算法优化,从而提升行业整体算法水平。
考虑到隐私计算行业的多样性,在保证算法协议一致性的基础上,还需提供一定的灵活空间,因此在设计开发算法协议时,需遵循以下原则:
交互出域信息透明,这一点是根本,因为开放算法协议每一次网络交互的行为都需要被精确地定义出来;
对算法本地实现开放,只规定协议交互部分的接口,而不去限制算法本地计算部分的行为;
支持算法和安全机制扩展,为顺应隐私计算行业的高速发展和新技术的出现,开发算法协议应具备可快速扩展的能力。
开放算法协议的技术路线主要为专用 MPC 算法互通协议、通用 MPC 算法互通框架和隐私路由这三类。专用 MPC 算法互通协议具有较高的同构程度及较为固定的算法流程,因此适合用开放协议来规范化。通用 MPC 算法互通框架将复杂的 MPC 程序分层为算法逻辑层、算子接口层、协议运行层(定义细粒度接口)。通过开放协议将每一层协议接口规范化,并将各层接口组装的方式也规范化,从而可以保证上层无论怎么变都依然能够互联互通。隐私路由可以转换平台底层使用的隐私计算协议,确保使用不同密文加密的平台在通过其转换后互通。隐私路由举例如下,平台 1 使用秘密分享,平台 2 使用同态加密。当平台之间要进行通信时,隐私路由可将平台 1 使用秘密分享加密的密文转化为用同态加密来加密的密文,实现平台之间的互通。

蚂蚁集团异构平台开放算法协议与开源实践

02
ECDH-PSI 协议架构
EDCH-PSI 是蚂蚁集团在开放协议互联互通领域落地的第一个算子。专有协议 EDCH-PSI 分为两个阶段:握手阶段和算法主体运行阶段。
算法协商握手阶段需确定交互互通的算法和运行所需参数(包括 PSI 算法类型、求交样本数量等算法参数和椭圆曲线类型、哈希算法类型等安全原语相关的参数),为减少所使用的 RTT,使开放协议尽可能高效,握手协议在一次交互中完成。

蚂蚁集团异构平台开放算法协议与开源实践

ECDH-PSI 握手过程如下图所示,参与者 A 发送 Request,参与者 B 回复 Response 即可完成。两种发送的算法运行参数和安全参数一一对应,但区别在于,Request 方发送的参数是候选参数列表,Response 方返回的是选中的参数。后面 A 和 B 做 PSI,就直接在 B 选中的参数上运行 PSI 的主题计算即可。

蚂蚁集团异构平台开放算法协议与开源实践

算法主体运行阶段基于握手协商的参数完成 PSI 计算。参与者双方执行的操作具有对称性,此处就参与者 A 进行算法说明,参与者 A 本地生成密钥 Key和集合 {ai}。第一步,通过 hash_to_point() 函数将集合中的值映射到椭圆曲线上的点 Pi,再通过 scalar_mul() 函数将点 P与密钥相乘加密得到新的点 P1i。scalar_mul 代表椭圆曲线上的点乘运算,大家也可以简单理解成是加密运算,之后参与者双方交换 P1,Q1 信息。第二步,再次调用 scalar_mul() 函数对收到的 Q1进行基于自己密钥的二次加密得到 Q2i。再次进行信息交互,得到自己的 P2。第三步,A 通过比较集合 P2 和 Q2 即可判断 a是否在交集中。如此,便可在不泄露原始信息的前提下,判断二者集合的交集。

蚂蚁集团异构平台开放算法协议与开源实践

03

开源实践
隐语的算子原生支持开发算法协议,开放算法协议在隐语中并不是一个 demo,而是生产级可用的。通过开源,隐语给出了开放协议的一种参考实现,帮助行业更好地理解协议的内容。地址如下:

蚂蚁集团异构平台开放算法协议与开源实践

隐语中提供 ECDH-PSI 实战的 Python 和 C++ 的接口,无论基于哪种环境,都仅需要实现以下三个步骤,即可轻松完成 ECDH-PSI 的实战:
① 创建传输层连接,输入双方的 IP 地址和端口;
② 配置 PSI 算法参数和安全参数;
③ 运行开放协议的 ECDH-PSI。
具体代码如下。

蚂蚁集团异构平台开放算法协议与开源实践

蚂蚁集团异构平台开放算法协议与开源实践

隐语在 Github 和 Gitee 上面都有仓库,欢迎大家来反馈和共建。