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端数据应用层面,金融、政务、医疗等领域已有落地实践,能源、车联网等方向也在积极探索。

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

相关推荐
智商低情商凑3 小时前
Go学习之 - Goroutines和channels
开发语言·学习·golang
半桶水专家3 小时前
Go 语言时间处理(time 包)详解
开发语言·后端·golang
编程点滴3 小时前
Go 重试机制终极指南:基于 go-retry 打造可靠容错系统
开发语言·后端·golang
实心儿儿3 小时前
C++ —— 模板进阶
开发语言·c++
萧鼎4 小时前
Python PyTesseract OCR :从基础到项目实战
开发语言·python·ocr
二川bro4 小时前
第57节:Three.js企业级应用架构
开发语言·javascript·架构
sali-tec4 小时前
C# 基于halcon的视觉工作流-章62 点云采样
开发语言·图像处理·人工智能·算法·计算机视觉
00后程序员张5 小时前
Swift 应用加密工具的全面方案,从源码混淆到 IPA 成品加固的多层安全实践
安全·ios·小程序·uni-app·ssh·iphone·swift
这人很懒没留下什么5 小时前
SpringBoot2.7.4整合Oauth2
开发语言·lua
ZHOUZAIHUI5 小时前
WSL(Ubuntu24.04) 安装PostgreSQL
开发语言·后端·scala