一頁看懂第一週

第一週概念地圖。

必背定義

L3.4cmL11.0cm 概念 & 一句話定義
SKE 語法 & \(\sk \gets \KGen\);\(c = \Enc(\sk, m)\);\(m = \Dec(\sk, c)\);空間 \(\calK, \calM, \calC\)。
SKE 正確性 & \(\forall \sk \gets \KGen, \forall m \in \calM:\ \Dec(\sk, \Enc(\sk, m)) = m\)。
MAC 語法 & \(\ik \gets \KGen\);\(\tau = \Tag(\ik, m)\);\(\Vf(\ik, m, \tau) \in \bits\)。
MAC 正確性 & \(\forall \ik \gets \KGen, \forall m \in \calM:\ \Vf(\ik, m, \Tag(\ik, m)) = 1\)。
安全定義的兩面向 & (\(\ast\))不應可能的事;(\(\dagger\))敵手的能力。
EUF-CMA() & 有 \(\Tag(\ik,\cdot)\) 預言機的敵手,無法對任何 \(m \notin \calQ\) 輸出合法 \((m,\tau)\)。
強不可偽造(\(^{+}\)) & 同上,但禁止任何 \((m,\tau) \notin \calQ^{+}\)(含舊訊息的新標籤)。
典範驗證 & \(\Vf(\ik,m,\tau) = 1 \iff \tau = \Tag(\ik,m)\)(確定性 \(\Tag\))。
Encrypt-then-MAC & \(c = \Enc(\sk,m)\),\(\tau = \Tag(\ik,c)\);收到先 \(\Vf\)、失敗即 \(\bot\)、通過才 \(\Dec\)。
定義 X 至少與 Y 一樣強 & 每個滿足 X 的方案都滿足 Y。嚴格更強:另存在滿足 Y 不滿足 X 的方案。
可延展性 & 敵手不知明文仍可對明文做可預測修改(如 XOR 加密的位元翻轉)。
Kerckhoffs 原則 & 演算法公開,安全只依賴金鑰保密。

常見誤區

  1. 把正確性當成安全性。「解得回來」與「敵手學不到東西」是兩回事。

  2. 以為加密提供完整性。一次性密碼本是完美保密的,但一個位元都擋不住。

  3. 以為「金鑰安全」就夠了。迭代 (i) 與 :什麼都不做的方案金鑰也「安全」。

  4. 忘記 的 \(m \notin \calQ\)。少了它就是 ,而 因正確性而不可能達成。

  5. MAC 算在明文上(E&M)或先解密再驗證(MtE)。標準答案是 EtM:對密文貼標籤、先驗證。

  6. 以為 MAC 擋得住重放。\(\Vf\) 無狀態;重放要靠計數器/時間戳等狀態。

  7. 把序號放在 MAC 保護範圍外。那敵手改一下序號就繞過了。

  8. 以為密碼學能阻止丟包。只能偵測與恢復,不能阻止。