你好,未來的電腦科學家!讓我們來談談「秘密」!

歡迎來到加密(Encryption)這一章!這是電腦科學中最令人興奮也最重要的課題之一,因為它直接關乎我們如何在互聯網上保護數據的安全與隱私。無論你是在發送訊息、登入銀行應用程式,還是單純瀏覽安全的網站,加密技術都在幕後默默地運作。

在這一節中,我們將學習將可讀資訊轉化為加密代碼的基本工具與技術,確保即使黑客截獲了數據,他們也無法理解其中的內容!

別擔心如果某些術語聽起來很生澀——我們會透過簡單的類比和清晰的步驟為你拆解!

什麼是加密?為什麼我們需要它?

加密(Encryption)是指將資訊或數據(例如訊息或檔案)轉換成一種無法被解讀的格式的過程,只有擁有解鎖密鑰的人才能讀取。

  • 目標:達成保密性(Confidentiality)。這意味著只有預期的接收者才能閱讀訊息。
  • 現實生活例子:當你在網站地址開頭看到 https:// 時,其中的 's' 代表 'secure'(安全),這意味著你的連線已經過加密。

第一節:加密的基本術語

要理解加密,我們首先需要掌握五個核心術語:

1. 明文(Plaintext)——原始訊息

明文(Plaintext)是原始的、可讀的訊息或數據。如果你寫下一句「中午見面」,這就是明文。

2. 密文(Ciphertext)——加密後的秘密訊息

密文(Ciphertext)是明文經過加密後的亂碼版本。如果有人截獲了這些數據,他們看到的只會是隨機的字母和符號。

3. 加密(Encryption)——隱藏訊息的過程

加密(Encryption)是將明文轉換為密文所使用的方法(即「食譜」或算法(Algorithm))。

4. 解密(Decryption)——還原訊息的過程

解密(Decryption)是相反的過程:將密文轉回可讀的明文

5. 密鑰(Key)——秘密配方

密鑰(Key)是一串資訊(通常是一串位元組或數字),用來控制加密和解密的過程。它就像鎖的密碼或實體鑰匙。

類比:想像一本上了鎖的日記:

  • 你寫在裡面的文字就是明文
  • 鎖上日記的動作就是加密
  • 如果有人偷看,裡面的亂碼文字就是密文
  • 打開鎖的實體鑰匙就是密鑰
  • 打開鎖的過程就是解密
重點總結:加密使用密鑰(Key)算法(Algorithm)明文轉換成無法閱讀的密文

第二節:對稱式加密(單一密鑰法)

對稱式加密是最簡單、最快速的加密類型。「對稱(Symmetric)」意味著兩邊使用的東西是一樣的。

對稱式加密如何運作

在對稱式加密中,同一把密鑰同時用於加密數據和解密數據。

類比:共用儲物櫃
如果 Alice 想用對稱式加密發送秘密訊息給 Bob,他們必須先約定好一個秘密密鑰(就像共用儲物櫃的密碼)。Alice 用這把鑰匙鎖上訊息,而 Bob 用完全相同的鑰匙解開它。

步驟流程:

  1. Alice 和 Bob 秘密共用對稱密鑰(例如數字 3)。
  2. Alice 使用密鑰加密明文(例如將每個字母在字母表中往後移 3 位)。
  3. 結果就是密文。
  4. Alice 將密文傳送到互聯網上。
  5. Bob 收到密文,並使用完全相同的密鑰(3)進行解密,還原出原始明文。
範例:凱撒密碼(Caesar Cipher)

凱撒密碼是一種經典且簡單的對稱加密算法。密鑰就是字母在字母表中位移的位置數。

如果密鑰 = 3:

  • 明文字母 'A' 變成 'D'(A 往後移 3 位)。
  • 明文字母 'B' 變成 'E'。
對稱式加密的優缺點
  • 優點:非常快速且高效,特別適合加密大量的數據。
  • 缺點:最大的問題是密鑰交換(Key exchange)。Alice 和 Bob 如何在不讓竊聽者獲取的情況下安全地共用密鑰?
快速複習:對稱密鑰

記憶法:SYmmetric(對稱)= SYngle Key(單一密鑰)。

發送者與接收者使用相同的秘密密鑰。


第三節:非對稱式加密(公鑰與私鑰)

非對稱式加密(也稱為公開密鑰加密 Public Key Encryption)解決了對稱式加密的密鑰交換問題。「非對稱」意味著兩邊並不相同,因為它使用了兩把不同的密鑰

非對稱式加密如何運作

每一位使用者(例如 Bob)都會建立一對在數學上相互關聯的密鑰:

  1. 公鑰(Public Key):這把鑰匙會公開分享給所有人。它只能用於加密數據。
  2. 私鑰(Private Key):這把鑰匙由 Bob 保密。它只能用於解密由相對應的公鑰所加密的數據。

類比:郵箱與投遞口
想像 Bob 的郵箱:

  • 公鑰就是郵箱的投遞口。任何人都可以使用投遞口將訊息投進去(加密數據)。
  • 私鑰就是 Bob 用來打開郵箱背部以取出訊息的實體鑰匙(解密數據)。
  • 關鍵在於,如果有人用投遞口投進信件,他們是無法再從投遞口拿出來的!只有 Bob 能取出。
向 Bob 發送加密訊息的流程
  1. Bob 建立他的一對公鑰與私鑰。
  2. Bob 將他的公鑰發佈給所有人(包括 Alice)看。
  3. Alice 想發送秘密訊息給 Bob。她使用 Bob 的公鑰加密她的明文訊息。
  4. 她發送產生的密文。
  5. Bob 收到密文。他是唯一擁有相對應私鑰的人,因此他使用該私鑰將訊息解密回明文。

你知道嗎?非對稱式加密通常只用於安全地交換對稱式加密所需的單一、較快的密鑰!這是兩全其美的方法!

非對稱式加密的優缺點
  • 優點:密鑰交換非常安全,因為解密密鑰(私鑰)從未離開過擁有者。
  • 缺點:速度比對稱式加密慢得多,因為涉及的數學運算非常複雜。
重點總結:非對稱式加密使用兩把不同的密鑰。公鑰(Public Key)負責鎖住數據,而秘密的私鑰(Private Key)則負責解鎖。

第四節:雜湊(Hashing)——非加密,但對於數據安全至關重要

在討論加密的同時,我們必須涵蓋雜湊(Hashing),它是數據安全中一項關鍵技術,特別是用於驗證檔案和保護密碼。

什麼是雜湊?(單向安全)

雜湊(Hash)(或稱雜湊值)是從任何輸入數據(如密碼或大型檔案)生成的固定長度字串。雜湊使用一種稱為雜湊函數(Hash Function)的特殊算法。

雜湊與加密的主要區別:

  • 加密是雙向的:你可以隨時使用密鑰將密文解密回明文。
  • 雜湊是單向的:它的設計目標是在數學上不可能(或極度困難)逆轉該過程——你無法將雜湊值變回原始數據。

類比:數位指紋
雜湊就像數據的獨特「數位指紋」。如果你改變原始數據中的哪怕一個字母,產生的雜湊指紋就會完全不同。

雜湊的常見用途
1. 安全儲存密碼

當你在網站註冊時,網站絕對不應該儲存你的真實密碼(明文)。相反,它會計算你密碼的雜湊值,只儲存這個雜湊值。

  • 登入流程:當你嘗試登入時,系統會獲取你輸入的密碼,計算其雜湊值,並將這個新的雜湊值與儲存的雜湊值進行比較。
  • 如果兩個雜湊值匹配,你就成功登入。
  • 如果黑客竊取了數據庫,他們只會得到雜湊值,而不是實際的密碼,這大大增加了他們的攻擊難度!
2. 檢查數據完整性

雜湊用於驗證檔案在傳輸過程中是否被篡改。

數據完整性檢查步驟:

  1. 發送者在發送前計算原始檔案的雜湊值。
  2. 發送者同時傳輸檔案雜湊值。
  3. 接收者計算所接收檔案的雜湊值。
  4. 接收者將自己計算出的雜湊值與發送者傳來的雜湊值進行比較。

如果兩個雜湊值完全相同,表示檔案已安全送達(其完整性 Integrity 得到了維持)。

重點總結:雜湊(Hashing)

雜湊會創建一個獨特的、固定長度的「指紋」。這是一個單向過程,對於密碼安全和確保數據完整性至關重要。


章節總結:加密核心要點

現在你已經掌握了保護我們數位世界安全的基礎概念!

請記住這些核心定義:

  • 加密(Encryption):將明文轉換為密文。
  • 對稱式(Symmetric):使用一把密鑰同時進行加密和解密(速度快,但密鑰交換困難)。
  • 非對稱式(Asymmetric):使用兩把密鑰(公鑰鎖定,私鑰解鎖)。非常適合安全密鑰交換,但速度較慢。
  • 雜湊(Hashing):一個單向函數,用於驗證身份(密碼)或數據完整性。

繼續練習這些核心概念——你很快就能成為一名數據安全專家!