密碼學原理學習筆記


攻擊的類型:

唯密文攻擊(COA):攻擊者只知道密文

已知明文攻擊(KPA):攻擊者知道同一密鑰下密文對應的明文。

選擇明文攻擊(CPA):攻擊者可以事先任意選擇一定數量的明文,讓被攻擊的加密算法加密,並得到相應的密文。

選擇密文攻擊(CCA):攻擊者事先知道任意一定數量的密文,讓被攻擊的解密算法解密,並得到對應的明文。

被動攻擊:COA、KPA

主動攻擊:CPA、CCA

 

補充(來源:https://www.zhihu.com/question/34624915):

 

 

 

古典密碼學

凱撒密碼:使用移位處理

維吉尼亞密碼:確定密鑰后,多次使用凱撒密碼

破解維吉尼亞密碼:關鍵在於確定密鑰的長度t

 方法一  Kasiski方法:

在密文中出現相同的子串之間的距離可能是t的倍數,找出所有的相同的子串的距離,尤其出現次數較多的(避免巧合),t是這些距離的最大公約數。

方法二 Friedman試驗:

以下內容推薦博客:https://blog.csdn.net/white_idiot/article/details/61201864

重合因子Index of Coincidence(IC):任意取兩個字母(取后放回),使之結果相同的概率

英語中的重合因子定義如下:

,由每個字母出現的概率,可算得其結果為0.065

破解維吉尼亞密碼的兩個步驟:

1、確定密鑰長度。

遍歷密鑰長度,使得某一個密鑰長度下的分組算得的重合因子其結果接近0.065,可用以下公式:

,其中,i為英文字母順序表中的第i個字母,ni為其在密文分組中出現的頻數,N為該分組的長度。如果該密鑰長度下的各個分組算得的平均重合因子的結果接近0.065,則找到正確的密鑰長度。否則,換下一個密鑰長度測試。

2、進行頻率分析。

密文確定密鑰長度后,可將密文划分成相應的分組。在划分出來的任一分組中,明文和密文都是通過同一個字母實現移位加密的,此時,只需將密文相對於明文進行移位測試,找出具有重合因子接近0.065的位移,即可確定該分組的偏移量,其他分組同理。可用以下公式:

(j的取值為[0,25],即我們需要求的偏移量)。可理解成:明文中出現的第i個字母可能映射成了密文中的第i+j個字母(兩個"字母"都已經按順序排好,但出現的頻數不一定相同)

單字母替換(Mono-Alphabetic Substitution):將明文中的字母進行隨機替換,密鑰空間為26!

Kerckhoffs’s principle :

The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience.


Sufficient Key Space Principle:

Any secure encryption scheme must have a key space that is not vulnerable to exhaustive search

 

Arbitrary Adversary Principle :

Security must be guaranteed for any adversary within the class of adversaries having the specified power

現代密碼學的三個主要規則

Principle 1: Formulation of Exact Definitions
No adversary can derive any meaningful information about the plaintext from the ciphertext.

Principle 2 – Reliance on Precise Assumptions


Principle 3 – Rigorous Proofs of Security


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM