paint-brush
解密未来:可编程加密技术及其在现代技术中的作用经过@felixarpa
627 讀數
627 讀數

解密未来:可编程加密技术及其在现代技术中的作用

经过 Felix Xu7m2024/04/26
Read on Terminal Reader

太長; 讀書

可编程加密仍然是一个新概念,但它提供了使非常复杂的问题变得简单的机会。
featured image - 解密未来:可编程加密技术及其在现代技术中的作用
Felix Xu HackerNoon profile picture
0-item

随着加密技术不断发展,并在我们的生活中找到新的、更重要的用途,这些技术执行的过程变得越来越复杂。虽然简单的加密原语可以完成大量工作,但最令人兴奋的是它们结合起来能做什么。


更令人印象深刻的是,一些加密协议在设计时就具备硬件描述能力,这赋予了它们应对普遍挑战的能力。这一理念被恰当地称为“可编程加密”,它有望实现更复杂的操作,用 Brian Gu 的话来说,就是将设计新协议的数学问题转化为组合现有协议的编程问题。


在本文中,我们将探索密码应用的各个层面,从高级目标到低级算法,以了解这些想法的来源。然后,我们将看看它们将走向何方。


在开始之前,让我们花点时间思考一下密码学家钻研其技术的根本动机。毕竟,呆在家里什么也不做要比研究数学证明新协议是否安全、可行以及是否比现有模型有显著改进容易得多。

由于我们存储、共享和处理的数字数据的重要性日益增加,我们需要新的和改进的方法来确保隐私并防止数据被篡改。满足这一需求的愿望是密码学家每天早上起床的动力。


想想如今网上处理的信息量,真是令人震惊。对大多数人来说,更直接的是他们现在花在数据上的时间比几年前多得多。如果没有得到妥善保护,他们生成、使用、查看和发送的所有信息都面临被监视、窃取或操纵的风险。


这就是为什么我们总是需要加密技术。这就是为什么新的和改进的数据保密方法不断被开发出来。


与许多其他学科一样,密码学基于简单的概念,随着任务变得越来越有趣,这些概念会逐渐扩展。这些简单的概念在现代密码学中通常被称为“密码原语”,它们本身通常很基础,但可以组合起来构建复杂的东西。


例如,我们来看看最古老的密码之一——凯撒密码。该密码以其最著名的使用者命名,它涉及在密文中写入单词,这些单词从原始消息中向后移动三个字母。在这种情况下,“the”这个词将被写成“qeb”。每个字母都移动到了英文字母表的前三个位置。


虽然此代码相当简单,但它经过了充分测试,非常有用,而且完全不是实验性的。如果您需要加密数据,此代码将对其进行加密。虽然它不是世界上最安全的代码,但它也可以与其他技术相结合以使其更强大。


再举一个例子,维吉尼亚密码是一种使用几种不同的塞萨尔密码对消息进行加密的工具。在这个系统中,每条消息都与一个密钥组合在一起;我们分别想象一下“鹰”和“柠檬”。密钥告诉你要将消息中的字母移动多少位,但每个字母的移动次数不同。柠檬中的“L”告诉你将消息中的第一个字母移动十二个空格,因为 L 是英文字母表中的第十二个字母。“E”告诉你将第二个字母移动五个空格,依此类推。


因此,“apple” 变成了“peszr”。如果无法获得密钥,解密信息就会困难得多。虽然它仍然具有 Cesar 密码的弱点(只要有足够的时间,暴力计算就能确定信息是什么),但通过以新的方式组合现有工具,安全级别会大大提高。


您可能已经猜到了,将现有的密码组合成新的、更复杂的方式通常比发明一个新系统要容易得多。塞萨尔很久以前就去世了,我们仍在使用他的密码本。


正如旧密码的智慧仍然存在一样,许多现代加密技术也处于类似的地位。让密码学家编写新证明来证明新系统可以保证您的数字机密安全是件好事,但这也非常耗时,而且不能保证一定有效。另一方面,RSA(Rivest-Shamir-Adleman)、AES(高级加密标准)或数字签名系统等加密原语是已知的,并且可以轻松应用于各种问题。例如,RSA 广泛用于安全数据传输,而 AES 是加密敏感数据的标准。如果将它们结合起来,它们可以提供创新的功能并解决比任何一种单独解决的更复杂的问题。


虽然将简单的方法组合在一起是构建更复杂系统的一种好方法,但它也有局限性。这些原语中的每一个都被设计为擅长于特定任务,并且在组合它们时犯错误并暴露其弱点的情况并不少见。


中级协议以低级原语为基础,旨在实现更高级的特性和功能。接下来,我们将探讨一些最广泛采用和讨论的中级协议。


同态加密是一种无需先解密即可处理加密数据的协议。目前已有此类示例,尽管它仍处于相对早期的阶段 - 直到 2009 年才被证明具有实用性。现有模型有时在对加密数据进行哪些处理方面受到限制。

然而,这个概念非常有趣,并且有许多明显的潜在应用。想想那些需要访问医疗记录或信用信息等敏感但有用的数据,它们被窃取的频率。如果可以在不解码的情况下与加密的医疗信息进行交互,情况会怎样?这种安全性改进的好处不言而喻。


多方计算 (MPC) 是一种隐藏不同参与者提供的输入的工具,这些参与者共同协作以获得共同的输出。它通常被描述为“百万富翁问题”。


想象一下,有两个百万富翁想知道他们中谁的钱更多。但是,他们不想直接说出自己的净资产是多少。他们可以使用 MPC 来解决这个问题。第一个百万富翁能够将他们的加密净资产添加到一个用于比较值的程序中,然后再将其发送给第二个百万富翁。第二个百万富翁在添加他们的净资产时无法看到第一个值。

然后,他们都可以解密输出并找出其中哪一个输入了更大的值 - 同时看不到任何一个输入。


最后,让我们来看看零知识证明 (ZKP)。读者可能对它们很熟悉,因为它们被广泛使用,我们将简要介绍它们。ZKP 非常擅长让证明者告诉另一个人(通常称为验证者),某事是真的,而无需说任何其他话。通常,他们向单个用户提供此服务;一个人要求证明,然后他们就会得到证明。有许多 ZKP,包括 zk-SNARK 和 zk-STARK。每个都有自己的优点和缺点。


随着对这些高级协议的研究不断进展,人们的注意力已扩展到开发通用加密协议。这些举措旨在证明加密技术能够安全、私密地完成通用计算。最初,这些努力纯粹是理论上的,优先考虑可行性而不是实际实施效率。然而,随着研究的深入,密码学家已将注意力转向使这些概念实际适用。他们增强、组合和发明新的协议和组件。通常,最终的协议最终是一种混合协议,利用多种方法的优势。例如,同态加密利用零知识证明进行范围证明,以确保计算保持在有效范围内。同时,MPC 协议可能结合同态元素来执行非线性运算。


在众多实验性协议中,有些协议已经足够接近实用性,为现实世界的开发铺平了道路。这些工具的功能类似于编译器,解释高级语言并将其转换为加密协议可以处理的电路。这种转换类似于将软件转换为 CPU 寄存器操作或将 Solidity 转换为 EVM 状态转换。实现这种类似编译器的功能,并支持图灵完备计算,标志着我们所谓的可编程加密技术的出现。虽然这似乎过于乐观,但现实却很微妙。例如,按位哈希函数在零知识证明协议中效率不高,而通过模乘执行的哈希则效率更高。因此,建议避免使用 SHA-3 之类的算法。此外,避免浮点计算是一种常见的做法,因为加密协议主要在有限域内运行。在将可编程加密技术付诸实践时,这样的技巧无处不在。


可编程密码学仍是一个新概念,但它提供了将非常复杂的问题变得简单的机会。很容易推测它将采取的方向。几乎可以肯定的是,人们将尝试使用各种加密工具进行编程,尽管使用这些工具的成功程度尚待确定。


但是,其中一些实验将会成功。其中一些实验会取得很好的效果,而那些效果很好的实验将提供强大的功能和高水平的安全性,而无需花费大量金钱让密码学家为一个应用程序创建一个全新的系统。仅凭这种可能性就可能引起该领域的极大兴趣。


必须解决如何以与现有系统兼容的方式实现这一目标的问题,并且很可能大量采用能够有效处理需要交互的数据的方法。


这项技术对数据安全、隐私以及更广泛的数字安全领域的影响不容小觑。大量复杂的操作将变得更容易实施。虽然糟糕的编程总是会带来问题,但只要技术发挥作用,我们就会拥有更好的安全性和更强大的隐私系统。


也许最令人鼓舞的是,这项技术的使用还为时过早。ZK 证明是在 20 世纪 80 年代发明的,但直到 2012 年才成为可能。可能存在许多尚未有人想到的机制和机制组合。下一个震撼世界的想法可能明天就会出现。我们甚至无法猜测它会做什么。