《信息安全技術》實驗一 PGP的原理與使用


《信息安全技術》實驗一 PGP的原理與使用(macOS High Sierra下實現)

實驗目的

  • 理解傳統加密、公鑰加密、混合加密、數字簽名等概念
  • 理解公鑰、私鑰、會話密鑰、對稱密鑰等概念及其應用
  • 掌握電子郵件安全應用
  • 熟悉PGP工具的使用

實驗內容

  • 使用PGP進行傳統加密
  • 使用PGP進行生成密鑰對
  • 使用PGP進行混合方式加密
  • 使用PGP進行數字簽名
  • 使用PGP交換並驗證公鑰
  • 使用PGP分割私鑰

實驗原理

在一個基於公鑰密碼體制的安全應用系統中,假設用戶A和B分別擁有自己的公鑰和私鑰:

  1. 在產生A和B的密鑰時,如果采用RSA算法,選取的模數n至少為1024位
  2. 為了預防A抵賴,B要求A對其發送的消息進行簽名。A將使用A的私鑰對消息簽名;B使用A的公鑰對A的簽名進行驗簽。如果要求對消息保密傳輸,A將使用B的公鑰對消息加密,B使用B的私鑰解密消息。
  3. 實際應用中為了縮短簽名的長度、提高簽名的速度,而且為了更安全,常對信息的消息摘要進行簽名。
  4. 實際應用中,通常需要進行身份認證。基於口令的認證簡單易用,但是口令明文存儲與傳輸很不安全,對口令認證機制可以進行如下改進:
    • 利用不需使用密鑰的哈希算法加密口令,使口令能夠以密文形式存儲與傳輸。

實驗步驟

一、安裝GPG(macOS High Sierra下)

  1. 訪問GPGTools網站,點擊Download GPG Suite,下載GPG Suite for OS X 2017.1:

  2. 雙擊打開GPG_Suite-2017.1.dmg,運行安裝操作:

  3. 雙擊Install,出現安裝界面,單擊繼續:

  4. 在選擇安裝類型(Installation Type)的時候,選擇自定義安裝(Customize),單擊自定:

  5. 去掉"GPGMail"前面的勾,單擊安裝:

  6. 再輸入用戶密碼獲取權限,隨后安裝完成。

二、創建PGP密鑰

  1. 打開GPG,菜單欄中點擊"新建",彈出"Generate new key pair"窗口,輸入姓名、電子郵件和密碼,創建PGP密鑰:
  2. 展開"高級選項(Advanced options)",配置密鑰類型、密鑰長度和有效期:
    • 密鑰類型選擇RSA和RSA(默認):
      JoV8x.png
    • 密鑰長度選擇4096字節:
      OH2ey.png
    • 有效期選擇一年,點擊"Generate Key"生成密鑰:
      JQDyR.png
  3. GPG會彈窗提示密碼長度過短QAQ不過由於實驗方便還是就用短一點的密碼吧~點擊"Continue with simple password"繼續生成:
    JQ6w6.png
    隨后GPG會生成4096個隨機字節:
    JQrO1.png
    密鑰成功創建!此時一定要點擊"Upload Public Key",將公鑰上傳
    JQyex.png
    密鑰成功生成如下:
    YuN4g.png

三、設置PGP快捷鍵

  1. 點擊"🍎"-->"系統偏好設置"-->"鍵盤"-->"快捷鍵",點擊左邊的“服務”選項,在右側中找到一系列以“OpenPGP開頭”的操作,把前面的勾去掉:
    JQTmt.png

  2. 打勾啟用以下四個操作,並設置快捷鍵:

    • OpenPGP: Decrypt設置為:control+option+command+minus(-)
    • OpenPGP: Encrypt設置為:control+option+command+equals(=)
    • OpenPGP: Sign設置為:control+option+command+open bracket([)
    • OpenPGP: Verify設置為:control+option+command+close bracket(])

    JQTmt.png

四、發送加密郵件

  1. 選擇郵件內容,按control+option+command+open bracket進行簽名,GPG會彈窗提示輸入Passphrase:
    Ye5KP.png
    點擊確認后獲得簽名(SIGNATURE)后的郵件:
    OaTpT.png
  2. 打開GPG Keychain Access應用,按command+F輸入接收者的郵箱地址,軟件會去公共密鑰服務器上去搜索郵件接收者的公鑰,如果對方有多個密鑰,選擇最新的一個:
    ObJdD.png
  3. 會看到一條確認信息,對方的公鑰已經下載完成。點擊"好"關閉:
    YeDu6.png
  4. 退出GPG Keychain Access回到郵件撰寫頁面,全選郵件內容,按control+option+command+equals進行加密,系統會彈出一個窗口,咨詢接收者是誰,選擇接收者的公鑰,點擊“OK”。此時,郵件的內容以及加密完成,可以安全發送:
    YerDK.png

五、解密郵件

  1. 復制郵件所有內容到文本編輯器Pages,包括“-----BEGIN PGP MESSAGE---”和“-----END PGP MESSAGE---”:
    YesHO.png
  2. 選中所有內容,按control+option+command+minus進行解密,輸入設置的Passphrase,按“OK”就可以看到解密的郵件內容:
    Ye6ED.png
    得到揭秘之后的消息(待驗簽):
    YeW8A.png
  3. 復制消息到Pages,點擊"Pages"-->"服務"-->"OpenPGP:Verify Signature of Selection"驗證簽名:
    YefgI.png
    成功驗證簽名:
    YecUe.png

思考題

根據PGP的加密原理,說明為什么PGP要比RSA加密速度要快得多。

  • 答:PGP不是加密方法,是一個軟件。由於RSA算法是公鑰加密算法,計算過程涉及到很大的冪指數運算,計算量極大,在速度上不適合加密大量數據,所以PGP實際上用來加密的不是RSA本身,而是采用傳統加密算法IDEA,IDEA加解密的速度比RSA快得多。PGP隨機生成一個密鑰,用IDEA算法對明文加密,然后用RSA算法對密鑰加密。收件人同樣是用RSA解出隨機密鑰,再用IEDA解出原文。這樣的鏈式加密既有RSA算法的保密性(Privacy)和認證性(Authentication),又保持了IDEA算法速度快的優勢。

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM