蔣澤宇
摘要:隨著計(jì)算機(jī)技術(shù)的發(fā)展和信息社會(huì)的到來,通過網(wǎng)絡(luò)交換信息已經(jīng)成為人們主要交換信息的方式,所以信息安全就變得尤為重要。在古代,密碼學(xué)常常用于軍事、政治等機(jī)密性部門之中。然而,由于現(xiàn)代計(jì)算機(jī)技術(shù)的不斷發(fā)展,我們許多使用的計(jì)算機(jī)軟件的安全需要依賴于密碼技術(shù)。因此,密碼學(xué)逐步的發(fā)展成為一個(gè)綜合性的學(xué)科,它涉及的學(xué)科非常之多,與信息論、數(shù)學(xué)、計(jì)算機(jī)科學(xué)等都有著緊密的聯(lián)系。密碼學(xué)在保障網(wǎng)絡(luò)信息的完整性、真實(shí)性和機(jī)密性發(fā)揮了及其大的作用,這些方面都大大提升了網(wǎng)絡(luò)的安全性。本文主要闡述了密碼學(xué)的基本理論和它的技術(shù)應(yīng)用,希望能為研究人員提供一定的幫助。
關(guān)鍵詞:密碼學(xué);網(wǎng)絡(luò)安全;計(jì)算機(jī);加密;解密
Abstract: With the development of computer technology and the advent of the information society, the exchange of information through the network has become the main way for people to exchange information, so information security has become particularly important. In ancient times, cryptography was often used in military, political and other confidential departments. However, due to the continuous development of modern computer technology, the security of many computer software depends on cryptography. Therefore, cryptography has gradually developed into a comprehensive discipline, which involves many disciplines, and is closely related to information theory, mathematics and computer science. Cryptography has played an important role in ensuring the integrity, authenticity and confidentiality of network information, and has greatly improved the security of the network. This article mainly expounds the basic theory of cryptography and its technical application, hoping to provide some help for researchers.
Key words: cryptography;network security;computer;encryption;decryption
0? 引言
密碼學(xué)是一門研究如何編制和破譯密碼的學(xué)科。在現(xiàn)代,密碼學(xué)技術(shù)已經(jīng)應(yīng)用到了各個(gè)領(lǐng)域之中,除了保護(hù)信息的機(jī)密性之外,還包括數(shù)字簽名、安全協(xié)議、權(quán)限管理和身份鑒別等方面的技術(shù)。它是實(shí)現(xiàn)網(wǎng)絡(luò)信息安全的關(guān)鍵技術(shù)之一,因此,它經(jīng)常作為計(jì)算機(jī)的一個(gè)分支學(xué)科。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展和信息時(shí)代的到來,各種計(jì)算機(jī)軟件應(yīng)用逐漸的出現(xiàn)在了人們的日常生活之中,例如電子商務(wù)、電子金融、電子政務(wù)等,這些都是必須要保證信息安全的網(wǎng)絡(luò)系統(tǒng),密碼學(xué)也在網(wǎng)絡(luò)安全應(yīng)用中得到不斷地發(fā)展。因此,密碼學(xué)也成為了網(wǎng)絡(luò)安全中的一門基礎(chǔ)學(xué)科。
1? 關(guān)于密碼學(xué)的發(fā)展簡介
密碼學(xué)的發(fā)展源遠(yuǎn)流長,甚至有幾千年的歷史。發(fā)展階段主要分為三個(gè)時(shí)期:古典密碼時(shí)期、近代密碼時(shí)期和現(xiàn)代密碼時(shí)期。古典密碼時(shí)期就長達(dá)數(shù)千年,雖然這一時(shí)期的密碼形式多樣,但是多為簡單的手工書寫,其中的加密方法包括文字的替換、隱寫術(shù)等等。近代密碼時(shí)期,大多用無線電技術(shù)來實(shí)現(xiàn),在近代密碼時(shí)期,出現(xiàn)了無線電密碼技術(shù)。在那時(shí),專門用來加密密碼的輪轉(zhuǎn)機(jī)雖然大大提高了加密速度,但是產(chǎn)生的密鑰數(shù)量卻是有限的,很容易就被破解掉。因此,密碼技術(shù)在近代還不能稱之為一門真正意義上的學(xué)科。因此,也有學(xué)者認(rèn)為近代密碼時(shí)期和古典密碼時(shí)期應(yīng)該合為同一個(gè)時(shí)期。在近代時(shí)期,幾乎沒有過關(guān)于密碼學(xué)相關(guān)的文獻(xiàn),直到香農(nóng)發(fā)表的一篇論文。他將信息論這一概念引入密碼學(xué)之中,引入了不確定性、唯一解距離等計(jì)算方法,為現(xiàn)代密碼學(xué)的發(fā)展打下了堅(jiān)實(shí)的基礎(chǔ)。此后,美國國家標(biāo)準(zhǔn)局發(fā)布了DES(數(shù)據(jù)加密標(biāo)準(zhǔn)),并應(yīng)用于多個(gè)部門。隨后,著名的密碼學(xué)家迪菲和赫爾曼首次提出了RAS體制(公鑰密碼體制),打開了密碼學(xué)這門學(xué)科的新領(lǐng)域。由于計(jì)算機(jī)技術(shù)的飛速發(fā)展,過去人們認(rèn)為足夠安全的DES算法,已經(jīng)不夠安全了。于是,比利時(shí)的幾位密碼學(xué)家提出了新的AES算法,取代了從前的DES算法。此后,密碼學(xué)的研究逐漸走向了高潮,在信息時(shí)代的今天,人們更是離不開密碼學(xué)技術(shù)。
2? 密碼學(xué)的基本理論
2.1 密碼學(xué)的基本要素
密碼學(xué)的五大要素為:消息空間(M)、密文空間(C)、密鑰空間(K)、加密算法(E)和解密算法(D),以上五個(gè)元素成為密碼學(xué)的一個(gè)密碼系統(tǒng)。消息空間,又稱為銘文空間,就是還沒有進(jìn)行加密處理的消息集合。密文空間同理,指經(jīng)過加密處理的消息集合。密鑰又分為加密密鑰和解密密鑰,它通常是一個(gè)可變的參數(shù),用于解開加密信息或者偽裝信息的一把“鑰匙”。密鑰根據(jù)一定的規(guī)則和算法,也就是加密算法(解密算法),把明文(密文)轉(zhuǎn)換成密文(明文)。簡單來說,在密碼學(xué)中,我們認(rèn)為這個(gè)密碼系統(tǒng)是不是足夠安全,要看這個(gè)密碼系統(tǒng)是否容易被破解。如果密碼破譯者能夠直接根據(jù)密文推算出明文或者密鑰,或是密碼攔截者可以直接獲取這個(gè)密碼系統(tǒng)的密鑰序列,那么我們就稱這個(gè)密碼系統(tǒng)是不夠安全的。另外,一個(gè)安全的密碼系統(tǒng)還應(yīng)該滿足的是,消息接收者能夠得到完整并且真實(shí)的消息,加密和解密的算法也應(yīng)該相對于簡單輕便。
2.2 密碼學(xué)的基本功能
密碼學(xué)的主要目的就是隱藏信息的真正含義,而不是抹去信息本身。早期的密碼學(xué)僅僅是可以對文字進(jìn)行加解密操作,但隨著科技技術(shù)的發(fā)展,如今已經(jīng)可以對語音、圖像等進(jìn)行加解密操作了。密碼學(xué)對信息提供的保護(hù)主要有四個(gè)方面:機(jī)密性、數(shù)據(jù)完整性、鑒別和不可否認(rèn)性。
2.2.1 機(jī)密性
只允許被授權(quán)的用戶查看信息內(nèi)容,非授權(quán)用戶可以查看加密厚的信息,但是不能破解出其中的真正含義。
2.2.2 數(shù)據(jù)完整性
指數(shù)據(jù)或信息在傳遞過程中不被受到非授權(quán)的修改或破壞。非授權(quán)修改包括對信息的篡改、刪除、插入等,通常通過數(shù)據(jù)簽名、數(shù)據(jù)加密等技術(shù)來保證對數(shù)據(jù)的完整性。另外,用戶本身也需要能夠檢測出非法操作的能力。
2.2.3 鑒別
鑒別,包括對用戶身份和數(shù)據(jù)來源的識別。對于一次安全的通信過程,通信雙方必須都為預(yù)期的身份,這是所說的身份的識別。即非法用戶不能夠冒充通信的對方去獲取信息,雙方能夠?qū)Ψ降纳矸葸M(jìn)行鑒別。對于數(shù)據(jù),能夠由所預(yù)期的實(shí)體發(fā)送或者接受,這就是對數(shù)據(jù)來源的識別。可以通過數(shù)據(jù)加密、數(shù)字簽名等技術(shù)來保證這種鑒別服務(wù),從提供數(shù)據(jù)鑒別這方面的服務(wù)來說,密碼學(xué)的鑒別服務(wù)也包括了數(shù)據(jù)完整性服務(wù)。
2.2.4 不可否認(rèn)性
發(fā)送方不能否認(rèn)自己發(fā)送信息的行為。接收方收到信息后,也不能夠否認(rèn)自己接收到了發(fā)送方的信息,即密碼學(xué)的不可否認(rèn)性。可以通過對稱加密算法或者非對稱加算法來實(shí)現(xiàn)這服務(wù)。
密碼學(xué)實(shí)質(zhì)上就是研究如何讓信息具有機(jī)密性、數(shù)據(jù)完整性、可鑒別性和不可否認(rèn)性的一門學(xué)科。它主要包含兩個(gè)分支:密碼編碼學(xué)和密碼分析學(xué)。密碼編碼學(xué)就是研究安全的密碼協(xié)議。在密碼學(xué)中,除了加密算法之外,密碼協(xié)議也一樣重要。密碼協(xié)議就是指使用密碼技術(shù)的通信協(xié)議,用來保證數(shù)據(jù)的機(jī)密性和完整性。密碼分析,就是研究如何破解密碼的學(xué)科。
2.3 密碼系統(tǒng)的安全性
一個(gè)密碼系統(tǒng)的安全性,跟密碼算法本身和除了算法之外的一些因素都有關(guān)系。一個(gè)密碼算法本身具有的安全性,是密碼系統(tǒng)安全性的基礎(chǔ)保證,它取決于密碼的設(shè)計(jì)水平等等。攻擊者如果想要破譯一個(gè)密碼系統(tǒng),還可以通過非技術(shù)手段來達(dá)到目的。例如,收買相關(guān)的管理人員等等。這些都是可能存在的,密碼算法本身之外的一些漏洞。因此,一個(gè)密碼算法的安全性并不能完全代表一個(gè)密碼系統(tǒng)的安全。
2.4 如何評估密碼系統(tǒng)的安全性
2.4.1 無條件安全性
這種情況是指,攻擊者擁有了無限的資源,但是卻無法得到任何對破譯該密碼系統(tǒng)有意的信息,即無法破譯此密碼系統(tǒng)。我們稱這樣的密碼系統(tǒng)具有無條件安全性。但是,這種密碼體制卻難以實(shí)現(xiàn),因?yàn)槠涿荑€的生成和管理都極其苦難,并且不能夠重復(fù)使用密鑰。
2.4.2 可證明安全性
指此密碼體制的安全性與某個(gè)很困難的問題相關(guān)(數(shù)學(xué)問題),例如計(jì)算離散對數(shù)等,這些數(shù)學(xué)問題解起來往往非常困難。但是,這種方法并不能完全說明了此密碼體制的安全性。
2.4.3 計(jì)算安全性
計(jì)算安全性,又稱為實(shí)際安全性。指攻擊者所擁有的計(jì)算資源還達(dá)不到破解此密碼體制的資源。密碼學(xué)中所認(rèn)為的計(jì)算不可破譯是指,攻擊者受到資源的限制,不能夠在一定時(shí)間之內(nèi)破解此密碼體制,那么我們就可以認(rèn)為此密碼體制是不可破譯的。
2.4.4 總結(jié)
綜上所述,一個(gè)密碼體制要滿足安全性,需要它在破解時(shí),計(jì)算量非常之大,花費(fèi)的計(jì)算時(shí)間非常之多,使攻擊者實(shí)際上是無法實(shí)現(xiàn)的。或者是,它的實(shí)際價(jià)值遠(yuǎn)遠(yuǎn)不如破解它時(shí)所花費(fèi)的費(fèi)用。以上滿足任何一點(diǎn),我們就可以稱此密碼體制是足夠安全的。
3? 密碼學(xué)常用加密方法
3.1 對稱加密算法
對稱加密,也稱為私鑰加密。上文提到了,密鑰又分為加密密鑰與解密密鑰。那么,加密密鑰是否一定跟解密密鑰相同呢?至少在對稱加密算法中來說是的。此算法中,加密(解密)密鑰可以通過解密(加密)密鑰推算出來。這類算法的安全性非常依賴于密鑰,如果密鑰發(fā)生了泄露,那么這些密碼系統(tǒng)的安全性將會(huì)受到很大的威脅。常見的一些對稱加密算法有:DES算法、AES算法、IDEA算法等等。本文將會(huì)就其中兩個(gè)最為常見的算法進(jìn)行簡單介紹。
3.1.1 DES算法
DES算法,即美國標(biāo)準(zhǔn)局在1977年發(fā)布的數(shù)據(jù)加密標(biāo)準(zhǔn)。DES的參數(shù)有:Key(密鑰)、Data和Mode。DES算法的兩個(gè)原則為混淆和擴(kuò)散。混淆的目的是為了使密文與密鑰之間的關(guān)系更加復(fù)雜。擴(kuò)散的目的是為了盡可能讓每一位明文都較多的作用到密文上,以防攻擊者對密碼的破譯。
DES算法的變體是3DES算法。DES算法如今已經(jīng)被破解,所以已經(jīng)不再是安全的密碼算法了,3DES算法已經(jīng)在向AES算法逐漸的過渡。
3.1.2 AES算法
AES算法,是美國標(biāo)準(zhǔn)局發(fā)布的高級數(shù)據(jù)加密標(biāo)準(zhǔn),用來代替已經(jīng)逐漸被淘汰的DES算法。在對稱加密算法之中,是最常用的一種算法。此算法的密鑰建立所需要的時(shí)間很短,對內(nèi)存的要求也不是很高,性能遠(yuǎn)遠(yuǎn)優(yōu)于DES算法。AES為分組密碼,即把明文分為等長度的幾組,每次只加密一組明文,直到全部明文加密完成。AES算法密鑰長度一般為128、192和256位。
3.2 非對稱加密算法
非對稱加密算法,又稱公開密鑰算法。非對稱加密算法中有兩個(gè)密鑰:公開密鑰和私有密鑰。公開密鑰和私有密鑰是兩個(gè)完全不同的密鑰,故而稱為非對稱加密算法。如果用公開密鑰對明文進(jìn)行加密,那么只有私有密鑰才能進(jìn)行解密。同理,如果用私有密鑰對明文進(jìn)行加密,那么只有公開密鑰才能對明文進(jìn)行解密。此類算法具有非常高的保密性和安全性,算法比較復(fù)雜,使得密碼系統(tǒng)不是很容易被破解。常見的一些非對稱加密算法有:ECC算法(橢圓曲線加密算法)、RSA算法、DSA算法、背包算法等等。本文將會(huì)就其中幾個(gè)最為常見的算法進(jìn)行簡單介紹。
3.2.1 RSA算法
RSA算法是目前最有影響力的公鑰算法,因?yàn)樗軌虻謸醮蟛糠值墓簦哂泻芨叩目煽啃浴K呀?jīng)被IOS推為公鑰加密數(shù)據(jù)標(biāo)準(zhǔn)。首先,隨機(jī)生成兩個(gè)質(zhì)數(shù)p和q,再算出它們的乘積n(密鑰長度),計(jì)算出n的歐拉函數(shù)。然后,隨機(jī)選擇一個(gè)數(shù)e,e的范圍在1到n的歐拉函數(shù)之間,且與n的歐拉函數(shù)互質(zhì),計(jì)算出e對于n的歐拉函數(shù)的模反元素d。最后,n和e就為公有密鑰,n和d為私有密鑰。由以上RSA算法生成密鑰對的過程來看,RSA算法具有很高的隨機(jī)性和安全性,想要破解此算法的密鑰十分困難,因?yàn)镽SA算法運(yùn)行的往往都是大數(shù)運(yùn)算。但是這一點(diǎn)也使得RSA算法本身運(yùn)行的速度非常之慢,比DES算法多出好幾倍的時(shí)間。
3.2.2 ECC算法
即橢圓曲線加密算法,也是一種公開密鑰算法。ECC算法產(chǎn)生的密鑰比RSA算法更小,占用的存儲空間較小。并且,ECC算法是雙線映射的,具有更高的安全性。但是這也造成了它的加解密過程非常復(fù)雜,花費(fèi)的時(shí)間很長。
3.2.3 DSA算法
即數(shù)字簽名算法。它的安全性跟RSA算法差不多,但是它隨機(jī)產(chǎn)生的兩個(gè)素?cái)?shù)p和q是公開的,當(dāng)使用p和q時(shí),就可以確認(rèn)是否被人做了非法操作。
4? 網(wǎng)絡(luò)安全方面技術(shù)應(yīng)用
4.1 數(shù)字簽名技術(shù)
數(shù)字簽名技術(shù),是非對稱密碼算法的一種應(yīng)用。它有兩種運(yùn)算,一個(gè)用于簽名,一個(gè)用于驗(yàn)證。只有發(fā)送信息的人員才能產(chǎn)生,它可以有效地證明信息的真實(shí)性,并且具有完整性和不可否認(rèn)性。發(fā)送信息的人員有一對密鑰,其中一個(gè)是只有本人才知道的私有密鑰,另一個(gè)則是公開的公開密鑰,簽名的時(shí)候用的是私有密鑰,驗(yàn)證的時(shí)候則用公開密鑰。數(shù)字簽名技術(shù)可以提供對應(yīng)的網(wǎng)絡(luò)安全服務(wù),對于計(jì)算機(jī)網(wǎng)絡(luò)安全有著非常重要的作用:防止冒充、防抵賴、身份鑒別等等。這些都極大的提高了網(wǎng)絡(luò)信息的安全性。
4.2 數(shù)字證書技術(shù)
又稱數(shù)字標(biāo)識,公開密鑰算法的一種應(yīng)用,由CA中心頒發(fā)的一種證書,具有權(quán)威性。在信息交流之中進(jìn)行加密和解密,來保證數(shù)據(jù)的真實(shí)性和完整性。它產(chǎn)生兩種密鑰,公開密鑰和私有密鑰,公開密鑰是共有的,用來加密和簽名驗(yàn)證,私有密鑰只有用戶自己才知道,用于解密和簽名認(rèn)證。數(shù)字證書相當(dāng)于用戶的一張身份證,在進(jìn)行電子商務(wù)活動(dòng)時(shí)必須出示數(shù)字證書來驗(yàn)證身份,它具有安全性、唯一性和便利性。它對網(wǎng)絡(luò)信息安全也有著很重要的作用,隨著計(jì)算機(jī)技術(shù)的發(fā)展,電子商務(wù)在人們的生活中運(yùn)用的越來越多,數(shù)字證書可以避免信息和數(shù)據(jù)的泄露,作為一種加密技術(shù),有效地保護(hù)了終端。此外,越來越多的釣魚網(wǎng)站和惡意網(wǎng)站出現(xiàn)在計(jì)算機(jī)網(wǎng)絡(luò)上,用戶稍有不慎,就會(huì)暴露自己的個(gè)人信息,這很大的影響了網(wǎng)絡(luò)的安全性。數(shù)字證書技術(shù)可以先對網(wǎng)站進(jìn)行驗(yàn)證,這就極大的避免了有可能造成的損失,提高了網(wǎng)絡(luò)的安全性。另外,在網(wǎng)絡(luò)安全方面,數(shù)字證書技術(shù)還可以建立安全電子郵件、身份授權(quán)管理等等。
5? 結(jié)語
隨著現(xiàn)代量子計(jì)算的發(fā)展,密碼學(xué)也逐漸在發(fā)展進(jìn)化。當(dāng)然,反過來,密碼學(xué)同樣也促進(jìn)了現(xiàn)代計(jì)算機(jī)技術(shù)的發(fā)展。密碼學(xué)在網(wǎng)絡(luò)安全領(lǐng)域有很多重要的作用,例如安全認(rèn)證、數(shù)字簽名、數(shù)字印章等等。密碼學(xué)不僅僅可以提升網(wǎng)絡(luò)的安全性,它在軍事領(lǐng)域也發(fā)揮著很重要的作用,包括射擊學(xué)、彈道學(xué)等等。綜上所述,密碼學(xué)是一門很有發(fā)展前景的綜合性學(xué)科,因此,這門學(xué)科值得我們繼續(xù)進(jìn)行研究。有關(guān)于密碼學(xué)的最新進(jìn)展研究,有興趣的讀者可以自行查閱資料。
參考文獻(xiàn):
[1]陳佳康.密碼學(xué)算法的優(yōu)化與應(yīng)用[D].北京郵電大學(xué),2013.
[2]鄭培凝.身份基密碼學(xué)的研究與應(yīng)用[D].上海交通大學(xué),2011.
[3]盧開澄.計(jì)算機(jī)密碼學(xué)[M].北京:清華大學(xué)出版社,2003.