要了解私鑰與公鑰之間的關係,就必須先知道什麼是「對稱加密」和「非對稱加密法」。這兩種加密算法之間的根本區別在於對稱加密只使用單個密鑰,而非對稱加密使用兩個截然不同但相具有關聯性的密鑰。
對稱加密
對稱加密的概念就像我們對一般鑰匙的理解,也就是一個鎖頭只對應一把鑰匙,你用 A 鑰匙上鎖就只能用 A 鑰匙打開,換句話說,對稱加密只使用同一個密鑰來執行加密和解密。
「對稱加密」應用在網路中加密訊息的傳遞時,寄件人與收件人雙方都必須擁有密鑰,才能夠順利完成加密與解密的流程,然而,在這過程中最大的問題是,要如何安全地將這把私鑰傳給對方,如果在私鑰傳遞的過程中被攻擊者攔截了,攻擊者可以輕鬆的寄件者與收件者都不知情的情況下查看甚至竄改加密的訊息,「非稱對加密」能夠良好的解決「對稱加密」在這部份的問題。
非對稱加密
非對稱加密的密鑰創建時,會生出兩把密鑰,一把「私鑰」另一把為「公鑰」,「私鑰」由使用者自己保管,不與他人共享,而「公鑰」則可以公開散佈至網路中。非對稱加密通常用於大量用戶需要同時加密和解密消息或數據的系統中,尤其是在運算速度和計算資源充足的情況下。非對稱加密運作的核心原理是:
「公鑰」可以解開「私鑰」簽名的檔案,「私鑰」可以解開「公鑰」加密的檔案。
非對稱加密的應用-數位簽章
在區塊鏈系統中,即便網路中有攻擊者控制了 51% 的節點,攻擊者也沒有辦法擅自移動他人錢包中的資產,因為每一筆交易都必須有資產所有者的「數位簽章」。而所謂的數位簽章後的檔案,就是指當事人使用私鑰簽名過後的檔案,因為私鑰只有當事人擁有,因此,若該檔案被私鑰加密過,我們就能知道該文件是由當事人發起的,用私鑰簽名的這個步驟與現實世界對文件簽名的概念相同。「數位簽章」是非對稱加密的主要用例之一,以下我們用簡單的例子來解釋非對稱加密是如何在網路中使用的。
密鑰持有狀況:
指揮官持有:指揮官私鑰、指揮官公鑰、士官公鑰
士官持有:士官私鑰、士官公鑰、指揮官公鑰
竊聽者持有:指揮官公鑰、士官公鑰
- 指揮官要透過網路將訊息傳給士官時,指揮官會先將訊息用「指揮官私鑰」簽名,在將簽名後的訊息用「士官公鑰」加密。指揮官先用「指揮官私鑰」簽名,這個步驟是指揮官的數位簽章,證明該內容是指揮官發送的。之後透過「士官公鑰」將內容加密,這樣可以保障只有持有 「士官私鑰」的人能夠解密。
- 即便竊聽者在過程中攔截了加密的檔案,如果沒有同時擁有指揮官跟士官的私鑰也沒有辦法竊聽該訊息。
- 當傳送給士官後,士官先用「士官私鑰」將訊息解密,在利用「指揮官公鑰」確定該訊息是由指揮官發送的。
私鑰做簽名、公鑰做加密