什麼是區塊加密操作模式

使用區塊加密來加密比區塊長度更長的資料時,組合各區塊轉換的方法。有把各區塊獨立加密的ECB、先與前一個密文區塊XOR再加密的CBC、與加密計數器所得之金鑰串流XOR的CTR,以及在CTR上加入鑑別的GCM等。ECB會使相同的明文區塊變成相同的密文區塊,因此不用於一般資料。CBC與CTR必須正確處理初始向量與nonce。

日文名稱: 暗号利用モード

「區塊加密操作模式」出現在1領域的11道練習題中(密碼學基礎與應用等)。

這個名詞所屬的領域: 密碼學基礎與應用

主要模式的比較

ECB可以平行處理,但會留下明文的圖樣。CBC需要填充,加密時要等待前一個區塊的結果而無法平行化,但解密可以平行化。CTR不需要填充,加密與解密都能平行化,而且可從任意位置開始解密。不過,CBC與CTR只進行加密,無法偵測竄改。

鑑別加密的模式

GCM與CCM在加密的同時計算鑑別標籤,可以偵測竄改。TLS 1.3、IPsec,以及無線區域網路的WPA2、WPA3等目前主要的協定,都使用這類模式。把CBC與MAC組合的方式,若組合方法錯誤就會遭受填充預言攻擊等,因此新的設計中很少使用。

磁碟的加密

磁碟或SSD的加密,常用依磁區位置使用不同的值、使密文與明文長度相同的XTS模式。由於無法改變儲存位置的大小而不能附加鑑別標籤,所以無法偵測竄改。

練習區塊加密操作模式的題目

以AES的ECB模式加密影像資料後,在加密後的影像中仍能辨認出原圖的輪廓。其原因正確的是下列何者?

  1. AAES的金鑰太短,有一部分區塊沒有被加密而原樣保留
  2. BECB模式會自動為每個區塊產生不同的金鑰,這些金鑰的圖樣出現在加密後的影像中
  3. CECB模式中相同的明文區塊一定會變成相同的密文區塊,因此相同顏色部分的圖樣會留下
查看答案與解析

正確答案:C. ECB模式中相同的明文區塊一定會變成相同的密文區塊,因此相同顏色部分的圖樣會留下

ECB(電子密碼本)模式只是用同一把金鑰把各區塊分別獨立加密的方式。因此,明文中若有內容相同的區塊,密文中相同的位置也會出現相同的區塊。在背景這類同一顏色連續的影像中,哪裡是相同顏色的資訊會被保留,加密企鵝影像的例子相當有名。因此,加密一般資料時不使用ECB模式,而是使用即使明文相同、每次也會產生不同密文的CBC模式、CTR模式、GCM等。

以CBC模式使用AES時,初始向量(IV)的處理方式中,適當的是下列何者?

  1. AIV與金鑰一樣要保密,所有訊息都持續使用相同的值
  2. BIV不需要保密,但每則訊息都要重新選擇攻擊者無法預測的隨機值
  3. CIV不需要保密,每次都固定使用與對方事先約定的相同值(例如全部為0)即可
查看答案與解析

正確答案:B. IV不需要保密,但每則訊息都要重新選擇攻擊者無法預測的隨機值

CBC模式中,各明文區塊先與前一個密文區塊XOR後再加密,第一個區塊則與IV做XOR。IV通常附加在密文的開頭傳送,因此不需要保密。但是,若每次都使用相同的IV,開頭相同的訊息,其密文的開頭也會相同,會洩漏內容有一部分相同。此外,已知若攻擊者能預測下一個要使用的IV,就可以讓對方加密自己選擇的明文來推測內容(例如針對TLS 1.0的BEAST攻擊)。

常見問題

應該選擇哪一種模式?

若沒有特別的理由,就使用AES-GCM或ChaCha20-Poly1305這類鑑別加密,並避免在同一把金鑰下重複使用nonce。不要使用ECB。比起自行把CBC或CTR與MAC組合,使用函式庫提供的鑑別加密較不容易出錯。

為什麼CTR模式不需要填充?

CTR模式只是把以區塊加密產生的金鑰串流與明文XOR,因此只要把最後一個區塊的金鑰串流依明文長度截斷使用即可。通過區塊加密的是計數器的值,而不是明文本身。

解析中的「區塊加密操作模式」

出現「區塊加密操作模式」的題目(11題)

  1. 以AES的ECB模式加密影像資料後,在加密後的影像中仍能辨認出原圖的輪廓。其原因正確的是下列何者?
  2. 以CBC模式使用AES時,初始向量(IV)的處理方式中,適當的是下列何者?
  3. 以CBC模式使用AES(區塊長度16位元組),填充採用PKCS#7方式。PKCS#7方式中,若不足的位元組數為n,就加上n個值為n的位元組;明文長度恰為16的倍數時,也要加上16個值為16的位元組。加密96位元組的明文時,密文的長度(不含IV)為下列何者?
  4. 接收以CBC模式加密之資料的伺服器,在解密後填充不正確時,與填充正確但內容檢查失敗時,回傳了不同的錯誤。關於這種狀況的說明,正確的是下列何者?
  5. 關於區塊加密的CTR模式(計數器模式)的特徵,正確的是下列何者?
  6. 在CTR模式中,誤用相同的金鑰與相同的nonce加密了兩則訊息。就某個位置的位元組而言,第1則明文 P₁ 為 01001000(ASCII的「H」),其密文 C₁ 為 01110100,第2則密文 C₂ 為 01010101。攻擊者知道 P₁ 時,相同位置的第2則明文 P₂ 為下列何者?
  7. 設 1 GiB = 2³⁰ 位元組、1 EiB = 2⁶⁰ 位元組。以CBC模式使用區塊長度64位元的區塊加密(3DES等),用同一把金鑰加密大量資料。把密文區塊視為隨機的64位元值時,根據生日悖論,出現相同密文區塊之配對的機率變得不可忽視的資料量參考值為下列何者?
  8. 在對稱式加密中,關於區塊加密與串流加密之差異的說明,正確的是下列何者?
  9. AES-GCM這類鑑別加密(AEAD)以一次處理所提供的功能,正確的是下列何者?
  10. 關於AES-GCM所使用的96位元nonce(IV)的說明,正確的是下列何者?
  11. TLS 1.3(RFC 8446)相對於TLS 1.2的變更,正確的是下列何者?

相關名詞

鑑別加密(AEAD) AES(進階加密標準) Nonce TLS 生日攻擊 Cookie 對稱式加密 訊息鑑別碼 前向保密 RSA加密

前往名詞解釋列表