HillCipher

出自KMU Wiki

(修訂版本間差異)
跳轉到: 導航, 搜索
在2008年3月19日 (三) 22:33所做的修訂版本 (編輯)
U9314017 (對話 | 貢獻)
(新頁面: = '''希爾加密法 Hill Cipher''' = * '''簡介:''' <dl><dd>希爾加密法是運用基本矩陣論原理的替代性(substitution)加密技術,由Lester S. Hill在1929年發明。...)
←上一個
當前修訂版本 (2008年3月20日 (四) 00:10) (編輯) (撤銷)
U9314017 (對話 | 貢獻)

 
(17個中途的修訂版本沒有顯示。)
第3行: 第3行:
* '''簡介:''' * '''簡介:'''
 +希爾加密法是運用基本矩陣論原理的<font color="#ff0000" size="2">替代性加密技術</font> (substitution),由Lester S. Hill在1929年發明。替代性加密的缺點是保留各字母的出現頻率,如此可針對各字母出現頻率以統計方法加以分析,很容易被破解。改善的方式為將原文分割幾個小組群然後逐字經過矩陣計算轉爲密碼文,希爾加密法即是利用此方法,而不採用一個字母替代一個字母的替代法。
-<dl><dd>希爾加密法是運用基本矩陣論原理的替代性(substitution)加密技術,由Lester S. Hill在1929年發明。&lt;/dd&gt;</dd></dl>+* '''優點:'''完全隱藏字元的頻率資訊。使用的矩陣越大,能隱藏的頻率分部資訊就越多。
- +* '''缺點:'''容易被已知明文攻擊擊破。 即得知明文與密文之相對,就能夠破解。
- +
* '''方法:''' * '''方法:'''
- 
-# 找出每個字母所對應的數字 
{| cellspacing="1" cellpadding="1" width="200" border="1" {| cellspacing="1" cellpadding="1" width="200" border="1"
第28行: 第26行:
|} |}
-# 將欲加密的內容每n個視為一小組+# 找出每個字母所對應的數字
-# 將每小組的資料與n*n的金鑰相乘+# 將原文的內容分割,每n個視為一小組
 +# 將每小組的資料與n*n的加密金鑰相乘
# 將3.所得出的結果各自mod26 # 將3.所得出的結果各自mod26
 +# 將4.所得的數字再找出對應的英文字母即為密文
 +# 使用密鑰矩陣之反矩陣即可解密
 +<blockquote dir="ltr">簡單來說,希爾加密法可用下列方式表示<br><font color="#ff0000" size="2">C=E<sub>K</sub>(P)=KP<br>P=D<sub>K</sub>(C)=K<sup>-1</sup>C=K<sup>-1</sup>KP=P</font><br>其中C是密文,E<sub>K</sub><sub></sub>是加密矩陣,D<sub>K</sub><sub></sub>是解密矩陣,K<sup>-1</sup><sup></sup>是K的反矩陣,P是明文。<br>要注意的是,用來加密的矩陣必須為可逆,也就是必須能找出其反矩陣才能進行解密的動作。</blockquote>
 +* <div>'''範例'''</div>
 +
 +'''''加密''''' <br>密鑰矩陣<br>┌1&nbsp; 3┐<br>└0 &nbsp;2┘<br>明文:HI TH ER E<font color="#ff0000" size="2">E</font> <br>找出各字母對應之數字,末尾的E爲填充字元,原文的每2個字母一組所以需要一個2*2的密鑰矩陣:
 +
 +{| cellspacing="1" cellpadding="1" width="200" border="1"
 +|-
 +| H&nbsp; I
 +| T&nbsp;&nbsp;&nbsp; H
 +| E&nbsp; R
 +| E&nbsp; E
 +|-
 +| 8&nbsp; 9
 +| 20&nbsp; 8
 +| 5&nbsp; 18
 +| 5&nbsp;&nbsp; 5
 +|}
 +
 +<br>HI 經過矩陣運算轉換爲 IS:&nbsp;<br>┌1 3┐8 =&gt;&nbsp; 1*8+3*9=35 mod26=9 =&gt;I&nbsp;<br>└0 2┘9 =&gt;&nbsp; 0*8+2*9=18 mod26=18=&gt;S <br>利用同樣的方法將其他明文轉成密文,注意最後兩個E轉出來並不為相同的密文
 +
 +'''''解密''''' <br>  反矩陣求法:<br>┌A B┐= 1/(AD-BC) *&nbsp;┌ D -B┐
 +
 +└C D┘&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└ -C A┘<br>先算出密鑰的反矩陣,然後再與密文相乘,即可求得明文。
 +
 +<br>
-* 代換密碼的缺點是它保留了各個字母的出現頻率,如此敵方即可針對各字母出現的頻率用統計的方式加以分析,很容易便可以破解其代換密碼。克服此項缺點的一種方式是將原文分割字母群,然後逐字的譯爲密碼文,而不采用前述一個字母替代一個字母的替代法。+<br>

當前修訂版本

[編輯] 希爾加密法 Hill Cipher

  • 簡介:

希爾加密法是運用基本矩陣論原理的替代性加密技術 (substitution),由Lester S. Hill在1929年發明。替代性加密的缺點是保留各字母的出現頻率,如此可針對各字母出現頻率以統計方法加以分析,很容易被破解。改善的方式為將原文分割幾個小組群然後逐字經過矩陣計算轉爲密碼文,希爾加密法即是利用此方法,而不採用一個字母替代一個字母的替代法。

  • 優點:完全隱藏字元的頻率資訊。使用的矩陣越大,能隱藏的頻率分部資訊就越多。
  • 缺點:容易被已知明文攻擊擊破。 即得知明文與密文之相對,就能夠破解。
  • 方法:
A B C D E ...
0 1 2 3 4 ...
  1. 找出每個字母所對應的數字
  2. 將原文的內容分割,每n個視為一小組
  3. 將每小組的資料與n*n的加密金鑰相乘
  4. 將3.所得出的結果各自mod26
  5. 將4.所得的數字再找出對應的英文字母即為密文
  6. 使用密鑰矩陣之反矩陣即可解密
簡單來說,希爾加密法可用下列方式表示
C=EK(P)=KP
P=DK(C)=K-1C=K-1KP=P

其中C是密文,EK是加密矩陣,DK是解密矩陣,K-1是K的反矩陣,P是明文。
要注意的是,用來加密的矩陣必須為可逆,也就是必須能找出其反矩陣才能進行解密的動作。
  • 範例

加密
密鑰矩陣
┌1  3┐
└0  2┘
明文:HI TH ER EE
找出各字母對應之數字,末尾的E爲填充字元,原文的每2個字母一組所以需要一個2*2的密鑰矩陣:

H  I T    H E  R E  E
8  9 20  8 5  18 5   5


HI 經過矩陣運算轉換爲 IS: 
┌1 3┐8 =>  1*8+3*9=35 mod26=9 =>I 
└0 2┘9 =>  0*8+2*9=18 mod26=18=>S
利用同樣的方法將其他明文轉成密文,注意最後兩個E轉出來並不為相同的密文

解密
  反矩陣求法:
┌A B┐= 1/(AD-BC) * ┌ D -B┐

└C D┘                          └ -C A┘
先算出密鑰的反矩陣,然後再與密文相乘,即可求得明文。