P10-網(wǎng)絡(luò)信息加密傳輸程序設(shè)計解讀課件_第1頁
P10-網(wǎng)絡(luò)信息加密傳輸程序設(shè)計解讀課件_第2頁
P10-網(wǎng)絡(luò)信息加密傳輸程序設(shè)計解讀課件_第3頁
P10-網(wǎng)絡(luò)信息加密傳輸程序設(shè)計解讀課件_第4頁
P10-網(wǎng)絡(luò)信息加密傳輸程序設(shè)計解讀課件_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算機網(wǎng)絡(luò)編程技術(shù)第10章網(wǎng)絡(luò)信息加密傳輸程序設(shè)計7/23/20231計算機網(wǎng)絡(luò)編程技術(shù)第10章網(wǎng)絡(luò)信息加密傳輸程序設(shè)計7/23網(wǎng)絡(luò)攻擊類型網(wǎng)絡(luò)信息安全:信息存儲安全信息傳輸安全7/23/20232網(wǎng)絡(luò)攻擊類型網(wǎng)絡(luò)信息安全:7/23/20232本章的主要內(nèi)容數(shù)據(jù)加密模型對稱加密程序設(shè)計非對稱加密程序設(shè)計網(wǎng)絡(luò)信息加密傳輸程序設(shè)計7/23/20233本章的主要內(nèi)容數(shù)據(jù)加密模型7/23/2023310.1數(shù)據(jù)加密模型(1)數(shù)據(jù)加密模型描述7/23/2023410.1數(shù)據(jù)加密模型(1)數(shù)據(jù)加密模型描述7/23/20(2)對稱加密模型對稱加密算法使用起來簡單快捷,密鑰較短,且破譯困難。7/23/20235(2)對稱加密模型對稱加密算法使用起來簡單快捷,密鑰較短,常見的對稱加密算法密碼算法作者密鑰長度說明DESIBM56對于現(xiàn)在使用,太弱了IDEAMassey和Xuejia128好,但是屬于專利算法RC4RonaldRivest1~2048小心,有一些弱密鑰RC5RonaldRivest128~256好,但是屬于專利算法RijndaelDaemen和Rijmen128~256最佳的選擇SerpentAnderson,Biham,Knuds128~256很強三重DESIBM168第二最佳選擇TwofishBruceSchneier128~256很強,被廣泛使用7/23/20236常見的對稱加密算法密碼算法作者密鑰長度說明DES(3)非對稱加密模型非對稱加密算法研制的最初理念與目標是旨在解決對稱加密算法中密鑰的分發(fā)問題.實際上它不但很好地解決了這個問題,還可利用非對稱加密算法來完成對電子信息的數(shù)字簽名以防止對信息的否認與抵賴;同時,還可以利用數(shù)字簽名較容易地發(fā)現(xiàn)攻擊者對信息的非法篡改,以保護數(shù)據(jù)信息的完整性。7/23/20237(3)非對稱加密模型非對稱加密算法研制的最初理念與目標是旨(4)數(shù)字簽名模型數(shù)字簽名一般采用非對稱加密技術(shù)(如RSA)。7/23/20238(4)數(shù)字簽名模型數(shù)字簽名一般采用非對稱加密技術(shù)(如RSA10.2對稱加密程序設(shè)計10.2.1對稱加密算法SymmetricAlgorithm類表示所有對稱算法的實現(xiàn)都必須從中繼承的抽象基類;派生了DES、Triple-DES、RC2和Rijndael等對稱加密算法;來自于System.Security.Cryptography命名空間。7/23/2023910.2對稱加密程序設(shè)計10.2.1對稱加密算法7/23SymmetricAlgorithm類的主要屬性和方法名稱描述BlockSize獲取或設(shè)置加密操作的塊大小IV獲取或設(shè)置對稱算法的初始化向量Key獲取或設(shè)置對稱算法的密鑰KeySize獲取或設(shè)置對稱算法所用密鑰的大小Mode獲取或設(shè)置對稱算法的運算模式Clear()釋放資源Create()創(chuàng)建用于執(zhí)行對稱算法的加密實例CreateDecryptor()用指定的密鑰和初始化向量創(chuàng)建一個對稱解密器對象CreateEncryptor()用指定的密鑰和初始化向量創(chuàng)建一個對稱加密器對象GenerateIV()為對稱加密算法生成一個隨機的初始化向量(IV),并重寫IV屬性中所存儲的值GenerateKey()為對稱加密算法生成一個隨機密鑰(Key),并重寫Key屬性的值7/23/202310SymmetricAlgorithm類的主要屬性和方法名對稱算法的實現(xiàn):RijndaelManagedDESCryptoServiceProviderRC2CryptoServiceProviderTripleDESCryptoServiceProvider7/23/202311對稱算法的實現(xiàn):RijndaelManaged7/23/2010.2.2基于流的加密解密方法由于對稱加密往往用于加密大量數(shù)據(jù)信息,隱藏采用了流式加密方法,以便支持對內(nèi)存流和文件流等數(shù)據(jù)的加密和解密。托管對稱加密類與稱為CryptoStream的特殊流類一起使用??梢允褂脧腟tream類派生的任何類(包括FileStream、MemorySteam和NetworkStream)初始化CryptoStream類。使用這些類,可以對各種流對象執(zhí)行對稱加密。7/23/20231210.2.2基于流的加密解密方法由于對稱加密往往用于加密大(1)加密過程實例:①創(chuàng)建對稱加密算法實例:cryptoService=newRijndaelManaged();cryptoService.Mode=CipherMode.CBC;//設(shè)置為鏈接模式②設(shè)置初始化參數(shù),包括密鑰和初始化向量等。cryptoService.Key=GetLegalKey(); //設(shè)置密鑰cryptoService.IV=GetLegalIV(); //設(shè)置初始向量③創(chuàng)建加密實例:ICryptoTransformcryptoTransform=cryptoService.CreateEncryptor();④創(chuàng)建加密流:MemoryStreamms=newMemoryStream(); //創(chuàng)建內(nèi)存流CryptoStreamcs=newCryptoStream(ms,crytoTransform,CryptoStreamMode.Write);⑤通過流的寫操作實現(xiàn)數(shù)據(jù)加密:cs.Write(plainByte,0,plainByte.Length);cs.FlushFinalBlock();byte[]cryptoByte=ms.ToArray();returnConvert.ToBase64String(cryptoByte,0,cryptoByte.GetLength(0));7/23/202313(1)加密過程實例:①創(chuàng)建對稱加密算法實例:7/23/2(2)解密過程實例①創(chuàng)建對稱加密算法實例:cryptoService=newRijndaelManaged();cryptoService.Mode=CipherMode.CBC; //設(shè)置為鏈接模式②設(shè)置初始化參數(shù),包括密鑰和初始化向量等。用戶設(shè)置方法如下:cryptoService.Key=GetLegalKey(); //設(shè)置密鑰cryptoService.IV=GetLegalIV(); //設(shè)置初始向量③創(chuàng)建解密實例,如:ICryptoTransformcryptoTransform=cryptoService.CreateEncryptor();④創(chuàng)建解密流,如:MemoryStreamms=newMemoryStream(cryptoByte,0,cryptoByte.Length);//創(chuàng)建內(nèi)存流CryptoStreamcs=newCryptoStream(ms,crytoTransform,CryptoStreamMode.Read);⑤通過解密流進行數(shù)據(jù)解密:StreamReadersr=newStreamReader(cs);returnsr.ReadToEnd();7/23/202314(2)解密過程實例①創(chuàng)建對稱加密算法實例:7/23/2010.2.3對稱加密程序設(shè)計示例(1)命名空間與重要實例usingSystem.Security.Cryptography;usingSystem.IO;RijndaelManagedrij=newRijndaelManaged();7/23/20231510.2.3對稱加密程序設(shè)計示例(1)命名空間與重要實例(2)加密函數(shù)if(textBox.Length>=8&&textBox.Length<=12)//判斷密碼的字符的大小{ byte[]key=System.Text.Encoding.Default.GetBytes(textBox); byte[]iv=rij.IV; Rijndaelcrypt=Rijndael.Create(); ICryptoTransformtransform=crypt.CreateEncryptor(key,iv); //寫進文件 FileStreamfswrite=newFileStream(writefile,FileMode.Create); CryptoStreamcs=newCryptoStream(fswrite,transform,CryptoStreamMode.Write); //打開文件 FileStreamfsread=newFileStream(readfile,FileMode.Open); intlength;while((length=fsread.ReadByte())!=-1){cs.WriteByte((byte)length);} fsread.Close(); cs.Close(); fswrite.Close();7/23/202316(2)加密函數(shù)if(textBox.Length>=8&&(3)解密函數(shù)if(textBox.Length>=8&&textBox.Length<=12){ byte[]key=System.Text.Encoding.Default.GetBytes(textBox); byte[]iv=rij.IV; Rijndaelcrypt=Rijndael.Create(); ICryptoTransformtransform=crypt.CreateDecryptor(key,iv); //讀取加密后的文件 FileStreamfsopen=newFileStream(readfile,FileMode.Open); CryptoStreamcs=newCryptoStream(fsopen,transform,CryptoStreamMode.Read); //把解密后的結(jié)果寫進文件 FileStreamfswrite=newFileStream(writefile,FileMode.OpenOrCreate); intlength;while((length=cs.ReadByte())!=-1){fswrite.WriteByte((byte)length);} fswrite.Close(); cs.Close(); fsopen.Close();7/23/202317(3)解密函數(shù)if(textBox.Length>=8&&10.3非對稱加密程序設(shè)計AsymmetricAlgorithm類表示所有不對稱算法的實現(xiàn)都必須從中繼承的抽象基類,它派生出RSA和DSA兩種加密算法,由System.Security.Cryptography命名空間提供。RSACryptoServiceProvider類是公鑰算法的一個實現(xiàn)類,通常用于數(shù)據(jù)的加密;DSACryptoServiceProvider類是數(shù)字簽名算法的一個實現(xiàn)類。7/23/20231810.3非對稱加密程序設(shè)計AsymmetricAlgori(1)RSACryptoServiceProvider類的主要方法名稱描述Clear釋放由AsymmetricAlgorithm類使用的所有資源(從AsymmetricAlgorithm繼承)Create

允許實例化RSA的特定實現(xiàn)(從RSA繼承)Decrypt使用RSA算法對數(shù)據(jù)進行解密Encrypt使用RSA算法對數(shù)據(jù)進行加密ExportCspBlob導(dǎo)出包含與RSACryptoServiceProvider對象關(guān)聯(lián)的密鑰信息的BlobExportParameters導(dǎo)出RSAParametersFromXmlString通過XML字符串中的密鑰信息初始化RSA對象(從RSA繼承)ToXmlString創(chuàng)建并返回包含當(dāng)前RSA對象的密鑰的XML字符串(從RSA繼承)VerifyData通過將指定的簽名數(shù)據(jù)與為指定數(shù)據(jù)計算的簽名進行比較來驗證指定的簽名數(shù)據(jù)VerifyHash通過將指定的簽名數(shù)據(jù)與為指定哈希值計算的簽名進行比較來驗證指定的簽名數(shù)據(jù)7/23/202319(1)RSACryptoServiceProvider類的(2)一個RSA加密編程實例該程序具有4個功能:首先是獲取公鑰/私鑰對,并分別保存成文件;對字符串進行加密和解密;對文本文件進行加密和解密;對其他格式文件進行加密和解密。

7/23/202320(2)一個RSA加密編程實例該程序具有4個功能:7/23密鑰產(chǎn)生界面7/23/202321密鑰產(chǎn)生界面7/23/202321加密/解密字符串示例字符串“計算機網(wǎng)絡(luò)編程代碼測試”的加密解密效果:7/23/202322加密/解密字符串示例字符串“計算機網(wǎng)絡(luò)編程代碼測試”的加密解加密程序部分:readpublickey=ReadPublicKey();//讀取公鑰crypt=newRSACryptoServiceProvider();UTF8Encodingenc=newUTF8Encoding();bytes=enc.GetBytes(textBox1.Text);crypt.FromXmlString(readpublickey);bytes=crypt.Encrypt(bytes,false);stringencryttext=enc.GetString(bytes);richtext2.Text="加密結(jié)果:\n\n"+encryttext+"\n\n"+"加密結(jié)束!";7/23/202323加密程序部分:readpublickey=ReadPubli解密程序部分:readprivatekey=ReadPrivateKey();//讀取私鑰UTF8Encodingenc=newUTF8Encoding();byte[]decryptbyte;crypt.FromXmlString(readprivatekey);decryptbyte=crypt.Decrypt(bytes,false);stringdecrypttext=enc.GetString(decryptbyte);richtext3.Text="解密結(jié)果:\n\n"+decrypttext+"\n\n"+"解密結(jié)束!";7/23/202324解密程序部分:readpriv

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論