2-4 取代加密法
簡單的說,『取代加密法』(Substitution Cipher)就是將原文中的字母由另一個字母來取代,取代的順序不一定有一定的規則。加密與解密雙方必須共同擁有一份替換表,而此替換表便就是雙方共享『鑰匙』。這與換位法之間有很大的不同,換位法只改變字母排列順序,原文的字母與加密後的字母還是一樣,只是位置不同而已。然而,使用取代加密法則不然,加密後的字母與原文字母完全相異。我們用一個簡單的替換表,來觀察取代加密法的運作程序;替換表如下:
我們還是利用前一節的明文為例子來看加密後的密文結果:(空白鍵不計) 明文:I SIT BY MY WINDOW WAITING FOR YOU 密文:RHRGYBNBDRMWLDDZRGRMTULIBLF 利用替換表的取代加密法太容易被破解了,這是因為每個字母都有一定的替換字母;且在我們日常生活中常常重複出現許多單字或句子,而這些單字大多有一定的規則,有心人士只要去統計一些常出現的單字,便可以找出替換表了。以下介紹兩種較複雜的取代法。 2-4-1 旋轉取代法 利用替換表最大的缺點就是取代字母是固定的,我們可以針對這個缺點來改進,讓替換字母隨著一定的規則改變,這就是『旋轉取代加密法』(Rotation Substitution Cipher)。我們將兩個圓盤重疊在一起,下面圓盤是固定的,而上面的圓盤可以左右轉動,就好像保險箱的號碼鑰匙一樣。上下圓盤都刻有英文字母,下圓盤代表原文字母;而上圓盤表示加密後的字母,如圖 2-3 所示。
圖 2-3 旋轉取代加密法 我們將圖 2-3 (a) 的上旋轉盤向右轉 7 格後如圖 2-2 (b) 所示,所編出來的密文如下:(空白不計) 明文:I SIT BY MY WINDOW WAITING FOR YOU 密文:BLBMURFRPBGWHPPBMBGZYHKRHN 乍看起來,旋轉替換取代法與替換表並沒有兩樣,不要緊張,好戲還在後頭呢!加密與解密雙方可以協議旋轉盤的轉動次序,作為雙方的秘密鑰匙;譬如,鑰匙為 {5, 7, 4, 2},則表示第一個字母轉動 5 格、第二個字母再轉動 7 格、第三個字母再轉動 4 格、第四個字母再轉動 2 格,第五個字母以後又恢復 5、7、4、2 的轉動,依此類推。如此一來,表示替換表隨每一個字母變化。這樣還是不夠的話,還可以如保險箱的密碼一樣,增加了左右轉動,夠複雜了吧! 2-4-2 旋轉機 一層的旋轉替換還不夠複雜的話,我們可以結合多個旋轉盤成為一個『旋轉機』(Rotor Machine),夠恐怖了吧!這是第二次世界大戰時,德軍讓聯軍百思不解的加密技巧,最後還是由一個俘虜中得到破解的方法,到底聯軍還是無法自己破解它。以圖 2-4 為範例,德軍非常聰明的將旋轉機安裝在打字機內,其中包含了三個旋轉盤,旋轉盤內部都有電線直接連接,旋轉盤之間也可接觸電流導通。每天的最後一次通訊,由指揮中心以密語通知每一個旋轉盤的轉動次數。當通訊者敲入每一個字母(明文輸入)時,電流將隨者轉盤接觸導通道另一個字母位置,然後發射出該字母的電波訊號。
圖 2-4 旋轉機加密法 2-5 區塊加密法的基本原理 數位資料是一串不定長度的 0 與 1 組合而成,對於它的密碼系統就很難直接用取代與換位方法,而需要資料分段來加密或解密,這就是『區塊加密法』(Block Cipher)。它將不定長度的資料,以某一固定長度為單位(大多是 64 bits),分割為若干個區塊。每一明文區塊經過加密編碼後,產生相同長度的密文區塊。圖 2-5 為區塊加密法的概略圖,明文經過分割區塊後,一個接著一個進入加密器處理;處理完成後,密文區塊也是一個接一個輸出。實作上並非完全如此,如果區塊之間完全是獨立加密的話,攻擊者也可以分別採用獨立的密文與明文配對來破解。因此,輸出密文區塊之間需要特殊處理才行,這方面稱為操作模式,於 2-7 節中再介紹。
圖 2-5 區塊加密法 一個明文資料 M 被分割成許多小區塊後,表示為:M1 || M2 || M3‧‧‧|| Mn,每個區塊都使用相同的鑰匙(key)來加密,最後可得到密文: C = Ek(M) = Ek(M1) || Ek(M2) || Ek(M3) || ‧‧‧|| Ek(Mn) 既然,我們將明文區分為若干個區塊,來
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|