密码学其实并不是一个新兴技术,而在比特币上所使用的密码学技术早已存在多年,也是互联网协议的重要部分。不过密码学作为区块链技术的底层基石,也因区块链的发展重新得到重视,并将持续升级。本文将介绍区块链中一些密码学的基本概念,对于深入了解区块链技术,可以产生一些辅导作用。
1.发送者和接收者:
发送者(sender)即是发送信息消息的人,其想发送消息给接收者(receiver),接收者即是接收信息消息的人。在发送过程中,发送者和合法接收者都希望安全的发送及接收信息消息,并且需要确信第三方(窃听者)不能截取或阅读发送的信息消息。
2.消息和加密:
消息(message)即为明文(plaintext)。用某种特定的方式方法对其进行“伪装”处理,以隐藏其的内容的过程,我们称之为加密(encryption)。而被加密之后的消息,我们称之为密文(ciphertext)。当我们将密文转变为明文,这一过程我们称之为解密(decryption)。
这一过程简单来说就是:“明文”>>(加密)>>“密文”>>(解密)>>“原始明文”。
在这一过程当中,使消息保密的技术被称为密码编码学(cryptography),从事这一工作的人,我们称之为密码编码者(cryptographer)。与此对立相反的就是破译密文的技术,我们称之为密码分析学(cryptanalysis),从事这一工作的人即对密码进行分析处理的专业人员,我们称之为密码分析者(cryptanalyst)。
而密码学(cryptology)包括了密码编码学和密码分析学两个部分,所以同时精于此二者的人,我们称之为密码学家(cryptologist)。由于密码学是作为数学的一个分支,现代的密码学家通常也是理论数学家。
注:密码学和数学有着千丝万缕的联系,学习密码学的同时也需要学习数学知识。
明文我们一般用M或P表示,明文可以是位序列、位图、文本文件、数字化的语音序列或数字化的视频图像等等。对于计算机而言,M一般仅简单指二进制数据。明文可以被传送或存储,无论哪种情况,M指待加密的信息消息。
密文我们用C表示,其也是二进制数据,有时和M一样大,有时比M大,但通过压缩和加密的结合,C同样有可能比M小。现我假定加密函数为E,那么E作用于M得到C的过程,可以用数学公式表示:
E(M)=C
相反的,若假定解密函数为D,解密函数D作用于C产生M的过程可以表示为:
D(C)=M
先进行加密操作,后进行解密操作,原始的明文将得以恢复,故有以下等式成立:
D( E(M) )=M
3.密码学的作用:
密码学通常的作用是提供机密性,除此之外还有以下作用。
鉴别(authentication)消息的接收者应该能够确认消息的来源,第三方入侵者不可能伪装成合法的发送者和接收者。
完整性(integrity)信息消息的接收者应该能够验证信息消息在传送过程中没有被篡改,第三方入侵者不可能用虚假的信息消息代替合法的信息消息。
抗抵赖(nonrepudiation)信息消息的发送者事后不可能单方面虚假的否认是其发送了信息消息。
以上基本的功能应用于区块链后可以使计算机之间相互协作时确保数据的安全性及可靠性,从而使区块链上的数据可信。
领取专属 10元无门槛券
私享最新 技术干货