版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、. 大學(xué) JIANGSU UNIVERSITY課程設(shè)計(jì)報(bào)告題目:一種簡易的文件平安傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)院:專業(yè)班級:*:*:指導(dǎo)教師:. 目錄第一局部課程設(shè)計(jì)準(zhǔn)備1.1課程設(shè)計(jì)題目.11.2小組成員及分工.11.3課題背景及意義.1第二局部課程設(shè)計(jì)過程2.1課題需求分析.4 2.1.1需求分析.42.2概要設(shè)計(jì).9 2.2.1 系統(tǒng)功能描述.5 2.2.2 系統(tǒng)功能流程圖.62.3具體功能的實(shí)現(xiàn).9預(yù)備知識.9算法原理.9.2.4運(yùn)行結(jié)果.11 2.4.1程序界面截圖.112.5 待改進(jìn)問題.12第三局部課程設(shè)計(jì)體會3.1課程設(shè)計(jì)心得體會.123.2源程序清單.13第一局部課程設(shè)計(jì)準(zhǔn)備1.1
2、課程設(shè)計(jì)題目題目:一種簡易的文件平安傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)簡介:進(jìn)入信息時(shí)代以來,人類的生活發(fā)生了翻天覆地的變化。保護(hù)網(wǎng)絡(luò)系統(tǒng)中的數(shù)據(jù)不受偶然或惡意原因而遭到破壞、更改、泄露,是網(wǎng)絡(luò)平安的主要容之一。目前比擬實(shí)用的方法是對網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)進(jìn)展加密,而數(shù)據(jù)加密要依賴于成熟的數(shù)據(jù)加密算法。本文詳細(xì)論述了對稱密碼體制和公鑰密碼體制的典型代表AESAdvanced Encryption Standard 算法和RSA算法的原理和平安性能,并結(jié)合這兩種算法在windows平臺上設(shè)計(jì)實(shí)現(xiàn)了基于網(wǎng)絡(luò)數(shù)據(jù)加解密的文件傳輸系統(tǒng)。詳細(xì)論述了總體設(shè)計(jì)思想、功能模塊設(shè)計(jì)。該系統(tǒng)采用python語言編寫,軟件分為發(fā)送端和
3、接收端。發(fā)送端的功能主要為提取文件摘要,文件加密,密鑰加密,文件發(fā)送;承受端的功能是承受文件,解密密鑰,解密容,驗(yàn)證文件完整性。1.2小組成員及分工*:md5算法計(jì)算文件哈希值,實(shí)現(xiàn)文件的完整性檢查*:AES算法加解密文件*:平安協(xié)議以及總體功能架構(gòu)設(shè)計(jì)1.3課題背景及意義隨著計(jì)算機(jī)技術(shù)的迅速開展,在計(jì)算機(jī)的應(yīng)用領(lǐng)域中軟件系統(tǒng)的應(yīng)用越來越廣泛。而文件傳輸是其中重要的一個(gè)方面,現(xiàn)在人們對傳輸系統(tǒng)的性能和功能要求也越來越高,但文件傳輸系統(tǒng)尤其是在文件傳輸?shù)钠桨残陨蠀s存在著巨大的缺陷。大多數(shù)的平安文件傳輸系統(tǒng)的平安性表達(dá)在了算法的改進(jìn)或者使用更高級的算法。這個(gè)實(shí)用程序的要平安的主機(jī)之間傳輸大文件,我
4、們需要一個(gè)強(qiáng)大的密碼加密數(shù)據(jù)發(fā)送機(jī)制。為了防止密鑰泄露問題,我們通常使用公鑰加密加密數(shù)據(jù)。但是,權(quán)衡使用公鑰加密大文件是加密和解密數(shù)據(jù)的性能瓶頸。所以很明顯,我們需要一個(gè)對稱密鑰加密這些大文件傳輸機(jī)制。解決這兩個(gè)性能問題和密鑰分發(fā)問題,我用AES(高級加密標(biāo)準(zhǔn))256位加密加密文件和RSA公鑰加密對稱的AES加密密鑰。第二局部課程設(shè)計(jì)過程2.1課題需求分析 2.1.1需求分析隨著信息技術(shù)的迅速開展與大規(guī)模的普及應(yīng)用,社會已經(jīng)進(jìn)入一個(gè)信息時(shí)代,網(wǎng)絡(luò)通信成為至關(guān)重要的環(huán)節(jié),給政府和企業(yè)帶來了極大的勞動(dòng)效率的提高。行業(yè)信息化建立多年來,許多公司的核心資產(chǎn)和數(shù)據(jù)都已經(jīng)電子化,更具體地說,就是傳統(tǒng)的技術(shù)
5、、檔案、資料都已經(jīng)變成電子數(shù)據(jù)的形式保存并傳遞。隨著這些硬件、軟件、系統(tǒng)的廣泛應(yīng)用的同時(shí)也給網(wǎng)絡(luò)平安管理人員增加很多問題,其中,最重要的就是文件傳輸中的信息平安問題。信息平安也是網(wǎng)絡(luò)平安中最重要的一局部,其它的東西在遭破壞后還可以重新回復(fù)或補(bǔ)救,而信息一旦喪失或者遭盜竊,那帶來的損失就是無法估量的。不用共享的信息平時(shí)在做好信息備份即可,但如果涉及到網(wǎng)絡(luò)文件的傳輸,那就必須要使用網(wǎng)絡(luò)文件傳輸軟件,一個(gè)好的網(wǎng)絡(luò)文件傳輸軟件不僅有海量的傳輸功能,最為重要的還是必須具有強(qiáng)大的平安性。這樣能有效的防因?yàn)椴僮鞑划?dāng)或者被攻擊而導(dǎo)致的數(shù)據(jù)喪失。文件網(wǎng)絡(luò)傳輸?shù)钠桨脖U蠁栴}已經(jīng)成為一個(gè)關(guān)注的焦點(diǎn)。文件的平安傳輸問
6、題在當(dāng)代社會引起了很多人的關(guān)注。在這種嚴(yán)峻的形勢下,一個(gè)簡單的實(shí)用功能,而且還可以運(yùn)行于Windows操作系統(tǒng),具有可移植性一定程度上,網(wǎng)絡(luò)平安的文件傳輸工具可二次開發(fā)勢在必行。文件傳輸是各企事業(yè)及國家核心機(jī)構(gòu)管理中必不可少的一局部,對文件傳輸進(jìn)展規(guī)化、制度化、科學(xué)化管理,對工作效率和工作質(zhì)量有很大的提高,有利于促進(jìn)企業(yè)向著高效,快速的方向開展。然而,文件傳輸管理也是日常管理工作中容易被無視的一項(xiàng)工作,也是不容易做好的一項(xiàng)工作。稍有不慎,可能造成重要文件的喪失,后果嚴(yán)重。一個(gè)好的文件傳輸系統(tǒng)應(yīng)該是穩(wěn)定可靠的,并且適用于各類企事業(yè)、機(jī)關(guān)單位、學(xué)校、醫(yī)院等。系統(tǒng)對傳輸?shù)母鱾€(gè)環(huán)節(jié)進(jìn)展科學(xué)管理,完成對
7、日常文件傳輸?shù)囊?guī)化、制度化、科學(xué)化,幫助企業(yè)更有效、更可靠的進(jìn)展文件傳輸?shù)墓芾怼?2.1.2設(shè)計(jì)目的與要求文件平安傳輸系統(tǒng)的實(shí)現(xiàn)目標(biāo)平安文件傳輸系統(tǒng)以文件的平安傳輸為核心,以網(wǎng)絡(luò)為支撐,是一個(gè)功能齊全的系統(tǒng),方便了用戶對文件傳輸?shù)氖褂?,同時(shí)用戶在不了解該軟件的加解密算法的情況下,依然可以對該軟件進(jìn)展使用。既保證了文件傳輸?shù)钠桨残院屯暾?,也保證了用戶的可操作性,便于信息的交流及共享。具體設(shè)計(jì)目標(biāo)該軟件要具有兩種狀態(tài),一種為發(fā)送端狀態(tài),一種為接收端狀態(tài)。該軟件的發(fā)送端可以把要傳輸?shù)奈募肁ES加密算法進(jìn)展加密,并且能夠完整的將加完密的文件、被加密的AES密鑰、文件的MD5值等平安地傳送到接收端。
8、而接收端,可以接收發(fā)送端傳來的文件和密鑰,并且根據(jù)密鑰將傳來的文件進(jìn)展解密。通過比擬計(jì)算出的解密后文件的MD5值與接收到的Md5值檢查文件的完整性。同時(shí),軟件操作界面簡潔大方、操作容易,功能強(qiáng)大,符合文件傳輸?shù)耐暾院推桨残缘囊蟆?.2概要設(shè)計(jì) 2.2.1 系統(tǒng)功能描述計(jì)算待發(fā)送文件的MD5哈希值。這將用來驗(yàn)證文件的完整性。使用一個(gè)隨機(jī)數(shù)生成器生成一個(gè)32字節(jié)的密鑰,用作AES的密鑰。用這個(gè)密鑰和初始化向量加密待發(fā)送文件形成密文。用RSA公鑰加密32位的AES密鑰,形成被加密的AES密鑰。效勞器功能效勞器運(yùn)行作為一個(gè)FTP效勞器監(jiān)聽默認(rèn)FTP端口。一旦文件接收到效勞器,效勞器觸發(fā)解密()函數(shù)
9、來解密接收到的文件。在解密的過程中,效勞器提取前32個(gè)字節(jié)為原始文件哈希,第二個(gè)512字節(jié)的AES加密對稱密鑰和其他文件加密的文件數(shù)據(jù)。收到容后分別讀取被加密的AES密鑰,通過RSA私鑰解密得到AES密鑰。讀取初始化向量,與解得的AES密鑰一起解密得到的密文,得到原始文件。用戶端通過解密文件計(jì)算Md5值,與效勞器端發(fā)送過來的MD5值比擬,看兩者是否相等,如果兩個(gè)散列值是相等的,完整性驗(yàn)證通過。否則,效勞器識別文件完整性和刪除文件失敗。效勞器的目的是承受匿名登錄。以及匿名用戶有足夠的權(quán)限來傳輸文件到效勞器使用原始的FTP操作。 2.2.2 系統(tǒng)功能流程圖最終文件被轉(zhuǎn)移的構(gòu)造將如下:初始化向量使用
10、AES CBC模式操作客戶端流程圖:效勞端流程圖:模塊設(shè)計(jì)加密AES 256位加密是使用32字節(jié)密鑰(256位)對稱密鑰。文件發(fā)送分成固定大小的塊的大小的倍數(shù)16因?yàn)锳ES塊密碼標(biāo)準(zhǔn)使用16字節(jié)塊。當(dāng)分塊,任何塊不符合尺寸16字節(jié)的倍數(shù)的適當(dāng)空間。CBC(密碼塊)是用作AES的操作模式。解密一旦效勞器從客戶端接收的文件,從文件效勞器提取不同局部,包括文件的MD5哈希,AES加密對稱密鑰和實(shí)際的加密文件。然后用OAEP恢復(fù)效勞器使用RSA加密對稱密鑰加密。使用AES對稱密鑰恢復(fù),效勞器使用AES加密解密加密文件。然而,解密的文件比客戶端實(shí)際加密不同,因?yàn)樗钛a(bǔ)了空間為AES加密。然后效勞器截?cái)嘟?/p>
11、密文件到原來的大小。驗(yàn)證完整性MD5散列用于驗(yàn)證收到的文件的完整性。效勞器計(jì)算MD5哈希的解密和截?cái)辔募⑴cMD5哈??蛻舭l(fā)送附加到文件。Python的hashlib庫中使用這個(gè)程序來計(jì)算MD5哈希文件。如果兩個(gè)MD5散列值是相等的,完整性保護(hù)。FTP效勞器發(fā)送的結(jié)果完整性驗(yàn)證通過一個(gè)單獨(dú)的套接字連接到效勞器端在特定端口上運(yùn)行。當(dāng)客戶端接收到完整的驗(yàn)證結(jié)果,客戶端顯示結(jié)果,并終止與成功的文件傳輸客戶端程序。性能分析我用AES 256位加密加密文件在客戶端。然而,因?yàn)檫@個(gè)工具是用來傳輸大文件,之間有一個(gè)權(quán)衡的性能和平安加密。盡管AES - 256比AES - 128加密提供了更好的加密,加密大文
12、件256 AES加密可以影響效用自256位加密的性能更先進(jìn)的比128位加密。但這是可以預(yù)防的,如果一個(gè)16字節(jié)的密鑰用于加密。我用CBC(密碼塊)AES的操作模式。一個(gè)問題是,在CBC模式下,一塊用來加密的密碼文本文件的下一個(gè)塊。所以不能并行加密。但在解密,明文塊可以從兩個(gè)相鄰塊的密文中恢復(fù)過來。所以可以并行加密和性能可以提高在解密。平安協(xié)議AES密鑰使用RSA公鑰加密,保障密鑰平安分配。2.3具體功能的實(shí)現(xiàn)預(yù)備知識TCP/IP網(wǎng)絡(luò)編程Windows平臺下程序開發(fā)Python語言編程對對稱與非對稱加密算法的理解算法原理在平安協(xié)議的實(shí)現(xiàn)中,我用到了RSA算法RSA算法簡介RSA公開密鑰密碼體制。
13、所謂的公開密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種由加密密鑰推導(dǎo)出解密密鑰在計(jì)算上是不可行的密碼體制。在公開密鑰密碼體制中,加密密鑰即公開密鑰PK是公開信息,而解密密鑰即秘密密鑰SK是需要的。加密算法E和解密算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據(jù)PK計(jì)算出SK。正是基于這種理論,1978年出現(xiàn)了著名的RSA算法,它通常是先生成一對RSA 密鑰,其中之一是密鑰,由用戶保存;另一個(gè)為公開密鑰,可對外公開,甚至可在網(wǎng)絡(luò)效勞器中注冊。為提高強(qiáng)度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計(jì)算量很大。為減少計(jì)算量,在傳送信息時(shí),常采用傳
14、統(tǒng)加密方法與公開密鑰加密方法相結(jié)合的方式,即信息采用改進(jìn)的DES或IDEA對話密鑰加密,然后使用RSA密鑰加密對話密鑰和信息摘要。對方收到信息后,用不同的密鑰解密并可核對信息摘要。RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)今的三十多年里,經(jīng)歷了各種攻擊的考驗(yàn),逐漸為人們承受,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一。RSA平安性RSA的平安性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆]有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。 RSA 的一些變種
15、算法已被證明等價(jià)于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個(gè)十進(jìn)制位的大素?cái)?shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定。三算法實(shí)現(xiàn)過程-算法實(shí)現(xiàn)描述1選擇兩個(gè)不同的大素?cái)?shù)p、q2. 計(jì)算n = p*q。3. 計(jì)算n的歐拉函數(shù)(n)=(p-1)(q-1)。4. 選擇整數(shù)e作為公鑰,使e與(n)互素,且1e(n)。5. 用歐幾里得算法計(jì)算d作為私鑰,使d*e=1 mod(n)。6. 加密:C=Me mod n 7. 解密:MCd mod n=(Me)d mod n= Med mod n。2.4運(yùn)行結(jié)果 2.4.1程序界面截圖2.5 待改進(jìn)問題界面不夠友好,只實(shí)現(xiàn)了根本功能,
16、實(shí)際中會遇到的很多因素沒有考慮周全。第三局部課程設(shè)計(jì)體會3.1課程設(shè)計(jì)心得體會心得總結(jié):我們大概地將整個(gè)課程設(shè)計(jì)分為三個(gè)階段,第一階段主要通過查找資料,研究信息平安領(lǐng)域的近期熱點(diǎn)與難點(diǎn),并做必要的需求分析,確定課程設(shè)計(jì)的目標(biāo)、題目,提出粗略的設(shè)計(jì)方案。第二階段主要任務(wù)是設(shè)計(jì)程序,完成相應(yīng)的功能。第三階段主要是調(diào)試程序、做必要的修改、編輯報(bào)告的公共局部。我在第二階段擔(dān)任組長,主要是給各組員分配相應(yīng)的編程任務(wù),實(shí)現(xiàn)該系統(tǒng)相應(yīng)的平安功能。讓季雨量用Md5算法實(shí)現(xiàn)文件的完整性檢查。帥主要負(fù)責(zé)用AES算法實(shí)現(xiàn)文件的加解密。最后我將組員們的代碼組合到一起,加上平安協(xié)議功能形成集成性相對較高的系統(tǒng)。3.2源
17、程序清單Client functionality:def startClient():_*000D_from ftplib import FTP_*000D_thread.start_new_thread(validation_server, (TCP_CON_PORT,)_*000D_hostname = sys.argv2_*000D_ftp = FTP(hostname)_*000D_ftp.login()_*000D_filepath = sys.argv3_*000D_encFilepath = encrypt(filepath)_*000D_*000D_localfile = op
18、en(encFilepath,rb)_*000D_try:_*000D_print ! File Transfer in Progress._*000D_result = ftp.storbinary(STOR +str(os.path.basename(encFilepath),localfile)_*000D_e*cept E*ception as e:_*000D_print e _*000D_else:_*000D_print str(result)_*000D_*000D_os.system(rm +encFilepath)_*000D_print ! Waiting for int
19、egrity validation._*000D_while True:_*000D_passServer Functionalitydef startServer():_*000D_authorizer = DummyAuthorizer()_*000D_*000D_authorizer.add_anonymous(USER_HOME + /anonymous, perm=elradfmwM) _*000D_handler = MyHandler _*000D_handler.authorizer = authorizer _*000D_handler.banner = Server Rea
20、dy._*000D_hostname = _*000D_address = (hostname,21)_*000D_server = FTPServer(address, handler)_*000D_server.ma*_cons = 10 _*000D_server.serve_forever()# start the serverEncryptiondef encrypt(filepath):_*000D_print ! Starting Encryption._*000D_aes_key = os.urandom(32)_*000D_out_filename = filepath +
21、.enc_*000D_filehash = hashlib.md5(open(filepath).read().he*digest()_*000D_*000D_public_key_loc = PUB_KEY_LOC_*000D_*000D_pubkey = open(public_key_loc, r).read()_*000D_rsakey = RSA.importKey(pubkey)_*000D_rsakey = PKCS1_OAEP.new(rsakey)_*000D_encKey = rsakey.encrypt(aes_key)_*000D_outFile = open(out_
22、filename,w+)_*000D_*000D_outFile.write(filehash)_*000D_*000D_outFile.write(encKey)_*000D_*000D_iv = .join(chr(random.randint(0, 0*FF) for i in range(16)_*000D_encryptor = AES.new(aes_key, AES.MODE_CBC, iv)_*000D_filesize = os.path.getsize(filepath)_*000D_chunksize=64*1024_*000D_*000D_with open(filep
23、ath, rb) as infile:_*000D_outFile.write(struct.pack(Q, filesize) _*000D_outFile.write(iv)_*000D_*000D_while True:_*000D_chunk = infile.read(chunksize)_*000D_if len(chunk) = 0:_*000D_break_*000D_elif len(chunk) % 16 != 0:_*000D_chunk += * (16 - len(chunk) % 16)_*000D_outFile.write(encryptor.encrypt(c
24、hunk)_*000D_*000D_outFile.close()_*000D_print + Encryption successful!_*000D_return out_filenameDecryptiondef decrypt(filepath):_*000D_print ! Starting decryption._*000D_dec_filename = ANONYMOUS_FILEPATH + os.path.basename(filepath).strip(.enc)_*000D_inFile = open(filepath,r)_*000D_chunksize=64*1024_*000D_hash = inFile.read(32)_*000D_encAESKey = inFile.read(512)_*000D_*000D_private_key_loc = PRIV_KEY_LOC_*000D_privkey = open
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民工工資支付法律風(fēng)險(xiǎn)防范方案
- 院感防控質(zhì)量改進(jìn)項(xiàng)目方案
- 職業(yè)安全健康管理體系方案
- 安全員A證考試檢測卷講解及參考答案詳解【新】
- 安全員A證考試強(qiáng)化訓(xùn)練??季砗暾鸢冈斀狻居幸惶住?/a>
- 安全員A證考試復(fù)習(xí)提分資料【原創(chuàng)題】附答案詳解
- 電商平臺客戶服務(wù)與售后處理方案大全
- 安全員A證考試考前沖刺練習(xí)題帶答案詳解(黃金題型)
- 數(shù)字化轉(zhuǎn)型企業(yè)管理方案解析
- 醫(yī)院藥品管理流程與風(fēng)險(xiǎn)控制方案
- GB/T 43590.507-2025激光顯示器件第5-7部分:激光掃描顯示在散斑影響下的圖像質(zhì)量測試方法
- QGDW12505-2025電化學(xué)儲能電站安全風(fēng)險(xiǎn)評估規(guī)范
- 2024年山東濟(jì)南中考滿分作文《為了這份繁華》
- 2025年鐵嶺衛(wèi)生職業(yè)學(xué)院單招職業(yè)傾向性測試題庫新版
- 2025年常州機(jī)電職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 民間融資居間合同
- 環(huán)境污染損害評估報(bào)告
- 表面活性劑化學(xué)知識點(diǎn)
- 《塑料材質(zhì)食品相關(guān)產(chǎn)品質(zhì)量安全風(fēng)險(xiǎn)管控清單》
- 武術(shù)學(xué)校體育器材項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 市場營銷部門主管聘用協(xié)議
評論
0/150
提交評論