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