现代密码学1.4--现代密码的三大原则
現(xiàn)代密碼學(xué)1.4--現(xiàn)代密碼的三大原則
- 正式的定義
- 安全條件
- 錯誤的
- 正確的
- 攻擊模型
- 精確的假設(shè)
- 嚴(yán)格的安全性證明
博主正在學(xué)習(xí)INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯誤請指正。整理成一個系列現(xiàn)代密碼學(xué),方便檢索。
古典密碼就像是一門藝術(shù),沒有關(guān)于“安全”方案應(yīng)該滿足什么條件的共識,也沒有證據(jù)證明某個密碼方案是安全的。相比之下,現(xiàn)代密碼更像是一門科學(xué),它給出了關(guān)于密碼方案是否安全的嚴(yán)格定義。
嚴(yán)格的安全性證明是基于正式的定義和精確的假設(shè)下的。
正式的定義
并不是存在攻擊算法的密碼方案就是不安全的。比如Vigenere密碼(多字母替代密碼),如果密文很長則可能會被破解,但如果密文足夠短,它就是安全的。因?yàn)楹芏痰拿芪耐ǔ2环献帜傅念l率分布等特性,難以找到規(guī)律。
也就是說,如果沒有一個正式的定義,即使存在攻擊算法,我們也不能說這個密碼方案就不安全。
而且,如果沒有正式的定義,我們怎么知道要使一個密碼方案安全究竟要滿足些什么條件。
基于以上,正式的安全性定義是很必要的。
通常一個安全性定義分為兩個部分:安全條件和攻擊模型。
安全條件
一個安全密碼方案應(yīng)該滿足哪些條件?
錯誤的
- 對于攻擊者而言,不能恢復(fù)密鑰。
即使不能恢復(fù)密鑰,也有可能泄露明文。如Enck(m)=mEnc_k(m)=mEnck?(m)=m - 對于攻擊者而言,不能從密文恢復(fù)完整的明文。
不需要恢復(fù)完整明文,只要恢復(fù)部分明文就可能泄露重要的信息。 - 對于攻擊者而言,不能從密文恢復(fù)任何的明文字符。
甚至不需要恢復(fù)任何具體的明文字符,有時只要知道明文字符A和明文字符B之間潛在的關(guān)系即可。比如員工A薪資和員工B薪資,不需要知道具體薪資,只需要知道比較關(guān)系,就會泄露很多信息。
正確的
無論攻擊者已經(jīng)擁有哪些信息,密文都不應(yīng)該泄露關(guān)于潛在明文的任何額外信息。
這意味著一個安全的密碼方案應(yīng)該對于所有可能的隱私要求應(yīng)用都是適合的。
攻擊模型
攻擊模型沒有正確與否,也沒有哪個比哪個更好,只是對攻擊者不同算力的模型化。正確的做法是根據(jù)密碼方案所應(yīng)用的環(huán)境,來決定使用哪種攻擊模型。
- 唯密文攻擊:攻擊者只能觀察到密文
- 已知明文攻擊:攻擊者知道一對或多對明密文
- 選擇明文攻擊:攻擊者可以選擇一些明文,要求得到相應(yīng)的密文。
- 選擇密文攻擊:攻擊者可以選擇一些密文,要求得到相應(yīng)的明文。
精確的假設(shè)
密碼方案通常是基于數(shù)學(xué)困難問題之上構(gòu)造的。
- 假設(shè)有效性
假設(shè)是還沒被證明,但被推測是真的。我們認(rèn)為,一個假設(shè)被檢查和測試越多,那么它的可信度就越高。 - 方案的比較
假設(shè)其他條件相同,如果有兩個基于不同假設(shè)的方案都被證明滿足某種定義,那我們該選哪種方案呢?我們通常選基于更弱假設(shè)的那個方案,因?yàn)橥暗谝粋€假設(shè)是正確的”會推出“第二個假設(shè)是錯誤的”。 - 理解假設(shè)的必要性
密碼方案是基于許多模塊的,如果某個模塊所基于的假設(shè)不對,我們只需要檢查這個假設(shè)是否影響了方案的安全性。
嚴(yán)格的安全性證明
一個密碼方案,
- 在某些特定的假設(shè)下,
- 滿足給定的定義,
是可以嚴(yán)格證明該方案安全性的前提。
總結(jié)
以上是生活随笔為你收集整理的现代密码学1.4--现代密码的三大原则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现代密码学1.3--古典密码/histo
- 下一篇: 基本数据结构与图