编者按:随着美国国家标准技术研究院(NIST)在美国东部时间7月5日刚刚宣布了新一轮抗量子公钥算法(也称Post Quantum Cryptography,PQC)入选名单,并开始着手为2024年左右推出PQC标准做最后的准备。此时有一个问题凸显出来,即PQC涉及的知识产权问题。本智库编译了在PQC领域非常活跃的专家Daniel J. Bernstein的一篇长文,他对围绕著名华人密码学家DING JINTAI的发明专利(直接入选美国PQC标准的算法CRYSTALS-KYBER的设计中扮演关键角色)产生的纠纷发表了自己的看法,刊登这篇译文并不代表本智库同意或反对他的观点,而是为国内知识产权保护提供一个新的视角,供有兴趣的读者参考。
可以毫不夸张的讲,在量子计算机研发步伐越来越快的形势下,全球网络空间相关产业正在面临新一轮的洗牌。国际上已经形成这样的共识:正在形成的PQC迁移这一“山雨欲来风满楼”的本质不在于(能够攻破现有公钥密码系统的)量子计算机何时揭开神秘的面纱,而在于主要国家和地区的IT厂商正在布局新的战略性蓝海产业。举例而言,一旦国际主要芯片厂商研发的通用芯片均具备了“抗量子”攻击的功能,那么那些不具备这种功能的芯片产业将面临什么样的市场前景?全球IT生态圈、产业链、供应链是否会产生“狼没有来,但大家都做好的抗狼的准备”这样的效应?
一个明显的信号是刚刚结束的G7峰会,美国拜登总统提出要与盟国一起尽快使用抗量子密码技术来保护重要的信息系统。而在今年的5月4日,白宫专门发布的有关指令更是对如何推动PQC迁移做了详细的规定。
PQC算法标准涉及到当今和未来网络的信任链重建,以及网络空间安全产业的重塑。在未来面向网络空间安全的基础设施,例如PKI体系,以及新应用,例如物联网、工业互联网、区块链,乃至央行数字货币、数字经济等等领域,均有可能面临PQC算法的核心知识产权保护的问题。解决这个问题的方法还需要全球学术界、产业界、法律界,以及国际标准化组织等逐步达成共识。
以下是Daniel J. Bernstein的博客翻译。该文作者引用了大量很有价值的参考链接,本公众号将一一予以注明。本文翻译稿未经原作者审核。原文请参见下面的链接。
剽窃作为专利放大器:如何理解后量子密码的延迟推出
本文作者:Daniel J. Bernstein
原文链接:https://blog.cr.yp.to/20220129-plagiarism.html
关键词:后量子密码、专利、NTRU、LPR、DING、Peikert、Newhope
2004年,我与美国国家安全局NSA的密码学家Art Drisko打了个赌:我赌20美元,到2024年前,JPEG文件就可以直接在浏览器里自动显示,他说:那不可能。
(出于某种原因,国家安全局已经有几年没有回复我的电子邮件了。也许他们没收到?)
2014年,我与法国专攻算法破译的数学家Antoine Joux打了个赌: 我赌截止2032年,密码学算法RSA-2048一定会被量子计算机破解!尤其是1991年RSA公司发布的那个RSA2048 破解挑战赛(链接:https://en.wikipedia.org/wiki/RSA_Factoring_Challenge),Antonie Joux这位擅长破解各类算法的法军退役大校说:RSA2048算法一定会在2032年前被破解,但不是被量子计算机破解,而是直接就被数学方法破解了。如果到2032年还没有实现这一挑战,那么这一赌注(一瓶700ml至少18年陈酿的苏格兰威士忌)就泡汤了。
2017年,在Latincrypt大会上,我与墨西哥的密码学家Francisco Rodríguez-Henríquez打了个赌:我赌2048美元,还是关于破解RSA2048。我赌截至2033年Latincrypt大会举办之时,RSA2048算法一定会被量子计算机破解,他说:那不可能吧!(我很乐意再次打赌2032年,但Latincrypt大会只会每隔两年一次。)
如果我赢了这三场公开的打赌(此时我确定第一场赌约赢面高达99%,只是不太肯定能不能收到赌金),大家就会明白,Daniel J. Bernstein看起来是赢了2048美元,其实在告诉大家:量子计算机对全球的信息安全已造成巨大冲击。我们都会意识到,谷歌、IBM、还是任何其他赢得公开竞赛的公司或个人,宣布RSA2048被公开破解的所昭示的潜在影响。根据这些被公开公布的竞赛结果,就可以推测,任何RSA2048的公钥都将被破解;就可以推测,实际上有那么一些大规模的攻击者,早在我们知道这些被公开公布的结果前若干年,就已经秘密开发了相同的功能,并将这些功能改进为运行更快、成本更低。
当然,也许我们并不知道,量子计算机破解RSA2048算法,是不是会很快发生!也许量子计算机的研发,会遇到一个无法克服的障碍,会在2032年之后才发生,会需要更长的时间。
但是,许多年以来,我们早就知道的是,大规模攻击者早就已经在,尽可能多地收集所有可以通过互联网通讯来收集的各种数据和信息了(链接:https://irp.fas.org/program/process/rapport_echelon_en.pdf0)。如果数据用RSA-2048加密,他们会丢弃吗?当然不是。他们永远保留着它(链接:https://www.forbes.com/sites/andygreenberg/2013/06/20/leaked-nsa-doc-says-it-can-collect-and-keep-your-encrypted-data-as-long-as-it-takes-to-crack-it)。希望并期待着有一天他们会开发出解密它的能力,例如通过建造一台量子计算机。
失败的后量子密码实验
我不知道我们如何阻止大规模攻击者建造量子计算机。然而,我们可以采取旨在减少这些计算机将造成的损害的行动。对于量子计算机之后的加密将是什么样子,已经有很多建议:我们可以使用后量子加密系统来代替RSA或椭圆曲线加密来加密数据。这些提议已经在当前的计算机上奏效了。这就是为什么谷歌在大约六年前(2016年7月)就已经能够推出后量子密码实验(链接:https://security.googleblog.com/2016/07/experimenting-with-post-quantum.html)的原因:
今天,谷歌宣布在Chrome上进行一项实验,桌面Chrome和谷歌服务器之间的一小部分连接将使用后量子密钥交换算法,以及通常使用的椭圆曲线密钥交换算法。
全世界都知道,接下来发生了什么事情!谷歌公司命名为CECPQ1的这个实验,它成功了。这表明:HTTPS可以很容易地部署后量子密码。这迅速演变为后量子密码的成功大规模部署:谷歌将实验扩展到所有Chrome连接,其他行业也很快跟进。我们无法追溯攻击者多年前存储的RSA-2048加密流量,但之后,我们就可以省心地,安全地,自由地开始部署使用合适的后量子密码了。
等等,不,这不是接下来发生的事情。是的,CECPQ1实验成功了,表明HTTPS可以轻松部署后量子密码。但之后发生的事情,并不是像上面设想的,滚雪球一样发生。事实上,谷歌在几个月内终止了这项实验。有能力部署后量子密码的人突然似乎害怕这么做。最终,谷歌开始了ntruhrss701实验(链接:https://www.imperialviolet.org/2018/12/12/cecpq2.html),OpenSSH集成了sntrup761(链接:https://www.openssh.com/releasenotes.html),但这些实验的步骤和进展,都是缓慢的,都是试探性质的。于是,后量子部署延迟了数年,攻击者额外窃取了数年的流量。
为什么会这样?让我们凑近一点,仔细看看。究竟发生了什么?
谷歌是在等待NIST发布标准吗?
大多数公司,甚至是在软件工程方面拥有丰富专业知识的公司,都有理由害怕接触密码技术。即使有一个即插即用的软件库宣传正确的功能,这些公司如何评估该库是否安全?新闻文章不断鼓吹,指责公司部署了不安全的加密技术(链接:https://www.zdnet.com/article/zerologon-attack-lets-hackers-take-over-enterprise-networks/),并给出了加密技术如何失败的解释(链接:https://www.secura.com/uploads/whitepapers/Zerologon.pdf),这些解释是基于大多数公司从未想过要检查的加密细节。
因此,大多数公司的高管都有强烈的动机等待加密标准。一个标准的发布,将立即改变这些公司高管的思维决策过程:“美国国家标准与技术研究院(NIST)有一个标准说这种加密是安全的,软件库说它正在实施这一标准,我们可以很容易地检查软件库是否正确计算了标准中显示的测试向量。如果出了什么问题,我们就可以指责是NIST的标准存在不足。”
但对于当前负责大部分加密部署的科技巨头来说,情况有所不同。这些公司雇佣密码学家,派人员参加关于密码的会议,并不断接触密码技术,而无需等待标准。苹果并没有等到NIST推出X25519以支持2012年发布的新iOS安全功能(链接:https://web.archive.org/web/20220104150853/https://raw.githubusercontent.com/0xmachos/iOS-Security-Guides/master/iOS_Security_Guide_May12.pdf)。Signal在推出其密码协议的第一个版本、第二个版本、第三个版本和第四个版本时,并没有等到NIST发布什么标准。2016年,谷歌开始其后量子实验时,也没有等NIST发布什么标准。所以这种对密码技术的普遍恐惧并不能解释为什么谷歌突然关闭了这个实验。
谷歌是在避免新的密码分析风险吗?
即使由密码专业知识,并不能完全消除算法部署过程中出错的风险。即便是专家在从RSA-2048转换到某些后量子方案的过程中也很可能会破坏安全性。专业知识非常有用,但并不是任何时候都管用的;可能后量子方案容易受到专家不熟悉或尚未开发的攻击算法的攻击。
NIST的后量子密码标准化项目在2017年第一轮征集中,收到了69份完整的提案。与提交文件中考虑的攻击相比,几乎所有这些提交文件对当今已知攻击的安全性都较低。大约一半的提交文件显示未达到其声称的安全级别(链接:https://cr.yp.to/talks/2020.09.12/slides-dan+tanja-20200912-pqcrypto-16x9.pdf)。甚至,有些提议的算法的安全性低到在笔记本电脑上运行的Python脚本都能很快破解。
不幸的是,这种密码学算法的评估非常有难度。密码学领域吸引了试图欺骗用户的骗子,让用户相信他们的解决方案是安全可靠的(链接:https://blog.cr.yp.to/20160516-quantum.html)。有时,用户会听说这些解决方案受到了新的攻击,这时骗子会编造一些借口,向用户解释,这些新型攻击不具有威胁性,可以忽略。但谷歌并不是生活在这个幻想的世界里。这就是为什么谷歌的实验使用双重加密(更准确地说,双重KEM),用 New Hope 后量子系统和X25519椭圆曲线系统进行双重保护:
谷歌公司通过在现有算法的基础上添加后量子算法,能够在不影响用户安全的情况下进行实验。即使在当前的计算机上,后量子算法也可能会被破解。在这种情况下,椭圆曲线算法仍将提供当今技术所能提供的最佳安全性。或者,如果后量子算法被证明是安全的,那么即便是面对未来的量子计算机的威胁,这种双重加密方法,也能保护实验过程中的互联网链接不会被破解。
这与后量子密码术在可预见的未来应该如何部署的主流观点是一致的。也许有一天,我们会看到X25519椭圆曲线算法被量子计算机快速破解,我们甚至可以不用它,希望到那时,我们将使用足够成熟的后量子密码系统来保障安全,但今天继续用X25519加密显然是一个胜利。
(当我说“主流”这个词时,我没有任何要包涵美国国家安全局(NSA)的意思。NSA是一个可以秘密询问是否可以使“公共加密标准”变得“足够弱,以允许使用非常复杂(和昂贵)的技术进行某种性质的攻击”的机构(链接:https://cr.yp.to/papers.html#competitions);它也是一个有大量预算来破坏密码标准的机构(链接:https://www.propublica.org/article/the-nsas-secret-campaign-to-crack-undermine-internet-encryption);它还是目前正试图游说所有人,立刻改用格基算法(Lattice-based),马上停用任何椭圆曲线签名算法(ECC)的机构。(链接:https://web.archive.org/web/20211203153557/https://twitter.com/mjos_crypto/status/1433443198534361101)
总而言之:新的后量子系统可能比ECC成本更低。谷歌的实验是从ECC切换到那个系统吗?谷歌公司之所以停止CECPQ1实验,是要切换回ECC来应对新的安全风险吗?并没有。谷歌在ECC上添加了后量子系统,正是为了确保这种组合不会失去与ECC相比的安全性。但是为什么实验终止了呢?
关于终止实验,谷歌咋说?
2016年7月,在对New Hope后量子算法的CECPQ1实验公告中,谷歌表示,它不想就此给全球业界设置了一个固定的标准,因此希望在两年内升级到比New Hope更好的算法。然而,仅四个月后(2016年11月),谷歌表示,它不想设定一个标准,所以它立即终止了测试部署New Hope后量子算法的CECPQ1实验。等等,什么?
让我们看看谷歌2016年7月发布的部分实验公告(链接:https://security.googleblog.com/2016/07/experimenting-with-post-quantum.html ):
我们明确表示不希望将我们选择的后量子算法作为事实上的标准。为此,我们计划在两年内停止这项实验,希望有更好的算法取代它。
但2016年11月谷歌公司发公告(链接:https://web.archive.org/web/20211101204106/https://www.imperialviolet.org/2016/11/28/cecpq1.html)称:
我们不想将CECPQ1作为事实上的标准来推广,因此未来的Chrome更新将禁用对CECPQ1的支持。TLS很可能希望在未来达成后量子密钥协议,但最好是采用更符合多种不同的标准制定方,它们所选择的算法标准为妥。
谷歌2016年7月的立场完全合理:谷歌明确表示,它不想将CECPQ1作为事实上的标准,并计划从CECPQ1采用的算法升级到其他算法。显然,任何采用New Hope算法的机构都必须足够敏捷,才能与谷歌一起升级。这是如何演变成谷歌2016年11月的新立场:关闭一个可以保护用户免受量子威胁的算法?
如果谷歌从一开始就说,它正在做一个收集数据的短期实验,并将在三个月后关闭实现,那么,好吧,这完全可信。与气候变化一样,量子计算机超出了大多数公司的规划范围。只要让一家公司对后量子密码有足够的兴趣来运行一个简短的实验就可以取得成功。
但谷歌在2016年7月不辞辛劳地写了一篇解释量子威胁的博客文章;说这是“我们今天应该考虑的事情”;说现在开始准备是多么“兴奋”;解释CECPQ1实验;并表示希望“用更好的算法取代它”,从而停止实验。这绝对不同于几个月后谷歌突然做的事情——什么都不做就终止实验。这究竟是怎么回事呢?
关于终止实验,谷歌没说的是什么?
有传闻说,在谷歌公司宣布开始这项实验后,美国辛辛那提大学的Jintai Ding教授联系谷歌说,他的一项专利涵盖了New Hope算法的技术,并向谷歌索赔(链接:https://researchdirectory.uc.edu/p/dingji)。
如果事实上是这样的话,那么突然间,谷歌对运行该实验的热情迅速消失就合理了。想象一下,谷歌的一位专利律师给谷歌负责TLS的经理发了一封电子邮件说“一位专利持有人因为你的CECPQ1实验向我们索赔”的效果。
事实上,根据专利法,故意侵权的专利侵权方要受到至少三倍的专利侵权赔偿作为惩罚。所以谷歌这类大型科技公司的律师们,都会尽量避免在电子邮件中发送前文那种“可能最终会导致任何谷歌公司可能的专利侵权行为,听起来就是故意的”的任何内容。因此,设想一下TLS经理收到谷歌高层的邮件,要求他们填写一系列让人头疼的文件:
解释他们为什么要进行CECPQ1实验;
解释他们是否真的必须这样做,以及需要多长时间;
评估这些实验给公司带来的财务效益。
这些电子邮件将谨慎地避免提及任何有关专利的内容,但其影响一样的。
Jintai Ding教授确实拥有一项会严重威胁到New Hope的专利:美国专利9246675(链接:https://patents.google.com/patent/US9246675B2),该专利于2033年才到期。早在“New Hope”问世之前,“临时专利申请已提交”的声明就已经写在Ding的密钥交换论文的第一版(链接:https://eprint.iacr.org/archive/2012/688/1355140668.pdf)中。一年多后,该论文的第四版(被称为会议提交文件)删除了该声明,但Ding在其出版物列表(链接:https://web.archive.org/web/20211228170026/https://webcentral.uc.edu/eprof/media/attachment/eprofmediafile_4378.pdf)的第一页强调了专利。
2016年年末,Ding拥有一项能够威胁New Hope算法的专利,以及阻止了谷歌开展实验的消息在密码学界迅速传播。突然间,不仅仅是谷歌,所有人都对推出后量子密码持谨慎态度,这是十分合理的。
如何阻止人们知道某项专利?
难道密码学家们不优先考虑未获得专利的密码系统吗?为什么除了Ding以外的任何人都在努力开发一种受到Ding专利威胁的密码系统?为什么New Hope开发人员首先要从该密码系统开始?如果他们有理由这么做,为什么他们的论文没有在显著位置警告人们有关专利的威胁?
让我们倒个带,回忆一下。Alkim–Ducas–Pöppelmann–Schwabe的New Hope论文于2015年11月在线发布(链接:https://eprint.iacr.org/eprint-bin/getfile.pl?entry=2015/1092&version=20151110:173312&file=1092.pdf),称这是对之前“基于Peikert环学习和错误(环LWE)的密钥交换协议”实例的改进:
2015年早些时候,Bos、Costello、Naehrig和Stebila(IEEE Security&Privacy 2015)提出了Peikert基于错误环学习(ring LWE)的密钥交换协议(PQCrypto 2014)的实例,以及集成到OpenSSL中的实现,其明确目标是为TLS提供量子后安全性。在这项工作中,我们回顾了它们的实例化和如何独立实现。
Peikert的论文又于2014年2月在网上发表(链接:https://eprint.iacr.org/archive/2014/070/1391529404.pdf),称这是对Lyubashevsky–Peikert–Regev(“LPR”)之前工作的改进:
我们的主要技术创新之一(可能是独立的,不受他人影响的兴趣)是一种简单的低带宽协调技术,这种技术允许在秘密设定值上基础上, "近似同意 "的双方可以达成确切协议,这基本上是所有基于格Lattice的加密算法一种共同的设置。我们的技术将先前(已经紧凑的)加密方案的密文长度减少了近两倍,基本上没有成本。。。
我们的第一项技术贡献是一种新的基于环LWE的KEM,其带宽(即密文长度)比以前的紧凑加密/KEM方案[LPR10,LPR13]高出近两倍,基本上不需要安全或其他效率措施。改进来自我们新的简单“协调”技术,该技术允许发送方和接收方(非交互)从其在环形元素上的近似或“噪声”协议中达成精确协议。(详见第3节。)与[LPR10,LPR13]的加密方案相比,该技术允许我们用相同维数n的二进制字符串替换密文中模q=poly(n)的两个环形元素之一,从而将密文长度几乎减半。(详见第4节。)我们注意到,近似协议基本上适用于所有基于晶格的加密和密钥协议,我们的协调技术足够通用,可以应用于所有这些协议···
与以前最有效的环LWE密码系统和KEMs相比,新的协调机制将密文长度减少了近两倍,因为它将密文的两个Rq元素之一替换为R2元素。因此,密文长度从2n log q位减少到n(1+log q)位,其中n是R的维度和约定密钥的长度。
这里有两种不同的LPR引用,原因是“LPR10”使用了2次幂分圆法(这也是New Hope所做的),而“LPR13”考虑了更一般的分圆法。无论如何,2014年Peikert声称:
密文大小比“之前的紧凑加密/KEM方案[LPR10,LPR13]快了近两倍”(听起来不错!显然应该使用这个);
具体来说,将“密文中模q=poly(n)的两个环形元素之一替换为相同维度n的二进制字符串,从而使密文长度几乎减半”;
具体来说,通过2014年Peikert的“简单、低带宽协调”的“技术创新”来实现这一点。
2014年Peikert没有说的是,同样的空间缩减已经出现在Ding2012年12月的一篇论文中(链接:https://eprint.iacr.org/archive/2012/688/1355140668.pdf)。
密码系统的工作原理
第1部分:LPR是什么?
参见英文原文(链接:https://blog.cr.yp.to/20220129-plagiarism.html)
密码系统的工作原理
第二部分:压缩LPR是什么?
参见英文原文(链接:https://blog.cr.yp.to/20220129-plagiarism.html)
抄袭剽窃的概念
学校教育学生,如果要复制文本,在文本前后之间,必须使用引号,复制文本的时候,如果没有引号,那就是抄袭剽窃。但这只是剽窃的一种形式。
用美国卫生与公众服务部研究诚信办公室的话说,“全部或部分挪用他人的想法(例如,解释、理论、结论、假设、隐喻),或在归功于原创者的情况下进行表面修改”是“剽窃想法”(链接:https://blog.cr.yp.to/20220129-plagiarism.html)。
用美国数学学会的道德准则(链接:https://www.ams.org/about-us/governance/policy-statements/sec-ethics)来说:
明知他人的数学发现是自己的,即构成剽窃,严重违反职业道德。任何类型的作品都可能发生剽窃,无论是书面的还是口头的,也无论是否出版。
数学结果的正确归属是至关重要的,因为它鼓励创造性,使原创者受益,而原创者的职业生涯可能取决于对作品的认可,还因为它告知学术界原始想法何时、何地、有时如何进入数学思维链。为此,数学家负有某些责任,其中包括:
-努力了解自己的领域,尤其是与研究相关的工作;
-给予适当的信任,即使是未发表的材料和公布的结果(因为知道某事是真是假是有价值的,无论它是如何获得的);
-公布结果的全部细节,不得无故拖延,因为在结果以合理的确定性实现之前声称结果会通过限制那些朝着相同目标努力的人而损害学术界;
-不得使用压制或诋毁他人工作的语言;
-及时纠正或撤回错误的工作。
就是说,不能假装忽视已经广泛传播的数学发现,然后宣称是自己独立研究的成果。
通常两个人会独立地提出相同的想法。事实上,这个事实为剽窃者提供了掩护:他们可以声称自己独立提出了这个想法。但科学的规则是,一个想法的首次发表才会受到认可和赞扬。这条规则偶尔会有例外,当第一份和第二份出版物的时间非常接近,并且第二份出版物似乎声称在第一份出版物出现之前就发现了这个想法时,在这种情况下,还是会把成果和荣誉,归功于第一篇和第二篇论文的;但2014年Peikert并没有声称在2012年Ding之前就提出了这个想法(更不用说关于这种说法的合理性问题),而且2014年Chris Peikert教授的论文,在时间上,也不是接近2012年Ding的论文的发表时间。因此,时间尺度来说,也不足以尝试援引这个例外。
让我们善意地假设,Ding和其他讨论Ding作品的人,看过Ding论文的人,或者听过Ding在2012年6月和11月就此发表的演讲的人,都没有向Peikert传递任何信息。我们还可以善意地假设,Peikert试图“了解他们的领域,特别是与他们的研究相关的工作”,但失败了:他在2014年撰写并发布了一篇关于基于环形LWE的密钥交换的论文,但却完全错过了2012年的一篇论文“基于带错误学习问题的简单可证明安全的密钥交换方案”(在摘要的末尾具体指向“环形LWE”)),它出现在Peikert发布自己论文(链接:https://eprint.iacr.org/2010/088;https://eprint.iacr.org/2011/401;https://eprint.iacr.org/2012/230;https://eprint.iacr.org/2013/293;https://eprint.iacr.org/2014/070)的同一个加密预印本服务器(preprint server )上。2012年,该预印本服务器上有700多篇论文;想象一下,每天读两篇新的论文摘要是多么耗时!
到目前为止,这只是一个恶劣的学术小故事。这是一个明显的剽窃案例,因为Peikert在得知Ding的论文后,没有给予该论文适当的评价。
Peikert有没有可能不知道Ding的论文?不可能。Peikert论文2014年7月修订版(链接:https://eprint.iacr.org/archive/2014/070/1405562577.pdf)的参考文献包括“[DXL14] J. Ding, X. Xie, and X. Lin. A simple provably secure key exchange scheme based on the learning with errors problem. Cryptology ePrint Archive, Report 2012/688, 2014”;这是Ding论文的2014年修订版。
Peikert是否可能只是出于其他原因引用了“DXL14”,而没有意识到,Ding的这篇论文,就是在讲怎样在一种抗量子计算机破解算法中,如何节省密文空间呢?不可能。Peikert修订本第9页承认“DXL14”节省了密文空间:
我们注意到,Ding等人[DXL14]的一项工作提出了一种不同的调整方法,用于在针对被动对手的密钥交换的情况下实现较低带宽的“近似一致”。
从这一知识出发,Peikert是否发布了一个适当的勘误表,突出地指出“本文的前一版本声称低带宽协调可以将LPR密文长度减少近两倍,但Ding在2012年的重要前期工作已经实现了这一点?不。相反,Peikert版本的摘要继续声称“技术创新”的功劳,“将先前(已经紧凑的)加密方案的密文长度减少了近两倍”:
我们的主要技术创新之一(可能是独立的、不受他人影响的兴趣)是一种简单的低带宽协调技术,这种技术允许在秘密的设定值上, "近似同意 "的双方完全可以达成确切协议,这基本上是所有基于格Lattice的加密算法的一种共同设置。我们的技术将先前本就已经很紧凑的加密算法的密码文本长度,又减少了大约两倍,而且!基本上没有成本….
2014年Peikert在这里所说的一切都是2012年Ding已经做过的!
抄袭剽窃的后果
天真的专利系统模型认为,公众知道什么是专利,如果不愿意支付,可以直接避免使用它。当做出使用决定的人不知道什么是专利时,专利法也会将绳之于法。试想一下,当业内人士看到一家公司踩上了相当于地雷的知识产权时的感受:“如果New Hope开发者落入了优化受专利威胁的后量子系统的陷阱,而谷歌落入了部署受专利威胁的后量子系统的陷阱,那么我们该如何避免同样的陷阱?”这种担忧超出了已知问题的范围:
“NTRU是一个不同的系统。”“好吧,但我们怎么知道这上面没有专利?”
“嗯,是的,NTRU获得了专利,但NTRU是1996年的一个系统,专利于2017年到期。”“这真的就是你试图说服我们部署的系统吗?”
“嗯,没有,但我们不知道有任何专利威胁到NTRU。”“就像谷歌当年进行CECPQ1实验时,没有意识到任何专利威胁一样?”
因此,需要数年的时间才能说服业界采取试探性的进一步措施进入雷区。
原则上,专利是公开的,专利申请在提交后的18个月内公布(假设公布速度没有因国家安全局的保密令(链接:https://sgp.fas.org/othergov/invention/)而放缓;是的,美国专利法允许国家安全局发布保密令)。实际上,美国的第1000万项专利是在2018年发布的,理解如此多的,每一项相关的发明专利和知识产权的范围,都会存在严重的复杂性和不确定性(链接:https://faculty.haas.berkeley.edu/shapiro/patents.pdf)。而美国,只是众多国家之一。想去追踪和自己有关的一些专利,的确是一个巨大的信息管理问题。
当然,谷歌专利网址patents.google.com上,允许用户进行专利的全文搜索,但是,要搜索哪些词呢?搜索“Cryptography”,谷歌给出了106778个结果,这显然还是遗漏了很多;搜索“Cryptosystem”,谷歌给出了135304个结果;如果换成“encryption system”或 “communicating secretly”或“protecting data”呢?另外,搜索相关的法语单词比如 “cryptographique”,谷歌给出了14172个结果,这些法语搜索结果里,几乎没有说英语中最常见的“cryptography”或 “cryptosystem”这两个单词的。
假设您成功找出了所有加密专利。在这些专利中,如果你想找到使用多项式乘法的密码系统的专利。如果搜索多项式算法专利,没有用 “polynomial”或者“multiplication”,那么搜索结果会怎样?有一些搜索不到的论文,也许它所说的关于多项式算法专利,用的单词是“signals(信号)”的“convolution(卷积)”。也许在k[t]/(tn+1)中,有两个随机命名的变量R,S的数学描述,而乘法是由变量名称的连接来表达。也许有结构化的矩阵,而不是多项式。当然,你也有可能,在任何特定的搜索引擎中,有较大的运气和可能找到相关的专利文章。我经常尝试专利的全文搜索,但我并不指望这些搜索会特别全面。
当你知道是谁发现了X时,搜索相关专利会变得更加容易。法律要求专利列出其“发明者”和专利内容。patents.google.com允许按“inventor”进行搜索。这将原来的一千万多项专利缩小到一个非常小的特定来源的专利清单。这一程序本身并不完全可靠(因为它可能漏掉了,某些专利发明人,放弃了科学信用,试图隐藏某些发明专利的一些“海底(submarine)”案例),但它具有巨大的价值。
从根本上讲,作为科学家,谁首先发现了X,和谁首先发表了X,在道义上,后者是绝对有道德义务,去向前者报告的。但现在遇到道德感薄弱的人的风险要高得多。那些发明专利的涉及范围,和专利持有人在学术上有权获得对应的成果和荣誉之间,并不是完全划等号的;但是,在如何才能科学合理地分配学术发现上的成果和荣誉,和去找到这些学术发现上相关专利的过程,还是存在着很大关联重叠的部分的。抄袭剽窃损害了管理专利风险的最重要过程之一。
如何为抄袭辩护
想象自己在这个故事中扮演攻击者的角色。你渴望得到荣誉,以至于你剽窃了别人的作品。显然你想要限制那些知道你是剽窃者的人的数量。意识到这一点的人不会相信你。你甚至可能会陷入麻烦:你一直在违反基本的道德准则,而你不可能假装不知道。好吧,你怎么才能不让人们看到发生了什么?
如果你一个字一个字地复制文本,那么任何将原始文本与“你的”文本进行比较的人都会立即看到复制的内容。要意识到的第一个重要的一点是,剽窃的想法不是那么容易被发现的。当然,你可以看到你所宣称的结果已经由原始来源实现了,但想想你已经阅读和理解了多少单词来看到这个。世界上有多少人是从必要的背景知识开始的?其中,有多少人会花时间自己去阅读和理解?为什么会有人想要花这段时间呢?(链接:https://faculty.haas.berkeley.edu/shapiro/patents.pdf)
现在是21世纪。每个人都很忙。人们被信息淹没,往往是相互矛盾的信息,而没有时间去挖掘每一个矛盾。你可以利用这一点!
让我们来看看你的基本防御策略。对于每一种策略,我将首先解释策略的要点,然后给出一个说明性的例子,据我所知,什么是将策略付诸行动。
策略1:转移话题。先引用原始资料,然后说点别的。你在这里想表达的态度是“我是一个如此细心的学者,我引用这个遥远的工作来解释它与我的论文的微小联系”。不要特意宣称原始来源没有做你吹嘘的你自己的贡献;相反,让读者关注原文的其他方面,最好是那些让原文听起来尽可能无用的内容。
策略1的例子。在上面,我引用了2014年7月版本的Peikert的论文,该论文声称“技术创新”“将之前(已经紧凑的)加密方案的密文长度减少了近两倍”,然后最后引用了Ding:
我们注意到Ding等人[DXL14]的一项工作提出了一种针对被动对手的密钥交换的低带宽“近似协议”的不同和解方法。
文中继续抱怨“DXL14”输出的不一致性。从结构上看,这听起来就像是一个遥远的参考:有一些“DXL14”论文在不同的背景下呈现了一个不同的节省空间的想法,一些甚至不值得在第9页之前提及的东西,一些需要各种各样的改变和改进来变成这篇论文的创新。读者假设所有这些都与将LPR密文长度缩短近两倍的新奇说法一致。
策略2:人身攻击。如果读者好奇Ding的论文中有什么内容,会发生什么?读者可能会看到,Ding已经将LPR密文长度缩短了近两倍!至于您转移话题方面的努力,读者可能会注意到,考虑到散列会话密钥的标准实践,不一致性问题是多么的微不足道,可能会注意到通用转换已经将被动安全性升级为主动安全性,最根本的是,可能会注意到,无论两种技术之间有什么不同,都不能证明你没有明显地将两种技术之间的重叠归功于Ding。
所以不要让读者读Ding的文章。技术方面,这使Ding的文件听起来尽可能无用,已经涵盖以上。但这也有情感的一面,让读者把Ding视为敌人,把Ding视为另一个政党操纵性的脱口秀主持人,一个只有傻瓜才会听的邪恶煽动者。(你知道我说的是哪个政党吧?)
策略2实施示例。我听说Ding专利别人的想法,因此他应该得到任何惩罚。我听说Ding恶意歪曲历史,例如拒绝相信LPR。我听说Ding在2017年向NIST PQC提交了自己命名的“Ding Key Exchange”,违反了科学命名惯例。我听说Ding把自己描绘成格基密码学的领军人物,尽管引文统计显示他不如Peikert重要,等等。我在看这样的人写的论文吗?讨厌!
正如你从最恶劣的小观众政治中所预料到的那样,这大部分都被隐藏在幕后,Ding看不见,也无法为自己辩护。但这类事情确实有影响。我敢肯定,这些攻击增加了2014年Peikert和2012年Ding之间引用次数的差异。这种差异有助于支持2014年Peikert比2012年Ding更重要的观点,这反过来又鼓励尚未调查的作者(即大多数作者)引用2014年Peikert。如果有那么多科学家同意引用2014年Peikert的话,那么2014年Peikert突出的“创新”怎么可能是剽窃,是对2012年Ding的剽窃?
策略3:显而易见的耍滑头(weaseling)。也许转移话题和人身攻击将不足以阻止所有的潜在读者的原始来源。还有第三种策略,你可以也应该遵循:声称原始来源所说的事情在现有技术条件下已经很明显了。我所说的“现有技术”是指早于原始来源的东西。
你可能会认为,(1)在你自己的论文中声称X是一项“创新”,和(2)声称原始来源中的X明显来自现有技术之间存在着明显的矛盾。别这么担心!以下是该策略的工作原理:
当你在谈论你的论文(上面写着X)时,说一下现有技术完成得有多少。
当你谈论原始来源(即X)时,请说出现有技术完成了多少。
当然,仔细阅读所有内容的读者会看到你正在玩的游戏,但这里的重点是给读者一个不仔细阅读所有内容的简单借口。当原始源与现有技术相比做得很少时,读者为什么要费心阅读原始源呢?
战略3实施示例。让我们看看一篇文章中两种描述之间的差距。本文是2009年的Peikert,我指的是2009年9月Peikert论文“最坏情况最短向量问题的公钥密码系统”的版本(链接:https://web.archive.org/web/20160317184636/https://web.eecs.umich.edu/~cpeikert/pubs/svpcrypto.pdf)。本文的一个描述是在2014年Peikert,强调2009年Peikert是多么有限,以突出2014年Peikert的贡献。另一个描述是在2021的Peikert张贴,压制同样的限制,2009年Peikert,以淡化2012Ding的贡献。当然,三角形的第三条边,将2014年的Peikert与2012年的Ding进行比较,被省略了。
以下是2014年7月的Peikert,强调了2009年Peikert的有限性:
我们提到,至少回到[Pei09]的公钥密码系统,已经知道可以通过简单的“舍入”来改善密文长度,即丢弃较低的有效位。然而,得到的模必须仍然大于密钥的范数,尤其是多项式的n-模,而我们的技术能够(以某种方式)一直“舍入”到模2。
事实上,2009年Peikert第4.2节使用了一个后舍入模,该后舍入模被选择为至少“4(m+1)”,其中m大于n log2 q。(例如,如果n为1024,q为12289,则m大于13•1024,因此后舍入模将大于13•4•1024,因此甚至大于q,方向错误。)模的下限直接用于分析密码系统是否可以解密。在2009年的这一点上,Peikert的广告说,基本上,某些密码系统具有超多项式LWE模,2009年的Peikert取整转换为多项式LWE模,节省了密文大小:
然而,当使用较大的q值(例如,q=2O(n))时,先验方案的效率次优,因为明文到密文的扩展因子(即使在摊销方案中)至少为lg q。幸运的是,通过使用相对较小的模量q′=poly(n)更“粗略”地离散LWE分布,可以提高其效率(而不牺牲正确性)。
看到2009年Peikert和LPR的读者没有理由认为在2009年Peikert取整中用环LWE替换LWE将改进LPR密码系统:LPR密码系统首先从多项式环LWE模开始。
考虑到2009年Peikert的这一局限性,2012年4月的LPR论文的完整版本(一篇强调效率的论文)没有提到使用舍入来压缩LPR密文(链接:https://eprint.iacr.org/archive/2012/230/1335799988.pdf))。2014年Peikert驳回了2009年Peikert,认为其需要较大的后舍入模量,这是有道理的。这里的一切都与2014年Peikert的说法一致,他说与“之前最有效的环LWE密码系统和KEMs”相比,它将“密文长度提高了近两倍”:具体来说,他说“密文长度从2n个log q位减少到n(1+log q)位”(这里的log显然是log2)。
除此之外,2012 Ding已经将LPR密文从2n个log q位压缩为n(1+log q)位。你如何阻止读者看2012 Ding?这里的策略是让读者相信,除了2009年的Peikert,2012年的Ding并没有添加任何有趣的东西!
以下是2021年Peikert帖子(链接:https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/nbIZhtICKWU/m/SqvzrtVOBQAJ)中对2009年Peikert的处理,该帖子试图淡化Ding的贡献(并回避对2014年Peikert的讨论)。2021年,Peikert提到了现代LPR风格的提案,如Kyber,并声称“该提案的圆形低位压缩不可能被引用的专利所涵盖”,由于“该技术已由2012年专利申请的大量现有技术充分确立”和“该专利没有要求或甚至没有描述该方法,可能是因为它需要避免该现有技术”。
确切地说,是哪种现有技术?2021,Peikert引用了2009年的Peikert,将2009年的Peikert描述为使用“舍入来压缩密文”,然后跳到了对LPR等的“舍入同样有效”的说法,以及,嗯,使用至少4(m+1)的模?2009年的大模数Peikert被强调(2014年的Peikert),目标是说明2014年的Peikert有多创新,但被抑制(2021的Peikert),目标是说明2012年Ding的贡献有多少。很少有读者会仔细观察,注意到这种欺骗。
Peikert继续用更多的参考文献轰炸读者,一个是关于LWR中舍入的使用,两个是关于FHE中舍入的使用。当然,2021,Peikert并不承认这些参考文献也未能实现Ding对LPR密文几乎两倍的压缩。
原则上,要看到2014年Peikert剽窃了2012年Ding,读者不必阅读任何老作品。读者只需(1)阅读2014年的Peikert,看看2014年的Peikert声称是新的,以及(2)阅读2012年的Ding,看看2012年的Ding已经实现了这个结果。但2021 Peikert轰炸的目的是给读者留下这样的印象,即Ding所做的一切从现有技术中已经显而易见。这种印象反过来又给了读者一个不读Ding论文的借口。
备选路径
如果早在2014年,Peikert就给予Ding适当的信任,那么仔细想想会发生什么是有益的。New Hope的设计者不是从“基于Peikert的带错误环学习(ring LWE)的密钥交换协议”开始,而是从Ding的密钥交换协议开始。这并不能保证他们会注意到Ding的专利(BCNS的论文引用了Ding,但没有提及专利),但这会给他们更好的机会注意到它。让我们具体考虑一下他们意识到问题的场景。
据推测,New Hope的设计者可能会试图找到绕过该专利的方法。在此,显而易见的途径是优化NTRU而不是LPR。这基本上就是Hülsing–Rijneveld–Schanck–Schwabe(链接:https://eprint.iacr.org/2017/667 )在2017年7月所走的道路。到2015年11月New Hope号出现时,NTRU仍然拥有专利,但NTRU的专利到期时间(2017年8月)并不遥远。我已经将工作投入NTRU,预计工作将从2017年开始可用;NTRU Prime的初步设计已于2014年2月上线(链接:https://blog.cr.yp.to/20140213-ideal.html),NTRU Prime论文于2016年5月发表(链接:https://eprint.iacr.org/2016/461)。
(优化NTRU和优化LPR之间有巨大的重叠,对于相同的大小约束,已知的攻击实际上是相同的,这可以通过简化的NTRU素数和NTRU LPRime在核心SVP级别、密文大小和密钥大小方面的接近程度来说明(链接:https://ntruprime.cr.yp.to/speed.html)。将NTRU和LPR重命名为“Quotient NTRU”和“Product NTRU”分别更好地识别系统之间的相似性。关于未知攻击的风险,LPR营销部门炒作了一种存在于NTRU而非LPR中的攻击途径,但没有承认存在于LPR而非NTRU中的三种攻击途径。(链接:https://ntruprime.cr.yp.to/warnings.html)
一个更危险的途径是留在LPR,但要设法绕过Ding的专利。这基本上是Alkim–Ducas–Pöppelmann–Schwabe(链接:https://eprint.iacr.org/2016/1157)在2016年12月所走的道路,引入了“没有和解的New Hope”,并声称它“避免了Ding最初提出的错误和解机制”。
为什么科学家看一项专利并回避专利的边缘是危险的?一个原因是,边缘是由专利法院遵循的规则决定的,这些规则通常是科学家不知道的。有多少科学家知道什么是马克曼听证?有多少科学家花时间研究等价理论?令人震惊的是,一份听起来很科学的PDF文件声称专利的有效性和适用性(链接:https://eprint.iacr.org/2021/1364),是由那些说“法庭程序不是我们写作的重点(因为我们并不假装知道它)(链接:https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/2Xv0mrF9lVo/m/vRkASR95AAAJ)”的人写的。如果你看到一个PDF声明,比如说IND-CCA2安全性,难道你不希望作者知道IND-CCA2安全性的定义吗?
我仔细研究了Ding的发明和后来Ding的发明的变体之间的界限(链接:https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/NSe0wAzKJtA/m/4t9aHQWsBwAJ)。据我所知,这些分界线甚至不符合法院程序强制执行的基本清晰标准,更不用说它们是否能逃脱美国的等同原则,更不用说我们希望密码技术在全球范围内可用,还需要调查Ding专利的欧洲版本的影响。
在科学上,New Hope在如何压缩LPR密文方面要归功于Ding。改用“没有和解的New Hope”并不能逃避这笔债务。像在Kyber中那样切换到模块也不能逃避这种债务;这并不是说Kyber消除了压缩!虽然细节上存在差异,但这并不能消除思想的核心重叠,而正是这种重叠需要Ding的支持。当然有可能是糟糕的专利起草使Ding的法律垄断范围缩小到Ding的科学贡献之下,但是等价物原则和其他法院程序使系统向专利持有人倾斜,不熟悉这些程序的人根本没有能力评估专利威胁。
接近专利是危险的另一个原因是,如果你在一个有新专利的领域,那么你不应该对碰到更多专利感到惊讶。当然,任何地方都可能有地雷,但现实是,有些领域比其他领域更成熟,这使得这些领域对寻求专利的人来说通常不那么有吸引力。专利自然倾向于聚集在不太成熟的领域。
如今,人们已经广泛了解了美国专利9094189(链接:https://patents.google.com/patent/US9094189B2),这是一项关于LPR密码系统的专利,它在LPR公布密码系统之前提交了申请。这种广泛的认知在2016年还不存在,但看到Ding的专利的人听到LPR有专利应该不会感到惊讶;当听到中国专利107566121(链接:https://patents.google.com/patent/CN107566121A/en)时,我们不应该感到惊讶,该专利的内容听起来与“没有和解的New Hope”非常相似,于2016年11月提交;听说有当地的地雷种植公司(链接:https://www.isara.com/)也不奇怪;等等。
(LPR密码系统应该被称为LPR密码系统吗?据我所知,最早的出版物是2010年4月和5月的LPR会谈。但专利持有者也在2010年5月发表了关于密码系统的演讲,并在几天后将幻灯片放到了网上(链接:https://web.archive.org/web/20150614110435/https://pqc2010.cased.de/rr/03.pdf)。因此,这可能是两种来源都应该得到赞扬的例外情况之一。我将在后续的博客文章中回到这个问题。无论如何,根据专利法,重要的是专利申请的申请日期。)
如果New Hope的设计者们在对New Hope进行任何投资之前,更早地知道Ding的专利,他们还会走上这条危险的道路吗?很难猜。也许“没有和解的New Hope”会是第一个“New Hope”,论文指向Ding的专利,并声称要避免它。或者,“New Hope”的标签可能会被用于一个优化的NTRU,论文指出Ding的专利,并评论NTRU的优势是,从2017年开始无专利。
无论如何,谷歌和其他潜在用户从一开始就有更大的机会意识到有新的专利需要担心,而不仅仅是即将到期的NTRU专利。提前发现问题可以成为犹豫的理由,但这比因为没有发现问题而受到伤害要小得多。我的猜测是,行业应该早几年开始NTRU的部署,并且应该更快地扩大到广泛部署。
可能仍有大问题潜伏在暗处。最初的NTRU已经没有专利了,但是,如上所述,现代版本的NTRU和最初的NTRU是不同的,所以我们可能忽略了专利的威胁。此外,栅格攻击的技术水平是不稳定的,有许多未充分探索的攻击途径,如s单元攻击((链接:https://s-unit.attacks.cr.yp.to/)打破一个又一个声称的“障碍”所示。但我希望现在推出的技术:(1)是无专利的;(2)至少足够强大,能够有意地限制未来量子计算机攻击的用户数量。NTRU出现严重错误的风险并不能证明密码学界在2017年开始加密尽可能多的数据是失败的。
本文由量子计算与安全先锋基于相关资料原创编译,转载请联系本公众号获得授权。
声明:本文来自量子计算与安全先锋,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。