DAY 12- 公钥密码学(非对称式加密)

"想传讯息给我吗?想要的话就去传吧!我把公钥都放在那里了。"
---
我们先前讲了串流密码、区块密码,
介绍了OTP、RC4、DES、AES,
这些都属於对称式加密,加密和解密使用的是同一把密钥。

而既然使用同一把密钥,Alice 和 Bob 就都要拥有这把密钥,

他们必须经由安全的通道传送这把密钥。
另一件事情是,如果 Alice 要和 Carol 通讯的话,他们两个就要有新的一把密钥。
也就是说,如果 Alice 要和 1000 个人通讯,他就必须储存 1000 把密钥,很不方便。

公钥密码学

於是我们有了公钥密码学(public-key cryptography)
我们想要每个人只需要掌管一把密钥就好,我们称这把密钥为私钥(private key)。
而私钥可以生成公钥(public key)。
将公钥公开,私钥藏好。

当 Alice 想要传送讯息给 Bob 的时候,她可以找到 Bob 公开的公钥,
用这把公钥进行讯息的加密,
加密完的讯息可以经过公开的通道传送。
收到讯息的 Bob 可以用私钥将讯息解密得到明文。
反之亦然。

所以好处就产生了,
Alice 和 Bob 分别只要拥有一把私钥就行了,
就算他们要跟10000个人进行通讯,他也只需要保管一把私钥。

数位签章

公钥加密的好处之二:数位签章(digital signature)

现实生活中我们想要确认一份契约是否为某人所认定,我们会看他的签名。
这个契约要有效立,我们就得确认这个签章为本人所做。
所以我们需要签章有以下的性质:只有本人做得出来,而不可否认所为。

既然私钥是只有本人才有的东西,那麽他就是一个可以拿来作签章的东西。
而且较现实世界好的部分是,私钥无法伪造。
所以你要签署一份文件时,就可以用私钥加密这份文件,
而大家可以使用你的公钥解密,
进而确认是你本人所发布。(而且还不用担心签名太丑)

区块链

公钥密码学的概念非常重要,在区块链上尤其重要,
他用在於数位钱包的使用。

我们先不管区块链是什麽,怎麽运作的。
我们只需要知道你在网路上面有一个钱包,这个钱包可以拿来收款、支付。
别人可以存钱进来,你可以用里面的钱做支付。

不像现实生活中你有一个实体的钱包,钱就放在里面,是你的就是你的,地上捡到的也是你的。
数位钱包,就是网路上的一笔资料,告诉你这个钱包里面有多少钱。

你怎麽证明这个钱包是你的?
私钥。

因为只有你拥有私钥,所以如果你拥有这个钱包的私钥,你就有里面所有的钱。
私钥有点像数位钱包的实体,他让电子世界里的东西跟实体世界连结在一起。
也就是说,如果你今天在地上捡到一串私钥,那你等同於捡到一个钱包。

所以实际上有了私钥之後要怎麽证明你拥有私钥?
因为私钥是不能跟别人说的。

我们刚说私钥除了可以用来解密,还可以用来签章。
当你要进行一份交易时,你只要用私钥对这份交易签章就可以了。

有签章就需要验章,验章需要公钥。
所以你手上的这把私钥,要经过椭圆曲线的运算之後得到一把公钥,这把公钥可以用来验章。
(椭圆曲线会在日後介绍)
而公钥除了验章,最重要的目的是产生地址,
地址就像银行帐号一样,可以让人汇钱给你,所以可以公开。
像这样:
0xC064a24Ec8ab00Bd67924d007b94FD8EebD4Bc25
有了地址之後你就可以汇钱给我了。(开玩笑的)

以上稍微介绍了一下公钥密码学以及他在区块链上如何被使用,
接下来几天会介绍常见的公钥加密演算法,
区块链的部分涉及 Hash ,所以会在更後面再了解。

图片来源:
https://www.digicert.com/faq/ssl-cryptography.htm


<<:  Day 12【连动 MetaMask - Backend & Init】277353

>>:  DAY 09 - 由後端主动告诉你资料更新 - websocket

DAY6 MongoDB 资料新增(Insert) 与删除(Delete)

DAY6 MongoDB 资料新增(Insert) 与删除(Delete) 连线 连线方法如同前面文...

[D11] placeholder for d11

写在前面 placeholder for d11 placeholder for d11 place...

阴影(下)

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

Day 3 跑一下 Tensorflow 范例

安装 tensorflow-gpu (如果自己电脑没有 GPU 就装 CPU 版) pip inst...

最完整!转专业 CS 补学分:你适合哪种路线?

学校:University of Colorado Boulder 科系:post-baccala...