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