密碼學基礎與應用

把秘密金鑰K與訊息m串接後的雜湊值 SHA-256(K ‖ m) 當作偵測竄改的標籤使用,被認為是危險的。其理由正確的是下列何者?

  1. A只要知道標籤與輸入的長度,即使不知道K,也能算出在m後面附加資料之訊息的標籤
  2. B已找到從SHA-256的輸出只反推放在輸入開頭之金鑰K部分的有效率方法
  3. C把金鑰K放在訊息前面會使輸入變長,SHA-256就容易找到碰撞
查看答案與解析

正確答案:A. 只要知道標籤與輸入的長度,即使不知道K,也能算出在m後面附加資料之訊息的標籤

在SHA-256這類Merkle–Damgård結構的雜湊函數中,輸出的雜湊值正是處理完最後一個區塊後的內部狀態本身。因此攻擊者可以把標籤當作內部狀態繼續計算,在不知道K的情況下,算出在 K ‖ m 後面加上固定形式的填充與任意資料之訊息的雜湊值(長度擴充攻擊)。HMAC使用由金鑰產生的兩個值,把內層的雜湊值再與金鑰一起做一次雜湊,因此能防止這種攻擊。SHA-3在結構上不會受到這種攻擊,因此只把金鑰放在前面的KMAC方式也已標準化。

  • A. 正確。這稱為長度擴充攻擊,是使用HMAC的理由之一。
  • B. 目前並不知道由SHA-256的輸出求出輸入的有效率方法。問題不在反推,而在能夠接著計算下去。
  • C. 輸入變長,並不會使碰撞變得容易找到。
練習這個領域 前往領域頁面

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

  1. 設 1 GiB = 2³⁰ 位元組、1 EiB = 2⁶⁰ 位元組。以CBC模式使用區塊長度64位元的區塊加密(3DES等),用同一把金鑰加密大量資料。把密文區塊視為隨機的64位元值時,根據生日悖論,出現相同密文區塊之配對的機率變得不可忽視的資料量參考值為下列何者?
  2. 在TLS 1.3等協定中,不直接把以ECDHE金鑰交換得到的共享秘密當作加密金鑰,而是通過HKDF這類金鑰衍生函數(KDF)來產生金鑰。其理由適當的是下列何者?
  3. 以小數字確認RSA加密的機制。由質數 p = 5、q = 11 作出 n = pq,公開指數設為 e = 3。令 φ(n) = (p − 1)(q − 1),滿足 e × d ≡ 1 (mod φ(n)) 的私密指數 d(0 < d < φ(n))為下列何者?
  4. 在RSA加密中,設公開金鑰為 n = 55、e = 3。以 c = m^e mod n 加密明文 m = 7 時的密文 c 為下列何者?
  5. 把教科書式的RSA加密(直接以 c = m^e mod n 處理明文 m 的方式)不加填充地用於實際通訊,其問題點正確的是下列何者?

這個領域的比較