36. 加密與解密使用不同的金鑰,稱為公開金鑰演算法,或非對稱金鑰演算法,下列密碼演算法中,何者屬於此種加密演算法?
(A) RSA
(B) DES
(C) AES
(D) Blowfish

答案:登入後查看
統計: A(87), B(13), C(15), D(2), E(0) #3671722

詳解 (共 1 筆)

#7148880

這題的正確答案是 (A) RSA

 

解析

 

題目詢問的是「加密與解密使用不同金鑰」的演算法,也就是 非對稱式加密 (Asymmetric Encryption) 或稱 公開金鑰加密 (Public Key Encryption)

  • (A) RSA (Rivest–Shamir–Adleman):

    • 類型: 非對稱式 (Asymmetric)。

    • 原理: 基於大數質因數分解的數學難題。

    • 特性: 擁有一把「公鑰 (Public Key)」和一把「私鑰 (Private Key)」。公鑰加密的資料,只有私鑰能解開;反之亦然。這正是題目描述的特性。

  • (B) DES (Data Encryption Standard):

    • 類型: 對稱式 (Symmetric)。

    • 特性: 加密與解密使用同一把金鑰。雖然曾經是標準,但因金鑰長度過短(56 bits),現在已被認為不安全。

  • (C) AES (Advanced Encryption Standard):

    • 類型: 對稱式 (Symmetric)。

    • 特性: 目前最廣泛使用的加密標準,用來取代 DES。加密解密使用同一把金鑰,速度快且安全性高。

  • (D) Blowfish:

    • 類型: 對稱式 (Symmetric)。

    • 特性: 由 Bruce Schneier 設計的區塊加密演算法,也是使用單一金鑰。

 

快速記憶表

 

演算法分類 特性 常見演算法 應用場景
非對稱式 (Asymmetric) 兩把鑰匙 (公鑰/私鑰) RSA, ECC, ElGamal 數位簽章、金鑰交換 (Key Exchange)、HTTPS 憑證
對稱式 (Symmetric) 一把鑰匙 (共用金鑰) AES, DES, 3DES, Blowfish, RC4 大量資料加密 (因為速度快)

 

沒錯,您的觀念很正確。在對稱式加密(Symmetric Encryption)的領域中,演算法主要分為兩大類:

  1. 區塊加密 (Block Cipher):Blowfish、AES 屬於這一類。

  2. 串流加密 (Stream Cipher):這是相對的另一種概念。

以下幫您整理這兩者的差異,以及為什麼現代加密常把兩者混在一起講。

 

1. 兩者的核心差異:運作邏輯

 

這兩種加密方式最大的差別在於**「處理資料的單位」**。

 

A. 區塊加密 (Block Cipher) - 如 Blowfish, AES

 

  • 運作方式:

    它不看單一個 bit,而是把資料切成固定大小的**「塊 (Block)」**(例如 Blowfish 是 64-bit 一塊,AES 是 128-bit 一塊)。

    演算法一次對這一個「塊」進行複雜的數學運算打亂。

  • 生活比喻:

    「裝箱貨運」。

    你要搬家(傳輸資料),必須把東西全部裝進標準尺寸的箱子裡(Block)。如果東西裝不滿一個箱子,你必須塞報紙或氣泡紙把它填滿(這叫做 Padding)。必須湊滿一箱才能封箱運送。

  • 缺點:

    需要處理「填補 (Padding)」的問題,且如果模式沒選好(如 ECB 模式),相同的明文塊會產出相同的密文塊,容易被看穿圖形。

 

B. 串流加密 (Stream Cipher) - 如 RC4, ChaCha20

 

  • 運作方式:

    它會產生一道無限長的隨機亂數流(Keystream),然後將明文一個 bit 接一個 bit(或 byte)與這道亂數流進行運算(通常是 XOR)。

  • 生活比喻:

    「流水線噴漆」。

    物品放在輸送帶上(資料流),噴漆槍(Keystream)源源不絕地噴出顏料。東西來一個就噴一個,不需要等湊滿一箱,隨時來隨時處理。

  • 優點:

    速度極快,不需要「填補 (Padding)」,非常適合即時通訊、串流影片(因為不用等湊齊一個 Block)。

 

2. 超級比一比:Block vs. Stream

 

特性 區塊加密 (Block Cipher) 串流加密 (Stream Cipher)
代表選手 AES, Blowfish, DES, 3DES ChaCha20, RC4 (已破解), Salsa20
處理單位 固定區塊 (64/128 bits) Bit 或 Byte (連續流動)
填補 (Padding) 需要 (若資料長度不夠) 不需要
程式實作 較複雜 (需考慮模式與填補) 較簡單 (速度通常較快)
抗錯誤性 一個 bit 壞掉可能導致整個區塊解不開 一個 bit 壞掉通常只影響該 bit
主要應用 檔案加密、硬碟加密、資料庫 網頁傳輸 (HTTPS)、手機通訊

 

3. 現實世界的「混合技」:為什麼現在很少聽到純串流加密?

 

您可能會好奇:「既然串流加密速度快又不用填補,為什麼大家還是在用 AES(區塊加密)?」

因為現代技術把 AES 變成了串流加密來用!

這就是所謂的 「加密模式 (Mode of Operation)」。

最現代化的標準做法是使用 AES 搭配 GCM 模式 或 CTR 模式。

  • AES-CTR (Counter Mode):

    它不直接加密明文,而是用 AES 演算法去加密一個「計數器 (Counter)」,產生出一串亂數流,然後再跟明文做 XOR。

  • 結果:

    雖然骨子裡是 AES (Block Cipher),但行為表現完全變成了 Stream Cipher(不需要 Padding、可平行運算、速度快)。

 

4. 總結您的疑問

 

  • Blowfish 是區塊加密嗎?

    是,它是傳統的區塊加密。

  • 相對還有什麼?

    相對的是「串流加密」。

  • 現代主流是誰?

    1. AES-GCM:這是目前最主流的選擇。它用 AES(區塊)的核心,跑出了串流的效果,同時兼具加密與驗證功能。

    2. ChaCha20:這是純種的「串流加密」現代霸主。Google 非常愛用(因為在沒有硬體加速的手機上,它比 AES 快)。

 

1
0