網路安全

對稱金鑰加密(symmetric-key encryption)

想像一個只有一把鑰匙的上鎖箱子,而你做了一把一模一樣的複本給朋友。你把一張紙條放進去、鎖上、寄出箱子;你的朋友用他那把相同的鑰匙打開它。任何在運送途中攔截箱子的人都讀不到紙條——他們沒有鑰匙。對稱金鑰加密就是把這個想法寫成數學:發送者與接收者共用一把秘密金鑰,而同一把金鑰既把訊息打亂(加密)也把它還原(解密)。

具體來說,像 AES 這樣的演算法接收你的明文與共用金鑰,產生看起來像隨機位元組的密文;用同一把金鑰反向執行,就還原出明文。沒有金鑰,要還原訊息在計算上是不可行的。最大的優點是速度:對稱演算法極快又有效率,快到足以即時加密一段影片串流或整顆磁碟。這就是為什麼網際網路上幾乎所有大量資料都是用對稱加密保護的。

為什麼重要,以及它的難處:對稱加密又快又強,但它有一個棘手的問題——雙方一開始要怎麼拿到同一把秘密金鑰,而不讓竊聽者知道它?你不能就這樣把金鑰透過同一條不安全的通道送過去。這就是金鑰分送問題,而它正是公開金鑰密碼學要填補的缺口。實務上,像 TLS 這樣的系統兩者並用:它先用一次慢速的公開金鑰密碼學安全地協商出一把新鮮的對稱金鑰,再切換到快速的對稱加密來處理所有實際資料。

用 256 位元金鑰的 AES,幾秒就能加密一個 4 GB 的電影檔。同一把金鑰能解密它。但若 Alice 和 Bob 素未謀面,要把那把金鑰安全地寄給彼此才是真正的難題——這就是為什麼 TLS 會先用公開金鑰密碼學,純粹為了把對稱金鑰送過去。

一把共用金鑰、非常快——但你要怎麼安全地分享它?

它的長處是速度;弱點是金鑰分送。若有 n 個人都想兩兩私下交談,你會需要約 n 平方除以 2 把不同的金鑰——這無法規模化,也是公開金鑰方法存在的另一個理由。

又稱
secret-key encryptionshared-key encryption對稱加密對稱金鑰加密