信息安全 chap-3 传统加密方法
傳統加密方法
- 1 換位法
- 2 簡單代替密碼
- 基于仿射變換的密碼
- 3 同音代替密碼
- 4 多表代替密碼
- Vigenère密碼
- Beaufort密碼
- 重合度
- Kasiski方法
- 游動密鑰密碼
- Vernam密碼
- 一次一密
- 5 多字母組代替密碼
- Playfair密碼
- Hill密碼
1 換位法
- 列換位密碼(按列寫出密文)
- 周期換位算法(以一定的周期來變換明文字符)
- 雙軌,鑰控,路徑加密法
可以通過字母出現頻率來判別換位密碼
還可以參考雙字母和三字母組合的出現頻率分布表
2 簡單代替密碼
將明文字母表中的每個字母用密文字母表中相應的字母來代替
凱撒密碼: f(a) = (a+k) mod n
a:明文在字母表中位置 ?n:字母表長度 ?k:字母右移k個位置
基于仿射變換的密碼
基于仿射變換的密碼: f(a) = (ak1+k0) mod n
其中:k1和n是互素的
(對應密文為在原字母表中的位置)
基于仿射變換的密碼解密:求解聯立方程組
已知t個對應的明文字母mi和密文字母ci (1?\leqslant?i?\leqslant?t),則可以通過求解聯立方程組來確定系統k1和k0
{(m1k1+k0)modn=c1......(mtk1+k0)modn=ct\left\{ \begin{aligned} (m_1k_1+k_0) mod n=c_1\\ ......\\ (m_t k_1+k_0) mod n=c_t \end{aligned} \right. ??????(m1?k1?+k0?)modn=c1?......(mt?k1?+k0?)modn=ct??
單字母頻率分布
3 同音代替密碼
將明文字母表中的每個字母a映射到一系列密文字母f(a),這些f(a)稱為同音字母
二階同音代替密碼:
將一個明文消息M=m1m2……由一個偽消息X=x1x2……加密成密文C=c1c2 ……每個密文元素ci是從f1(mi)和f2(xi)交叉處選取
4 多表代替密碼
使用從明文字母到密文字母的多個映射,每個映射是像簡單代替密碼中的一對一映射
Vigenère密碼
Vigenère密碼是一種基于移位字母表的周期代替密碼
例:明文INTELLIGENT用密鑰PLAY加密為:
M=INTE LLIG ENT
K=PLAY PLAY PLA
Ek(M)=XYTC AWIE TYT
Beaufort密碼
加密:fi(a)=(ki-a) mod n
解密:fi-1(c)=(ki-c) mod n
反轉字母表中的字母,然后右移ki+1位
fi(a)=[(n-1)-a+(ki+1)]) mod n
若ki=D, 則從明文到密文的映射fi(a)=(3-a) mod 26
A:ABCDEFGHIJKLMNOPQRSTUVWXYZ
C:DCBAZYXWVUTSRQPONMLKJIHGFE
變異的Beaufort密碼: fi(a)=(a-ki) mod n
重合度
用來度量密文中字母出現頻率的變化程度的,用IC來表示
單個字符的出現頻率與均勻分布的偏差定義為粗糙度(MR)
MR=∑i=0n?1(pi?1n)2MR=\sum^{n-1}_{i=0}(p_i-\frac{1}{n})^2MR=i=0∑n?1?(pi??n1?)2
IC:從給定的密文中隨機選取兩個字母相同的概率
IC=∑i=025Fi(Fi?1)N(N?1)IC=\frac{\sum_{i=0}^{25}F_i(F_i-1)}{N(N-1)}IC=N(N?1)∑i=025?Fi?(Fi??1)?
Kasiski方法
通過分析密文的重復部分來確定周期
當一段重復的明文間隔為密鑰長度的倍數時,密文就會出現重復
游動密鑰密碼
密鑰與明文一樣長,可以挫敗Kasiski攻擊(假設密鑰沒有重復)
方法:使用一本書(或其他文件)中的文字作為基于移位字母表的代替密碼的密鑰。密鑰由書的標題和開始位置來指定
破譯:Friedman方法。假設所有密文字母都對應于高頻字母對
Vernam密碼
加密:ci=mi+ki mod 2
解密:mi=ci+ki mod 2
類似一個二進制字母表0,1上的Vigenere密碼
Vernam密碼在微電子行業中可以通過對每個明文/密鑰對異或運算來實現
一次一密
密鑰為一個隨機且不重復的字符序列
5 多字母組代替密碼
Playfair密碼
Playfair密碼是一個雙字母組代替密碼,用英國科學家Lyon Playfair的名字命名
對于矩陣中的每一對明文字母m1m2按如 下規則加密(m1m2對應的密文為c1c2)
Hill密碼
完成從d個明文字母到d個密文字母的線性變換
設d=2,令M= m1m2,將M加密成:
C=Ek(M)=KM mod n,其中:
M= (m1,m2)T , C= (c1,c2)T , K為系數矩陣
解密時使用K的逆矩陣K-1:
Dk(C)= K-1C mod n= K-1KM mod n=M
其中K-1 K mod n=I,I為2×2的單位矩陣
總結
以上是生活随笔為你收集整理的信息安全 chap-3 传统加密方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滴滴出行app——网约车出行的背后(上)
- 下一篇: 从零开始再造打爆李世石的AlphaGo: