什么是密码学和量子威胁

区块链

579人已加入

描述

自古以来,人们就普遍需要以一种只能被目标接收者看到的方式来传递信息。加密的文本和消息被用于从军事应用到外交和商业的各种领域。经过几个世纪的发展,加密以密码学的形式出现,这是一门基于信息保护的复杂科学。

我们今天使用的大多数现代互联网服务,如网上银行、私人信息和个人数据保护,如果没有现代密码学是不可能实现的。

由于密码学是一门相当复杂的科学,所以我们希望在本文开始时简要介绍一下它的历史。这将使您更好地理解现代加密算法的工作原理。

密码学的历史可以分以下几个时期:

经典密码学

直到16世纪,迷惑敌人的手段还相当原始,使用的方法如简单的密码,其中每个文本符号都有一个特殊的代码。隐写术(Steganography)也很流行,它将秘密信息隐藏在另一种信息或媒介中(比如使用隐形墨水书写在一定条件下可以被揭露的文本)。这些方法与密码学相关,但并不相同。

使用的大多数密码是单字母替代法的变体。这涉及到按照某种算法创建加密表,其中明文的每个字母对应于密文的单个字母。最早有历史记载的例子之一是凯撒密码,这是一种替代密码。

凯撒密码如何运作

正式的密码学

这个时期的特点是出现了对手工密码分析具有相对抵抗力的正式密码。当时,大多数密码分为单字母密码和多字母密码(后者基于使用多个替代字母)。

在科学之前的密码学中,最后一个词是转子系统,它提供了更大的抗密码性,并允许加密过程机械化。在转子机械的帮助下,多字母替换是通过改变旋转车轮的相对位置来完成的,每个旋转车轮都执行各自预先设定的替换模式。这种机器最早的例子之一是恩尼格玛,二战期间在纳粹德国用于秘密通信。

Enigma,首批也是最突出的转子系统应用之一

Enigma是最早也是最突出的转子系统应用之一,随着早期计算机的出现,对转子系统的攻击成为了可能,因此密码学进入了下一个发展阶段。在这个阶段,出现了扩散和混淆的方法。分组密码也出现了,它们比转子系统具有更强的抗攻击能力,但只能用电子计算设备来实际应用。从本质上说,块密码与多字母密码非常相似,在多字母密码中,明文消息被分成特定长度的块,然后每个块都用自己的替换表进行加密。

计算机密码学

计算机密码学的出现归功于计算机的发展,计算机的性能水平足以创建比手动和机械密码具有更高的加密速率和更高的密码抵抗力的密码系统。

在这个阶段,最常用的加密方法最初是基于相当简单的原理的对称算法。假设Alice和Bob需要交换消息,以确保在拦截时没有其他人能够读取它们的内容。为此,Alice和Bob有一个公共密钥(本质上是一个密码)。使用这个密钥,Bob可以加密一条消息并将其传输给Alice。反过来,Alice可以使用她这边的相同密钥来解密接收到的消息并读取其内容。从Alice到Bob的反向通信将以相同的方式进行。

尽管这些类型的算法简单且快速,但它们也有一些严重的缺点。主要问题是需要有一种安全的方式将公共密钥传递给参与者。理论上,Alice到Bob可以见面并把钥匙递给对方。但是,如果它们想与大量对等方交换消息,或者它们彼此相距很远,那么这种方法就行不通。

当今最突出的对称算法是高级加密标准(AES)、数据加密标准(DES)、国际数据加密算法(IDEA)和世界自动密钥加密算法。

1975年,为了满足对更高级加密方法的需要,引入了非对称加密的概念。

让我们回到Alice到Bob。现在它们每个人都有自己的密钥,也称为私钥,因为除了它的所有者之外,没有人知道这个密钥。对于任何人都可以知道的每个私钥,还有一个可能的开放公钥。这对密钥的工作方式是,公钥只能用于消息加密,而不能用于解密。为了解密用公钥加密的消息,您需要相应的私钥。现在,如果Bob想向Alice发送一条消息,他将获取她的公钥(在开放网络上是免费可用的),对消息进行加密并将其发送。而且Alice可以用她的私有密匙解密它,这是她唯一知道的,而不用担心消息的内容会暴露给第三方。

非对称加密的工作原理

区块链上的密码学

现在我们可以讨论如何在区块链中使用密码学了。密码学是任何区块链的核心,它提供了系统的基本功能。区块链体系结构意味着网络参与者之间的信任是建立在数学和经济学的基础上的,即是形式化的。密码学还保证了安全性,它基于所有操作的透明性和可验证性,这与业界传统的方法不同,传统方法限制了系统关键部件的可见性。各种加密技术保证了区块链的交易分类账的高概率不变性,并提供了对网络和区块链数据的一般身份验证和访问控制。

比特币

首先,我们将详细描述第一种加密货币的加密技术,因为它将提供理解这个复杂问题的起点。哈希值函数是大多数现有加密货币的加密基础。它可以将任意输入的数据映射为固定大小的数据,即将随机长度的数据数组转换为固定长度的位串。这个操作是不可逆的,也就是说,在函数f(x)=y中,如果我们知道x,我们可以找到y,但是我们不能通过知道y来找到x。在比特币中,这个函数的作用是由SHA-256来完成的。哈希值函数的另一个重要特性是,即使对输入数据进行最小的更改,也会导致哈希值的急剧变化。因此,哈希值函数在区块链中的应用是为了保证整个事务链的完整性。每个新事务块引用分类账中前一个块的哈希值。前一块哈希值取决于所有过去交易的哈希值,所有的哈希函数都融合到一个哈希值线并通过事物在一个二进制情况下建立哈希值树(Merkle树)。

比特币

Merkle树

通过这种方式,哈希值被用作传统数据结构指针的一种替代。通过使用哈希值函数,你可以表达一个区块链的一般状态。因此,任何块的哈希值的不变性保证了整个区块链的不变性。

接下来,我们将考虑在事务本身中使用密码学。现在我们需要回忆一下什么是非对称加密。当我们想要执行比特币交易时,接收方的公钥(通过哈希值函数转换)将被用作接收地址。然后,发送方的私钥将用于签署交易,因此任何网络参与者都将能够验证该交易是否由该特定比特币的实际所有者发起。私钥是随机生成的,可以是任何自然数量,从1到2²⁵⁶可以通过数学计算变成了熟悉的16位代码转换。然后使用ECDSA从私钥获得公钥。

以太坊

ECDSA也用于在以太坊中生成公钥。其区块链的完整性和不变性是通过使用SHA-3 (Keccak-256)哈希值函数实现的。

量子威胁

尽管当代计算机攻击私钥在数学上极其复杂,但由于量子计算机的出现,在未来解决这一问题还是很有可能的。量子计算机是一种全新水平的计算机器,在计算能力上大大超过了现有的计算机。

首先,让我们来看看为什么量子计算机会带来威胁。在传统计算中,信息处理的单位是位。每个比特只能处于两种可能状态之一:0或1。注册表2 ^ N N比特可以包含一个的可能组合的状态和形式。经典计算的算法是一系列简单的后续运算。在量子装置中,量子位(量子位)被用来代替位。与位的主要区别在于它们能够同时处于1,0状态(叠加)。

在经典计算中,计算机内存中加载了2^n数据变体中的一个,并且为这个变量计算了函数的值。因此,一次只能处理2^n个可能的数据集中的一个。

然而,在量子计算机的存储器中,初始数据的所有2^n组合都是同时存在和处理的。这意味着一个数据集的所有可能的2^n变种的函数在一个操作期间被计算出来(在最后将只得到一个解决方案)。通过这种方式,量子装置的计算能力将有助于使用Shor的算法(降低电阻和应用新的计算方法)获得私钥。

比特币

两个估计量子计算机作为时间函数打破签名方案所需的时间(以秒为单位)

目前,只有几个主要的方法,使用户免受量子计算机攻击:

· 基于哈希值加密;

· 基于代码加密;

· 多变量加密;

· 超奇异椭圆曲线同源密码术;

· 对称键量子论;

· 基于Lattice加密。

这些方法具有足够长的密钥,并遵循安全要求,可以抵御经典攻击和量子攻击。不幸的是,由于技术上的困难和大尺寸的量子抵抗签名(需要存储这样的签名将大大增加区块链的大小),现有的解决方案无法应对即将到来的威胁。

这就是比特币、以太币、NEO和其他一些加密货币的开发者正在寻找解决这个问题的方法的原因。但是有几个项目已经将后量子密码学作为保护数据的基础技术。

1. IOTA

为物联网(IoT)创建的一种加密货币。它使用DAG(有向无环图)代替标准的区块链。它的量子攻击抗性由Winternitz签名提供,这是一种一次性轻量级签名技术。不幸的是,目前这种类型的签名还没有得到数学上的证实。

2. 抗量子分类帐

项目名称不言自明。它使用扩展的Merkle签名方案(XMSS)来实现量子电阻。

3.GEO协议

在GEO网络中,每个节点都存储它与所有相邻节点(本地存储)的当前余额和信用关系。该协议的这一特性,加上缺乏一个通用的分布式账本(GEO是一个非区块链解决方案),使我们能够使用解决量子问题的最佳方法之一——Lamport签名。这种方法的本质在于对每个事务使用一次性密钥。这些键是预先生成的,数量有限。在使用所有预生成的键之后,将生成新的键。这使我们能够安全快捷地进行无限数量的交易。

结论

量子威胁似乎还有很长的路要走,这就是为什么大多数加密货币项目似乎并不关心它的原因。量子威胁很少在与区块链相关的大型会议上讨论,这一点就证明了这一点。但在不久的将来,随着期待已久的量子计算突破,这一切都可能改变。鉴于这种可能性以及它所带来的危险,加密货币社区应该保持警惕并采取先发制人的措施来对抗这种威胁。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分