支持者认为,通过结合使用多种加密算法,可以有效地补充单一抗量子算法的不足之处,尽管如此,性能、复杂性和安全性挑战仍然存在

这种情况就像是,当你只有一个降落伞时是否还需备用降落伞一样。

许多首席信息安全官(CISO)、安全团队和密码学家在探索下一代加密协议时,会提出这类比喻来质疑加密算法的选择。

他们在思考,用户是否真的需要多层次的加密保护?这是否值得承担额外的复杂性和成本?

关于“混合加密”的讨论通常从对其定义的争议开始。

混合加密是指公钥加密(非对称加密)和对称加密的结合应用。

这种结合多种算法的系统并不鲜见,而且数学家们将不同的算法组合使用以充分发挥各自优势的做法已有一段时间。

例如,许多公钥系统仅用公钥算法来加密对称密钥,然后用这个对称密钥来加密数据。像AES这样的对称算法通常运行速度更快,混合加密方法正是利用了这一点。

随着美国国家标准与技术研究院(NIST)抗量子密码学(PQC)竞赛开发的抗量子算法的推出,这个话题现在受到了广泛关注。

一些人怀疑新方法的可靠性,并希望通过某种混合方法在过渡期间提供额外的保障。

使用多个层级的加密方法并非新创意。斯图尔特·哈伯(Stuart Haber)和斯科特·斯托内塔(Scott Stornetta)设计的“时间戳服务”(DTS:time-stamping service)后来演变为Surety公司,他们同时使用两种不同的哈希函数。

他们还设计了一种协议,允许未来加入新的、更优秀的哈希函数。哈伯表示,面对密码分析算法的迅速发展,他们一直在思考如何在现有的广泛部署的认证系统中以最佳方式替换新的哈希函数,“我们不想依赖于单一的算法。”

谷歌已经开始采用混合算法的策略。去年,Chrome浏览器和一些服务器开始采用两种算法的组合来协商会话密钥:

X25519—一个使用椭圆曲线的TLS常见选择,和Kyber-768—一种抗量子密钥封装方法,是NIST PQC项目的胜出者。

Chrome浏览器的安全技术项目经理德文·奥布莱恩(Devon O"Brien)在声明中提到,尽管Kyber封装的额外密钥材料为每条TLS ClientHello消息增加了约1000字节,但这对“绝大多数”用户来说并不构成问题。

使用X25519Kyber768会给TLS ClientHello报文增加超过1千字节的额外数据

推文链接:

https://blog.chromium.org/2023/08/protecting-chrome-traffic-with-hybrid.html

抗量子技术的发展既激发人们的兴趣,也带来了挑战。

在寻找潜在的解决方案的过程中,美国国家标准与技术研究所(NIST)已经多次推迟了截止日期,并且还启动了新一轮的比赛,旨在鼓励更多的解决方案的开发,以应对一些技术可能被发现存在安全漏洞的情况。

寄希望于比赛能够提供一个完美的解决方案,确保我们安全步入未来的想法,可能会让人失望。

事实上,比赛带来的问题和解答数量相当。

选择一种潜在含有缺陷的新算法不仅是理论上的风险。实际上,一些进入决赛的算法已经展现出了巨大的潜力,却很快被证明是容易受到攻击的。

例如,彩虹签名方案和超等同源Diffie-Hellman协议(SIDH)都已遭到破解(相关团队随后也表示,已对漏洞进行了优化填补)。

如果潜在的弱点总是存在的威胁,那么采用混合解决方案似乎是一种理想的对策。

采用两种或更多算法,而不是仅将如RSA或AES这样的成熟算法替换为几乎未经测试的新算法,为什么不呢?为何不计算多重签名或对数据进行多次加密呢?

惠特菲尔德·迪菲(Whitfield Diffie)

著名密码学家惠特菲尔德·迪菲(Whitfield Diffie),参与开发了多种广泛使用的公钥加密算法,他对混合方法持肯定态度。

他认为,“这对于过渡到抗量子加密(PQC)是不可或缺的。”

然而,批评者指出了混合解决方案的不足之处:

- 增加了复杂性:实现至少需要两倍的代码编写、调试、审计和维护工作。

- 效率下降:加密或解密任何数据或会话密钥时,计算开销至少增加了两倍。

- 结构差异:这些算法不能简单地互换。例如,一些签名算法使用一次性密钥,而其他算法则不需要。

Databricks的首席工程师史蒂夫·韦斯(Steve Weis)表示:“正确实施一个标准已经足够困难,同时使用两个标准会增加实施错误或新型攻击的风险。此外,性能仍然至关重要,对于许多情况而言,增加两倍或更多的计算成本和有效载荷大小是不可接受的。”

美国国家安全局(NSA)是新方法最著名的批评者之一,他们长期以来一直关注安全加密的开发。在过去几年中,NSA出于多种原因,不鼓励使用混合算法。英国的政府通信总部(GCHQ)也持相同立场,他们通常与美国通过所谓的“五眼联盟”合作。

NSA在一份关于过渡到抗量子算法的FAQ中写道:“不要在国家安全系统(NSS)任务系统上使用混合或其他非标准化的抗量子解决方案。使用非标准解决方案会带来创建不兼容解决方案的重大风险。”

“根据既定标准(如 RFC 8446、RFC 8784)使用涉及对称密钥的混合解决方案可能是合适的,但密钥管理的复杂性通常将其限制在特殊应用中。”

文件链接:

https://web.archive.org/web/20220908002357/https:/media.defense.gov/2022/Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF

与此同时,其他国家的密码机构,如法国的ANSSI和德国的联邦信息安全办公室(BSI),采取了不同的方法,鼓励使用多层加密来确保安全

德国BSI总结说:“与基于RSA和ECC的加密机制相比,对PQC机制的安全实施,特别是在侧信道安全、避免实施错误和硬件安全实施方面,以及对其经典密码分析的研究要少得多。目前,我们只建议在生产系统中将其与传统的基于ECC或RSA的密钥交换或密钥传输一起使用。”

混合加密的安全性是个复杂话题,其核心在于执行细节。

算法设计者面临多种选择,每种选择都拥有其独特的优势。混合加密的实施方式多样,但关键的细节仍在不断完善中。

采用双层加密策略,即先用一种算法对数据进行加密,随后再应用第二种算法,实际上是在一个数字保险箱内再置入另一个。

攻击者要破解这两重加密。然而,不同算法的结合方式并非总一致。

以散列函数为例,其设计宗旨在于难以找到两个不同输入但产生相同输出的碰撞(x_1和x_2,使得h(x_1)=h(x_2))。若将一个散列函数的输出作为另一个散列函数(例如 g(h(x)))的输入,发现碰撞的难度可能并未增加(g(h(x_1))= g(h(x_2)) if h(x_1)=h(x_2)),特别是如果弱点存在于首个函数中。

在数字签名的应用中,组合方法与加密不同,一种简易方式是分别生成多个签名,然后独立验证它们。

即便这种基础策略也会带来实际问题,如私钥泄露、算法更新需求,或一个签名验证成功而另一个失败的情况。

总之,密码学是一门深奥学科,许多领域仍然充满未知。大多数算法建立在这样的假设之上:某些数学问题过于复杂,以至于无法解决,但这些假设并没有得到绝对证明。

许多倾向于采用混合方法的密码学家认为,一旦发现弱点,额外层次的保护将提供更多的安全性。如果投入资源在一层上是值得的,那么再加一层通常也同样值得。

虽然高性能应用可能会禁用此功能,但对于那些需要额外保障的应用来说,这是必要的。

参考链接:

[1]https://blog.chromium.org/2023/08/protecting-chrome-traffic-with-hybrid.html

[2]https://cyber.gouv.fr/en/publications/follow-position-paper-post-quantum-cryptography

[3]https://www.ncsc.gov.uk/whitepaper/next-steps-preparing-for-post-quantum-cryptography

[4]https://www.csoonline.com/article/1307682/is-hybrid-encryption-the-answer-to-post-quantum-security.html

[5]https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TG02102/BSI-TR-02102-1.pdf?__blob=publicationFile&v=6

声明:本文来自光子盒,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。