幾個概念:
ciphertext-only attack(唯密文攻擊):
攻擊者僅知道密文情況下進行的攻擊。
chosen-plaintext attack(選擇明文攻擊):
攻擊者擁有加密機的訪問權限,可以構造任意明文對應的密文。
known-plaintext attack(已知明文攻擊):
攻擊者掌握了某段明文
chosen-ciphertext attack(選擇密文攻擊):
攻擊者掌握加密機的訪問權限,可構造任意密文對應的明文。
Perfect Secrecy:
加密策略(Gen, Enc, Dec)和明文空間
異或XOR
Lecture1
私鑰加密:
定義在明文空間
Gen生成密鑰
“
對於所有的明文
mod運算
定義
shift cipher就是運用26個英文字母之一進行簡單的移位求餘運算。
Kerckhoffs’s principle
加密策略Enc不是祕密的,只有密鑰key是祕密的。因此,密鑰需要隨機選擇並保密。
支持這個principle的觀點:
1.密鑰比祕密的算法更容易保守
2.改變密鑰比改變算法更容易
3.標準化
Sufficient key space principle
密鑰空間要足夠大來避免暴力破解,但足夠大的密鑰空間並不能保證安全。
Lecture2
Vigenere Cipher
key由字符變成了字符串
例如該算法使用的密鑰是10個字符構成的字符串組成的,假設明文爲英文,可以根據26個字母出現的頻率來進行推測。因爲每10個字符的偏移量是一定的,根據每10個字符得到的統計頻率,可以猜出密鑰。
Lecture3
Attack Vigenere cipher
1.確定密鑰長度
2.確定密鑰的每一位
1.確定密鑰長度
假定明文是英文,
由於分佈不均勻,因此可以根據英文各字母出現的統計頻率進行估計。
假定密鑰的長度是
1.明文每
2.統計明文每
爲了區分上述兩種情況
2.確定密鑰的每一位
當密鑰長度
若密文與
接下來統計解密後得到的字符中小寫字母的頻率
實際操作中,我們找到使得