Public-Key

對 McEliece 的基本攻擊;找到 S 和 P

  • March 8, 2018

採用具有公共生成矩陣的McEliece 密碼系統 $ G’ = S G P $ 在哪裡 $ G $ 是具有已知快速解碼的密碼生成器(不一定是 Goppa 密碼) $ \mathbb{F}_2 $ ), $ S $ 是隨機且非奇異的並且 $ P $ 是一個排列。

假設攻擊者 Eve 有辦法找到 $ G $ 從 $ G’ $ 但不是 $ S $ 或者 $ P $ . Eve 現在將如何繼續對加密程式碼字的攻擊 $ c = mSGP+e $ ?

有辦法找到 $ P $ , 如果你知道的話 $ SG $ :支持分裂算法,但我看不出沒有 Eve 怎麼繼續 $ S $ .


澄清/範例/以前答案的想法

問題之一是, $ P $ 已經對程式碼進行了足夠的更改,以至於很難解碼。這是一個例子 $ \mathbb{F}_2 $

$ G:=\left( \begin{eqnarray} 1 & 1 & 0 & 0 & 1 \ 0 & 0 & 1 & 1 & 1 \end{eqnarray} \right) $ 生成程式碼 $ \mathcal{C} = \mathbb{F}_2^2G= \left{ (0,0,0,0,0),(1,1,0,0,1),(0,0,1,1,1),(1,1,1,1,0) \right} $ .

取切換第二和第三分量的排列 $ P = (23) $ .

發電機 $ GP $ 現在生成程式碼 $ \mathcal{C}P = \left{ (0,0,0,0,0),(1,0,1,0,1),(0,1,0,1,1),(1,1,1,1,0) \right} $ .

取一個碼字 $ \mathcal{C}P $ : $ c = (1,0,1,0,1) \in \mathcal{C}P $ 和一個誤差向量 $ e=(1,0,0,0,0) $ .

$ y=c+e=(0,0,1,0,1) $ 與程式碼字的距離為 1 $ \mathcal{C}P $ ; 所以對於知道的人 $ P $ 它可以被翻譯成一個程式碼字 $ \mathcal{C} $ 並解碼 $ G $ .

$ y $ 與程式碼字的距離也為 1 $ \mathcal{C} $ ,但是給錯了;這麼簡單的解碼是行不通的。

本文討論了上述問題稱為擾碼器排列問題

在通讀目前的研究論文 [ 1 , 2 , 3 ] 之後,我不太確定上述問題是否確實有解決方案。我認為這在很大程度上取決於選擇的程式碼 $ G $ 是否有可能破壞系統;並且所有系統破壞算法都給出了 $ S $ 以及(或它們在 Niederreiter 密碼系統中的等價物)。

我現在認為不可能檢索 $ S $ 給定 $ G $ 獨自的。

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