6.2 數據加密方法
據不完全統計,到目前為止,已經公開發表的各種加密算法多達數百種。下面我們將分別介紹簡單加密方法、對稱算法、公鑰算法和PGP的應用。
1.簡單的加密方法:換位和置換
換位和置換(transposition and substitution ciphers)是兩種主要的編碼方法,是組成最簡單的密碼基礎。換位很像是一種字母游戲,打亂字母的順序,并設法用這些打亂的字母組成一個單詞。在換位密碼中,數據本身并沒有改變,它只是被安排成另一種不同的格式,有許多種不同的置換密碼,有一種是用凱撒大帝的名字Julias Caesar命名的,即凱撒密碼。它的原理是每一個字母都用其前面的第三個字母代替,如果到了最后那個字母,則又從頭開始算。字母可以被在它前面的第n個字母所代替,在凱撒的密碼中n就是3。
2.基于密鑰的密碼算法
這種算法通常有兩類:對稱算法和公開密鑰算法。
(1) 對稱算法
對稱算法,就是加密密鑰能夠從解密密鑰中推算出來,反過來也成立。大多數對稱算法中,加、解密的密鑰是相同的,這些算法也稱為秘密密鑰算法或單密鑰算法。它要求發送者和接收者在安全通信之前,商定一個密鑰。算法的安全性依賴于密鑰,只要通信需要保密,密鑰就必須保密。
對稱算法又分為兩類:分組算法和序列算法,兩者區別在于分組算法是對一個大的明文數據塊(分組)進行運算;序列算法是對明文中單個位(或字節)進行運算。對稱算法體制的發展趨勢將以分組密碼為重點,著名的對稱密碼算法有:
1) DES(Data Encryption Standard)數據加密標準
最著名的保密密鑰或對稱密鑰加密算法DES(Data Encryption Standard)是由IBM公司在70年代發展起來的,該標準于 1977年由美國國家標準局頒布,主要用于民用敏感信息的保護,后被國際標準化組織接受作為國際標準。DES主要采用替換和移位的方法,使用56位密鑰每次處理64位數據,運算速度快,易于用軟件實現,也適合在專用芯片上實現。DES是一種世界公認的好的加密算法,自它問世以來經受住了許多科學家的研究和破譯,曾為全球貿易、金融等部門提供了可靠的通信安全保障。但它也有明顯的缺點,密鑰太短, 有56位。目前已有許多DES被破譯的報道,因此為了提高安全性,DES又有了新的發展。比如:三重 DES 使用雙密鑰加密的方法,即使用兩個 56 位的密鑰 k1、k2,發送方用 k1 加密,k2 解密,再使用 k1加密。接收方則使用k1解密,k2加密,再使用k1解密,其效果相當于將密鑰的長度增加到112位。還有三重DES的變形算法,使用三個獨立密鑰,相當于密鑰長度增加到168位等。
2) IDEA(International Data Encryption Algorithm)國際數據加密算法
IDEA由瑞士的Xuejia Lai和James Massey于1990年正式公布,并在以后得到增強。這種算法是在DES算法的基礎上發展起來的,類似于三重DES。發展IDEA也是因為感到DES使用的密鑰太短。IDEA的密鑰為 128 位,這么長的密鑰在未來若干年內應該是安全的。IDEA 算法也基于分組,它采用軟件和硬件實現都同樣快速,目前軟件實現的IDEA比DES快兩倍。由于IDEA是在美國之外提出并發展起來的,避開了美國法律上對加密技術的諸多限制。因此,有關IDEA算法和實現技術的資料可以自由出版和交流,可極大地促進IDEA的發展和完善。但由于該算法是一個相對較新的算法,針對它的攻擊也還不多,還未經過較長時間的考驗。因此,尚不能判斷出它的問題和缺陷。
這一類算法的優點是有很強的保密強度,且經受住時間的檢驗和攻擊,但其密鑰必須通過安全的途徑傳送。因此,其密鑰管理成為系統安全的重要因素。
(2) 公開密鑰算法
公開密鑰算法是指使用一對密鑰加解密信息,加密的密鑰不同于解密的密鑰,而且解密的密鑰不能根據密鑰在合理的時間和財力內計算出來。之所以叫公開密鑰算法(以下簡稱公鑰算法),是因為加密密鑰能夠公開,誰都可以使用加密密鑰加密信息,但只有用相應的解密密鑰才能解密信息。
著名的公鑰算法有:
1) RSA算法
RSA由美國的Rivest、Shamir和Adleman于1978年提出。該算法基于大數分解的難度,即已知合數n,求pq,使n=pq。所以隨著大整數分解算法和計算能力的不斷提高,對RSA的破譯能力也在增強。有報道482位的RSA已被利用數域篩NFS分解出來,512位也可以在數月時間被分解,1024位的RSA目前仍是比較安全的。與DES相比,RSA擁有更高的安全。與DES相比,RSA擁有更高的安全性,但執行速度慢,因些兩者經常結合起來使用,DES加密速度快,適合加密較長的報文;而 RSA 可解決 DES 密鑰分配的問題。比如:若 A 要與 B 通信,首先 A產生一個與B通信的DES密鑰,用B的公鑰對通信密鑰加密后傳給B,B用其私有密鑰(只有B擁有)解密,獲得雙方的一次性通信DES密鑰。然后雙方采用此DES通信進行保密通信。
2) Diffe-Hellman算法
該算法是第一個公鑰算法,由美國的Diffe和Hellman于1976年提出。其安全性源于在有限域上計算離散對數比計算指數更困難,該算法主要用于密鑰交換。協議如下:首先A與B協商一個大的素數n和g ,g是模n的本原元;A選取一個大的隨機數x并且發送給B:X=gx mod n;B選取一個大的隨機數y并且發送給A:Y=gy mod n;A計算k2=Yx mod n;B計算k2=Xy mod n,k1和k2都等于gxy mod n,偷聽者即使知道n,g,X和Y,也無法計算出k,除非他們計算離散對數,因此k是A與B的秘密密鑰。
3) 橢圓曲線
橢圓曲線已研究了許多年,Koblitz和Miller 于1985年分別提出將它用于公鑰密碼體制。橢圓曲線的吸引人之處在于提供了由元素和組合規則來組成群的構造方法,
|
新聞熱點
疑難解答
圖片精選