Apple在Swift中引入同态加密

--->更多内容,请移步"鲁班秘笈"!!<---

在计算过程中确保数据隐私和安全性很重要,尤其是在使用云服务。传统的加密方法要求在处理数据之前对数据进行解密,使其面临潜在风险。同态加密是隐私计算的分支,允许在不泄露底层信息的情况下对加密数据进行计算。

同态加密 (HE) 是一种加密技术,它支持对加密数据进行计算,而不会向操作进程泄露底层未加密数据。例如1+1=2,同态加密将原始的1进行加密后将密文相加,能够得到2加密之后的密文。因此在保证完成计算任务同时,又不会泄露原始数据。

它为客户端提供了一种将加密数据发送到服务器的方法,服务器对该加密数据进行操作并返回客户端可以解密的结果。在执行请求期间,服务器本身永远不会解密原始数据,甚至无法访问解密密钥。这种方法为云服务提供了新的机会,可以在保护用户数据的隐私和安全的同时进行操作,这显然对许多方案非常有吸引力。

Apple 引入了一个Swift的新开源包swift-homomorphic-encryption,以实现同态加密技术。swift-homomorphic-encryption 软件包利用了几个高级功能:

  • Swift on Server:利用Hummingbird HTTP框架和跨平台支持。

  • 基准测试库:用于轻松进行性能基准测试。

  • Swift Crypto:提供高性能的低级加密原语。

该算法的实现使用Brakerski-Fan-Vercauteren(BFV)HE方案。该方案基于环学习有误差(RLWE)硬度问题。确保后量子128位安全性,防止经典和未来潜在的量子攻击。

Apple在iOS 18的实时来电显示查找功能中使用了同态加密。此功能通过向服务器发送加密查询来提供来电显示和垃圾邮件阻止服务,该服务器在不知道请求中的特定电话号码的情况下检索有关电话号码的信息。

实时来电显示查找功能还依赖于个人私有信息检索 (PIR),允许客户端执行私有键值数据库查找。在 PIR 设置中,客户端拥有私有键值(例如电话号码),并从服务器检索关联的值。由于键值是私有的,因此客户端希望在服务器不知道真实的键值下执行此查找。采用同态加密,只需要将少量数据库元数据与客户端同步。这种有效的方法支持频繁更新的超大型数据库,从而增强了数据隐私和安全性。

Swift同态加密包的一个基本使用示例:

Swift 复制代码
import HomomorphicEncryption
​
// We start by choosing some encryption parameters for the Bfv<UInt64> scheme.
// *These encryption parameters are insecure, suitable for testing only.*
let encryptParams =
    try EncryptionParameters<Bfv<UInt64>>(from: .insecure_n_8_logq_5x18_logt_5)
// Perform pre-computation for HE computation with these parameters.
let context = try Context(encryptionParameters: encryptParams)
​
// We encode N values using coefficient encoding.
let values: [UInt64] = [8, 5, 12, 12, 15, 0, 8, 5]
let plaintext: Bfv<UInt64>.CoeffPlaintext = try context.encode(
    values: values,
    format: .coefficient)
​
// We generate a secret key and use it to encrypt the plaintext.
let secretKey = try context.generateSecretKey()
let ciphertext = try plaintext.encrypt(using: secretKey)
​
// Decrypting the plaintext yields the original values.
let decrypted = try ciphertext.decrypt(using: secretKey)
let decoded: [UInt64] = try decrypted.decode(format: .coefficient)
precondition(decoded == values)

隐私的立法。在严格执法高额罚金下,企业积极探索隐私保护能力。在这个领域的技术布局较早,技术研究投入多,开源生态好。谷歌、Meta,Apple等大型科技企业在C端应用做了大量探索。

隐私计算在可信执行环境(TEE)上的隐私保护和数据安全相对成熟,其中Intel和ARM的生态相对比较成熟。国外在2B的商业应用尚未铺开,2B主要集中在医疗领域。

国内企业对个人隐私的重视度不够,但随着最近相关法规的持续完善和判例的不断增加,都逐步意识到保护个人隐私数据安全的重要性。国内的商业化应用探索主要集中在B端、G端数据应用层面,金融、政务、医疗等领域已有落地实践,能源、车联网等方向也在积极探索。

上图为隐私计算各个技术方向的对比,其中同态加密的瓶颈在于加密之后的数据传输量以及加密的效率和性能。零知识证明则成为后区块链时代的重要武器,后续将会针对零知识证明展开讨论。

相关推荐
k09335 分钟前
sourceTree回滚版本到某次提交
开发语言·前端·javascript
神奇夜光杯13 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
Themberfue15 分钟前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
plmm烟酒僧17 分钟前
Windows下QT调用MinGW编译的OpenCV
开发语言·windows·qt·opencv
测试界的酸菜鱼28 分钟前
Python 大数据展示屏实例
大数据·开发语言·python
晨曦_子画37 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
Black_Friend1 小时前
关于在VS中使用Qt不同版本报错的问题
开发语言·qt
希言JY1 小时前
C字符串 | 字符串处理函数 | 使用 | 原理 | 实现
c语言·开发语言
残月只会敲键盘1 小时前
php代码审计--常见函数整理
开发语言·php
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git