「非對稱式金鑰」中使用了兩個不同的密碼(金鑰)來進行資料的加密(Encryption)和解密(Decryption)。其中一個是「公開金鑰」(簡稱為公鑰),另一個是「私有金鑰」(簡稱為私鑰);前者用作「加密」,後者則用作「解密」
就拿亨利八世來舉例吧🤣(今天剛好看到他的影片
亨利八世擁有眾多侍從,他的妻子有些就是從侍從升格的!一生總共有六任妻子
假設亨利八世想要和他的妻子之一(比如說 Anne Boleyn)傳遞機密消息,他們倆都擔心消息可能會被不忠誠的侍從攔截或竊聽,於是決定用兩把鑰匙來保護他們間的秘密訊息
公鑰和私鑰
加密和解密
用途
這就像是亨利八世只信任他的的妻子,他們彼此擁有特殊的「私鑰」(可以想成信任和獨特的關係),這把「私鑰」能夠解開他們之間獨有的「加密」方式(也就是他們的專屬語言或信任機制)。如此一來,即使消息在傳遞過程中被有心人士攔截,也沒有人能解讀它,除非對方也持有相對應的私鑰
簡單來說,一個人會擁有一對金鑰:一把公鑰 + 一把私鑰。公鑰用於加密消息,私鑰用於解密消息。通常一個不能代替另一個來進行加密或解密的操作
「非對稱式金鑰」的加密演算法又稱為「公開金鑰加密演算法」
在加密的過程中,未被加密的原始資料稱為「本文/明文」(Plaintext); 而經過加密後的資料稱為「密文」(Ciphertext)。加密演算法就是負責將本文轉換為密文,「非對稱式金鑰」的演算法就是負責將本文轉換為密文!
「非對稱式金鑰」相關演算法大部分是從數學的理論發展而來
數位簽章:開發者使用自己的私鑰來「簽署」軟體,也就是他們對軟體文件進行一種特殊的加密操作。user 則可以使用開發者的公鑰來驗證軟體
SSH 連接:當 user 端首次嘗試連接到 SSH 的伺服器上時,伺服器會提供其公鑰讓 user 端可以使用它來驗證是否為一個可信任的伺服器;user 端會把公鑰存在遠端的 SSH 伺服器上。當 user 端嘗試連接服務器時,它會使用其私鑰來驗證自己的身份
電子郵件:使用 PGP(Pretty Good Privacy)和 GPG(GNU Privacy Guard)這些工具,來讓用戶可以加解密電子郵件
VPN(虛擬專用網絡):「非對稱式金鑰」用於建立安全的通道
區塊鏈和加密貨幣:像是比特幣和其他加密貨幣有使用到「非對稱式金鑰」生成一個數字錢包地址(公鑰)和一個可以控制存提款的私鑰
HTTPS 協定:當你訪問一個使用HTTPS的網站時,網站會用你的公鑰加密數據,只有你自己的私鑰才能解密。這保證了在網絡上傳輸的數據的安全性 (如下圖)
這個鎖頭的圖案代表加密保護,所使用的通訊協定為 HTTPS,但有這個鎖頭和 HTTPS 以不代表絕對安全
點選「已建立安全連線」中的「憑證有效」可以看到 這個網站上的憑證(certificate)是核發給 asia.rxatlas.net 這個單位(代表網站所使用的公開金鑰擁有者),並由 GlobalSign 這家公司背書,如此可以確保網站進行安全的瀏覽
「非對稱式金鑰」的優點是安全性比「對稱式金鑰」更高,但缺點就是速度較慢,因為它涉及更多的數學運算,需要更多的儲存空間和傳輸帶寬。「非對稱式金鑰」和「對稱式金鑰」各有各的特色和應用場景,兩者在實作中經常會搭配使用以達到最佳的安全效果喔