用于近似运算和机器学习的 CKKS
应用 CKKS 实现保护隐私的机器学习推理
用于近似运算和机器学习的 CKKS 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
为什么使用 CKKS
BGV/BFV 处理整数(精确算术)。机器学习使用浮点数(近似算术)。CKKS(Cheon-Kim-Kim-Song,2017)对实数和复数进行编码,并允许对精度损失进行控制——非常适合机器学习推理和数据分析。
近似算术
CKKS 将噪声视为编码精度的一部分。CKKS 不会消除噪声(进行纠错),而是将结果视为具有保证精度范围的近似值。这种权衡使同态加密能够更高效地处理连续值计算。
实数编码
CKKS 将复数向量编码为多项式:向量 (z_0, ..., z_{n/2-1}) 通过逆 FFT 映射为 R 中的多项式。缩放因子 Δ(例如 2^40)将浮点数映射为整数。每个密文包含 n/2 个实数槽位。
重新缩放
乘法后,缩放因子会变为原来的平方:Δ^2。CKKS 引入重新缩放运算:除以 Δ,使缩放恢复为单倍尺度。这也会降低密文模数层级(类似于 BGV 的模数切换),使密文保持在可管理范围内。
精度分析
每次乘法都会消耗一个模数层级,并使精度降低约 log2(Δ) 位。对于深度为 L、缩放因子为 Δ = 2^40 的电路,精度总损失约为 L*40 位。请将初始模数 Q 选择得足够大,以容纳这一精度预算。
在 CKKS 上执行机器学习推理
线性层(矩阵-向量乘法):效率较高,可通过旋转和累加实现。激活函数(ReLU、sigmoid):需要进行多项式近似。ReLU:使用 7 次切比雪夫多项式进行近似。与明文推理相比,精度损失约为 0.1-1%。
私密推理示例
医院使用其 CKKS 公钥加密患者数据。云端使用 CKKS 运算,在加密数据上运行诊断神经网络。云端返回加密的预测结果。医院使用私钥解密。云端始终无法看到患者数据或明文诊断结果。
CKKS 参数
HEAAN/OpenFHE 的建议:对于深度机器学习电路,使用 n=2^15(32768)。模数链:当 Δ=2^50 时,初始 Q ≈ 2^1500 可支持 30 个乘法层级。安全性:假设使用这些参数的 CKKS 与 RLWE 一样困难,可达到 128 位安全性。内存:每个密文约 1 MB。
CKKS 中的自举
CKKS 自举(Cheon 等人,2018)通过同态计算模约减来刷新密文。其复杂度来自在复数上计算正弦函数(通过多项式近似实现)。它能够以每次自举约 30 秒的代价支持无限电路深度。
比较:CKKS 与 BFV
BFV:精确整数、整数明文、不损失精度。CKKS:近似实数/复数、浮点明文,精度会随深度增加而降低。以下场景使用 BFV:数据库、查询和精确计算。以下场景使用 CKKS:机器学习、统计和科学计算。
库
HEAAN(最初的 CKKS,首尔国立大学)。Microsoft SEAL(CKKS + BFV)。OpenFHE(CKKS + BGV + BFV)。Concrete-ML(Zama.ai,为 scikit-learn 和 PyTorch 模型封装 OpenFHE)。TF-HE(TensorFlow + 同态加密集成实验)。
快速检查
对于机器学习推理,为什么 CKKS 比 BFV 更受青睐?
回顾
CKKS 支持近似实数算术,非常适合在加密数据上执行机器学习推理和统计分析。重新缩放用于管理缩放因子;多项式近似用于替代激活函数。下一节:后量子密码学——Shor 算法和 Grover 算法。
用 AI 导师学习 Cryptology Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 67
- 课程
- 261
常见问题解答
「用于近似运算和机器学习的 CKKS」课时是免费的吗?
是的 — 「用于近似运算和机器学习的 CKKS」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「用于近似运算和机器学习的 CKKS」这节课中我会学到什么?
应用 CKKS 实现保护隐私的机器学习推理 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「用于近似运算和机器学习的 CKKS」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 什么是同态加密
- 带误差学习(LWE)基础
- 用于整数运算的 BGV 与 BFV 方案
- 用于近似运算和机器学习的 CKKS