公钥密码学如何解决开放网络的问题

Public Key Cryptography 公钥密码学

在接下来的几个帖子中,我们将进一步探讨区块链的一些基本知识和技术:

  • 密码学和哈希函数
  • 何为区块及其如何形成链
  • 节点的作用
  • 区块链网络如何运作
  • 什么是密码学?

    什么是密码学? 大家似乎都对它很熟悉,但却又不是很了解。

    在现实生活中,我们经常要使用到密码:例如到银行的提款机提款,我们必须输入密码。

    在互联网上,使用一些网络服务时,我们便使用了不同的密码:例如读取我们的信箱,又或者是进行网络转账服务。

  • 密码就是将可识别的数据,使用混淆的技术将它转换成无法识别的数据。
  • 而密码学则是研究编制密码和破译密码的技术科学。
  • 随着网络的普及化,保护个人的数位资产不被窃取,变得更加困难。因此密码学更显为重要。

    古希腊的凯撒密码

    凯撒密码
    明文“attack” 经过位移3的凯撒加密后,就会变成“dwwtfn”。每个字母减3就是其解密方式。

    密码学的历史可以追溯到公元前的古希腊时代,古希腊人使用密码学于军事密函传递。就如上图所示,古希腊凯撒大帝(Julius Caesar)率先使用“凯撒密码”(Caesar cipher),即将字母按顺序移后3个位置,如将字母A换作字母D,将字母B换作字母E。而密文的解密方式就是将每个字母再往前移动3个位置。

    话说当年唐三藏带着三个徒弟往西方留学取经。在经过女儿国时,孙悟空三师兄弟喝了几口子母河的洋水,突然全开窍学会了洋文并取得古希腊的千古传承 — 凯撒谜字经,俗称“凯撒密码学”。一日,孙悟空三师兄弟闲来无事,就打着“挺妖灭魔”的大业去火焰山围攻牛魔王。为了不惊动牛魔王,孙悟空就念了几句“凯撒谜字经”的咒语。再从身上拔了两根毫毛,吹了一口气变出两只小猴子。然后向他的两位师弟传话,叫他们准备开饭并偷偷把咒语给他们。牛魔王的牛虻探子把整个情景复制了千遍。同时也偷看了一眼咒语,只觉得千复眼睛变得模糊起来必须赶紧配千副眼镜。

    牛虻探子只好老实的报告牛魔王说:孙悟空三师兄弟正在准备烤地瓜吃。牛魔王看了记录和咒语并没发现什么特别的地方,也就放下心来。就吩咐铁扇公主准备几样小菜,两口子好好吃一顿。正当牛魔王拿起酒杯想好好喝一口酒时,突然只听到“”一声,只见孙悟空三师兄弟挥棒将他的屋顶打破了。原来咒语轻过解谜之后,其原文是:烤好地瓜后,马上进行攻击。

    凯撒密码学
    孙悟空就是利用 “凯撒密码” 迷惑牛魔王并进行偷袭。

    想象是丰满的,事实是骨感的。看了满座铺满灰尘和碎瓦的酒席,再愚蠢的牛同学这时也发觉被咱们的孙同学欺骗了,只能含泪的对天怒吼:“死猴子不讲武德,竟然偷袭!讲好的300回合大战去了那里?” 这时惜日结拜的两兄弟再也不能好好坐下来喝喝茶,吃吃包子了。

    咳咳,似乎有些离题了!从这里我们可以知道加密文件可以迷惑敌人并发挥更重要的功能。

    所以加密的基础功能就是用一些特殊的算法来扰乱我们所要发出的信息。对于所有看到信息的人来说,这只是一堆乱码。而唯一能够真正看懂信息的人,就是那些和我们一起共享算法或者能够解密算法的人。

    当我们看了凯撒的密码之后,觉得这是一个非常简单的密码,很容易被破解。但是在几千年前来讲,这是一个非常伟大的发明。

    公钥密码学如何解决开放网络所面对的问题?

    回到我们现在互联网的世界,在互联网的信息传送,所有的信息都必须经过第三方节点的传递。

    如果小明从节点1给节点3的小花发送一条信息,在没有加密处理的话,那么信息所经过的所有开放网络节点,例如在节点2,任何人都可能对信息进行拦截和清楚地阅读小明信息的内容。

    开放网络
    开放网络中,任何人都可清楚地阅读信息的内容。

    就好比小明在班上写了一张字条,然后叫前面的狗子把字条传递给前排的小花,那么狗子就可以很清楚的知道字条里面的内容。如果小明有很重要的信息要传递给小花,他当然不希望狗子知道。

    问题是我们的互联网的信息传递是未加密的。那么有什么方法,可以保证只有小花可以了解小明的信息?有的,方法就是使用公钥密码学(public-key cryptography),或称为非对称密码学(asymmetric cryptography)。

    在这种密码学中,它有一对密钥,一个是私钥,另一个则是公钥。 如果我们用公钥对信息进行加密,则只能使用其匹配的私钥进行解密。

    公钥密码学
    小花与每个人共享公钥A,只有小花的私钥A可以解读该信息。

    公钥可以与网络中的每个人共享,比如小花可以把她的公钥A和小明、小丽或者她的老板一起共享。因此网络上的任何人都可以轻易的获取小花的公钥A,其中就包括了那些网络骗子和黑客,然而他们却不能根据公钥A来猜测小花的私钥A,也不可以用公钥A来破解由公钥A加密的信息。所以小花必须将私钥A好好保管,也不与其他人共享。私钥和公钥都是非常大的质数,而想要反向破解加密信息,可以说是不可能完成的事情。

    公钥密码学
    第三者无法识别加密信息的内容

    以下是公钥密码学的工作原理:

    为了接收小明的加密信息,小花和小明共享她的公钥A。当小明要发信息时,他就用小花的公钥A加密,并在开放的网络节点2发送信息给节点4的小花。此密文在发送过程中可能被节点3的第三者看到,然而他们无法识别信息的内容。由于小花是唯一拥有私钥A的人,所以只有她才能解读该信息。

    为什么区块链需要应用公钥密码学?

    我们提到了这么多,那么公钥密码学和区块链又有什么关系呢?

    当你通过区块链进行加密货币交易时,实际上所有的货币都是发送到所谓的散列版本的“公钥”。此公钥是由私钥生成的,它由数字和字母组成的一个钱包导入格式,再经过加密哈希函数生成所谓的加密货币钱包(WIF,Wallet Import Format) 地址。而其生成过程都是不可逆的。

    不可逆的哈希函数
    哈希函数生成不可逆的加密货币钱包地址

    从以上的引述,我们可以清楚地发现公钥密码学是区块链安全协议中不可或缺的部分。其是区块链中加密代币交易和身份验证的基础。

    接下来,我们将进一步探讨公钥密码学中的哈希函数,并了解其如何进行运算和应用原理。

    Comments

    No comments yet. Why don’t you start the discussion?

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注