密碼學基礎與應用

接收以CBC模式加密之資料的伺服器,在解密後填充不正確時,與填充正確但內容檢查失敗時,回傳了不同的錯誤。關於這種狀況的說明,正確的是下列何者?

  1. A攻擊者竄改密文後送出,以錯誤的差異為線索,可能在不知道金鑰的情況下逐位元組求出明文
  2. B從錯誤的差異只能得知填充的長度,因此只要金鑰沒有外洩,明文內容本身就不會洩漏
  3. C只要把金鑰從AES-128換成AES-256,就不會再有從錯誤的差異求出明文的風險
查看答案與解析

正確答案:A. 攻擊者竄改密文後送出,以錯誤的差異為線索,可能在不知道金鑰的情況下逐位元組求出明文

CBC模式的解密中,若反轉某個密文區塊的位元,下一個區塊解密結果中相同位置的位元就會反轉。攻擊者一面改變前一個區塊的最後一個位元組一面送出,找出被判定為「填充正確」的值,藉此求出明文的最後一個位元組,再反覆進行就能逐位元組揭露明文。這就是填充預言攻擊,錯誤的種類或回應時間的差異會成為線索(預言機)。對策的基本做法,是使用GCM這類鑑別加密,或先驗證附加在密文上的MAC,在解密之前一律拒絕被竄改的密文。

  • A. 正確。只能得知填充是否正確的回應,就足以逐位元組求出明文。
  • B. 能得知填充是否正確,再結合竄改密文,就能求出明文本身。
  • C. 這種攻擊不求金鑰,而是利用CBC模式的性質與錯誤的差異,因此改變金鑰長度也無法防止。
練習這個領域 前往領域頁面

密碼學基礎與應用的其他題目

  1. 關於區塊加密的CTR模式(計數器模式)的特徵,正確的是下列何者?
  2. 在CTR模式中,誤用相同的金鑰與相同的nonce加密了兩則訊息。就某個位置的位元組而言,第1則明文 P₁ 為 01001000(ASCII的「H」),其密文 C₁ 為 01110100,第2則密文 C₂ 為 01010101。攻擊者知道 P₁ 時,相同位置的第2則明文 P₂ 為下列何者?
  3. AES-GCM這類鑑別加密(AEAD)以一次處理所提供的功能,正確的是下列何者?
  4. 關於AES-GCM所使用的96位元nonce(IV)的說明,正確的是下列何者?
  5. 某台裝置以暴力破解試遍所有56位元金鑰,約需20小時。以同一台裝置試遍所有64位元金鑰所需的時間,最接近下列何者?

這個領域的比較