国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

精讀《圖解密碼技術(shù)》——第十三章 PGP

這篇具有很好參考價(jià)值的文章主要介紹了精讀《圖解密碼技術(shù)》——第十三章 PGP。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、PGP簡介

1.什么是PGP

??PGP是一款由個(gè)人編寫的密碼軟件,PGP是為了保護(hù)處于極端狀況下的人們的隱私而開發(fā)的,如果這些人的信息被竊聽,那么可能是性命攸關(guān)的大事件。

2.關(guān)于OpenPGP

??OpenPGP是對(duì)密文和數(shù)字簽名格式進(jìn)行定義的標(biāo)準(zhǔn)規(guī)格。

3.關(guān)于GNU Privacy Guard

??GNU Privacy Guard ( GnuPG、GPG)是一款基于OpenPGP標(biāo)準(zhǔn)開發(fā)的密碼學(xué)軟件“,支持加密、數(shù)字簽名、密鑰管理、S/MIME、ssh等多種功能。GnuPG是基于GNU GPL協(xié)議發(fā)布的一款自由軟件,因此任何人都可以自由使用它。

4.PGP的功能

(1)支持用對(duì)稱密碼加密和解密。
(2)支持生成公鑰密碼的密鑰對(duì),以及用公鑰密碼進(jìn)行加密和解密。
(3)支持?jǐn)?shù)字簽名的生成和驗(yàn)證,也可以將數(shù)字簽名附加到文件中,或者從文件中分離出數(shù)字簽名。
(4)PGP可以用單向散列函數(shù)計(jì)算和顯示消息的散列值。
(5)PGP可以生成OpenGPG中規(guī)定格式的證書,以及與X.509規(guī)范兼容的證書。除此之外,還可以頒發(fā)公鑰的作廢證明。
(6)PGP支持?jǐn)?shù)據(jù)的壓縮和解壓縮,壓縮采用ZIP、ZLIB、BZIPZ等格式。
(7)PGP可以將二進(jìn)制數(shù)據(jù)和文本數(shù)據(jù)相互轉(zhuǎn)換。
(8)在文件過大無法通過郵件發(fā)送的情況下,PGP可以將一個(gè)大文件拆分成多個(gè)文件,反過來也可以將多個(gè)文件拼合成一個(gè)文件。
(9)PGP可以管理所生成的密鑰對(duì)以及從外部獲取的公鑰。用于管理密鑰的文件稱為鑰匙串( key ring )。

二、加密和解密

1.加密

??PGP的加密過程如下圖所示,在這張圖中,消息經(jīng)過混合密碼系統(tǒng)加密,然后轉(zhuǎn)化為報(bào)文數(shù)據(jù)。

精讀《圖解密碼技術(shù)》——第十三章 PGP

(1)用為隨機(jī)數(shù)生成器生成會(huì)話密鑰
(2)用公鑰密碼加密會(huì)話密鑰,這里使用的是接收者的公鑰
(3)壓縮消息
(4)使用對(duì)稱密碼對(duì)壓縮的消息加密,密鑰為(1)中的會(huì)話密鑰
(5)將加密后的會(huì)話密鑰與加密后的消息合并
(6)將(5)中的結(jié)果轉(zhuǎn)換為文本數(shù)據(jù),轉(zhuǎn)換后得到的就是報(bào)文數(shù)據(jù)

2.解密

精讀《圖解密碼技術(shù)》——第十三章 PGP

(1)接收者輸入解密的口令
(2)求口令的散列值,生成用于解密的密鑰
(3)將私鑰解密
(4)將報(bào)文數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)
(5)將二進(jìn)制數(shù)據(jù)分解成加密的會(huì)話密鑰和經(jīng)過壓縮并加密的消息兩部分
(6)用公鑰密碼解密會(huì)話密鑰,私鑰是(3)中生成的接收者的私鑰
(7)使用(6)會(huì)話密鑰將(5)中經(jīng)過壓縮并加密的消息解密
(8)將(7)中得到的經(jīng)過壓縮的消息解壓縮
(9)得到原消息

三、生成和驗(yàn)證數(shù)字簽名

1.生成數(shù)字簽名

精讀《圖解密碼技術(shù)》——第十三章 PGP

(1)發(fā)送者輸入簽名用的口令
(2)求口令的散列值,生成用于解密的密鑰
(3)將私鑰解密
(4)用單項(xiàng)散列函數(shù)計(jì)算消息的散列值
(5)對(duì)(4)中的散列值進(jìn)行簽名,相當(dāng)于用(3)得到的私鑰進(jìn)行加密
(6)將(5)得到的數(shù)字簽名和消息拼合
(7)將(6)的結(jié)果壓縮
(8)將(7)的結(jié)果轉(zhuǎn)換成文本數(shù)據(jù)
(9)步驟(8)中的結(jié)果就是報(bào)文數(shù)據(jù)

2.驗(yàn)證數(shù)字簽名

精讀《圖解密碼技術(shù)》——第十三章 PGP

(1)將報(bào)文數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)
(2)對(duì)壓縮過的數(shù)據(jù)解壓縮
(3)將解壓縮后的數(shù)據(jù)分解為經(jīng)過簽名的散列值和消息兩部分
(4)將簽名后的散列值用發(fā)送者的公鑰加密,恢復(fù)發(fā)送者發(fā)出的散列值
(5)將(3)中分解出的消息輸入單項(xiàng)散列函數(shù)計(jì)算出散列值
(6)將(4)中生成的散列值與(5)生成的散列值進(jìn)行對(duì)比
(7)如果(6)的結(jié)果相等則數(shù)字簽名驗(yàn)證成功,不想等則驗(yàn)證失敗。

三、生成數(shù)字簽名并加密以及解密并驗(yàn)證數(shù)字簽名

1.生成數(shù)字簽名并加密

精讀《圖解密碼技術(shù)》——第十三章 PGP

2.解密并驗(yàn)證數(shù)字簽名

精讀《圖解密碼技術(shù)》——第十三章 PGP

四、信任網(wǎng)

??之前我們介紹過是使用認(rèn)證機(jī)構(gòu)對(duì)公鑰簽名認(rèn)證的方法來確保公鑰的合法性,PGP中并沒有用到認(rèn)證機(jī)構(gòu),而是采用的一種信任網(wǎng)的方法。在這種方法中,PGP用戶會(huì)互相對(duì)對(duì)方的公鑰進(jìn)行數(shù)字簽名。

五、小測(cè)驗(yàn)

1.壓縮和加密的順序

??從用PGP加密的過程圖中可以看出,消息是先進(jìn)行壓縮再加密的,為什么一定要按照壓縮→加密的順序來處理呢?
我的回答:加密會(huì)導(dǎo)致比特序列的冗余性消失,而壓縮就是消除冗余性,所以如果加密之后就沒有壓縮的必要了。

2.確認(rèn)公鑰合法性的手段

??Alice有一個(gè)好朋友叫EIma,兩人經(jīng)常煲電話粥。有一天,她收到了一封來自Elma的郵件,里面說“這是我的公鑰",并附帶了一個(gè)公鑰。
??Alice考慮到這封郵件可能經(jīng)過了主動(dòng)攻擊者M(jìn)allory 的篡改,于是她打算給Elma打電話以便確認(rèn)自己所收到的公鑰是否來自EIma本人。 可是,由于收到的公鑰文件太大,不可能一個(gè)字節(jié)一個(gè)字節(jié)地通過電話來口頭確認(rèn),這可怎么辦呢?

我的回答:不需要讀出公鑰的內(nèi)容本身,只需要將公鑰輸入單向散列函數(shù),通過電話對(duì)比散列值就可以了。

3.大量的數(shù)字簽名

??Alice收到了來自Jerry 的公鑰,這個(gè)公鑰上帶有10個(gè)合法的數(shù)字簽名,Alice能判斷這個(gè)公鑰是合法的嗎?
我的回答:不能。公鑰的合法性的確可以通過數(shù)字簽名來保證,可是數(shù)字簽名的合法性也是需要確認(rèn)的,必須確認(rèn)對(duì)此公鑰進(jìn)行簽名的是否是Alice的信任機(jī)構(gòu)才可以確認(rèn)公鑰的合法性。

4.基礎(chǔ)知識(shí)

下列說法中,請(qǐng)?jiān)谡_的旁邊畫○,錯(cuò)誤的旁邊畫×。
(1) PGP中是先對(duì)數(shù)據(jù)進(jìn)行壓縮,然后再進(jìn)行加密的。
(2) PGP的用戶使用http://www.pgp.com/上設(shè)立的認(rèn)證機(jī)構(gòu)。
(3) 使用PGP可以生成自己的公鑰密鑰對(duì)。
(4) 在用PGP進(jìn)行加密時(shí),不使用對(duì)稱密碼算法,而是使用公鑰密碼算法。
(5) 在用PGP驗(yàn)證數(shù)字簽名時(shí),需要輸入口令。
(6) 在用PGP生成數(shù)字簽名并加密時(shí),需要輸入發(fā)送者的口令。

我的回答:(1)○;(2)×;(3)○;(4)×;(5)×;(6)○;
(2)PGP中使用的是信任網(wǎng)而不是認(rèn)證機(jī)構(gòu)。
(3)PGP使用的是混合密碼系統(tǒng),所以既要使用對(duì)稱密碼算法,也要使用公鑰密碼算法,使用公鑰密鑰算法對(duì)會(huì)話秘鑰加密,使用對(duì)稱密碼算法對(duì)消息加密。
(5) 在用PGP驗(yàn)證數(shù)字簽名時(shí),不需要輸入口令,使用PGP解密的時(shí)候需要輸入口令。文章來源地址http://www.zghlxwxcb.cn/news/detail-447663.html

到了這里,關(guān)于精讀《圖解密碼技術(shù)》——第十三章 PGP的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第十三章 python之爬蟲

    Python基礎(chǔ)、函數(shù)、模塊、面向?qū)ο?、網(wǎng)絡(luò)和并發(fā)編程、數(shù)據(jù)庫和緩存、 前端、django、Flask、tornado、api、git、爬蟲、算法和數(shù)據(jù)結(jié)構(gòu)、Linux、設(shè)計(jì)題、客觀題、其他

    2024年02月04日
    瀏覽(37)
  • 《微服務(wù)實(shí)戰(zhàn)》 第十三章 JWT

    《微服務(wù)實(shí)戰(zhàn)》 第十三章 JWT

    【項(xiàng)目實(shí)戰(zhàn)】Spring boot整合JWT、Vue案例展示用戶鑒權(quán) 【微服務(wù)實(shí)戰(zhàn)】JWT JSON Web Token(JWT)是目前最流行的跨域身份驗(yàn)證解決方案。 基于JSON的開發(fā)標(biāo)準(zhǔn) 用戶信息加密到token里,服務(wù)器不保存任何用戶信息 在傳統(tǒng)的用戶登錄認(rèn)證中,因?yàn)閔ttp是無狀態(tài)的,所以都是采用session方式

    2024年02月06日
    瀏覽(53)
  • 第十三章,枚舉與泛型例題

    第十三章,枚舉與泛型例題

    例題1 結(jié)果 ? 例題2 結(jié)果 ? 例題3 結(jié)果? ? ?例題4 結(jié)果 例題5 ?結(jié)果 例題6 ?結(jié)果 例題7 ?結(jié)果 例題8 ?結(jié)果

    2024年02月06日
    瀏覽(31)
  • 第十三章 Unity 移動(dòng)和旋轉(zhuǎn)(上)

    第十三章 Unity 移動(dòng)和旋轉(zhuǎn)(上)

    移動(dòng)和旋轉(zhuǎn)是游戲?qū)ο笞铑l繁地操作。我們上個(gè)章節(jié)簡單介紹了Cube的移動(dòng)和旋轉(zhuǎn)。移動(dòng)是修改transform的position屬性,旋轉(zhuǎn)是修改transform的eulerAngles(歐拉角)屬性,兩者屬性值均可以使用Vector3向量來實(shí)現(xiàn)。需要大家注意的是,transform.forward和Vector3.forward的區(qū)別(參考坐標(biāo)系是

    2024年02月05日
    瀏覽(38)
  • 第十三章_Redis中的BigKey

    第十三章_Redis中的BigKey

    MoreKey案例 大批量往redis里面插入2000W測(cè)試數(shù)據(jù)key? Linux?Bash下面執(zhí)行,插入100W # 生成100W條redis批量設(shè)置kv的語句(key=kn,value=vn)寫入到/tmp目錄下的redisTest.txt文件中 for((i=1;i=100*10000;i++)); do echo \\\"set k$i v$i\\\" /tmp/redisTest.txt ;done; 通過redis提供的管道--pipe命令插入100W大批量數(shù)據(jù) 結(jié)合自己

    2024年02月03日
    瀏覽(30)
  • 《c++ primer筆記》第十三章 拷貝控制

    1.1拷貝構(gòu)造函數(shù) ? 如果一個(gè)構(gòu)造函數(shù)的第一個(gè)參數(shù)是自身類類型的 引用 ,且任何額外參數(shù)都由默認(rèn)值,則此構(gòu)造函數(shù)成為拷貝構(gòu)造函數(shù)。 拷貝構(gòu)造函數(shù)在某些情況下會(huì)被隱式地使用,所以不能定義為 expicit 。 合成拷貝構(gòu)造函數(shù) ? 合成某某函數(shù) 一般出現(xiàn)在我們沒定義該函

    2023年04月25日
    瀏覽(31)
  • Vue3——第十三章(插槽 Slots)

    Vue3——第十三章(插槽 Slots)

    這里有一個(gè) FancyButton 組件,可以像這樣使用: 而 FancyButton 的模板是這樣的: slot 元素是一個(gè)插槽出口 (slot outlet),標(biāo)示了父元素提供的插槽內(nèi)容 (slot content) 將在哪里被渲染。 最終渲染出的 DOM 是這樣: 通過使用插槽, FancyButton 僅負(fù)責(zé)渲染外層的 button (以及相應(yīng)的樣式),而

    2024年02月07日
    瀏覽(35)
  • 第十三章 opengl之模型(導(dǎo)入3D模型)

    使用Assimp并創(chuàng)建實(shí)際的加載和轉(zhuǎn)換代碼。Model類結(jié)構(gòu)如下: Model類包含一個(gè)Mesh對(duì)象的vector,構(gòu)造器參數(shù)需要一個(gè)文件路徑。 構(gòu)造器通過loadModel來加載文件。私有函數(shù)將會(huì)處理Assimp導(dǎo)入過程中的一部分,私有函數(shù)還存儲(chǔ)了 文件路徑的目錄,加載紋理時(shí)會(huì)用到。 Draw函數(shù)的作用:

    2024年02月05日
    瀏覽(30)
  • 《TCP IP網(wǎng)絡(luò)編程》第十三章

    《TCP IP網(wǎng)絡(luò)編程》第十三章

    Linux 中的 send recv: ?????????send 函數(shù)定義: ????????recv 函數(shù)的定義: ????????send 和 recv 函數(shù)的最后一個(gè)參數(shù)是收發(fā)數(shù)據(jù)的可選項(xiàng),該選項(xiàng)可以用位或(bit OR)運(yùn)算符(| 運(yùn)算符)同時(shí)傳遞多個(gè)信息。send recv 函數(shù)的可選項(xiàng)意義: MSG_OOB:發(fā)送緊急消息?: ????

    2024年02月15日
    瀏覽(23)
  • 第十三章 實(shí)現(xiàn)組件庫按需引入功能

    第十三章 實(shí)現(xiàn)組件庫按需引入功能

    組件庫會(huì)包含幾十甚至上百個(gè)組件,但是應(yīng)用的時(shí)候往往只使用其中的一部分。這個(gè)時(shí)候如果全部引入到項(xiàng)目中,就會(huì)使輸出產(chǎn)物體積變大。按需加載的支持是組件庫中必須考慮的問題。 目前組件的按需引入會(huì)分成兩個(gè)方法: 經(jīng)典方法:組件單獨(dú)分包 + 按需導(dǎo)入 + babel-plug

    2024年02月11日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包