Cryptography-week1

幾個概念:

ciphertext-only attack(唯密文攻擊):
攻擊者僅知道密文情況下進行的攻擊。
chosen-plaintext attack(選擇明文攻擊):
攻擊者擁有加密機的訪問權限,可以構造任意明文對應的密文。
known-plaintext attack(已知明文攻擊):
攻擊者掌握了某段明文x 和對應的密文y
chosen-ciphertext attack(選擇密文攻擊):
攻擊者掌握加密機的訪問權限,可構造任意密文對應的明文。

Perfect Secrecy:
加密策略(Gen, Enc, Dec)和明文空間M 和密文空間C 是完全加密的,當明文空間M 中任意的分佈m ,和任意的cCPr{C=c}>0 ,有:
Pr{M=m|C=c}=Pr{M=m}

異或XOR 性質
AB=BA
A(BC)=(AB)C
XX=0
X0=X


Lecture1

私鑰加密:
定義在明文空間M 和加密算法(Gen, Enc, Dec)上。
Gen生成密鑰k (key)
cEnck(m)
m:=Deck(m)
”表示隨機算法取得,即密文c 是由隨機的加密方式得到。”:= ”表示確定性的算法取得,即明文m 是由確定的解密方式得到
對於所有的明文mM 和由Gen生成的k ,有Deck(Enck(m))=m

mod運算
定義[xmodN]x 除以N 的餘數。
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.確定密鑰長度
假定明文是英文,pi 爲明文中byte i的頻率,ASCII中可打印的字符範圍是32i127 ,例如p97 即爲字符’a’的頻率。
由於分佈不均勻,因此可以根據英文各字母出現的統計頻率進行估計。
假定密鑰的長度是N
1.明文每N 個字符的移位是相同的。此時得到的pi 應該是分佈不均勻的。
2.統計明文每M 個字符的頻率,應當得到接近均勻的分佈。
爲了區分上述兩種情況

2.確定密鑰的每一位
當密鑰長度N 已知時,從第i 個字符開始,每間隔N 個字符的字符,稱爲第i 個密文流,這些字符都是和密鑰的同一位進行加密運算的。假定密鑰的這一位是B
若密文與B 的解密運算後得到的字符中含有ASCII字符在32和127之外的,表明B 的選取錯誤,這樣的B 表明明文中含有無法打印的字符。
接下來統計解密後得到的字符中小寫字母的頻率qa,qb,...,qz ,計算:
i=126qipii=126p2i0.065
實際操作中,我們找到使得i=126qipi 最大的B 即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章