8.2 多线性映射与混淆:未完成的拼图


8.2 多线性映射与混淆:未完成的拼图

混淆(iO)是密码学的"万能前戏"——有了它,函数加密、拒绝加密、白盒密码统统能造;而制造它的脚手架是多线性映射。第一代多线性映射候选在 2013 年问世、2015 与 2017 年被两波系统性攻击击沉。本节用双线性玩具算例理解"多线性"到底给了什么、零化攻击又拿走了什么,并给出混淆现状的诚实评估。

承接 8.1 节:性能分流看完了,本节看能力纵深——格密码不只是"防得更好",还承诺"算得更多"。读完本节,你对"圣杯还有多远"将有一把可量化的尺子,也为 8.3 节的评估工具补上最后一块拼图:评估的对象不只是参数,还有假设本身的新鲜度

多线性映射想解决什么

从熟悉的"线性"说起。LWE 的公钥里,任何人都能对密文做加法(同态加法),做一次乘法后噪声尚可控——这近似于"单线性"的能力。多线性映射(又称分级编码)想给密码学一台机器:对若干个"编码态"的元素,允许做一次固定深度 d 的连乘,最后用一个公开的"归零检测"程序判断结果是否等于零,但全程不许看到明文。有了 d 级连乘与归零检测,混淆构造可以把"程序"编码成一组元素,让任何人能执行、不能读懂——iO 的全部魔法就压在这个接口上。

2013 年的三款候选(常以作者缩写并称 GGH13、CLT13 等共享同一设计范式)一度让整个领域沸腾:iO 的第一个可行路径出现了。然后攻击来了。

沉船年表与双线性玩具

理解沉船,先花五分钟玩一下"二线性"的玩具。设有一个公开群、生成元 g,以及一个神奇的配对函数 e,满足 e(g^a, g^b) = g^{ab}——双线性即"两个输入的指数相乘"。取素数 1019、g = 2,编码 a = 5g^a = 32,编码 b = 7g^b = 128。配对给出:

e(32, 128) = 2^{35} \bmod 1019

手算:2^{10} \equiv 5,故 2^{35} = (2^{10})^3 \cdot 2^5 \equiv 125 \times 32 = 4000 \equiv 943 \pmod{1019}。注意你全程只知道 32 与 128,却完成了"指数相乘"的验算——这就是多线性送给密码学的原始能力,双线性映射(配对)早已据此撑起整个基于身份的密码时代。

多线性候选的野心是把"二"推到任意 d。问题出在"归零检测"上:为了让用户能判断连乘结果是否为零,公开参数里必须埋一个"检验器";2015 年起研究者发现,精心构造的输入会让检验器把内部参数的代数关系"吐"出来——零化攻击(zeroizing):攻击者喂入精心挑选的零,让输出包含可以解方程的线性关系,反推出主密钥级参数。2017 年的第二波攻击(湮灭路线)更进一步,连防御性修补的变体一并打穿。三款候选没有一款幸存,时间线如下:

年份 事件 性质
2013 首批 d 级多线性候选发布 全领域高涨
2015 零化攻击击穿多款候选 第一波沉没
2016 抗击变体与修补涌现 攻防胶着
2017 湮灭攻击覆盖修补版 第二波沉没
2020 之后 基于全新强假设的 iO 候选 重新出发,远未实用

值得强调的是沉船的正面遗产:攻击逼出了"候选假设要能独立审计"的方法论共识,而新一代混淆候选干脆绕开多线性映射,改用更重但假设更少的地基(LWE 仍是其中的承重墙之一)。格密码在这条战线上既是幸存者也是原材料——当前的 iO 候选几乎都把 LWE 列为核心假设,第 3 章那份最坏情况保单在这里再次充当信用背书。

现状评估:给"圣杯"量一把尺

工程判断三句话。其一,别把 iO 写进任何生产需求:现有候选依赖年轻而强的假设、性能开销天文数字,教育价值大于实用价值——有供应商宣称"白盒混淆产品",与学术意义的 iO 是两回事,采购时认准区别。其二,函数加密等中间产物有局部可用区:不需要完整 iO 的受限功能加密(如单谓词场景)已有格构造的可行实现路线,关注学术评测再动手。其三,把假设新鲜度纳入评估维度:8.3 节的工具箱评估参数,这一节补上它的对偶——评估"假设已经过了几年攻击检验",两条一起构成完整的尽调。

第一代候选的设计骨架:为什么检验器必出事

把 GGH13 一族的通用配方摆到台面上,沉船原因就一目了然。配方三步:分级编码——给明文空间分层,第 i 层元素持有"等级 i",同层可加、跨层可乘,乘一次等级加一;归零检测——公开参数里埋一组"零测试向量",连乘到最高等级后,用它检验结果是否为零;抹除随机性——编码时混入大随机量,让顶层结果看起来均匀。攻击的全部巧思集中在第二、三步的接缝处:零测试向量与随机抹除量之间存在微弱的代数相关,攻击者用特制的输入让连乘结果恰好为零,此时"零"就成了一组关于隐藏参数的线性方程,几个零喂下去,方程组一解,主参数缴械。击穿的不是某个实现细节,而是"既要能验零、又要藏参数"这个接口本身的矛盾——这就是为什么修补变体也接连倒下,以及新一代候选宁可换整个地基。读学术评审时若看到"resist zeroizing"这类措辞,你现在知道它在防的是什么。

给这条战线补一张能力对账表,把"iO 到底能换来什么"落到具体原语上:函数加密——密文只允许算出一个函数值(如"解出平均分但不许看个人分数"),完整版需要 iO,单谓词版已有格构造;拒绝加密——能对"某条消息被加密过"合法地否认,构造依赖混淆级工具;白盒密码替代——软件内嵌密钥仍不可提取,iO 是理论答案,工程答案另有其路;** witnessed 加速与委托**——把昂贵计算外包且结果可验,部分场景已有非 iO 的格方案。对账表的读法是自下而上:越靠上越接近完整 iO,可用性越低——下次听到有人拿这些词做产品宣讲,你至少知道该往哪一格对号。

要点速记:多线性映射给的是"编码态连乘加归零检测",iO 压在这个接口上;双线性玩具五分钟能算懂,d 大于二后检验器成了泄密口;零化与湮灭两波攻击终结了第一代候选;新候选改地基不弃 LWE,假设新鲜度是评估新构造的第一问。

最后一节回到可计算的事:把全册的账本、火力、标准装进一条评估流水线,亲手跑通一次参数尽调。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U