Notation

什麼是可忽略(且不可忽略)的函式?

  • September 10, 2019

可忽略函式和不可忽略函式的數學定義相當明確,但為什麼它們很重要以及如何在密碼學中使用它們?

在像一次性密本這樣完全秘密的方案中,成功的機率不會隨著計算能力的提高而提高。但是,在現代密碼方案中,我們通常不會嘗試實現完美保密(是的,政府可能會使用一次性密碼,但這對於普通使用者來說通常不實用)。事實上,考慮到無限的計算能力,我們所有的非完全保密方案都是不安全的(另請注意,對於公鑰密碼學,使用經典密碼學是無法實現完美保密的,因此所有方案對於無限計算能力都是不安全的)。相反,我們針對計算能力有限的一組特定對手定義安全性。一般來說,我們假設一個有界在時間多項式上執行的對手 $ n $ , 在哪裡 $ n $ 是給密鑰生成算法的安全參數(更準確地說,給定密鑰生成算法的輸入 $ 1^n $ 以便 $ n $ 將是它的輸入大小,它的輸出——鍵——將是其輸入大小的多項式。)

所以考慮一個方案 $ \Pi $ 對它的唯一攻擊是蠻力攻擊。我們認為 $ \Pi $ 如果它不能在多項式時間內被蠻力攻擊破壞,則它是安全的。

可忽略機率的概念包含了這個確切的概念。在 $ \Pi $ ,假設我們有一個多項式有界的對手。蠻力攻擊不是一種選擇。但是,對手可以猜測(多項式)隨機值,而不是蠻力,並希望碰巧找到正確的值。在這種情況下,我們使用可忽略的函式來定義安全性:成功的機率必須小於任何多項式函式的倒數。

這很有意義:如果單個猜測的成功機率是多項式函式的倒數,那麼對手可以嘗試多項式的猜測並以高機率成功。總而言之,如果總體成功率是 $ 1/poly(n) $ 那麼我們認為這是一個可行的攻擊,該方案是不安全的。

因此,我們要求成功機率必須小於每個多項式函式的倒數。這樣,即使對手嘗試 poly(n) 猜測,它也不會很重要,因為它只會嘗試:

$$ \mathit{poly}(n)/\mathit{superpoly}(n) $$

作為 $ n $ 增長,分母的增長速度遠快於分子,成功機率不會顯著。

編輯添加這裡是一個非正式的論點,可以使這一點更清楚:為了看到超多項式蠻力攻擊和可忽略機率猜測的概念是等價的,考慮一個方案 $ K $ 可能的鍵。

對密鑰集的蠻力攻擊執行在 $ K $ 時間。此外,隨機選擇一個密鑰並且它是正確密鑰的機率是 $ 1/K $ . 現在,如果 $ K $ 是多項式在 $ n $ , (安全參數),那麼這個方案可以及時被暴力破解 $ K = \mathit{poly}(n) $ . 此外,隨機猜測以機率成功 $ 1/K= 1/\mathit{poly}(n)=\text{non-negligible} $
從這兩個定義來看,該方案都是不安全的。

為了確保該方案的安全,我們想讓蠻力在超多項式時間內執行。換句話說, $ K $ 必須是超多項式 $ n $ . 那麼,在一次猜測中正確猜測的機率是$$ 1/K=1/\mathit{superpoly}(n) $$根據定義,這是可以忽略不計的機率。

雖然是非正式的,但我認為最後一部分激發了在安全證明中使用可忽略的函式。

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