Provable-Security

像 EUF-CMA 這樣的簽名安全縮寫是什麼意思?

  • November 18, 2021

有時,人們會偶然發現正式的安全定義。這包括簽名方案的安全定義。

最常見的是***UF-***針對特定類別攻擊者的廣告安全性。現在這些概念可能沒有被很多人很好地理解,所以我在此請求一個規範的答案,它解釋了以下安全概念的含義。正式攻擊場景的(簡單)描述是首選。

請不要將答案限制為“你可以選擇這個,如果你可以用這個打破它,它不是 EUF-CMA”。請至少概述正式攻擊(如 f.ex. 生成新簽名)。

以下列表按相同後綴 (x) 或前綴的強度順序排列:

  • UUF-KMA
  • SUF-KMA
  • EUF-KMA
  • UUF-CMA
  • SUF-CMA
  • EUF-CMA

集合使用書法字型表示,算法使用直字型表示。始終, $ \Sigma:=(\mathsf{K},\mathsf{S},\mathsf{V}) $ 表示密鑰空間上的簽名方案 $ \mathcal{K} $ , 消息空間 $ \mathcal{M} $ 和簽名空間 $ \mathcal{S} $ . 由於討論中只涉及一個密鑰對,為了避免混亂,讓我們在呼叫時刪除安全參數、公鑰和密鑰 $ \mathsf{S} $ ; 同樣,讓我們在呼叫時刪除安全參數和公鑰 $ \mathsf{V} $ . 也就是說,我們認為: $ \mathsf{S}:\mathcal{M}\rightarrow\mathcal{S} $ 和 $ \mathsf{V}:\mathcal{S}\times\mathcal{M}\rightarrow{0,1} $ .

與加密方案的情況一樣,安全性是為簽名方案建模的 $ \Sigma $ 使用挑戰者和對手之間的博弈 $ \mathsf{A} $ (多項式時間機率機)。遊戲模擬了一個可能的場景,其中 $ \mathsf{A} $ 試圖打破 $ \Sigma $ 當挑戰者使用該方案時使用攻擊 $ \Sigma $ . $ \Sigma $ 據說是安全的 $ \mathtt{break} $ - $ \mathtt{attack} $ -模型(即, $ \mathtt{break} $ - $ \mathtt{attack} $ -secure) 如果它“對任何人來說都很難 $ \mathsf{A} $ ’’ 至 $ \mathtt{break} $ $ \Sigma $ 在下面 $ \mathtt{attack} $ (具體定義在最後給出)。因此,對於簽名方案的情況 $ \mathtt{break}\in $ {UF,SF,EF} 和 $ \mathtt{attack}\in $ {KOA,CMA,KMA}—可以考慮這些的任意組合。

為了便於說明,讓我們從“最弱”模型的描述開始,稱為“僅密鑰攻擊 (KOA) 下的通用偽造 (UF)”。

  1. 樣品鍵 $ (sk,pk)\leftarrow\mathsf{K}(1^n) $ 並執行對手 $ \mathsf{A}(1^n,pk) $
  2. 一個。挑戰 $ \mathsf{A} $ 在任意消息上 $ m^*\in\mathcal{M} $

灣。接收作為響應(對質詢)的偽造 $ (m^,\sigma^) $ : $ \mathsf{A} $ 贏,如果 $ \mathsf{V}(\sigma^,m^)=1 $

也就是說,在 UF-KOA 模型中,對手已經在僅給定公鑰的情況下偽造了挑戰者選擇的消息(即通用偽造)(即僅密鑰攻擊)。在這個模型中,攻擊者有最困難的任務:只給它偽造所需的最低限度——即公鑰——並且無法選擇要偽造哪個消息。

在實踐中,攻擊者可能有手段獲得比這更多的資訊——例如,它可能通過某種渠道獲得簽名者發布的簽名。UF-KOA 模型沒有捕捉到這一點,因此有理由認為它很弱。有兩種方法可以加強它:,我們可以讓對手的任務更容易(例如,讓它根據自己選擇的資訊偽造資訊);和/或兩個,我們可以為它提供更多資訊(例如,在它選擇的消息上給它簽名)。現在讓我們看一個模型,稱為已知消息攻擊(KMA) 下的 UF,它可以處理後者。

  1. 一個。樣品鍵 $ (sk,pk)\leftarrow\mathsf{K}(1^n) $ 並執行對手 $ \mathsf{A}(1^n,pk) $

灣。樣本 $ q=q(n) $ 任意消息 $ m_1,…,m_q\in\mathcal{M} $ ,並生成簽名 $ \sigma_i\leftarrow\mathsf{S}(m_i) $ , $ 1\le i \le q $ 2. 一個。發送集合 $ {(m_1,\sigma_1),…,(m_q,\sigma_q)} $ 至 $ \mathsf{A}(1^n) $ ,並在任意消息上挑戰它 $ m^*\not\in {m_1,…,m_q} $

灣。接收來自 $ \mathsf{A} $ 贗品 $ (m^,\sigma^) $ : $ \mathsf{A} $ 贏,如果 $ \mathsf{V}(\sigma^,m^)=1 $

雖然 $ \mathsf{A} $ 仍然必須產生一個通用的偽造,它現在得到 - 不像在 UF-KOA 模型中 - 一堆它知道的消息上的簽名(已知消息攻擊)。該模型可以通過允許進一步加強 $ \mathsf{A} $ 查詢並獲取選擇的消息的簽名。這產生了下面給出的模型,稱為選擇消息攻擊(CMA) 下的 UF。

  1. 一個。樣品鍵 $ (sk,pk)\leftarrow\mathsf{K}(1^n) $ 並執行對手 $ \mathsf{A}(1^n,pk) $

灣。初始化一個集合 $ \mathcal{M}’=\emptyset $ . 2. 如果 $ \mathsf{A} $ 查詢消息上的簽名 $ m\in\mathcal{M} $ , 回應 $ \mathsf{S}(m) $ , 並添加 $ m $ 至 $ \mathcal{M}’ $ 3. 一個。挑戰 $ \mathsf{A} $ 在任意消息上 $ m^*\not\in\mathcal{M}’ $

灣。接收來自 $ \mathsf{A} $ 贗品 $ (m^,\sigma^) $ : $ \mathsf{A} $ 贏,如果 $ \mathsf{V}(\sigma^,m^)=1 $

接下來,讓我們從第二個方面來看加強模型,即通過削弱對手破壞簽名方案意味著什麼的概念。我們從第一個實驗中討論的通用偽造到選擇性偽造(SF),最後到 KOA 環境中的存在偽造(EF)。

  1. 接收自 $ \mathcal{A} $ 承諾_ $ m^\in\mathcal{M} $ : $ \mathsf{A} $ 必須繼續努力 $ m^ $ 到底
  2. 樣品鍵 $ (sk,pk)\leftarrow\mathsf{K}(1^n) $ 並執行對手 $ \mathsf{A}(1^n,pk) $
  3. 接收來自 $ \mathsf{A} $ 贗品 $ (m^,\sigma^) $ : $ \mathsf{A} $ 贏,如果 $ \mathsf{V}(\sigma^,m^)=1 $

請注意,雖然 $ \mathcal{A} $ 必須先驗地承諾它所偽造的資訊,它仍然比在UF-KOA遊戲中擁有更多的自由——對於EF-KOA,這個限制也被取消了。

  1. 樣品鍵 $ (sk,pk)\leftarrow\mathsf{K}(1^n) $ 並執行對手 $ \mathsf{A}(1^n,pk) $
  2. 接收來自 $ \mathsf{A} $ 贗品 $ (m^,\sigma^) $ : $ \mathsf{A} $ 贏,如果 $ \mathsf{V}(\sigma^,m^)=1 $

類似地,可以定義模型 $ \mathtt{break} $ - $ \mathtt{attack} $ 為了 $ \mathtt{break}\in $ {SF,EF} 和 $ \mathtt{attack}\in $ {KMA,CMA}。該批次的最強模型——即EF-CMA——定義如下,因為它被認為是簽名方案的安全性應該基於的模型。

  1. 一個。樣品鍵 $ (sk,pk)\leftarrow\mathsf{K}(1^n) $ 並執行對手 $ \mathsf{A}(1^n,pk) $

灣。初始化一個集合 $ \mathcal{M}’=\emptyset $ . 2. 如果 $ \mathsf{A} $ 查詢消息上的簽名 $ m\in\mathcal{M} $ , 回應 $ \mathsf{S}(m) $ , 並添加 $ m $ 至 $ \mathcal{M}’ $ 3. 接收作為輸出 $ \mathsf{A} $ 贗品 $ (m^,\sigma^) $ : $ \mathsf{A} $ 贏,如果 $ \mathsf{V}(\sigma^,m^)=1 $ 和 $ m^*\not\in\mathcal{M}’ $

也就是說,在 EF-CMA 模型中,攻擊者可以在其自適應選擇的消息上獲得一堆簽名,並且最終可以偽造任何新消息。這個定義的一個更強大的版本——稱為EF-CMA (sEF-CMA)——也被認為是可取的。

  1. 一個。樣品鍵 $ (sk,pk)\leftarrow\mathsf{K}(1^n) $ 並執行對手 $ \mathsf{A}(1^n,pk) $

灣。初始化一個集合 $ \mathcal{M}’=\emptyset $ . 2. 如果 $ \mathsf{A} $ 查詢消息上的簽名 $ m\in\mathcal{M} $ , 回應 $ \sigma=\mathsf{S}(m) $ , 並添加 $ (m,\sigma) $ 至 $ \mathcal{M}’ $ 3. 接收作為輸出 $ \mathsf{A} $ 贗品 $ (m^,\sigma^) $ : $ \mathsf{A} $ 贏,如果 $ \mathsf{V}(\sigma^,m^)=1 $ 和 $ (m^,\sigma^)\not\in\mathcal{M}’ $

也就是說,只要偽造與它作為對查詢的響應收到的不同(即強存在偽造),對手就可以偽造它查詢簽名的消息。

  1. 定義。簽名方案被稱為 $ \mathtt{break} $ - $ \mathtt{attack} $ -secure if 對於所有機率多項式時間的對手 $ \mathsf{A} $ $$ \Pr[\mathsf{A}\ wins\ \mathtt{break}-\mathtt{attack}_\Sigma^{\mathsf{A}}(1^n)]=negl(n). $$ 在哪裡 $ \mathtt{break}\in $ {UF,SF,EF} 和 $ \mathtt{attack}\in $ {KOA、CMA、KMA}。

  2. 雖然只討論了簽名方案,但這些定義可以很容易地適用於消息驗證碼 (MAC)。尤其是:

  3. 由於密鑰生成算法只生成對稱密鑰 $ k $ ,在安全模型的第 1 步中,沒有密鑰要移交給 $ \mathsf{A} $ . 因此,UF-KOA 在資訊論意義上是困難的。

  4. 而不是在消息上查詢簽名, $ \mathsf{A} $ 查詢標籤。

  5. 還有其他攻擊和中斷的變體 — 見

$$ GMR $$, 例如。

  • $$ GMR88 $$:Goldwasser、Micali 和 Rivest。一種針對自適應選擇消息攻擊的數字簽名方案。(PDF)
  • $$ BN00 $$: Mihir Bellare 和 Chanathip Namprempre。Authenticated Encryption:概念之間的關係和通用組合範式的分析PDF

引用自:https://crypto.stackexchange.com/questions/44188