谷歌已经开源了一个通用的转译器,能够将高级代码转译为完全同态加密(FHE)使用。
虽然FHE吸引了包括IBM和微软在内的多家公司的兴趣,但谷歌在此尝试了一种新的方法,即创建一个转译器,将用高级语言编写并处理非加密数据的程序转译为可用于FHE的版本。
谷歌的转译器将使开发人员能够为任何类型的基本计算编写代码,如简单的字符串处理或数学,并在加密数据上运行它。
谷歌的转译器有两个主要部分。一方面,它使用谷歌的开源XLS SDK来利用其编译管道,并按照FHE的要求将高级语言操作转换成低级别的布尔操作。
XLS实现了一个高级合成(HLS)工具链,从灵活的高级功能描述中产生可合成的设计。它是完全开源的:通过GitHub开发。XLS在谷歌内部用于从 "构建块 "例程/库中生成前馈管道,这些例程/库可以很容易地重新定位、重复使用,并以延迟不敏感的方式组成。
另一方面,它使用谷歌的TFHE完全同态加密库,从XLS提供的中间表示到HFE计算。
TFHE是一个C/C++库,运行带有TFHE库的FHE-C++。该库允许在加密的数据上评估由二进制门组成的任意布尔电路,不透露任何数据信息。
谷歌表示,这种模块化设计有很多优点。首先,由于XLS的存在,许多不同的高级语言都得到了开箱即用的支持。目前,XLS支持C++和DSLX,这是一种模仿Rust的DSL。同样,输出的FHE-ready代码可以是任何具有FHE库的语言,该库将逻辑门作为其API的一部分公开。
值得注意的是,XLS并不完全支持所有的C++特性。特别是不支持可变长度的数组,具有可变结束条件的while循环和for循环,以及浮点数据。此外,XLS和TFHE仍处于测试阶段。
同态加密是一种安全计算的方法,不需要解密你的数据就可以处理它们。相反,同态加密能够处理密码文本,并保证加密的结果与首先解密输入数据、处理、最后加密它们所产生的结果一致。谷歌表示,在其应用中,FHE可以被用来训练敏感数据的机器学习模型。