Symmetric

密鑰生成算法能否始終保持一致?

  • November 14, 2018

假設加密使用 $ n $ -位密鑰加密 $ l(n) $ 長度消息。

如果對稱密鑰加密方案定義為 $ \Pi_{1} = ( \mathrm{Enc}, \mathrm{Dec} ) $ ,那麼對於每個 $ x_{0}, x_{1} \in {0,1}^{l(n)} $ ,

$$ \left\vert \Pr\left[ A (\mathrm{Enc}{U{n}}(x_{0})) = 1\right] - \Pr\left[ A (\mathrm{Enc}{U{n}}(x_{1})) = 1\right] \right\vert < \varepsilon(n) $$ 如果它是計算安全的。 如果一個對稱密鑰加密方案被定義為 $ \Pi_{2} = ( \mathrm{Gen}, \mathrm{Enc}, \mathrm{Dec} ) $ ,那麼對於每個 $ x_{0}, x_{1} \in {0,1}^{l(n)} $ ,

$$ \left\vert \Pr\left[\mathrm{Gen}(1^{n})=k; A (\mathrm{Enc}{k}(x{0})) = 1\right] - \Pr\left[\mathrm{Gen}(1^{n})=k; A (\mathrm{Enc}{k}(x{1})) = 1\right] \right\vert < \varepsilon(n) $$ 如果它是計算安全的。 安全的定義不同,因為加密的定義不同。一般情況下,我們不要求分配 $ \mathrm{Gen} $ 必須是統一的。但似乎均勻分佈總是最好的。因此,如果 $ \Pi_{2} $ 是計算安全方案,我想知道是否存在PPT算法 $ \mathrm{Gen}’ $ 這是統一的,使得

$$ \left\vert \Pr\left[\mathrm{Gen}’(1^{n})=k; A (\mathrm{Enc}{k}(x{0})) = 1\right] - \Pr\left[\mathrm{Gen}’(1^{n})=k; A (\mathrm{Enc}{k}(x{1})) = 1\right] \right\vert < \varepsilon(n) $$

對於任何對稱加密方案,假設密鑰是均勻分佈的並不失一般性:可以讓密鑰為密鑰生成算法的隨機硬幣 $ \mathcal G $ ,並結合確定性部分 $ \mathcal G $ (,它如何從其隨機硬幣生成密鑰)到加密和解密算法中。

對於非對稱加密方案,同樣適用於私鑰

密鑰生成器算法的一致性不是必需的。密鑰生成器算法只產生子密鑰,這些子密鑰在每一輪中用於加強密碼。這意味著某些輪次中的某些子密鑰可能在那裡沒有提供足夠的強度,但是強度將通過加密過程結束時達到的強度總和來達到。作為密鑰生成器的線性結構的一個範例是 DES,它以非統一的方式和線性結構產生子密鑰。您可能會想到 DES 的弱密鑰和半弱密鑰,但它們與密鑰生成器結構無關,而 DES 自己的加密結構會導致這種影響。我們應該提醒一下,一些攻擊,如相關密鑰攻擊,利用密鑰生成器的弱點來生成具有關係的子密鑰,

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