要了解私钥与公钥之间的关系,就必须先知道什么是「对称加密」和「非对称加密法」。这两种加密算法之间的根本区别在于对称加密只使用单个密钥,而非对称加密使用两个截然不同但相具有关联性的密钥。

对称加密

对称加密的概念就像我们对一般钥匙的理解,也就是一个锁头只对应一把钥匙,你用A钥匙上锁就只能用A钥匙打开,换句话说,对称加密只使用同一个密钥来执行加密和解密。

「对称加密」应用在网络中加密讯息的传递时,寄件人与收件人双方都必须拥有密钥,才能够顺利完成加密与解密的流程,然而,在这过程中最大的问题是,要如何安全地将这把私钥传给对方,如果在私钥传递的过程中被攻击者拦截了,攻击者可以轻松的寄件者与收件者都不知情的情况下查看甚至窜改加密的讯息,「非称对加密」能够良好的解决「对称加密」在这部份的问题。

非对称加密

非对称加密的密钥创建时,会生出两把密钥,一把「私钥」另一把为「公钥」,「私钥」由使用者自己保管,不与他人共享,而「公钥」则可以公开散布至网络中。非对称加密通常用于大量用户需要同时加密和解密消息或数据的系统中,尤其是在运算速度和计算资源充足的情况下。非对称加密运作的核心原理是:

「公钥」可以解开「私钥」签名的档案,「私钥」可以解开「公钥」加密的档案。

非对称加密的应用-数字签名

在区块链系统中,即便网络中有攻击者控制了51%的节点,攻击者也没有办法擅自移动他人钱包中的资产,因为每一笔交易都必须有资产所有者的「数字签名」 。而所谓的数字签名后的档案,就是指当事人使用私钥签名过后的档案,因为私钥只有当事人拥有,因此,若该档案被私钥加密过,我们就能知道该文件是由当事人发起的,用私钥签名的这个步骤与现实世界对文件签名的概念相同。「数字签名」是非对称加密的主要用例之一,以下我们用简单的例子来解释非对称加密是如何在网络中使用的。

密钥持有状况:

指挥官持有:指挥官私钥、指挥官公钥、士官公钥

士官持有:士官私钥、士官公钥、指挥官公钥

窃听者持有:指挥官公钥、士官公钥

指挥官要透过网络将讯息传给士官时,指挥官会先将讯息用「指挥官私钥」签名,在将签名后的讯息用「士官公钥」加密。指挥官先用「指挥官私钥」签名,这个步骤是指挥官的数字签名,证明该内容是指挥官发送的。之后透过「士官公钥」将内容加密,这样可以保障只有持有「士官私钥」的人能够解密。 即便窃听者在过程中拦截了加密的档案,如果没有同时拥有指挥官跟士官的私钥也没有办法窃听该讯息。 当传送给士官后,士官先用「士官私钥」将讯息解密,在利用「指挥官公钥」确定该讯息是由指挥官发送的。

私钥做签名、公钥做加密