- 網絡空間安全導論
- 李劍 楊軍主編
- 1265字
- 2021-09-17 17:38:47
2.1 對稱密碼學
對稱密碼學的核心是對稱加密算法。對稱加密算法是應用較早的加密算法,技術成熟。在對稱加密算法中,數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密算法處理后,使其變成復雜的加密密文發送出去。接收方收到密文后,若想解讀原文,則需要使用加密過程中用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發、收雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。
2.1.1 對稱加密算法的原理與特點
對稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。有時又叫傳統密碼算法,就是加密密鑰能夠從解密密鑰中推算出來。同時,解密密鑰也可以從加密密鑰中推算出來。而在大多數對稱算法中,加密密鑰和解密密鑰是相同的,所以也稱這種加密算法為秘密密鑰算法或單密鑰算法。它要求發送方和接收方在安全通信之前,商定一個密鑰。對稱算法的安全性依賴于密鑰,泄露密鑰就意味著任何人都可以對他們發送或接收的消息進行解密,所以密鑰的保密性對通信的安全性至關重要。對稱加密原理如圖2.1所示。

圖2.1 對稱加密原理
對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。對稱加密算法的不足之處是,通信雙方都使用同樣的鑰匙,因此密鑰交換或者說密鑰管理比較困難,安全性很難得到保證。此外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的唯一密鑰,這會使得發、收信雙方所擁有的密鑰數量呈幾何級數增長,密鑰管理成為用戶的負擔。對稱加密算法的加解密過程示意圖如圖2.2所示。

圖2.2 對稱加密算法的加解密過程示意圖
對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。而與公開密鑰加密算法相比,對稱加密算法雖然能夠提供加密和認證,但由于缺乏簽名功能,使得使用范圍有所縮小。
2.1.2 對稱加密算法舉例
典型的對稱加密算法包括DES算法、3DES算法、TDEA算法、Blowfish算法、RC5算法、IDEA算法、AES加密算法等。下面以DES算法為例,簡要介紹對稱加密算法。
DES算法(見圖2.3)又稱為美國數據加密標準,是1972年由美國IBM公司研制的對稱密碼體制加密算法。明文按64位進行分組,密鑰長64位,密鑰事實上是56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位,使得每個密鑰都有奇數個1),分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。

圖2.3 DES算法結構
DES算法入口參數有三個:key、data、mode。key為加密和解密使用的密鑰,data為加密和解密的數據,mode為其工作模式。當模式為加密模式時,明文按照64位進行分組,形成明文組,key用于對數據加密;當模式為解密模式時,key用于對數據解密。實際運用中,密鑰只用到了64位中的56位,這樣才具有很高的安全性。
DES算法把64位的明文輸入塊變為64位的密文輸出塊(分為L0和R0兩部分),它所使用的密鑰(用Kn表示)也是64位,整個DES算法的主流程圖如圖2.4所示。

圖2.4 DES算法的主流程圖
由上面的原理和流程可以看出,對稱加密算法的核心是位置的代換和字母的替換。感興趣的讀者可以自己編寫DES算法。網上也有一些免費代碼可以參考。