0Pricing
Cryptology Academy · 课时

超越公钥:函数加密

了解函数加密的愿景:解密只揭示函数的输出,而不是明文。

超越公钥:函数加密 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。

传统加密的局限性

传统公钥加密遵循一个简单模型:使用公钥加密,再使用对应的私钥解密。解密者会获知完整的明文消息。这种非此即彼的模型对于许多应用来说过于粗糙:例如,医疗数据库可能只希望允许医生获知患者是否患有某种特定疾病,而不是获知完整的医疗记录。函数加密解决了这一局限。

基于身份的加密

基于身份的加密(IBE)由 Shamir 于 1984 年提出,并由 Boneh 和 Franklin 于 2001 年构造,它允许使用身份字符串(电子邮件地址、域名、员工 ID)作为公钥。可信密钥机构为特定身份生成私钥。IBE 消除了公钥证书的需要,并实现了简单的密钥分发。IBE 是最简单的函数加密形式。

函数加密定义

函数加密(FE)由 Boneh、Sahai 和 Waters 于 2011 年正式定义,是对 IBE 的推广。在 FE 方案中,密钥机构可以为任意函数 f 生成函数密钥 sk_f。给定加密结果 Enc(x) 和函数密钥 sk_f,解密者可以计算 f(x),但除了 f(x) 所揭示的信息之外,不会获知关于 x 的其他信息。函数 f 可以是该方案所支持类别中的任意可计算函数。

用于内积的 FE

内积函数加密允许持有 sk_y 的解密者,根据向量 x 的加密结果计算内积 <x, y>。这支持私有机器学习推理:对用户的特征向量 x 加密,为模型所有者提供其权重向量 y 对应的 sk_y,而模型所有者只能获知点积(原始预测分数),不会获知用户的特征。已经存在多种实用的内积 FE 方案(ABDALLA 等人,2016)。

用于相等性测试的 FE

用于相等性测试的 FE 允许一方检查加密值是否与特定值 v 匹配,同时只能获知两者是否相等。这支持隐私保护的数据库查询:服务器持有加密记录,用户可以查询与特定值匹配的记录,而服务器既不知道用户正在搜索什么,也不会获知超出“是”或“否”匹配结果的其他信息。实用构造使用双线性配对。

用于通用电路的 FE

最强大的 FE 形式支持将任意布尔电路或算术电路作为函数。对于任意多项式时间函数 f,持有 sk_f 的解密者都可以根据 Enc(x) 计算 f(x)。Garg、Gentry、Halevi、Raykova、Sahai 和 Waters(2013)使用多线性映射在理论上构造了通用电路 FE,但现有的通用 FE 构造依赖不完善的多线性映射假设,因此并不实用。

不可区分混淆

不可区分混淆(iO)是目前已知最强的密码学原语,并且与函数加密密切相关。iO 方案接收一个电路 C,并生成一个计算相同函数的混淆版本 O(C),但除了输入输出行为之外,不会泄露关于 C 的任何信息。iO 可以推出大多数已知的密码学原语,包括通用 FE。基于格问题的候选构造已经存在,但距离实用化还很远。

作为特殊情况的基于属性的加密

基于属性的加密(ABE)是函数加密的一种可实际实现形式,其中函数 f 被限制为策略判定:当属性集合 x 满足某个策略时,f(x) = 1,否则为 0。ABE 支持细粒度访问控制,使解密权限取决于用户的属性。ABE 是函数加密中实际部署最广泛的形式,已经应用于云存储、医疗保健和物联网。

构造路线图

FE 构造的发展历程是从简单走向强大:IBE(Boneh-Franklin,2001)→ 相等性 FE(2005—2010 年的多种构造)→ 内积 FE(ABDALLA,2016)→ 有界深度电路 FE(基于多线性映射,2013 年)→ 通用 FE(由 iO 推测得到)。每一步都更加强大,但也更加复杂且效率更低。实际部署会使用能够实现所需功能的最简单形式。

函数加密的安全模型

FE 安全性通过两个消息 x0 和 x1 的加密不可区分性来定义:即使获得任意函数 f 的函数密钥,只要对于所有被查询的函数都有 f(x0) = f(x1),也无法区分这两个加密结果。这确保解密方恰好只能获知 f(x),而不会得到更多信息。安全性分为两个级别:选择性安全(攻击者在看到公钥之前就承诺挑战消息)和自适应安全(基于完整模拟的安全性)。

实际部署挑战

通用 FE 仍然不实用,但内积 FE 和 ABE 如今已经可以部署。挑战包括:需要可信的密钥授权机构(单点故障)、密钥撤销的复杂性、配对运算带来的性能开销,以及标准化程度有限。研究方向包括多授权机构 FE(不存在单一可信授权机构)、去中心化密钥生成,以及无需多线性映射即可支持更大函数类的 FE。

函数加密定义测验

函数加密与传统公钥加密有何区别?

函数加密回顾

函数加密(Boneh-Sahai-Waters,2011)将 IBE 推广为允许使用函数密钥 sk_f 从 Enc(x) 计算 f(x),而无需完整获知 x。内积 FE(用于私有机器学习推理)和相等性测试已经有实用构造。ABE 是用于访问策略判定的一种已实际部署的特殊情况。通用电路 FE 需要多线性映射,因此并不实用。iO 是与之相关的最强密码学原语。关键挑战是从理论走向高效实践。

常见问题解答

「超越公钥:函数加密」课时是免费的吗?

是的 — 「超越公钥:函数加密」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。

「超越公钥:函数加密」这节课中我会学到什么?

了解函数加密的愿景:解密只揭示函数的输出,而不是明文。 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「超越公钥:函数加密」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cryptology Academy 课中编写并运行代码吗?

能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 超越公钥:函数加密
  2. 密文策略 ABE(CP-ABE)
  3. 密钥策略 ABE(KP-ABE)与比较
  4. ABE 的实际应用
← 返回 Cryptology Academy