Prime-Numbers

了解素數域中的可逆加法

  • April 13, 2018

我試圖了解在主要領域中添加的安全含義。

假設我有 X + Y = Z,出現在素數域 P(W) 下,其中 W 是域的大小。

如果我知道 X 和 Z,我可以簡單地推導出 Y….只要已知 Y 也在素數域內。

但是,如果 Y 是比 W 大得多的數字……比如說 2^128 倍,在我看來,從 X 和 Z 推導出 Y 的難度與 Y 的保證大小一樣難。

IE:Y 與 AES128 密鑰一樣安全。

這個對嗎?

Y 與 AES128 密鑰一樣安全。

這個對嗎?

嗯,這取決於你在做什麼 $ Y $ . 攻擊者可以推斷出 $ Y \bmod W $ . 現在,如果你唯一要做的事 $ Y $ 將其添加到事物模 $ W $ , 攻擊者知道他需要知道的一切 $ Y $ . 他可能不知道確切的值,但他確實知道它是一大組完全相同的值之一,因此他不在乎它是哪一個。

另一方面,也許你正在做其他事情 $ Y $ 也是。這是否安全取決於那是什麼(例如是否洩漏值 $ Y \bmod W $ 對於“其他東西”的安全性至關重要。

加法是個壞主意:

假設素數域 W 為 7,X 為 2,Y(秘密答案)為 42。

  • ( X + Y = 44 ) % 7 = 2
  • 攻擊者無法從 W、2 和 X 中知道 Y。相反,他現在只知道 Y 的 3 位。Y 可以是模 7 為 2 的任何值。
  • Y 保持“3 位安全”

現在你決定使用一個新的 X,值為 4。

  • X + Y = 19% 7 = 4
  • 攻擊者仍然不知道 Y,但即使 Y 未知,現在也可以執行此操作 F(X,Y,W)。

這使得函式 F 對密碼學基本上沒有用處……除非它只執行一次

乘法稍微好一點…但前提是您為 W 和 Y 選擇安全值

  • W 不能是 Y 的因數。
  • 7 是 42 的因數 …. 因此任何選擇 X 都將導致為零…再次使函式無用。
  • 為 Y 選擇的唯一安全值是素數

如果 Y 是素數,即使攻擊者可以訪問 F(X, Y, W) 機器,在乘以 X 的情況下,你的秘密的一半是安全的。

但它仍然相當無用,因為雖然你不知道 Y,但攻擊者現在有能力通過使用反模,在固定素數域下產生“等效 Y”。改變素數域可以解決這個問題,但會將問題放大為一個非常昂貴的協議。

正確的解決方案是“在指數中進行數學運算”。

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