现代密码学3.1--定义计算安全的两种方法
現代密碼學3.1--定義計算安全的兩種方法
- 三種安全性定義
- 定義計算安全的兩種方法
- 具體方法/concrete approach
- 漸進方法/asyptotic approach
- “高效/PPT”和“可忽略/negligible”
博主正在學習INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯誤請指正。整理成一個系列現代密碼學,方便檢索。
《現代密碼學》第一章所介紹的古典密碼,全都已經被破解了,由于沒有嚴格的安全定義,無法證明安全性,第二章引入了完美安全的定義,是一種對于密碼方案的安全性定義,但是滿足這種安全性定義的密碼方案具有一個共同缺點:密鑰空間∣K∣|\mathcal{K}|∣K∣>明文空間∣M∣|\mathcal{M}|∣M∣,而且這種安全性往往是現實中難以達到的:無限算力的敵手+不能泄露絲毫明文信息。考慮實際需求,給出一種新的安全性定義:“計算安全/computational security”:有限算力的敵手+以極小概率泄漏明文信息。
三種安全性定義
相比于完美安全,還有兩種安全性定義:計算安全和統計安全。
完美安全滿足:
- 無限算力的敵手
- 不泄露絲毫明文信息
統計安全滿足:
- 無限算力的敵手
- 以極小概率泄露明文信息
計算安全滿足:
- 有限算力的敵手
- 以極小概率泄漏明文信息
完美安全偏向理論,計算安全和統計安全往往是實際中的安全性定義。
定義計算安全的兩種方法
我們可以把計算安全看作對完美安全的放縮,有2點放縮:敵手算力+泄露明文的概率。現在需要去定義這樣的放縮,有兩種方式:具體方法和漸進方法。
具體方法/concrete approach
用具體數值表示放縮。
定義:如果任何敵手運行時間最長為ttt,攻破密碼方案的概率最多為?\epsilon?,則稱該方案是(t,?)?(t,\epsilon)-(t,?)?安全。
但這種方式其實是很難提供的。比如我們給一個聲明:“最長運行5年,敵手攻破密碼方案的概率最多為?\epsilon?”,這樣的定義伴隨著諸多問題:
- 算力是多少?PC、超級電腦、網絡都不同
- 隨著未來技術的發展,算力也會發展,有考慮進來嗎?
- 如果軟件優化呢?
- 運行2年,攻破概率是多少?
- 運行10年,攻破概率是多少?
漸進方法/asyptotic approach
引入安全參數,用關于安全參數的函數來表示放縮。
由于具體方法定義安全性是很難提供的,那我們考慮用函數來定義安全性。引入一個安全參數nnn,用關于nnn的函數來定義敵手算力以及攻破概率。
定義:如果運行時間為關于安全參數nnn的概率多項式函數/PPT/probabilistic polynomial-time,攻破密碼方案的概率是可忽略的/negligible,則稱該方案是安全的。
引入安全參數,主要是在語法定義和安全性定義中起作用:
- 語法定義:生成密鑰算法GenGenGen、加密算法EncEncEnc、解密算法DecDecDec都是關于安全參數的多項式時間函數;
- 安全性定義:敵手運行時間是關于安全參數的概率多項式函數,敵手攻破概率是關于安全參數的可忽略函數。
“高效/PPT”和“可忽略/negligible”
現在定義“概率多項式時間函數”和“可忽略函數”。
- 概率多項式時間函數:對于所有任意長度的01串x∈{0,1}?x\in \{0,1\}^*x∈{0,1}?,總存在一個多項式ppp,使得計算函數A(x)A(x)A(x)在p(∣x∣)p(|x|)p(∣x∣)步內終止,則稱ppp是一個概率多項式時間函數。這是一個BPPBPPBPP問題類,其中p?BPP?NP(P≠NPp\subseteq BPP\subseteq NP(P\neq NPp?BPP?NP(P?=NP的前提假設)。
- 可忽略函數:對于任意多項式ppp,以及所有足夠大的自然數nnn,函數fff都滿足f(n)<1p(n)f(n)<\frac{1}{p(n)}f(n)<p(n)1?,則稱fff是可忽略函數。
理論上,我們考慮可忽略函數是考慮nnn為無窮大的情況;實際上,我們考慮nnn較小的情況。舉個例子:
- 2?n2^{-\sqrt n}2?n?
- n?log?nn^{-\log n}n?logn
考慮這兩個函數,他們有
- 2?n<n?5→n=35002^{-\sqrt n}<n^{-5}\rightarrow n=35002?n?<n?5→n=3500
- n?log?n<n?5→n=33n^{-\log n}<n^{-5}\rightarrow n=33n?logn<n?5→n=33
也就是說對于多項式n?5n^{-5}n?5來說,2?n2^{-\sqrt n}2?n?需要n>3500n>3500n>3500才有可忽略性;n?log?nn^{-\log n}n?logn只需要n>33n>33n>33就有可忽略性。這意味著n?log?nn^{-\log n}n?logn更快逼近0。但是
- 2?n<n?log?n→n>655362^{-\sqrt n}<n^{-\log n}\rightarrow n>655362?n?<n?logn→n>65536
n>65536n>65536n>65536時2?n<n?log?n2^{-\sqrt n}<n^{-\log n}2?n?<n?logn的意思是當我們考慮無窮大時,2?n2^{-\sqrt n}2?n?是更接近0的。
也就是說,我們在理論上取2?n2^{-\sqrt n}2?n?,是更合適的可忽略函數;但是實際上,我們只需取n?log?nn^{-\log n}n?logn即可,在nnn較小時它逼近0的速度更快。
總結
以上是生活随笔為你收集整理的现代密码学3.1--定义计算安全的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算理论2--可计算理论
- 下一篇: 现代密码学2.4--香农定理/Shann