Keys

在 Paillier 密碼系統中選擇素數

  • May 14, 2016
  1. 在此處給出的 Paillier 密碼系統中密鑰生成階段的第一步。

這是給定的

$$ \operatorname{length}(p) = \operatorname{length}(q) ) \implies \operatorname{gcd}(pq,(p-1)(q-1))=1 $$ 在哪裡

$ \operatorname{length}(k) $ = # 二進製表示的位 $ k $

$ \operatorname{gcd}(a,b) $ = 的最大公約數 $ a,b $

如何證明上述方程,或者它在哪裡被證明? 2. 在密鑰生成的第三步中,我們要選擇一個隨機整數 $ g $ 在哪裡 $ g \in \mathbb{Z}_{n^2}^* $ 在加密的第 2 步中,我們必須選擇一個隨機整數 $ r $ 在哪裡 $ r \in \mathbb{Z}_n^* $ .

我想知道的是“已知的有效選擇方法是什麼? $ g,r $ 隨機”。我的意思是我們是否必須辦理登機手續 $ \mathbb{Z}_{n^2}^,\mathbb{Z}_n^ $ 對於這樣 $ g,r $ 直到 $ \operatorname{gcd}(g,n^2)=1 $ 和 $ \operatorname{gcd}(r,n)=1 $ 或者在編碼密碼系統時有什麼簡單的方法。 3. 在加密的第一步,給定明文 $ m\in \mathbb{Z}_n $ .

所以 $ m < n $ .

假設我們要加密 $ k $ 位消息,所以我們的 $ n $ 一定是 $ l $ - 位數,其中 $ l>k $ .

我們知道兩者的乘積 $ s $ -bit numbers 給出一個數字,其位數介於 $ s+1 $ 到 2 $ s $ , 假設我們取等長素數來保證性質 $ \operatorname{gcd}(pq,(p-1)(q-1))=1 $ , 那麼有必要取 $ k $ 位素數,因為 $ m<n $ .

它是否正確?

  1. 自從 $ p $ 和 $ q $ 是素數,您需要排除的唯一因素是這兩個數字。

認為 $ p $ 劃分 $ (p-1)(q-1) $ . 然後它劃分要麼 $ p-1 $ (顯然不是真的)或 $ q-1 $ . 後者的意思 $ q-1 = p \cdot x $ , 對於一些 $ x \ge 2 $ (如果 $ x = 1 $ 任何一個 $ p $ 或者 $ q $ 是偶數,只有當數字是 2 和 3 時才有可能)。然而,那麼 $ q \ge 2p+1 $ ,所以它的二進製表示更長。

類似的論證證明 $ q $ 不能成為一個因素。因此,GCD 必須是 $ 1 $ . 2. 如果你只是隨機選擇 $ g $ 模組 $ n^2 $ 它是一個好的選擇的可能性很高(對於大素數),因此您通常只需驗證一次。但是,就像您的 Wikipedia 連結狀態一樣,您可以選擇 $ g=n+1 $ (當你的素數一樣長時)。

為了 $ r $ 您也可能會隨機獲得一個好數字,但您必須檢查兩者都不是 $ p $ 也不 $ q $ 劃分它。 3. >

我們知道兩者的乘積 $ s $ -bit numbers 給出一個數字,其位數介於 $ s+1 $ 到 2 $ s $ , 假設我們取等長素數來保證性質 $ \operatorname{gcd}(pq,(p-1)(q-1))=1 $ , 那麼有必要取 $ k $ 位素數,因為 $ m<n $ .

如果你乘以兩個 $ s $ -位數字產品總是要麼 $ 2s-1 $ - 位數或 $ 2s $ -位號。(這裡一個 $ s $ - 位號表示一個有它的 $ s $ 位設置。)

允許任何 $ k $ -bit 消息,有必要 $ 2s-1>k $ , 所以 $ s=k/2+1 $ 足夠。

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