RSA Conference 2023将于旧金山时间4月24日正式启幕。作为全球网络安全行业创新风向标,一直以来,大会的Innovation Sandbox(创新沙盒)大赛不断为网络安全领域的初创企业提供着创新技术思维的展示平台。
近日,RSA Conference正式公布RSAC 2023创新沙盒竞赛的10名决赛入围者,分别为AnChain.AI、Astrix、Dazz、Endor Labs、HiddenLayer、Pangea、Relyance AI、SafeBase、Valence Security、Zama。
4月24日(美国旧金山时间),创新沙盒将决出本年度冠军,绿盟君在此立足背景介绍、产品特点、核心能力等,带大家走进入围十强厂商,洞悉创新发展趋势。今天,我们要介绍的厂商是Zama。
2019年成立于法国巴黎的Zama是一家专注于全同态加密(FHE)领域的网络安全公司。面对互联网日益增长的数据通信规模、频发的数据安全风险事件以及越来越重要的隐私保护需求,Zama认为作为HTTP向HTTPS转型的下一步,新一代互联网应当构建在由端到端加密全程保护的HTTPZ上。而能实现端到端加密特性的FHE技术,被认为这一转型的关键所在,也是Zama致力于提供高效便捷的FHE产品的原动力所在。
根据公开信息,Zama在三轮融资中累计获得了5160万美元,最新的是在2022年4月的A轮融资,由Protocol Labs领投。Zama参与了许多开源社区的建设,如Rust、W3C、FHE.org等,其公开产品也都在Github开源了代码,但不论在官网或是其他来源,都没有查询到Zama的付费产品和客户的有关信息,其财务状况与商业模式不得而知。

图1 Zama创始人,左为Pascal Paillier,右为Rand Hindi
Pascal Paillier和Rand Hindi两位博士是Zama的联合创始人。Pascal Paillier博士目前担任Zama的CTO,他是法兰西科学院院士,ACM、IEEE会员。他在新兴密码技术方向上有着超过25年的研究经验,曾获得2000年RSA数学卓越奖以及2010年哥德尔奖。1999年由他提出的Paillier加法同态加密算法是最为知名和常用的同态加密算法之一,是同态加密ISO国际标准唯一指定的加法同态加密算法[1]。Paillier算法已在众多实际应用场景中实现了落地,以隐私计算为例,FATE、隐语、原语等主流隐私计算方案提供者,其产品都使用了Paillier算法作为可选的加密方案。
Rand Hindi博士则是一位连续创业者和科技投资者。他目前担任Zama的CEO。作为投资者,他资助了隐私保护、人工智能、区块链、医疗科技等领域的30余家企业,而他个人也有着丰富的创业经历。2013年Hindi合伙在法国创立了语音AI公司Snips,提供原生私密设计(private-by-design)的语音平台和工具,据称Snips是第一款符合欧盟通用数据保护条例GDPR的同类平台[2]。2019年Snips被音响厂商Sonos以约3750万美元的价格收购。
背景介绍
Zama的核心技术与名为TFHE的全同态加密方案息息相关。2016年密码学顶会Asiacrypt上发布的最佳论文Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds[3]中提出了TFHE方案,其第一作者Ilaria Chillotti现任Zama的密码学主管。
TFHE的安全性来源于机器学习领域背景的一个计算困难问题,错误学习问题(Learning with Errors, LWE)。这是一个经过充分研究的密码学原语,即使量子计算机已经实用的情况下,也普遍被认为是安全的。基于LWE问题可以构建所谓同态加密的密码方案。
同态加密的思想是,可以在消息加密的情况下直接对密文进行计算,而不需要知道消息明文。如果支持以下至少两个操作(x是明文,是相应的密文E[x]),则称方案为完全同态:
同态单变量函数可交换:f(E[x])=E[f(x)]
同态加法:E[x]+E[y]=E[x+y]
同态乘法:E[x]E[y]=E[xy]
而在论文提出的加密方案基础上,Ilaria Chillotti等人开发了TFHE开源C/C++库[4],由二进制门组成的任意布尔电路都可以使用TFHE库加密计算,而不泄露任何原始数据信息。用户视角下,该库的主要功能包括[5]:
生成一个私钥集和一个云密钥集。私钥集是私有的,并提供加密/解密功能。云密钥集可以导出到云,并允许对加密数据进行操作。
通过私钥集,库允许对数据进行加密和解密。加密数据可以安全地外包给云,以便执行安全的同态计算。
有了云密钥集,库可以对二进制门的列表进行同态计算,而无需解密中间变量。提供门序列以及输入位的密文后,库负责计算输出数据bit位的密文。
TFHE开源库目前已经停止开发,建议用户使用Zama提供的TFHE-rs库来获取具有最新功能的增强API。
就在上周(4.13)[6],Zama宣布了全新的产品阵容,包含三款产品:TFHE-rs[7],Concrete[8]和Concrete ML[9]。这三款产品都在Github上开源[10][11][12]。Concrete曾经是Zama旗下所有FHE产品的统一名称,包含FHE算法库和编译器。今年年初,Zama宣布将FHE库从Concrete中剥离,独立为新产品TFHE-rs。[13]此外Zama还计划推出支持FHE的以太坊虚拟机(EVM),但暂时未给出更多细节,这里不做阐述。
No.1 TFHE-rs
TFHE-rs是一个完全使用Rust语言编写的算法库,实现了TFHE的一个变体,其目标是稳定、简便、高效、实用地提供使用TFHE算法高级特性的能力。一方面,TFHE-rs提供了高级程序接口,开发者不需要密码学背景就可以操作同态加密算子;另一方面,TFHE-rs的低级程序接口可以实现对TFHE电路细节的完全控制,如加密密钥的选择、密文模数的选择,很好地满足了密码学研究者和编译器开发者的需要。TFHE-rs提供完整的Rust API和C API,以及客户端侧的WASM API,可用于同态加密的应用开发;同时也提供了原版TFHE算法的布尔函数API,以便基于其他TFHE算法库的应用快捷地迁移到TFHE-rs。
在Rust程序中使用TFHE-rs来支持FHE特性的典型工作流如下:
使用安全参数生成客户端密钥和服务器密钥:
客户端密钥用于加密/解密数据,且必须保密
服务器密钥用于对加密数据执行操作,且可以是公开的(也称为评估密钥)
在客户端,使用客户端密钥加密明文以生成密文,并发送给服务器
在服务器,使用服务器密钥同态地操作密文,并返回给客户端
在客户端,使用客户端密钥将结果的密文解密为明文,计算流程完成
TFHE-rs声称自己是最高效的TFHE方案的公开实现,支持AVX512加速。[10]针对布尔运算,在128比特安全强度和2-40错误概率下,平均运行时间仅需7ms。与其他TFHE实现相比,官方提供的性能评测结果如下:
图2 不同TFHE实现的布尔运算性能评测
评测环境为配备Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz的AWS服务器[14]。
TFHE-rs目前最新发布的为v0.2.0。
No.2 Concrete
TFHE-rs从Concrete分离之后,Concrete变为了单一特性的独立产品。它实现了一个编译器,可以对普通程序进行自动化FHE改造。准确来说,Concrete编译器可以用来处理程序电路,它将电路识别为一个有向无环图,包含作为有向边的操作符和作为端点的变量,这里变量可以是明文或者密文。电路编译的结果为:一个表征FHE运算步骤的动态库,和一个名为ClientSpecs的JSON文件,包含密码算法配置Client Parameters。为了使用这个电路进行交互,客户端需要向服务器请求ClientSpecs,然后根据接收到的参数生成私钥和评估密钥(也称为服务器密钥)。然后客户端将输入数据加密后,与评估密钥一起发送到服务器以获取输出。典型的工作流程示意图如下:
图3 Concrete客户端和服务器的典型工作流程示意图
尽管Concrete自身提供了便捷的Python前端,可以处理包括Numpy调用在内的Python程序进行编译,但实际上调用Concrete后端进行编译时,原始程序的编程语言并不受限制。在操作系统方面,Concrete对Windows、Linux(包括Windows上的Linux子系统WSL)、macOS都有良好的支持,而在硬件方面,前端仅支持CPU计算,而后端除了CPU之外也支持CUDA生态下的GPU计算。
官方给出的应用Concrete编译Python程序的例子如下:
a) 显式调用编译器concrete.Compiler
b) 使用函数装饰器@concrete.compiler()
Concrete目前最新发布的版本为v1.0.0。
No.3 Concrete-ML
Concrete-ML是在Concrete编译器的基础上构建的一套隐私保护机器学习(Privacy-Preserving Machine Learning, PPML)工具集,旨在简化FHE在机器学习领域的应用。使用Concrete-ML对机器学习模型进行自动化FHE改造无需密码学知识作为前提,其内置模型类的设计与scikit-learn类似,用户接口与scikit-learn和XGBoost对应的接口等价,同时支持将用户自定义的Pytorch或keras/tensorflow模型转化为FHE版本。与Concrete同样地,Concrete-ML也支持包括WSL在内的主流操作系统,此外还支持在Kaggle,Google Colab云平台进行部署。官方给出的Concrete ML使用scikit-learn的简单示例如下:
这一示例给出了Concrete ML模型的典型工作流,更多信息可以参考[15]。
值得注意的是Concrete ML仅支持对模型推理进行FHE改造,因此训练过程仍需使用明文数据进行。同时,Concrete ML仅支持处理量化后的模型(目前支持16比特整数),且不支持模型输入输出进行预处理和后处理,如文本到数字的特征转换、降维、KNN或聚类、特征化、归一化,以及集成模型结果的混合。
Concrete ML目前最新发布的版本为v1.0.0。
Zama有着深厚技术背景,公司团队63人中有35位博士,占比超过一半。其创始人与高层不乏密码学,尤其是全同态加密领域的资深专家。以TFHE加密方案为底座,Zama构建了一个FHE解决方案,覆盖面深入浅出,既可以深入密码算法底层、精确控制FHE的参数细节,也可以在零密码基础的背景下自动化地实现程序电路FHE改造、便捷的进行FHE加密应用开发。Zama产品的一大亮点在于完全开源,此外也有着诸多优势。例如:TFHE-rs算法库使用纯Rust开发、性能领先于同类,Concrete-ML机器学习工具集兼容scikit-learn和XGBoost、支持Pytorch和TensorFlow,且对不同的操作系统、计算硬件架构都有不错的支持。从技术角度来看,Zama无疑具有相当强的竞争力,深度开源也有利于其技术发展。不过,Zama的技术也存在一些不足。在机器学习场景下,Concrete ML目前的能力存在局限性。仅有对模型推理进行改造的能力,或许可以满足一部分应用需求,例如类ChatGPT的对话AI服务中用户信息的隐私保护,但考虑到商用所需的AI能力,如果处理模型训练是一个更困难、更长远的目标,那么至少应该先考虑实现fine-tuning等能力,以便适应更广泛的实际应用场景。
在技术之外,Zama的商业模式并不明确。产品、客户信息的缺失,或许只是因为公开信息的缺乏,但也侧面映射出Zama目前的主攻方向是技术而非产品。如何在A轮融资之后继续推动公司发展和产品成熟,是有待Zama向投资者展现的。以目前纯开源的模式,恐怕难以讲好商业故事,获得持续的投资与增长。
参考文献
[1] ISO/IEC 18033-6:2019, "Information technology - Security techniques - Encryption algorithms - Part 6: Homomorphic Encryption", International Organization for Standardization, Geneva, Switzerland, 2019.
[2] 0edK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6D9L8$3&6V1L8$3&6K6M7r3g2S2K9$3g2J5j5Y4g2J5k6h3q4#2i4K6u0W2j5$3!0E0i4K6u0r3M7%4m8W2j5h3E0W2M7W2)9J5k6s2m8J5L8$3k6A6L8r3g2Q4x3V1k6J5j5h3&6V1i4K6u0V1K9r3W2F1k6r3W2Q4x3V1j5`.
[3] Chillotti I, Gama N, Georgieva M, Izabachene M. Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds. InAdvances in Cryptology–ASIACRYPT 2016: 22nd International Conference on the Theory and Application of Cryptology and Information Security, Hanoi, Vietnam, December 4-8, 2016, Proceedings, Part I 22 2016 (pp. 3-33). Springer Berlin Heidelberg.
[4] aaeK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6@1k6X3S2W2i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1k6@1k6X3S2W2i4K6u0r3
[5] 447K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6*7K9s2g2S2L8X3I4S2L8W2)9J5k6i4A6Z5K9h3S2#2i4K6u0W2j5$3!0E0i4K6u0r3M7q4)9J5c8U0b7&6y4e0x3^5x3K6x3#2y4b7`.`.
[6] 486K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2*7j5h3#2S2i4K6u0W2j5h3W2Q4x3V1k6H3L8%4y4@1i4K6u0r3P5X3q4E0j5g2)9J5k6s2m8J5L8$3c8#2j5%4c8Q4x3X3c8S2L8X3&6G2N6h3&6U0k6h3#2W2L8Y4c8Q4x3X3c8S2M7s2u0A6L8q4)9J5k6o6t1H3x3U0x3`.
[7] e8bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2*7j5h3#2S2i4K6u0W2j5h3W2Q4x3V1k6H3L8%4y4@1i4K6u0r3j5h3&6F1L8%4g2F1j5$3W2F1k6#2)9J5k6s2c8X3K9r3g2Q4x3X3c8J5M7#2)9J5k6s2j5H3i4K6u0V1x3W2)9J5k6o6l9`.
[8] ee6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2*7j5h3#2S2i4K6u0W2j5h3W2Q4x3V1k6H3L8%4y4@1i4K6u0r3j5h3&6F1L8%4g2F1j5$3W2F1k6#2)9J5k6r3y4G2L8X3y4J5k6i4c8W2i4K6u0V1N6U0q4Q4x3X3b7H3i4K6u0V1x3l9`.`.
[9] 7adK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2*7j5h3#2S2i4K6u0W2j5h3W2Q4x3V1k6H3L8%4y4@1i4K6u0r3j5h3&6F1L8%4g2F1j5$3W2F1k6#2)9J5k6r3y4G2L8X3y4J5k6i4c8W2i4K6u0V1L8h3I4Q4x3X3c8$3x3g2)9J5k6o6m8Q4x3X3b7H3
[10] 2bfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2*7j5h3#2S2i4K6u0W2j5h3W2Q4x3V1k6H3L8%4y4@1i4K6u0r3j5h3&6F1L8%4g2F1j5$3W2F1k6#2)9J5k6s2c8X3K9r3g2Q4x3X3c8J5M7H3`.`.
[11] 4c0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7j5h3#2S2i4K6u0V1j5h3W2Q4x3V1k6@1k6X3S2W2i4K6u0V1M7Y4x3`.
[12] 4caK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7j5h3#2S2i4K6u0V1j5h3W2Q4x3V1k6U0L8$3&6U0M7X3g2@1k6b7`.`.
[13] 818K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7j5h3#2S2i4K6u0V1j5h3W2Q4x3V1k6U0L8$3&6U0M7X3g2@1k6g2)9J5k6r3#2D9
[14] cfbK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2P5X3q4E0j5g2)9J5k6h3q4A6i4K6u0r3N6r3k6Z5k6g2)9J5k6s2u0K6i4K6u0r3k6$3g2@1N6r3W2F1k6#2)9J5k6s2y4@1j5i4u0@1k6h3c8Q4x3V1k6T1k6h3&6U0K9r3#2S2M7X3E0K6
[15] 71aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7j5h3#2S2i4K6u0V1j5h3W2Q4x3V1k6U0L8$3&6U0M7X3g2@1k6g2)9J5k6r3#2D9i4K6u0r3j5X3I4G2j5W2)9J5c8Y4u0W2L8r3g2S2M7$3g2Q4x3V1j5I4i4K6u0W2x3q4)9J5k6i4S2Q4x3V1k6V1L8$3y4K6i4K6u0r3j5Y4g2A6L8s2c8Q4x3X3c8A6L8W2)9J5k6r3#2G2k6r3g2D9M7#2)9J5c8X3I4A6L8X3g2S2M7W2)9J5k6h3#2V1