你好,未來的電腦科學家!讓我們來談談「秘密」!
歡迎來到加密(Encryption)這一章!這是電腦科學中最令人興奮也最重要的課題之一,因為它直接關乎我們如何在互聯網上保護數據的安全與隱私。無論你是在發送訊息、登入銀行應用程式,還是單純瀏覽安全的網站,加密技術都在幕後默默地運作。
在這一節中,我們將學習將可讀資訊轉化為加密代碼的基本工具與技術,確保即使黑客截獲了數據,他們也無法理解其中的內容!
別擔心如果某些術語聽起來很生澀——我們會透過簡單的類比和清晰的步驟為你拆解!
什麼是加密?為什麼我們需要它?
加密(Encryption)是指將資訊或數據(例如訊息或檔案)轉換成一種無法被解讀的格式的過程,只有擁有解鎖密鑰的人才能讀取。
- 目標:達成保密性(Confidentiality)。這意味著只有預期的接收者才能閱讀訊息。
- 現實生活例子:當你在網站地址開頭看到 https:// 時,其中的 's' 代表 'secure'(安全),這意味著你的連線已經過加密。
第一節:加密的基本術語
要理解加密,我們首先需要掌握五個核心術語:
1. 明文(Plaintext)——原始訊息
明文(Plaintext)是原始的、可讀的訊息或數據。如果你寫下一句「中午見面」,這就是明文。
2. 密文(Ciphertext)——加密後的秘密訊息
密文(Ciphertext)是明文經過加密後的亂碼版本。如果有人截獲了這些數據,他們看到的只會是隨機的字母和符號。
3. 加密(Encryption)——隱藏訊息的過程
加密(Encryption)是將明文轉換為密文所使用的方法(即「食譜」或算法(Algorithm))。
4. 解密(Decryption)——還原訊息的過程
解密(Decryption)是相反的過程:將密文轉回可讀的明文。
5. 密鑰(Key)——秘密配方
密鑰(Key)是一串資訊(通常是一串位元組或數字),用來控制加密和解密的過程。它就像鎖的密碼或實體鑰匙。
類比:想像一本上了鎖的日記:
- 你寫在裡面的文字就是明文。
- 鎖上日記的動作就是加密。
- 如果有人偷看,裡面的亂碼文字就是密文。
- 打開鎖的實體鑰匙就是密鑰。
- 打開鎖的過程就是解密。
第二節:對稱式加密(單一密鑰法)
對稱式加密是最簡單、最快速的加密類型。「對稱(Symmetric)」意味著兩邊使用的東西是一樣的。
對稱式加密如何運作
在對稱式加密中,同一把密鑰同時用於加密數據和解密數據。
類比:共用儲物櫃
如果 Alice 想用對稱式加密發送秘密訊息給 Bob,他們必須先約定好一個秘密密鑰(就像共用儲物櫃的密碼)。Alice 用這把鑰匙鎖上訊息,而 Bob 用完全相同的鑰匙解開它。
步驟流程:
- Alice 和 Bob 秘密共用對稱密鑰(例如數字 3)。
- Alice 使用密鑰加密明文(例如將每個字母在字母表中往後移 3 位)。
- 結果就是密文。
- Alice 將密文傳送到互聯網上。
- Bob 收到密文,並使用完全相同的密鑰(3)進行解密,還原出原始明文。
範例:凱撒密碼(Caesar Cipher)
凱撒密碼是一種經典且簡單的對稱加密算法。密鑰就是字母在字母表中位移的位置數。
如果密鑰 = 3:
- 明文字母 'A' 變成 'D'(A 往後移 3 位)。
- 明文字母 'B' 變成 'E'。
對稱式加密的優缺點
- 優點:非常快速且高效,特別適合加密大量的數據。
- 缺點:最大的問題是密鑰交換(Key exchange)。Alice 和 Bob 如何在不讓竊聽者獲取的情況下安全地共用密鑰?
記憶法:SYmmetric(對稱)= SYngle Key(單一密鑰)。
發送者與接收者使用相同的秘密密鑰。
第三節:非對稱式加密(公鑰與私鑰)
非對稱式加密(也稱為公開密鑰加密 Public Key Encryption)解決了對稱式加密的密鑰交換問題。「非對稱」意味著兩邊並不相同,因為它使用了兩把不同的密鑰。
非對稱式加密如何運作
每一位使用者(例如 Bob)都會建立一對在數學上相互關聯的密鑰:
- 公鑰(Public Key):這把鑰匙會公開分享給所有人。它只能用於加密數據。
- 私鑰(Private Key):這把鑰匙由 Bob 保密。它只能用於解密由相對應的公鑰所加密的數據。
類比:郵箱與投遞口
想像 Bob 的郵箱:
- 公鑰就是郵箱的投遞口。任何人都可以使用投遞口將訊息投進去(加密數據)。
- 私鑰就是 Bob 用來打開郵箱背部以取出訊息的實體鑰匙(解密數據)。
- 關鍵在於,如果有人用投遞口投進信件,他們是無法再從投遞口拿出來的!只有 Bob 能取出。
向 Bob 發送加密訊息的流程
- Bob 建立他的一對公鑰與私鑰。
- Bob 將他的公鑰發佈給所有人(包括 Alice)看。
- Alice 想發送秘密訊息給 Bob。她使用 Bob 的公鑰加密她的明文訊息。
- 她發送產生的密文。
- Bob 收到密文。他是唯一擁有相對應私鑰的人,因此他使用該私鑰將訊息解密回明文。
你知道嗎?非對稱式加密通常只用於安全地交換對稱式加密所需的單一、較快的密鑰!這是兩全其美的方法!
非對稱式加密的優缺點
- 優點:密鑰交換非常安全,因為解密密鑰(私鑰)從未離開過擁有者。
- 缺點:速度比對稱式加密慢得多,因為涉及的數學運算非常複雜。
第四節:雜湊(Hashing)——非加密,但對於數據安全至關重要
在討論加密的同時,我們必須涵蓋雜湊(Hashing),它是數據安全中一項關鍵技術,特別是用於驗證檔案和保護密碼。
什麼是雜湊?(單向安全)
雜湊(Hash)(或稱雜湊值)是從任何輸入數據(如密碼或大型檔案)生成的固定長度字串。雜湊使用一種稱為雜湊函數(Hash Function)的特殊算法。
雜湊與加密的主要區別:
- 加密是雙向的:你可以隨時使用密鑰將密文解密回明文。
- 雜湊是單向的:它的設計目標是在數學上不可能(或極度困難)逆轉該過程——你無法將雜湊值變回原始數據。
類比:數位指紋
雜湊就像數據的獨特「數位指紋」。如果你改變原始數據中的哪怕一個字母,產生的雜湊指紋就會完全不同。
雜湊的常見用途
1. 安全儲存密碼
當你在網站註冊時,網站絕對不應該儲存你的真實密碼(明文)。相反,它會計算你密碼的雜湊值,只儲存這個雜湊值。
- 登入流程:當你嘗試登入時,系統會獲取你輸入的密碼,計算其雜湊值,並將這個新的雜湊值與儲存的雜湊值進行比較。
- 如果兩個雜湊值匹配,你就成功登入。
- 如果黑客竊取了數據庫,他們只會得到雜湊值,而不是實際的密碼,這大大增加了他們的攻擊難度!
2. 檢查數據完整性
雜湊用於驗證檔案在傳輸過程中是否被篡改。
數據完整性檢查步驟:
- 發送者在發送前計算原始檔案的雜湊值。
- 發送者同時傳輸檔案和雜湊值。
- 接收者計算所接收檔案的雜湊值。
- 接收者將自己計算出的雜湊值與發送者傳來的雜湊值進行比較。
如果兩個雜湊值完全相同,表示檔案已安全送達(其完整性 Integrity 得到了維持)。
雜湊會創建一個獨特的、固定長度的「指紋」。這是一個單向過程,對於密碼安全和確保數據完整性至關重要。
章節總結:加密核心要點
現在你已經掌握了保護我們數位世界安全的基礎概念!
請記住這些核心定義:
- 加密(Encryption):將明文轉換為密文。
- 對稱式(Symmetric):使用一把密鑰同時進行加密和解密(速度快,但密鑰交換困難)。
- 非對稱式(Asymmetric):使用兩把密鑰(公鑰鎖定,私鑰解鎖)。非常適合安全密鑰交換,但速度較慢。
- 雜湊(Hashing):一個單向函數,用於驗證身份(密碼)或數據完整性。
繼續練習這些核心概念——你很快就能成為一名數據安全專家!