惡意伺服器端的安全致盲因子切換(一次性鍵盤切換)
假設所有的值和操作都定義在一個有限域上 $ \mathbb{F}_p $ 在哪裡 $ p $ 是一個大素數。假設所有值都不為零。這裡 $ (z)^{-1} $ 表示值的乘法倒數 $ z $ .
我們放棄價值觀 $ v_1 $ 和 $ v_2 $ 給對手並要求他計算他們的產品:
- $ v_1=a\cdot z_1 $
- $ v_2=b \cdot z_2 \cdot (z_1)^{-1} $
所以,對手計算 $ v_3= v_1\cdot v_2=a\cdot b \cdot z_2 $ .
價值 $ z_i $ 是從田野中均勻隨機挑選出來的。但 $ a $ 和 $ b $ 是欄位的固定值。
問題:
- 給定三個值 $ v_3, v_1 $ 和 $ v_2 $ 對手能否了解有關固定值的任何資訊 $ a $ 和 $ b $ (和 $ z_i $ 值)?如果是/否 為什麼?
在其他世界中,鑑於上述三個值,對手可以推斷出任何關於 $ a $ 和 $ b $ ? 2. 讓 $ v_1=a\cdot z_1 $ 和 $ v_2=(z_1)^{-1}\cdot z_2 $ .
如果我們給 $ v_1 $ 和 $ v_2 $ 給對手並要求他計算他們的產品: $ v_3=v_1\cdot v_2=a\cdot z_2 $ 它會學習秘密值嗎 $ a $ (和 $ z_i $ 值)?
我將回答問題 2,將第一個問題留給讀者作為練習。我會根據直覺來做這件事,而不是使用明確的條件機率。
對手可以自由計算 $ v_1\cdot v_2 $ 不管我們問什麼,因此刪除所有關於此的內容和 $ v_3 $ 不會改變問題,這會簡化為:
我們在某種程度上選擇了一些 $ a\in\mathbb F_p $ . 我們隨機繪製一個統一的秘密 $ z_1\in\mathbb F_p^* $ (所以它是相反的 $ {z_1}^{-1} $ 是明確定義的)和一個隨機的統一秘密 $ z_2\in\mathbb F_p $ , 併計算和顯示 $ v_1=a\cdot z_1 $ 和 $ v_2={z_1}^{-1}\cdot z_2 $ 對對手;這說明了什麼 $ a $ ?
引理 1:對於未知 $ u\in\mathbb F_p^* $ ,繪製一個隨機統一的秘密 $ z\in\mathbb F_p $ ,並揭示 $ v=u\cdot z $ , 沒有透露任何關於 $ u $ .
引理 2:對於未知 $ u\in\mathbb F_p^* $ ,繪製一個隨機統一的秘密 $ z\in\mathbb F_p^* $ ,並揭示 $ v=u\cdot z $ , 沒有透露任何關於 $ u $ .
證明來自以下事實 $ z\to u\cdot z $ 是一個映射 $ \mathbb F_p $ (對於引理 1)或以上 $ \mathbb F_p^* $ (對於引理 2)。
請注意,兩者都沒有 $ v_2 $ 也不 $ z_2 $ 當我們計算和揭示時涉及到 $ v_1=a\cdot z_1 $ . 因此,我們可以孤立地考慮協議中我們繪製隨機統一秘密的部分 $ z_2\in\mathbb F_p $ 並揭示 $ v_2={z_1}^{-1}\cdot z_2 $ . 我們應用引理 1 $ u={z_1}^{-1} $ (屬於 $ \mathbb F_p^* $ ),並得出結論,揭示 $ v_2 $ 什麼也沒透露 $ {z_1}^{-1} $ ,因此沒有關於 $ z_1 $ .
因此,我們計算和揭示的協議部分 $ v_2={z_1}^{-1}\cdot z_2 $ 在我們計算和揭示的協議部分中沒有透露任何數量 $ v_1=a\cdot z_1 $ . 如果我們選擇 $ a $ 不是零,根據引理 2,協議的那部分沒有透露任何關於 $ a $ . 如果我們選擇 $ a $ 曾是 $ 0 $ , $ v_1 $ 將會 $ 0 $ .
因此問題 2 的答案是:協議準確地揭示了是否 $ a=0 $ 或不。沒有其他資訊 $ a $ 洩漏。
聲明不允許 $ z_1=0 $ (或者如果我們拒絕它,因為自從 $ p $ 很大),可以證明沒有(或幾乎沒有)關於 $ z_1 $ 孤立地洩漏,並且唯一(或幾乎唯一)洩漏的資訊 $ z_2 $ 孤立地是 $ z_2=0 $ 抓住。