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