官术网_书友最值得收藏!

第2章 密碼學(xué)基礎(chǔ)

2.1 密碼學(xué)發(fā)展歷史

2.1.1 密碼學(xué)發(fā)展的三個(gè)階段

密碼學(xué)的發(fā)展,經(jīng)歷了主要的三個(gè)階段:第一階段指1949年之前,當(dāng)時(shí)的密碼學(xué)主要表現(xiàn)為滿足少數(shù)人的特殊用途為主;第二階段指1949—1975年,在這個(gè)階段,密碼學(xué)逐漸發(fā)展成為一門獨(dú)立的學(xué)科;第三階段一般指1975年之后,密碼學(xué)的新方向——公鑰密碼學(xué)得到了長(zhǎng)足的發(fā)展與進(jìn)步。這三個(gè)階段,如果按照密碼學(xué)的發(fā)展進(jìn)程來(lái)分,可以分為“古典密碼”“對(duì)稱密鑰密碼”和“公開密鑰密碼”三個(gè)階段。不同時(shí)期,人們對(duì)信息的存儲(chǔ)、處理、傳輸和計(jì)算能力是不同的。信息的利用方式也不同,相應(yīng)使用的密碼技術(shù)也不相同,密碼學(xué)的發(fā)展經(jīng)歷了從藝術(shù)到科學(xué)的發(fā)展過(guò)程,其中的協(xié)議和算法設(shè)計(jì)、分析以及加解密應(yīng)用,皆發(fā)展成為獨(dú)立的藝術(shù)和學(xué)問(wèn),同時(shí)也發(fā)展成為一門高度綜合的學(xué)科,涵蓋了數(shù)學(xué)、統(tǒng)計(jì)、網(wǎng)絡(luò)、計(jì)算機(jī)等學(xué)科內(nèi)容。那么,在開始介紹區(qū)塊鏈中的密碼學(xué)之前,先讓我們來(lái)簡(jiǎn)單回顧一下這三個(gè)階段。

1.“古典密碼”階段

這個(gè)階段的密碼學(xué)還不是科學(xué),而是一門小眾的藝術(shù)。這個(gè)階段出現(xiàn)了一些密碼算法和加密工具。在這個(gè)階段中,密碼算法的基本手段——置換排列網(wǎng)絡(luò)(Substitution-Permutation Network)出現(xiàn)了,它主要是針對(duì)字符進(jìn)行加密;同一階段,簡(jiǎn)單的密碼分析手段也出現(xiàn)了。

舉例來(lái)說(shuō),這個(gè)階段出現(xiàn)過(guò)“Scytale密碼”:據(jù)說(shuō)公元前5世紀(jì)古希臘的斯巴達(dá)人,有意識(shí)地使用一些技術(shù)方法來(lái)加密信息。他們使用的是一根叫“scytale”的棍子。送信人先繞棍子卷一張紙條,然后把要寫的信息縱向?qū)懺谏厦妫又鴨为?dú)把紙送給收信人。對(duì)方如果不知道棍子的粗細(xì)是不可能解密紙上內(nèi)容的,如圖2-1所示。

圖2-1 斯巴達(dá)人使用的“Scytale密碼”

此外,公元前1世紀(jì),著名的愷撒大帝發(fā)明了一種密碼——“愷撒密碼”。在愷撒密碼中,每個(gè)字母都與其后第三位的字母對(duì)應(yīng),然后進(jìn)行替換。據(jù)說(shuō)當(dāng)時(shí)羅馬的軍隊(duì)就是使用愷撒密碼進(jìn)行通信。舉例如下(字母索引偏移量為3):

愷撒密碼明文字母表:A B C D E F G …… X Y Z

愷撒密碼密文字母表:D E F G H I J …… A B C

例如:明文為“veni,vidi,vici”,密文就是“YHAL,YLGL,YLFL”。

26個(gè)字符代表字母表的26個(gè)字母,從一般意義上說(shuō),也可以使用其他字符表,對(duì)應(yīng)的數(shù)字也不一定要選擇“3”,可以選其他任意數(shù)字。

那個(gè)階段還曾經(jīng)出現(xiàn)過(guò)最早的幾何圖形密碼,例如以一種形式寫下消息,以另一種形式讀取消息,舉例來(lái)說(shuō)(見圖2-2),將“I came I saw I conquered”編碼為“IONQC CAIUE WMEAR DESI”:

圖2-2 幾何編碼加密示意

2.“對(duì)稱密鑰密碼”階段

對(duì)稱密鑰密碼,又稱為“單鑰密碼體制”,即使用相同的密鑰(加解密密鑰)對(duì)消息進(jìn)行加密/解密,系統(tǒng)的保密性主要由密鑰的安全性決定,而與算法是否保密無(wú)關(guān)。它的設(shè)計(jì)和實(shí)現(xiàn)的中心思想聚焦在:使用哪一種方法,可以產(chǎn)生滿足保密要求的密鑰,以及用什么方法可以將密鑰安全又可靠地分配給通信雙方。對(duì)稱密碼體制可以通過(guò)分組密碼或流密碼來(lái)實(shí)現(xiàn),它既可以用于“數(shù)據(jù)加密”,又可以用于“消息認(rèn)證”。其所謂“對(duì)稱”,其實(shí)就是使用同一把密鑰進(jìn)行加密,使用同一把密鑰進(jìn)行解密。對(duì)稱加密由于加密和解密使用的是同一個(gè)密鑰算法,因此在加解密的過(guò)程中速度比較快,適用于對(duì)數(shù)據(jù)量比較大的內(nèi)容進(jìn)行加解密。它的主要優(yōu)點(diǎn)就是算法公開、計(jì)算量小、加密速度快、加密效率高,但也存在著顯而易見的缺點(diǎn),就是在密鑰協(xié)商過(guò)程中,一旦密鑰泄露,別人就可以用獲取到密鑰對(duì)密文進(jìn)行解密。另外,每一對(duì)用戶(通信雙方),每次使用對(duì)稱加密算法時(shí),都需要使用其他人不知道的獨(dú)一密鑰(互相隔離),這會(huì)使得收、發(fā)雙方所擁有的密鑰數(shù)量巨大,密鑰管理成為雙方的共同負(fù)擔(dān)。常用的對(duì)稱加密算法有DES、3DES、AES、TDEA、Blowfish、RC2、RC4和RC5等。

3.“公開密鑰密碼”階段

相對(duì)于“對(duì)稱密鑰密碼”階段,這個(gè)階段進(jìn)行了公、私鑰分離的設(shè)計(jì),公鑰密碼采用了“非對(duì)稱加密”機(jī)制——針對(duì)私鑰密碼體制(對(duì)稱密鑰密碼)的缺陷而被提出。非對(duì)稱加密會(huì)產(chǎn)生兩把密鑰,分別為公鑰(Public Key)和私鑰(Private Key),其中一把密鑰用于加密,另一把密鑰用于解密。非對(duì)稱加密的特征是算法強(qiáng)度復(fù)雜、安全性依賴于算法與密鑰,但是由于其算法過(guò)于復(fù)雜,從而使得速度沒(méi)有對(duì)稱加密解密的速度快。對(duì)稱密碼體制中只有一把密鑰,并且是非公開的,如果要解密就得讓對(duì)方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對(duì)稱密鑰體制有兩種密鑰,其中一個(gè)是公開的,這樣就可以不需要像對(duì)稱密碼機(jī)制那樣傳輸對(duì)方的密鑰,安全性就提高了很多。常用的非對(duì)稱加密算法有RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等。

主站蜘蛛池模板: 秀山| 乐都县| 巴彦淖尔市| 康平县| 宁德市| 东阿县| 阜康市| 车险| 手游| 共和县| 沂源县| 砀山县| 开化县| 河北区| 钦州市| 石阡县| 孝昌县| 和硕县| 泸溪县| 黑河市| 禄丰县| 响水县| 无极县| 梁河县| 辽阳县| 崇礼县| 高安市| 太谷县| 巨野县| 平顶山市| 北川| 南京市| 克东县| 凤冈县| 藁城市| 五常市| 弋阳县| 类乌齐县| 凉城县| 丹东市| 宜良县|