天天看點

資訊的安全傳輸實驗

  • 實驗目的
  1. 設計安全的資訊傳輸工具,解決網絡傳輸涉密檔案過程中的安全性問題。安全的資訊傳輸,涉及多個密碼學知識點,在實驗設計過程中,不斷加深了解密碼學基本概念和算法基礎原理,并且能夠鍛煉學生獨立的代碼編寫能力和知識的綜合運用能力。
  • 實驗環境
  1. Windows
  • 實驗要求
    1. 采用對稱與非對稱混合加密方法,每進行一次通信,更改一次會話密鑰(用于資訊加密的對稱密鑰)。
    2. 能夠實作對任意類型的檔案進行安全傳輸。
    3. 可采用适當的開發語言和開發工具。
    4. 軟體使用者界面友好,提示資訊完整,操作舒适。
    5. 送出實驗報告、包括分析和設計文檔及代碼清單。
    6. 平台不限。linux/windows/android
  • 實驗内容
  1. 總體設計

1.1開發環境

       Python2.7

IDE:Pycharm2016.3.2

1.2程式架構

資訊的安全傳輸實驗
  1. 詳細設計

2.1 Md5生成資訊摘要

通過Crypto庫裡的md5算法

資訊的安全傳輸實驗

調用該函數的部分

資訊的安全傳輸實驗

解密調用部分

資訊的安全傳輸實驗

2.2 RSA進行數字簽名

利用M2Crypto裡的RSA子產品進行RSA私鑰加密,實作數字簽名

資訊的安全傳輸實驗

對應RSA公鑰解密

資訊的安全傳輸實驗

調用該函數的部分

資訊的安全傳輸實驗

對應解密調用部分

資訊的安全傳輸實驗

2.3 AES進行檔案加解密

利用Crypto裡的AES子產品進行加密

資訊的安全傳輸實驗

對應AES解密

資訊的安全傳輸實驗

調用該函數的部分

對檔案進行加密時

資訊的安全傳輸實驗

對應解密部分

資訊的安全傳輸實驗

對數字簽名進行加密時

資訊的安全傳輸實驗

對應解密部分

資訊的安全傳輸實驗

2.4 RSA進行AES密鑰加解密

利用M2Crypto的RSA子產品進行RSA公鑰加密

資訊的安全傳輸實驗

對應解密部分

資訊的安全傳輸實驗

調用該函數的部分

資訊的安全傳輸實驗

對應解密部分

資訊的安全傳輸實驗

2.5 C/S的Socket傳輸

這裡利用用戶端和伺服器模式來進行傳輸加密後的檔案,以主動發送檔案的Alice作為用戶端,接收檔案的Bob作為伺服器,實際開發中隻需再多一個反過來的程序即可實作雙向檔案安全傳輸,這裡隻做單向開發。

Bob服務端

啟動一個端口(9999)監聽

資訊的安全傳輸實驗

并循環等待,接收檔案

資訊的安全傳輸實驗

Alice用戶端

連接配接所需的伺服器IP及端口

資訊的安全傳輸實驗

傳輸檔案的函數

資訊的安全傳輸實驗
  1. 程式展示

該程式分為Alice和Bob傳輸對象,其中Alice作為client端,Bob作為Server端。

此為Alice下的計算機

資訊的安全傳輸實驗

此為Bob下的計算機

資訊的安全傳輸實驗

Bob先開啟伺服器端口

資訊的安全傳輸實驗

Alice進行檔案傳輸

資訊的安全傳輸實驗

注:紅色框為所需輸入檔案名

同時可以看到,Bob接收到Alice發的檔案

資訊的安全傳輸實驗
資訊的安全傳輸實驗
資訊的安全傳輸實驗
資訊的安全傳輸實驗
資訊的安全傳輸實驗
資訊的安全傳輸實驗
資訊的安全傳輸實驗

可以看到Bob這邊自動接收檔案并進行解密,及完整性檢驗

資訊的安全傳輸實驗

可以看到,其中對解密檔案摘要和數字簽名得到的摘要進行對比檢驗

資訊的安全傳輸實驗

打開file_decrypted

資訊的安全傳輸實驗

與message.txt一緻

資訊的安全傳輸實驗

證明檔案安全傳輸成功

  • 實驗總結

通過完整地設計一個檔案安全傳輸,對對稱加密算法、非對稱加密算法、資訊摘要算法的各優缺點更加了解,并綜合地利用這幾個部分算法進行應用,得到了很好的程式設計能力和設計能力的鍛煉。其中,設計該檔案安全傳輸系統中,考慮到如下安全性的設計:

保密性:Alice對檔案内容、數字簽名進行AES加密,對AES加密初始變量iv、AES密鑰進行RSA加密。

完整性:數字簽名解密後的摘要與解密檔案的摘要進行驗證。

不可否認性:數字簽名時用Alice私鑰對原檔案摘要進行簽名,在用Bob公鑰對AES密鑰加密前先用Alice私鑰對AES密鑰進行一次加密。

繼續閱讀