版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第8章實驗消息認證與數(shù)字簽名A
PGP軟件的安裝與使用B消息摘要與數(shù)字簽名算法的實現(xiàn)目錄contents
PGP軟件的安裝與使用實驗目的:1.掌握PGP軟件的安裝方法2.掌握PGP軟件的公鑰與私鑰生成方法,PGPKeys管理密鑰的方法4.學會使用PGP軟件收發(fā)加密郵件。PGP安裝1.進入setup文件夾,雙擊PGP安裝文件進行安裝,安裝完成后會問要不要重啟,選擇不要重啟。2.進入Keygen文件夾,打開Keygen運行注冊機(windows7必須選擇使用管理員身份運行),點擊path。PGP安裝3.重啟系統(tǒng),運行認證程序(一般自動運行),填寫用戶名和公司名,郵件可以不填寫:輸入序列號。4.選擇輸入客服認證碼,并輸入注冊機生成的認證碼,然后點擊完成PGP使用UserA先在PGPDesktop程序中新建一個密鑰KeyA,然后UserA將KeyA的公鑰導出并發(fā)送給UserB。UserB接收到KeyA將其命名為KeyB,接著UserB將KeyB導入到PGPDesktop10程序,并對密鑰KeyB進行簽名,簽名之后到PGP壓縮包中選擇需要加密的UserB文件,利用KeyB將其加密成為.pgp文件,然后將其發(fā)送給UserA。UserA接收到UserB發(fā)送來的加密文件,利用KeyA之前生成的私鑰對加密文件進行解密得到解密后的文件。PGP使用1.生成密鑰-輸入用戶名、郵箱-輸入口令-創(chuàng)建口令-完成密鑰生成PGP使用2.在PGPdesktop中選擇“工具“-選項”對話框,打開“PGP選項”對話框,選擇“主密鑰”選項卡3.選中用戶A賬戶,點擊右鍵,選中”導出“,選擇好保存位置將密鑰保存PGP使用4.將用戶A導出的公鑰發(fā)送而給用戶B5.test2將要發(fā)送的文件利用PGP進行加密。選中文件-右鍵-PGPDesktop-使用密鑰保護。PGP使用6.向test1用戶發(fā)送加密文件7.test1用戶接收文件,對加密附件右鍵選擇-PGPDesktop,選擇解密&校驗選項進行解密,即可得到明文郵件。實驗報告(1)PGP在進行消息簽名時,為什么只對Hash值簽名?如果用公鑰對原文進行加密,如果原文很長的話,所需要的時間非常長,所得到的簽名需要更長的時間進行驗證,也占據(jù)了更到的空間,會造成空間的浪費。(2)PGP主要基于什么算法來實現(xiàn)加密和解密?PGP是個混合加密算法,它由一個對稱加密算法(IDEA)、一個非對稱加密算法(RSA)、與單向散列算法(MD5)以及一個隨機數(shù)產(chǎn)生器(從用戶擊鍵頻率產(chǎn)生偽隨機數(shù)序列的種子)組成的,每種算法都是PGP不可分割的組成部分。(3)使用郵件加密時,對于收件人和發(fā)件人的使用環(huán)境有什么要求?雙方都應該有電子郵件數(shù)字證書;發(fā)件人必須要有收件人的公開密鑰并確定收件人公開密鑰是有效的,而且認為他是具有一定的信任度;收件人必須要有發(fā)件人的公開密鑰和會話密鑰。實驗報告(4)PGP如何配置用戶的公鑰及私鑰?如何導入其他用戶的公鑰?PGP為用戶生成一對密鑰,一個公鑰可以發(fā)給任何可信的用戶進行加密使用;另一個私密保留給自己用來解密時使用。在需要加密時,PGP產(chǎn)生一個會話密鑰,并加密,然后PGP用接收方從公鑰環(huán)中獲取其公鑰,最后構造消息的會話密鑰部分;在需要解密時,PGP用消息的會話密鑰部分中的KeyID作為索引,從私鑰環(huán)中獲取私鑰,然后PGP提示輸入口令短語,恢復私鑰,最后PGP恢復會話密鑰,并解密消息。(5)PGP的“文件粉碎”功能有什么作用?永久的粉碎銷毀文件、文件夾,并釋放出磁盤空間。使用PGP粉碎工具來永久地刪除那些敏感的文件和文件夾,而不會遺留任何的數(shù)據(jù)片段在硬盤上。這個工具是要確保您所刪除的數(shù)據(jù)將永遠不可能被別有用心的人恢復。(6)PGP的密鑰是如何管理的?PGP使用了4種類型的密鑰:會話密鑰Ks
、公鑰、私鑰、私鑰加密口令。KS是一個偽隨機數(shù)密鑰,是一次性會話密鑰。PGP作為去中心化的分布式系統(tǒng),顯然不能利用信任CA機構的方法來進行公鑰管理,這里PGP使用的是信任網(wǎng)絡。當任何使用者使用了別人的公鑰,他就會成為那把公鑰的引薦者。當這樣的程序被持續(xù)地進行著,就會形成一張信任網(wǎng)絡問答題1.(1)什么是會話密鑰?會話密鑰是指當兩個端系統(tǒng)希望通信,他們建立一條邏輯連接。在邏輯連接持續(xù)過程中,所以用戶數(shù)據(jù)都使用一個一次性的會話密鑰加密。在會話和連接結束時,會話密鑰被銷毀。(2)描述SHA-256算法的基本流程。常量初始化:SHA256算法中用到了8個哈希初值以及64個哈希常量,64個哈希常量參與到后面的哈希值計算。SHA256中用到了8個散列初始值,這些初值是對自然數(shù)中前8個質(zhì)數(shù)的平方根的小數(shù)部分取前32bit而來。常量是對自然數(shù)中前64個質(zhì)數(shù)的立方根的小數(shù)部分取前32bit而來。信息預處理:1.填充比特。在報文末尾進行填充,使報文長度=448(mod512),規(guī)則為先補第一個比特為1,然后都補0,若長度剛好為448也必須填充,此時需要增加512位,即填充的位數(shù)[1,512]。2.附加長度值附加長度值就是將原始數(shù)據(jù)的長度信息(無符號整數(shù)64bit)附加到已經(jīng)填充消息的后面。前兩個附加長度就構成了一個長度為512整數(shù)倍的消息結構。問答題基本流程:將消息M分解成n個512-bit大小的塊一個256-bit的摘要的初始值H0,經(jīng)過第一個數(shù)據(jù)塊進行運算,得到H1,即完成了第一次迭代H1經(jīng)過第二個數(shù)據(jù)塊得到H2,……,依次處理,最后得到Hn。Hi是第i個消息分組處理的最后一輪的輸出。H0[8]=[h0,h1,h2,h3,h4,h5,h6,h7]。Hi被描述8個小塊,這是因為SHA256算法中的最小運算單元稱為“字”(Word),一個字是32位。構造64個字,對于每一個512bit的塊,將其分解為16個32bit的(big-endian)字,記為w[0],w[1],……,w[15]其余的字由如下迭代公式得到:Wt
=σ1(W
t?2
)+W
t?7
+σ
0
(W
t?15
)+W
t?16
然后進行64次加密循環(huán),Hi按照一定規(guī)則不斷更新問答題(3)描述PGP進行數(shù)字簽名的工作流程。給出你對消息“informationsecurity”的簽名和對應該簽名的公、私鑰。生成數(shù)字簽名:送者輸入簽名時用的口令。求口令的散列值,生成用于解密私鑰的密鑰。將鑰匙串中經(jīng)過加密的私鑰進行解密。用單項散列函數(shù)計算消息的散列值。對上一次操作中得到的散列值進行簽名。將生成的數(shù)字簽名與消息進行加密。將結果進行壓縮。將上一步結果轉(zhuǎn)換為文本數(shù)據(jù)。驗證數(shù)字簽名:將報文數(shù)據(jù)轉(zhuǎn)換為二進制數(shù)據(jù)。將經(jīng)過壓縮的數(shù)據(jù)進行解壓縮。將解壓縮后的數(shù)據(jù)分解成經(jīng)過簽名的散列值和消息兩部分。將經(jīng)過簽名的散列值用發(fā)送者的公鑰進行解密,回復發(fā)送者發(fā)送的散列值。找到并計算散列值,與已有的散列值進行對比,結果相等則數(shù)字簽名驗證成功,否則失敗。(4)GPG軟件作為用于加密和數(shù)字簽名的開放源碼工具,許多Linux發(fā)行版本都自帶了該軟件。請簡單描述該軟件的使用方法。1生成密鑰。2查看已有密鑰。3對信息進行加密。4解密。5生成簽名6驗證簽名消息摘要與數(shù)字簽名算法的實現(xiàn)實驗目的:1.熟練掌握消息摘要、認證碼和數(shù)字簽名的概念和作用。2.熟悉Java環(huán)境下實現(xiàn)上述算法的類和方法的使用。3.能夠編程實現(xiàn)摘要、認證碼和簽名的計算。實驗報告(1)說明實驗內(nèi)容(1)中代碼的作用。//A使用私鑰(n,d)對h(m)加密,生成簽名
intc=1;for(inti=0;i<d;i++){c=c*m;c=c%n;}//A計算m的消息摘要
//B使用A的公鑰(n,e)解密inte=1769;//A公鑰m=1;for(inti=0;i<e;i++){m=m*c;m=m%n;}//B解密If(m=707)//B解密得到的m與A進行對比System.out.println("\nSignatureverificationOK")//如果一致,簽名就驗證成功elseSystem.out.println("\nSignatureverificationWrong");//不成功,輸出wrong}}M為消息內(nèi)容,(n,d)為A的私鑰,(n,e)為A的公鑰,第一個for循環(huán)是A用A的私鑰對M進行簽名的過程,第二個for循環(huán)是B用A的公鑰對消息摘要進行解密的過程,驗證B解密得到的消息摘要M與最初的M是否一致,如果一致,數(shù)字簽名就驗證成功,否者就不成功publicclassCheckSign{publicstaticvoidmain(){intm=707;//消息摘要
intd=425;//A私鑰intn=3431;//A私鑰/(2)實驗內(nèi)容(2)的輸出是多少位?給出一個測試結果
(3)給出實驗內(nèi)容(3)的測試結果,為什么要先做摘要后簽名?。從可行性上看:接收方需要通過摘要驗證數(shù)據(jù)完整性,然而接收方無法對數(shù)據(jù)進行簽名,因此無法驗證數(shù)據(jù)摘要一致性。從時間效率看:對原始數(shù)據(jù)進行簽名(加密)時間太長,而摘要算法本身是壓縮映射,可以縮短簽名消耗的時間。問答題(1)請描述SHA系列的摘要算法的安全性。SHA系列摘要算法是在MD4算法的基礎上演進而來,通過SHA算法同樣能夠得到一個固定長度的摘要信息。與MD系列算法不同的是:若輸入的消息不同,則與其相對應的摘要信息的差異概率很高。SHA算法是FIPS所認證的五種安全雜湊算法。SHA算法的安全性體現(xiàn)在:由消息摘要反推輸入信息,從理論上來說是非常困難的。想要找到兩組不同輸入信息對應到相同的摘要信息,從理論上來說是非常困難的。輸入信息任何變動,都有很高的幾率導致其產(chǎn)生的摘要消息差異很大。問答題(2)常用的數(shù)字簽名算法有哪些?Java的signature類提供了哪些算法?常見的數(shù)字簽名算法主要有RSA、DSA、ECDSA三種。RSA是目前計算機密碼學中最經(jīng)典算法,也是目前為止使用最廣泛的數(shù)字簽名算法,密鑰的產(chǎn)生和轉(zhuǎn)換都是一樣的,包括在售的所有SSL數(shù)字證書、代碼簽名證書、文檔簽名以及郵件簽名大多都采用RSA算法進行加密。DSA只是一種算法,不能用于加密和解密,也不能進行密鑰交換,只用于簽名,所以它比RSA要快很多,其安全性與RSA相比差不多,DSA的一個重要特點是兩個素數(shù)公開,當使用別人的p和q時,即使不知道私鑰,也能確認它們是否是隨機產(chǎn)生的。ECDSA用于數(shù)字簽名是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程共同償還承諾書
- 體育場館入駐辦法
- 倒班工作安全管理
- 醫(yī)療器械維護基礎設施施工合同
- 印刷企業(yè)平面設計師招聘合同
- 造紙企業(yè)消防設施改造施工協(xié)議
- 市場營銷班主任合同協(xié)議
- 食品冷鏈貨車司機招聘合同
- 地震監(jiān)測新司機招聘模板
- 金融服務平臺審計要領
- 2024-2030年中國網(wǎng)吧服務行業(yè)市場發(fā)展分析及前景趨勢與投資風險研究報告
- 中藥材種植中藥材運輸配送方案
- 高寶故障代碼-中文
- 重慶市中學2023-2024學年物理八年級第一學期期末學業(yè)水平測試試題含解析
- 滲流力學進展與前沿
- 影城防汛緊急避險應急預案
- 中國慢性便秘診治指南解讀
- 2023年山西省普通高中學業(yè)水平考試數(shù)學試題( 含解析)
- 鄰近鐵路營業(yè)線施工安全監(jiān)測技術規(guī)程 (TB 10314-2021)
- 電力設備典型消防規(guī)程通用課件
- 口腔急救知識培訓課件
評論
0/150
提交評論