现代密码学应用的范例-PGP
PGP(Pretty Good Privacy),是一個(gè)基于RSA公鑰加密體系的郵件加密軟件。
產(chǎn)生背景:
電子郵件在傳輸中使用SMTP協(xié)議存在這樣的問題
1.無法保證郵件在傳輸過程中不被人偷看
2.無法確認(rèn)來源
3.無法確定郵件是否在傳輸過程中被篡改
4.當(dāng)郵件被發(fā)到錯(cuò)誤地址,可能造成信息泄漏
?
PGP對(duì)這些問題提供一個(gè)安全電子郵件解決方案,具有以下功能
1.消息加密
2.數(shù)字簽名
3.完整性確認(rèn)
4.數(shù)據(jù)壓縮
?
PGP使用的對(duì)稱算法: IDEA, DES, Triple DES, CAST, AES, Twofish
PGP使用的不對(duì)稱算法: RSA, DH
?
加密流程:
?
用會(huì)話鑰匙加密明文,然后用公共鑰匙加密會(huì)話鑰匙,講這兩個(gè)加密出來的內(nèi)容打包放在一起傳輸。
?
解密流程:
將收到的數(shù)據(jù)(密文和加密后的會(huì)話鑰匙)分開,用私鑰來解密加密后的會(huì)話鑰匙,得到會(huì)話鑰匙,用會(huì)話鑰匙來解密密文。
?
會(huì)話鑰匙加密解密用的同一把,所以是對(duì)稱加密算法。另外的公鑰加密,私鑰解密,是公鑰加密算法。
PGP整合了對(duì)稱加密和公鑰加密的方案。
保持了對(duì)稱加密算法速度快的特點(diǎn),又具有公鑰算法密鑰分配方便的特點(diǎn)。
?
PGP數(shù)字簽名:
簽名算法:RSA+MD5, RSA+ SHA1, DSS+SHA1
數(shù)字簽名過程:
數(shù)字簽名是用私鑰加密,就可以確認(rèn)消息來源和保證完整性,因?yàn)樗借€是個(gè)人持有的且是對(duì)明文簽名。
?
但是直接對(duì)明文進(jìn)行數(shù)字簽名存在一些問題
1.速度非常慢
2.生成大量的數(shù)據(jù)
?
PGP的解決辦法是對(duì)明文使用一種Hash函數(shù)(PGP使用Hash函數(shù): MD5, SHA1),產(chǎn)生定長的數(shù)據(jù),稱為消息摘要。使用簽名算法對(duì)摘要簽名,然后將簽名和明文放在一起。
?
下面來說說公鑰密碼算法的一個(gè)重要問題,如何傳播公鑰?
假設(shè)有這樣一個(gè)場景,A想寫信給B,A先要得到B的公鑰,A在某處查到一個(gè)公鑰以為是B的,實(shí)際上是C的公鑰,是C有意假冒B,C竊聽到密信,然后用對(duì)應(yīng)的私鑰解密,C看到了信的內(nèi)容。此時(shí),C已經(jīng)假冒B成功了,C再給A寫一封信,A仍用B的假公鑰來打開C的信,A讀到C假冒B寫的信。
因此,公鑰的分發(fā)是很重要的。
?
公鑰分發(fā)模型:
1.金字塔模型
這個(gè)模型的基礎(chǔ)是要有上層的機(jī)構(gòu)是值的信賴的機(jī)構(gòu),由上層機(jī)構(gòu)來分發(fā)公鑰,需要公鑰的時(shí)候,向上層機(jī)構(gòu)詢問。
?
2.信任網(wǎng)絡(luò)模型(PGP采用):
?
?
PGP數(shù)據(jù)證書:
證書包含擁有者的信息
證書可以自己創(chuàng)建和聲明
證書上包含自簽名
證書可能包含多個(gè)人的簽名
?
證書正確性檢查
1.手工途徑:要求接收者親自把公鑰交給你
檢查證書的指紋
2.信任途徑:相信已經(jīng)進(jìn)行了檢查過程的第三方結(jié)果(上面可能有一些簽名,保證證書上的公鑰屬于某個(gè)人)
?
私鑰保護(hù)問題:
PGP利用一個(gè)Passphrase來獲得自己的私鑰。
?
壓縮預(yù)處理問題:
PGP對(duì)明文加密前進(jìn)行壓縮處理,使用PKZIP算法壓縮。
好處:壓縮后比原來的明文更短,節(jié)省網(wǎng)絡(luò)傳輸?shù)臅r(shí)間;壓縮相當(dāng)于一次變換,信息變的雜亂,對(duì)攻擊的抵御能力更強(qiáng)。
轉(zhuǎn)載于:https://www.cnblogs.com/13jhzeng/p/5517770.html
總結(jié)
以上是生活随笔為你收集整理的现代密码学应用的范例-PGP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux档案属性与目录配置
- 下一篇: java读取InputStream输入流