http://www.jiliann.com

区块链加密算法密码学可以分为几个时期?

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

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

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

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

经典密码学

直到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)哈希值函数实现的。

郑重声明:即联区块链作为开放的资讯分享平台,所提供的资讯版权归原作者所有,且不构成任何投资理财建议,如有侵权请联系删除!