日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记

發(fā)布時(shí)間:2024/2/28 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)字簽名是什么?

1.

鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。

2.

鮑勃把公鑰送給他的朋友們—-帕蒂、道格、蘇珊—-每人一把。

3.

蘇珊給鮑勃寫(xiě)信,寫(xiě)完后用鮑勃的公鑰加密,達(dá)到保密的效果。

4.

鮑勃收信后,用私鑰解密,看到信件內(nèi)容。

5.

鮑勃給蘇珊回信,寫(xiě)完后用Hash函數(shù),生成信件的摘要(digest)。

6.

然后,鮑勃使用私鑰,對(duì)這個(gè)摘要加密,生成”數(shù)字簽名”(signature)。

7.

鮑勃將這個(gè)簽名,附在信件下面,一起發(fā)給蘇珊。

8.

蘇珊收信后,取下數(shù)字簽名,用鮑勃的公鑰解密,得到信件的摘要。由此證明,這封信確實(shí)是鮑勃發(fā)出的。

9.

蘇珊再對(duì)信件本身使用Hash函數(shù),將得到的結(jié)果,與上一步得到的摘要進(jìn)行對(duì)比。如果兩者一致,就證明這封信未被修改過(guò)。

10.

復(fù)雜的情況出現(xiàn)了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用自己的公鑰換走了鮑勃的公鑰。因此,他就可以冒充鮑勃,寫(xiě)信給蘇珊。

11.

蘇珊發(fā)現(xiàn),自己無(wú)法確定公鑰是否真的屬于鮑勃。她想到了一個(gè)辦法,要求鮑勃去找”證書(shū)中心”(certificate authority,簡(jiǎn)稱(chēng)CA),為公鑰做認(rèn)證。證書(shū)中心用自己的私鑰,對(duì)鮑勃的公鑰和一些相關(guān)信息一起加密,生成”數(shù)字證書(shū)“(Digital Certificate)。

12.

鮑勃拿到數(shù)字證書(shū)以后,就可以放心了。以后再給蘇珊寫(xiě)信,只要在簽名的同時(shí),再附上數(shù)字證書(shū)就行了。

13.

蘇珊收信后,用CA的公鑰解開(kāi)數(shù)字證書(shū),就可以拿到鮑勃真實(shí)的公鑰了,然后就能證明”數(shù)字簽名”是否真的是鮑勃簽的。

14.

下面,我們看一個(gè)應(yīng)用”數(shù)字證書(shū)”的實(shí)例:https協(xié)議。這個(gè)協(xié)議主要用于網(wǎng)頁(yè)加密。

15.

首先,客戶(hù)端向服務(wù)器發(fā)出加密請(qǐng)求。

16.

服務(wù)器用自己的私鑰加密網(wǎng)頁(yè)以后,連同本身的數(shù)字證書(shū),一起發(fā)送給客戶(hù)端。

17.

客戶(hù)端(瀏覽器)的”證書(shū)管理器”,有”受信任的根證書(shū)頒發(fā)機(jī)構(gòu)”列表。客戶(hù)端會(huì)根據(jù)這張列表,查看解開(kāi)數(shù)字證書(shū)的公鑰是否在列表之內(nèi)。

18.

如果數(shù)字證書(shū)記載的網(wǎng)址,與你正在瀏覽的網(wǎng)址不一致,就說(shuō)明這張證書(shū)可能被冒用,瀏覽器會(huì)發(fā)出警告。

19.

如果這張數(shù)字證書(shū)不是由受信任的機(jī)構(gòu)頒發(fā)的,瀏覽器會(huì)發(fā)出另一種警告。

20.

數(shù)字證書(shū)如果是可靠的,客戶(hù)端就可以使用證書(shū)中的服務(wù)器公鑰,對(duì)信息進(jìn)行加密,然后與服務(wù)器交換加密信息。

—————————-

在簽名的過(guò)程中,有一點(diǎn)很關(guān)鍵,收到數(shù)據(jù)的一方,需要自己保管好公鑰,但是要知道每一個(gè)發(fā)送方都有一個(gè)公鑰,那么接收數(shù)據(jù)的人需要保存非常多的公鑰,這根本就管理不過(guò)來(lái)。并且本地保存的公鑰有可能被篡改替換,無(wú)從發(fā)現(xiàn)。怎么解決這一問(wèn)題了?由一個(gè)統(tǒng)一的證書(shū)管理機(jī)構(gòu)來(lái)管理所有需要發(fā)送數(shù)據(jù)方的公鑰,對(duì)公鑰進(jìn)行認(rèn)證和加密。這個(gè)機(jī)構(gòu)也就是我們常說(shuō)的CA。認(rèn)證加密后的公鑰,即是證書(shū),又稱(chēng)為CA證書(shū),證書(shū)中包含了很多信息,最重要的是申請(qǐng)者的公鑰。

CA機(jī)構(gòu)在給公鑰加密時(shí),用的是一個(gè)統(tǒng)一的密鑰對(duì),在加密公鑰時(shí),用的是其中的私鑰。這樣,申請(qǐng)者拿到證書(shū)后,在發(fā)送數(shù)據(jù)時(shí),用自己的私鑰生成簽名,將簽名、證書(shū)和發(fā)送內(nèi)容一起發(fā)給對(duì)方,對(duì)方拿到了證書(shū)后,需要對(duì)證書(shū)解密以獲取到證書(shū)中的公鑰,解密需要用到CA機(jī)構(gòu)的”統(tǒng)一密鑰對(duì)“中的公鑰,這個(gè)公鑰也就是我們常說(shuō)的CA根證書(shū),通常需要我們到證書(shū)頒發(fā)機(jī)構(gòu)去下載并安裝到相應(yīng)的收取數(shù)據(jù)的客戶(hù)端,如瀏覽器上面。這個(gè)公鑰只需要安裝一次。有了這個(gè)公鑰之后,就可以解密證書(shū),拿到發(fā)送方的公鑰,然后解密發(fā)送方發(fā)過(guò)來(lái)的簽名,獲取摘要,重新計(jì)算摘要,作對(duì)比,以驗(yàn)證數(shù)據(jù)內(nèi)容的完整性。

總結(jié):

(1)信息 + HASH = 摘要 摘要 + 私鑰 = 數(shù)字簽名(給收方做對(duì)比用的,驗(yàn)證收發(fā)內(nèi)容是否一致)

(2)公鑰 + 相關(guān)信息 + CA私鑰 = 數(shù)字證書(shū)(驗(yàn)證發(fā)送者是否正確,是可信任的公鑰)

用于我發(fā)保密信息給你之前,你得讓我相信真的是“你”讓我“這么做”的。

(1)、對(duì)稱(chēng)加密算法

常用的算法包括:
DES(Data Encryption Standard):數(shù)據(jù)加密標(biāo)準(zhǔn),速度較快,適用于加密大量數(shù)據(jù)的場(chǎng)合。
3DES(Triple DES):是基于DES,對(duì)一塊數(shù)據(jù)用三個(gè)不同的密鑰進(jìn)行三次加密,強(qiáng)度更高。
AES(Advanced Encryption Standard):高級(jí)加密標(biāo)準(zhǔn),是下一代的加密算法標(biāo)準(zhǔn),速度快,安全級(jí)別高;

1、加密方和解密方使用同一個(gè)密鑰。
2、加密解密的速度比較快,適合數(shù)據(jù)比較長(zhǎng)時(shí)的使用。
3、密鑰傳輸?shù)倪^(guò)程不安全,且容易被破解,密鑰管理也比較麻煩。
4、加密算法:DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard,支持128、192、256、512位密鑰的加密)、Blowfish。
5、加密工具:openssl、gpg(pgp工具)

(2)、非對(duì)稱(chēng)加密算法

RSA:由 RSA 公司發(fā)明,是一個(gè)支持變長(zhǎng)密鑰的公共密鑰算法,需要加密的文件塊的長(zhǎng)度也是可變的;
DSA(Digital Signature Algorithm):數(shù)字簽名算法,是一種標(biāo)準(zhǔn)的 DSS(數(shù)字簽名標(biāo)準(zhǔn));
ECC(Elliptic Curves Cryptography):橢圓曲線(xiàn)密碼編碼學(xué)。
ECC和RSA相比,在許多方面都有對(duì)絕對(duì)的優(yōu)勢(shì),主要體現(xiàn)在以下方面:
抗攻擊性強(qiáng)。相同的密鑰長(zhǎng)度,其抗攻擊性要強(qiáng)很多倍。
計(jì)算量小,處理速度快。ECC總的速度比RSA、DSA要快得多。
存儲(chǔ)空間占用小。ECC的密鑰尺寸和系統(tǒng)參數(shù)與RSA、DSA相比要小得多,意味著它所占的存貯空間要小得多。這對(duì)于加密算法在IC卡上的應(yīng)用具有特別重要的意義。
帶寬要求低。當(dāng)對(duì)長(zhǎng)消息進(jìn)行加解密時(shí),三類(lèi)密碼系統(tǒng)有相同的帶寬要求,但應(yīng)用于短消息時(shí)ECC帶寬要求卻低得多。帶寬要求低使ECC在無(wú)線(xiàn)網(wǎng)絡(luò)領(lǐng)域具有廣泛的應(yīng)用前景。

1、每個(gè)用戶(hù)擁用一對(duì)密鑰加密:公鑰和私鑰。
2、公鑰加密,私鑰解密;私鑰加密,公鑰解密。
3、公鑰傳輸?shù)倪^(guò)程不安全,易被竊取和替換。
4、由于公鑰使用的密鑰長(zhǎng)度非常長(zhǎng),所以公鑰加密速度非常慢,一般不使用其去加密。
5、某一個(gè)用戶(hù)用其私鑰加密,其他用戶(hù)用其公鑰解密,實(shí)現(xiàn)數(shù)字簽名的作用。
6、公鑰加密的另一個(gè)作用是實(shí)現(xiàn)密鑰交換。
7、加密和簽名算法:RSA、ELGamal。
8、公鑰簽名算法:DSA。
9、加密工具:gpg、openssl

由于非對(duì)稱(chēng)加密算法的運(yùn)行速度比對(duì)稱(chēng)加密算法的速度慢很多,當(dāng)我們需要加密大量的數(shù)據(jù)時(shí),建議采用對(duì)稱(chēng)加密算法,提高加解密速度。
對(duì)稱(chēng)加密算法不能實(shí)現(xiàn)簽名,因此簽名只能非對(duì)稱(chēng)算法。
由于對(duì)稱(chēng)加密算法的密鑰管理是一個(gè)復(fù)雜的過(guò)程,密鑰的管理直接決定著他的安全性,因此當(dāng)數(shù)據(jù)量很小時(shí),我們可以考慮采用非對(duì)稱(chēng)加密算法。
在實(shí)際的操作過(guò)程中,我們通常采用的方式是:采用非對(duì)稱(chēng)加密算法管理對(duì)稱(chēng)算法的密鑰,然后用對(duì)稱(chēng)加密算法加密數(shù)據(jù),這樣我們就集成了兩類(lèi)加密算法的優(yōu)點(diǎn),既實(shí)現(xiàn)了加密速度快的優(yōu)點(diǎn),又實(shí)現(xiàn)了安全方便管理密鑰的優(yōu)點(diǎn)。

(3)、單向加密(散列算法)

散列是信息的提煉,通常其長(zhǎng)度要比信息小得多,且為一個(gè)固定長(zhǎng)度。加密性強(qiáng)的散列一定是不可逆的,這就意味著通過(guò)散列結(jié)果,無(wú)法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將導(dǎo)致散列結(jié)果的明顯變化,這稱(chēng)之為雪崩效應(yīng)。散列還應(yīng)該是防沖突的,即找不出具有相同散列結(jié)果的兩條信息。具有這些特性的散列結(jié)果就可以用于驗(yàn)證信息是否被修改。
單向散列函數(shù)一般用于產(chǎn)生消息摘要,密鑰加密等,常見(jiàn)的有:
1、MD5(Message Digest Algorithm 5):是RSA數(shù)據(jù)安全公司開(kāi)發(fā)的一種單向散列算法,非可逆,相同的明文產(chǎn)生相同的密文。
2、SHA(Secure Hash Algorithm):可以對(duì)任意長(zhǎng)度的數(shù)據(jù)運(yùn)算生成一個(gè)160位的數(shù)值;
SHA-1與MD5的比較
因?yàn)槎呔蒑D4導(dǎo)出,SHA-1和MD5彼此很相似。相應(yīng)的,他們的強(qiáng)度和其他特性也是相似,但還有以下幾點(diǎn)不同:
1、對(duì)強(qiáng)行供給的安全性:最顯著和最重要的區(qū)別是SHA-1摘要比MD5摘要長(zhǎng)32 位。使用強(qiáng)行技術(shù),產(chǎn)生任何一個(gè)報(bào)文使其摘要等于給定報(bào)摘要的難度對(duì)MD5是2128數(shù)量級(jí)的操作,而對(duì)SHA-1則是2160數(shù)量級(jí)的操作。這樣,SHA-1對(duì)強(qiáng)行攻擊有更大的強(qiáng)度。
2、對(duì)密碼分析的安全性:由于MD5的設(shè)計(jì),易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。
3、速度:在相同的硬件上,SHA-1的運(yùn)行速度比MD5慢。

1、特征:雪崩效應(yīng)、定長(zhǎng)輸出和不可逆。
2、作用是:確保數(shù)據(jù)的完整性。
3、加密算法:md5(標(biāo)準(zhǔn)密鑰長(zhǎng)度128位)、sha1(標(biāo)準(zhǔn)密鑰長(zhǎng)度160位)、md4、CRC-32
4、加密工具:md5sum、sha1sum、openssl dgst。
5、計(jì)算某個(gè)文件的hash值,例如:md5sum/shalsum FileName,openssl dgst –md5/-sha1

總結(jié)

以上是生活随笔為你收集整理的数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。