數據加密原理與實現方法

12.1  數據加密原理與實現方法
無論是網絡傳輸中使用的安全傳輸協議,還是安全手段或安全措施,它們都需要使用加密算法和相應的解密算法。不瞭解與此相關的加密原理和算法,就很難深刻地認識各種安全傳輸協議,以及實現網絡安全所採用的數字憑證、數字簽名等技術,所以我們在本節集中介紹一下。

12.1.1  基本概念
加密方法屬於計算機密碼學範疇。長久以來,計算機密碼學作爲一門研究計算機數據加密、解密及其變換的艱深的學科,鮮爲普通用戶所瞭解。過去只有間諜及軍事人員對加密技術感興趣,並投入了大量人力、物力和財力進行祕密研究。直到最近十幾年,隨着計算機網絡及通信技術的民用化發展,尤其是商業和金融事務的介入,密碼學的研究纔得到了前所未有的廣泛重視。密碼學涉及到很多高深的數學理論,很難在一節內容中進行比較全面的論述。這裏我們僅介紹一些基礎知識,讓讀者瞭解網絡信息加密及數字簽名、數字憑證的實現原理,並對常用加密方法的優缺點有一些基本認識。

所謂加密,就是把數據信息即明文轉換爲不可辨識的形式即密文的過程,目的是使不應瞭解該數據信息的人不能夠知道和識別。將密文轉變爲明文的過程就是解密。加密和解密過程形成加密系統,明文與密文統稱爲報文。任何加密系統,不論形式如何複雜,實現的算法如何不同,但其基本組成部分是相同的,通常都包括如下4個部分:

(1) 需要加密的報文,也稱爲明文;

(2) 加密以後形成的報文,也稱爲密文;

(3) 加密、解密的裝置或算法;

(4) 用於加密和解密的鑰匙,稱爲密鑰。密鑰可以是數字、詞彙或者語句。

報文加密後,發送方就要將密文通過通信渠道傳輸給接收方。傳輸過程中,即密文在通信渠道傳輸過程中是不安全的,可能被非法用戶即第三方截取和竊聽,但由於是密文,只要第三方沒有密鑰,只能得到一些無法理解其真實意義的密文信息,從而達到保密的目的。整個過程如圖12.1所示。

 

圖12.1  加密與解密過程

長久以來,人們發明了各種各樣的加密方法,爲便於研究,通常把這些方法分爲傳統加密方法和現代加密方法兩大類。前者的共同特點是採用單鑰技術,即加密和解密過程中使用同一密鑰,所以它也稱爲對稱式加密方法;而後者的共同特點是採用雙鑰技術,也就是加密和解密過程中使用兩個不同的密鑰,它也稱爲非對稱式加密方法。下面就簡單介紹一下這些加密方法。

12.1.2  基於單鑰技術的傳統加密方法
這類方法主要包括代碼加密法、替換加密法、變位加密法和一次性密碼簿加密法等。

(1) 代碼加密法。通信雙方使用預先設定的一組代碼表達特定的意義,而實現的一種最簡單的加密方法。代碼可以是日常詞彙、專用名詞,也可以是某些特殊用語。例如:

密文:姥姥家的黃狗三天後下崽。

明文:縣城鬼子三天後出城掃蕩。

這種方法簡單好用,但通常一次只能傳送一組預先約定的信息,而且重複使用時是不安全的,因爲那樣的話竊密者會逐漸明白代碼含義。

(2) 替換加密法。這種方法是制定一種規則,將明文中的每個字母或每組字母替換成另一個或一組字母。例如,下面的這組字母對應關係就構成了一個替換加密器:

明文字母:A  B  C  D  E  F……

密文字母:K  U  P  S  W  B……

雖然說替換加密法比代碼加密法應用的範圍要廣,但使用得多了,竊密者就可以從多次蒐集的密文中發現其中的規律,破解加密方法。

(3) 變位加密法。與前兩種加密方法不同,變位加密法不隱藏原來明文的字符,而是將字符重新排序。比如,加密方首先選擇一個用數字表示的密鑰,寫成一行,然後把明文逐行寫在數字下。按照密鑰中數字指示的順序,將原文重新抄寫,就形成密文。例如:

密鑰:6835490271

明文:小趙拿走黑皮包交給李

密文:包李交拿黑走小給趙皮

(4) 一次性密碼簿加密法。這種方法要先制定出一個密碼薄,該薄每一頁都是不同的代碼表。加密時,使用一頁上的代碼加密一些詞,用後撕掉或燒燬該頁;然後再用另一頁上的代碼加密另一些詞,直到全部的明文都加密成爲密文。破譯密文的唯一辦法就是獲得一份相同的密碼簿。

計算機出現以後,密碼簿就無需使用紙張而使用計算機和一系列數字來製作。加密時,根據密碼簿裏的數字對報文中的字母進行移位操作或進行按位的異或計算,以加密報文。解密時,接收方需要根據持有的密碼簿,將密文的字母反向移位,或再次作異或計算,以求出明文。

數論中的“異或”規則是這樣的:1^1=0,0^0=0;1^0=1,0^1=1。下面就是一個按位進行異或計算的加密和解密實例:

加密過程中明文與密碼按位異或計算,求出密文:

明文:101101011011

密碼:011010101001

密文:110111110010

解密過程中密文與密碼按位異或計算,求出明文:

密文:110111110010

密碼:011010101001

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