初阶替换式密码与密钥的架构详解

2024-04-03分类:区块链技术 阅读(

区块链上的全部资讯皆属公开,参与区块链的所有人都能够进入区块来浏览交易。也能够制作新的交易。既然如此,是否会有人冒充身份、制作盗用他人比特币的交易呢?

在前一章节的专栏中,说明了数字签名能够预防这样的窜改事件。而数字签名便是以加密技术为基础制作而成。

本次将说明密码的基础。

初阶的替换式密码

如大家所知,密码的资讯内容仅供自己人阅读,他人并无法理解其中意义。将欲传达给对方的资讯原文转换为密码时,若原文的1个文字可对应密码的1个文字,此方式即是替换式密码。

只要发送者与接收者一并采用原文文字与密码文字相呼应的方法,即使在传送的途中被他人看见,也能因替换式密码的原理而免于遭到解读。

此处将制作图1所示的密码作为范例。

上列记有A~Z、空白文字、句点,下列则是随机分配的替换文字。从原文的文字列当中,逐字寻找上列的文字,并写上对应的下列文字。如此一来,「SEND ME MONEY.」的文字列就会变成「EIAVSQISQKAIMF」的字样,令人无法理解其中意义。

接收密码的人,需从密码的文字列当中,逐字寻找下段的文字,并写出对应的上列文字。最后就会变回原文的「SEND ME MONEY.」字样。由于密码表是让密码恢复原文的必要道具,因此被称为解读用的「钥匙」。

如上所述,只要发送者与接收者预先持有「密码表」的钥匙,别人即使看见了该交易,也无法解读其内容。

以电脑实现替换式密码的方法

在电脑系统当中,会将文字逐字分配给数字,称为字元编码。因此,若变更电脑中代表原文的数字序列,即可产生意义不明的密码文字。由于计算公式是电脑最擅长执行的项目,故密码表也是透过公式来运作,而非自行创造表格。

以下将简单举例说明。固定的字元编码如图2所示。此并非密码表,而是电脑中代表文字的数字。 (为了简化计算过程,将每个文字分配给复数的字元编码)此处将以公式变更字元编码来取代密码表。

举例来说,以公式f(x)=ax+b 将原文改变成密码文字。此处替换f(x),并以密码文字x代表原文的文字。也就是将原文的文字乘以a再加上b的公式加以替换。

依此公式将a作为3、b作为6来计算,便可对「SEND ME MONEY.」进行加密,并形成意义不明的「ESRPAOSAOURSWD」文字。接收此文字的电脑,可藉由计算f(x)的反函数f^(-1)(x)=(xb)/a 将密码变回原文。在图2的例子中,加密时同样采用a=3以及b=6,并成功恢复成原文。

在这样的方法中,将a、b的数字作为解读密码的钥匙,并频繁变更a、b的数值,借此让每次传送时都能产生不同的密码文字。

「密钥」方式

在图1、图2所示的密码中,必须先将密码表(图1)与函数、系数a、b(图2)加密。一旦让第三者得知,便会遭到破解。如此事先将密码钥匙对发送者、接收者以外人士进行加密的方式,便被称为密钥密码。

此密钥密码的方式,一旦密钥资讯不慎泄漏,就会产生密码遭到破解的危险。举例来说,若本国的基地在战争中遭到敌军占领,留在该处采用密码钥匙的通信内容便恐泄漏给敌方。另外,由于最初作为钥匙传送给对方的资讯无法加密,因此若有第三者在当时得知内容,就可能破解该密码文字。

如上所述,单纯的替换式密码其实很容易遭到解读。针对构成文章的文字,只要了解统计上的特征,便能就此进行推测。另外,密钥方式也存在着最初传递钥匙时的问题。而在下一章节中,将说明解决以上问题的「公钥密码」。

Tags:

相关文章