科普|密碼學的概念其實比你想的還好懂!

Perry
分享
科普|密碼學的概念其實比你想的還好懂!

每天早上起來第一件事就是打開交易所看幣價行情的你,對加密貨幣的「加密」兩字了解多少呢? 而密碼學這看似深奧的學問,竟然可以追朔到古埃及時期?

(本文參考資料源自 CoinDesk )

密碼學的概念與起源

簡單來說,密碼學是一門透過將訊息轉換為只有預期接收者才能處理和閱讀的形式來保護訊息的科學。它的第一個已知用途可以追溯到公元 1900 年,為埃及墳墓中的象形文字。而密碼學本身來自希臘語 kryptos 和 graphein,分別表示隱藏和書寫。

廣告 - 內文未完請往下捲動

密碼學最著名的其中一個用途是由 Julius Caesar 在公元前 40 年左右開發的,人們稱之為凱薩密碼(Caesar’s cipher)。凱薩密碼是一種針對英文字母的加密法,能使一篇英文文章不被外人解讀,因為對外人而言,凱薩密碼看起來就是一串單純的亂碼。而 Julius Caesar 其實是將字母表中的每個字母做平行移動,每個字母都被字母表中的後幾個字母或前幾個字母替換。例如,字母表向右移動五位,這意味著字母「A」 代表「F」,「B」代表「G」。因此傳遞訊息時,可以減少被攔截的疑慮,因為只有知道加密規則的人瞭解如何解讀訊息。

001

在電腦出現之後,人們也開始使用更複雜的加密方式,但是不管在甚麼時代,人們對加密的需求及目標依舊不變:將可讀的消息(純文本)轉換為非預期讀者無法理解的內容(密文)。

加密方式的種類

在基礎密碼學中,有主要三種加解密方式,分別為「對稱式加密( Symmetric
Encryption )」、「非對稱式加密( Asymmetric Encryption )」與「雜湊函數
( Hash Function )」。

對稱式加密

對稱式加密是指數據的傳送方與接收方在加解密數據時,皆使用同一把密鑰。所以只要雙方都擁有這把鑰匙,當傳送方傳送資料時,使用該把鑰匙加密,而接收方在收到資料後,再使用同一把鑰匙解密,便可解讀資料。為此,雙方需要提前商定密鑰。雖然此加密方式較為方便且快速,但只有一個密鑰保護訊息或數據需要承擔密鑰被有心人士攔截且複製的風險。

這就像是你將家裡的備用鑰匙放在家門口的花盆底下,你跟室友在忘記攜帶鑰匙的時候,皆可以透過此備用鑰匙打開家門。但是,陌生人也有可能在未經許可的情況下找到鑰匙並闖入。

非對稱式加密

非對稱式加密是指每個使用者都擁有一對金鑰,分別為公開金鑰( Public key )及私密金鑰( Private key ),公開金鑰能被廣泛地發佈與流傳,而私密金鑰則必須被妥善地保存;當訊息由其中一把金鑰加密後,就必須用另一把金鑰解密。此外,加解密的鑰匙要是完整一對的,可以是公鑰加密私鑰解密,也可以是私鑰加密公鑰解密,沒有一定。運作原理是傳送方與接收方在傳送之前,先把彼此的公鑰傳給對方,當傳送方要傳送時,就用接收方的公鑰將訊息加密,接收方收到加密訊息後,再用自己的密鑰解開,這樣即使有心人拿到公鑰,只要沒拿到接收方的私鑰,也還是無法解密訊息。

但這依舊有個問題,接收方無法確定訊息是否真的由約定好的傳送方傳送。由於接收方的公鑰是有可能在網路上被找到的,任何擁有接受方公鑰的人皆可以將訊息透過該公鑰進行加密並發送給接收方,若此訊息是惡意或有病毒的,接收方透過自己的私鑰打開時,便面臨著風險。這時便需要數位簽章(Digital Signature)的幫忙了。

數位簽章

數位簽章能確保訊息、軟體或數位檔案中數據的安全性、真實性和完整性。顧名思義,它的作用類似於物理簽名,是將你的身份與數據綁定的獨特方式。傳送方透過使用自己的私鑰將與簽名相關的數據進行加密來創建數位簽章,而接收方使用傳送方的公鑰來解密數據。因此如果接收方無法使用傳送方提供的公鑰解密和讀取數位簽章,則表明訊息、資料或簽章存在問題,便無法對訊息進行身份驗證,進而保障接收方的安全。

舉例來說,大雄跟胖虎交換了公開金鑰,大雄先用胖虎的公鑰把訊息加密,再用大雄自己的私鑰對該封訊息進行數位簽章。而胖虎收到後,先用大雄的公鑰確認數位簽章是大雄本人沒錯,再用胖虎自己的私鑰解開內容,便完成了訊息只有胖虎能看到,且確認是大雄寄給他的雙重保障。

數位簽章

數位簽章能確保訊息、軟體或數位檔案中數據的安全性、真實性和完整性。顧名思義,它的作用類似於物理簽名,是將你的身份與數據綁定的獨特方式。傳送方透過使用自己的私鑰將與簽名相關的數據進行加密來創建數位簽章,而接收方使用傳送方的公鑰來解密數據。因此如果接收方無法使用傳送方提供的公鑰解密和讀取數位簽章,則表明訊息、資料或簽章存在問題,便無法對訊息進行身份驗證,進而保障接收方的安全。

舉例來說,大雄跟胖虎交換了公開金鑰,大雄先用胖虎的公鑰把訊息加密,再用大雄自己的私鑰對該封訊息進行數位簽章。而胖虎收到後,先用大雄的公鑰確認數位簽章是大雄本人沒錯,再用胖虎自己的私鑰解開內容,便完成了訊息只有胖虎能看到,且確認是大雄寄給他的雙重保障。

雜湊函數

雜湊函數主要是將不定長度訊息的輸入後,演算成固定長度雜湊值(Hash Value)的輸出,且所計算出來的雜湊值必須符合兩個主要條件:

  1. 由雜湊值是無法反推出原來的訊息。
  2. 雜湊值必須隨加密前的內容改變而改變。

舉例來說,雜湊函數就像一台果汁機,我們將各種水果 (資料) 放進去絞碎,這時候得出的產物 (經過雜湊函數計算出來的雜湊值) 是獨一無二的,沒有辦法還原成原來的水果 (資料)。倘若我們改變水果的種類,得出的產物 (經過雜湊函數計算出來的雜湊值) 同時也會跟著改變。

從雜湊函數的兩點特性可知,有別於其他形式的加密,因為它屬於單向加密,無法從雜湊值反推回去。除此之外,雜湊值還可以充當數位指紋,預防資料在透過網路傳輸期間遭到任何未經授權的修改,因為對原始數據的任何更改都會產生新的雜湊值,該雜湊值不會再與原始數據匹配,便無法在區塊鏈上進行驗證。

加密貨幣的一大吸引力來自於其在區塊鏈上的安全性和透明度。而這些都依賴於加密機制。未來密碼學將持續發展,以滿足人們對數位環境的安全需求,隨著區塊鏈技術和加密貨幣更廣泛地被各行各業採用,密碼學的應用將會更普及地出現在我們的生活中。