武警甘肅省總隊 高 明
淺談對稱加密算法與非對稱加密算法的應用
武警甘肅省總隊 高 明
隨著信息技術和互聯網絡的不斷發展與進步,如何使重要信息在網絡中安全傳輸而不被竊取成為了一個重要問題,而最有效的方法就是數據加密技術。數據加密的算法種類很多,其加密方式主要可分為對稱加密和非對稱加密,本文主要對這兩種方式的基本原理和應用進行簡要分析。
數據加密;加密算法;數字簽名
隨著信息技術和互聯網絡的不斷發展與進步,對網絡信息的非法竊取與反竊取的斗爭也開始變得愈演愈烈。如何使信息在傳輸過程中更加高效和安全、如何證實收到信息的真實性等問題都已成為了當今的研究課題。本文重點介紹了數據加密的基本概念,同時還簡述了對稱加密算法以及非對稱加密算法的基本原理并介紹了相關應用。
對于數據加密來說,在處理過程中最基本過程是依據某種特定的算法對原來的明文文件或者是數據進行加密處理,從而將這段明文其轉變為一段不可識別的代碼,也就是密文。想要顯示密文的原本內容,只有使用與之對應的密鑰解密之后才能實現。通過數據加密的方法對文件進行處理可以使得文件不被人非法竊取或者是進行閱讀。
加密技術一般分為對稱式加密以及非對稱式加密兩類。目前采用的比較廣泛的是對稱式加密,主要特點是加密和解密使用同一個密鑰。而非對稱式加密在進行加密時則使用了兩個密鑰,加密和解密過程中分別使用不同的密鑰,這兩個密鑰分別為“公鑰”以及“私鑰”,想要能正常完成加密解密過程,就必需配對使用,而在使用過程中,“公鑰”是公開的,“私鑰”則必須由發送人保密,同時只能由持有人所有。對稱式的加密方法如果用于通過網絡傳輸加密文件,那么不管使用任何方法將密鑰告訴對方,都有可能被竊聽,而非對稱式的加密方法則具有一定的優越性,因為它包含有兩個密鑰,且僅有其中的“公鑰”是可以被公開的,接收方只需要使用自己已持有的私鑰進行解密,這樣就可以很好的避免密鑰在傳輸過程中產生的安全問題。
在目前常用的加密算法主要有:
DES:即對稱算法,數據加密程度標準,速度較快,適用場合為加密大量數據;
3DES:基于DES基礎的對稱算法,采用三個不同的密鑰對一塊數據進行三次加密,從而達到更高的強度;
RC2、RC4:也是對稱算法,但采用了變長的密鑰對大量數據進行加密,計算速度比DES快;
IDEA:國際數據加密算法,所使用128位密鑰能夠提供非常強的安全性能;
RSA:非對稱算法,由RSA公司發明,是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的;
DSA:數字簽名算法,是一種標準的DSS(數字簽名標準),嚴格來說不算加密算法;
AES:AES為高級加密標準,屬于對稱算法的一種,也是下一代加密算法的標準,他具有速度快,安全級別高的特點,Rijndael算法是AES標準的一個實現;
BLOWFISH:使用變長的密鑰,長度可達448位,運行速度很快;
MD5:嚴格來說不算加密算法,只能說是摘要算法。
對稱加密算法也叫做私鑰加密算法,他的特點是可以從解密密鑰中推算出來加密密鑰,與此同時解密密鑰也可以從加密密鑰通過推算而得出。問題是,在大多數的對稱加密算法使用中,加密密鑰與解密密鑰是相同的,真是因為這樣,所以這種加密算法也被稱為秘密密鑰算法或單密鑰算法。這種算法要求發送方以及接收方在進行通信之前,首先商定一個密鑰。由前文可知對稱加密算法的安全性很大程度上依賴于密鑰,一旦密鑰泄漏,任何人都可以對他們發送或接收的消息進行解密,所以在進行通信時,對密鑰的保護十分重要。
對稱加密算法的特點是計算量小,進行加密時加密速度快,同時加密的效率高。但同時缺點為:發送方和接收方均使用相同密鑰,所以會導致密鑰傳輸的安全性無法得到保證。除此之外,每當用戶使用對稱加密算法時,都需要使用不同的密鑰,這樣就會直接導致雙方所擁有的密鑰的數量極快的增加,而大量的密鑰就會造成用戶在對密鑰進行管理時十分困難。同時,對稱加密算法也很難在分布式網絡系統中進行應用,這是因為密鑰管理難度大,從而使用成本高。
非對稱加密算法在使用時需要同時擁有公開密鑰和私有密鑰,公開密鑰與私有密鑰相對應,如果在對數據的加密過程中使用了公開密鑰,那么只有使用相對應的私有密鑰才能解密;反之,如果在對數據進行加密時使用了私有密鑰,也只有使用與之相對應的公開密鑰才能解密。非對稱加密算法對傳信息進行加密的基本過程是:甲方首先生成一對密鑰同時將其中的一把作為公開密鑰;得到公開密鑰的乙方再使用該密鑰對需要加密的信息進行加密后再發送給甲方;甲方再使用另一把對應的私有密鑰對加密后的信息進行解密,這樣就實現了機密數據傳輸。非對稱加密算法的另一種加密過程是:甲方使用自己的私有密鑰對信息進行加密后再發送給乙方;乙方使用甲方提供的公開密鑰對加密后的信息進行解密,如果成功解密即可證實信息確實是由甲方所發,并非他人冒充,這就是現在常用的數字簽名技術。
非對稱加密算法的特點是算法強度復雜,其安全性依賴于算法與密鑰。由于其算法復雜,而使得加密解密的速度遠遠低于對稱加密算法,因此不適用于數據量較大的情況。由于非對稱加密算法有兩種密鑰,其中一個是公開的,所以在密鑰傳輸上不存在安全性問題,使得其在傳輸加密數據的安全性上又高于對稱加密算法。
保發送者無法否認曾發送過該信息。非對稱加密的缺點則是加密解密的速度,非對稱加密的計算速度遠遠慢于對稱加密,在一些比較極端情況下,非對稱加密的計算耗時則是對稱加密的運算耗時的1000倍以上。
對稱加密算法和非對稱加密算法在性能上各有其利弊,綜合應用兩種算法的優勢,可以在加密數據傳輸過程中實現高效和安全。下面以常用的SSH加密通訊方式的加密解密過程為例進行說明。SSH加密通訊方式主要包括以下幾個步驟:
(1)甲方使用非對稱加密算法生成一對密鑰并將其中的一把作為公鑰向乙方公開。
(2)乙方使用對稱加密算法生成一對密鑰,然后將其中的一把用甲方提供的公鑰加密后發送給甲方。
(3)甲方收到乙方發送的加密密鑰后用私鑰進行解密,獲得乙方提供的密鑰。
(4)雙方均使用對稱加密算法生成的兩把密鑰進行加密數據通訊。
通過綜合使用兩種類型的加密方式進行加密數據通訊,既保證了密鑰傳輸過程的安全性,又兼顧了數據加密的效率。
[1]段鋼.加密與解密[J].程序員,2003(9):53-53.
[2]耿國華.算法設計與分析[M].高等教育出版社,2012.
[3]秦志光.密碼算法的現狀和發展研究[J].計算機應用,2004,24(2):1-4.
[4]韋寶典,劉東蘇,王新梅.AES算法Rijndael的原理、實現和攻擊[J].通信技術,2002(12):1002-0802.
[5]劉傳領,范建華.RSA非對稱加密算法在數字簽名中的應用研究[J].通信技術,2009,42(3).
[6]黃志清.網絡安全中的數據加密技術研究[J].計算機系統應用,2000,16(5):20-21.
非對稱加密算法最大的優勢就在于密鑰分發手段相對簡單。假設兩個用戶要互相傳輸數據,首先雙方交換公鑰,如果一方用對方的公鑰加密,另一方只需用自己的私鑰解密即可。如果在一個企業中已有n個用戶,那么企業需要生成n對密鑰,同時分發這n個公鑰。因為公鑰是可以被公開的,用戶所要做的只是保管好自己的私鑰,這樣密鑰的分發將變得十分簡單。由于每個用戶擁有的私鑰是唯一的,所以其他用戶不但可以通過信息發送者的公鑰來驗證信息的來源是否真實,同時還可以確