




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中原工學院計算機學院網絡安全程序課程設計報告題目:基于des加密的聊天程序班級:網絡124 班4目錄第1 章 緒論31.1 des加密背景 31.2 聊天程序設計背景 4第2 章 加密原理 52.1 des簡介 52.2 des加密原理 52.3 des加密過程 7第3 章 聊天程序設計 83.1 TCP/IP協議 83.2 客戶機/服務器模式 83.3 Socket 9第4 章 系統設計 114.1 開發語言及環境 114.2 需求分析 114.2.1 功能需求分析 1_14.2.2 數據需求分析 1_14.2.3 性能需求分析 1_24.2.4 運行需求分析 1_24.3 程序流程圖 13
2、4.4 模塊設計 144.4.1 服務器 1_44.4.2 客戶端 1_5第5 章 程序測試 175.1 運行結果 1_7第6 章 總結 21參考文獻21第 1 章 緒論1.1 des 加密背景隨著計算機和網絡在軍事、政治、金融、工業、商業等部門的廣泛應用,社會對計算機和網絡的依賴越來越大,科學技術的研究和發展及其在商業領域的應用等方面,無一不與信息息息相關。所以信息就是生命,信息就是時間,信息就是財富。由于信息是共享的,信息的擴散會產生社會影響,所以保護信息的安全是信息時代的迫切需要。如果計算機和網絡系統的信息安全受到破壞將導致社會的混亂并造成巨大損失。因此,確保計算機和網絡系統的信息安全已
3、成為世人關注的社會問題和計算機科學與技術領域的研究熱點。當前,以Internet 為代表的計算機網絡的迅速發展和廣泛應用,正引起社會和經濟的深刻變革,極大地改變著人們的生活和工作方式。Internet已經 成為我們生活和工作中一個不可缺少的組成部分。對此,發展我國的電子政務、電子商務和電子金融已成為建設具有中國特色社會主義強國的不可回避的選擇。然而,目前影響電子政務、電子商務、電子金融應用的主要技術障礙是信息安全問題。由于Internet原來缺少安全設計,再加上Internet的開放 性和無政府狀態,使Internet成為一個不安全的網絡。這就使得Internet不能 適應電子政務、電子商務和
4、電子金融等系統對信息安全的要求。確保信息的安全就必須加強加密技術,加密技術是基于密碼學原理來實現計算機、網絡乃至一切信息系統安全的理論與技術基礎。1977年美國頒布了數據加密標準 DES(Data Encryption Stantard)這是密碼史上的一個創舉。DES 算法最初由美國IBM 公司設計,經美國國家安全局評測后,頒布為標準。DES 開創了向世人公開加密算法的先例。自從公布以來,它一直超越國界,成為國際上商用保密通信和計算機通信的最常用的加密算法。 DES 也是曾被廣泛使用的分組密碼,遍及世界的政府,銀行和標準化組織把DES 作為安全和論證通信的基礎。DES 算法公開是密碼學史上里程
5、碑式的事件1.2 聊天程序設計背景隨著互聯網技術的發展,互聯網應用越來越豐富。互聯網以其獨特的傳播方式吸引了大量用戶,同時也給人們帶來了許多便利,譬如可以借助于網絡進行相互交流、信息傳遞等。聊天工具作為互聯網中運用最為廣泛的通信工具之一,它可以讓用戶之間進行即時的交流和信息的傳遞。聊天工具的出現可以說是基于互聯網通信交流方式的歷史性變革,它已經漸漸取代了原來效率低、費用高的如信件、電報的通信方式,以其快速、交互、簡便的方式給用戶的交流提供了簡單、易用的信息平臺,成為現今應用最為廣泛的即時通信工具之一。隨著相關技術的日益發展,用戶對功能的需求不斷提高。為了更好地服務于用戶,聊天工具的功能也在不斷
6、地完善。在未來的網絡時代中,聊天工具將以即時通信為其基本特點,并與各種網絡應用整合,同時隨著無線網絡的廣泛應用,它將成為未來不可缺少的一種通信軟件。本課程設計的目的主要是為了滿足人們通訊交流的便捷,實現靈活、全面的語音、視頻信息的傳遞和服務。模擬騰訊公司的QQ 聊天軟件,開發一個多功能的聊天系統軟件,該課程設計主要實現文字聊天功能。第2章加密原理2.1 des簡介DES的設計目標是,用于加密保護靜態存儲和傳輸信道中的數據,安 全使用1015年。DES綜合運用了置換、代替、代數等多種密碼技術。它設計精巧、安全、 方便,是近代密碼的世界標準,為確保數據安全作出了重大貢獻。DES的設計充分體現了 S
7、hannon信息保密理論所闡述的設計密碼的思想,標志著密碼 的設計與分析達到了新的水平。DES是一種分組密碼。明文、密文和密鑰的分組長度都是64位。DES是面向二進制的密碼算法,因而能夠加解密任何形式的計算機數據。DES是對合運算,因而加密和解密共用同一算法,從而使工程實現的工 作量減半。2.2 des加密原理DES全稱為Data Encryption Standard即數據加密算法,它是 舊M公司 研究成功并公開發表的。DESB法的入口參數有三個:Key、Data、Mode其中Key為8個字節共 64位,是DEST法的工彳密鑰;Data也為8個字節64位,是要被加密或被 解密的數據;Mode
8、為DES勺工作方式,有兩種:加密或解密。數據加密標準(DES的算法是用于計算機數據加密保護的分組加密的數 學算法,算法以64 bit為一個分組對數據進行加密。使用 64 bit的密鑰加 密64 bit分組的信息。首先將原始數據 64 bit明文進行初始置換IP,然后 與子密鑰(由加密密鑰產生)進行一系列迭代運算,最后再經過逆置換IP,即可得到64 bit密文(加密后數據)。在每一輪中,數列塊的右邊 32 bit數 據和密鑰(Key) 一起傳送給函數f,函數f運算的結果再與數列塊左邊32 bit 數據進行“異或”操作。其中 S盒(S選擇函數)是DES算法的心臟,由它實 現非線性變換。解密過程與此
9、類似,只是在應用子密鑰時,順序顛倒為DE就法實現時用到許多的數學知識,子密鑰的產生,初始值換IP,加密函數以及逆初始值換IP。DES的整體結構如圖2-1所示:L =RRi =L二 f(R,Ki)i=1,2,3, , 16逆初試置換ip-i(54位電文數據輸出圖2-1 DES的整體結構62.3 des加密過程1) 64位密鑰經子密鑰產生算法產生出16個子密鑰:Ki,K2”K16, 分別供第一次,第二次,第十六次加密迭代使用。(2) 64位明文首先經過初始置換IP (Initial Permutation),將數據打亂 重新排列并分成左右兩半。左邊 32位構成L0 ,右邊32位構成R0o(3)由加
10、密函數f實現子密鑰Ki對Ro的加密,結果為32位的數據組f(R0,Ki)。f(Ro,Ki)再與Lo模2相加,又得到一個32位的數據組Lo© f(Ro,Ki)0以Loa f(R,Ki)作為第二次加密迭代的 R,以Ro作為第二 次加密迭代的Li。至此,第一次加密迭代結束。(4)第二次加密迭代至第十六次加密迭代的分別用子密鑰K2,K3,,Ki6進行,其過程與第一次加密迭代相同。(5)第十六次加密迭代結束后,產生一個 64位的數據組。以其左邊32 位作為Ri6 ,以其右邊32位作為Li6,兩者合并再經過逆初始置換IP、將數 據重新排列,便得到64位密文。至此加密過程全部結束。綜上可將DES的
11、加密過程用如下的數學公式描述:Li = RRi =L_ 二 f(R,Ki)i =i,2,3,. i6第 3 章 聊天程序設計3.1 TCP/IP 協議TCP/IP協議的核心部分是傳輸層協議(TCP、UDP)網絡層協議(IP)和物理接口層,這三層通常是在操作系統內核中設計。因此用戶一般不涉及。TCP是面向連接的,通信雙方保持一條通路,好比目前的電話線,使用telnet登陸BBS用的就是TCM、議;UDP無連接的,通信雙方都不保持對方的狀 態,瀏覽器訪問Internet時使用的HTTPB議就是基于UDFW議的。編程時,編程界面有兩種形式:一、是由內核心直接提供的系統調用;二、 使用以庫函數方式提供
12、的各種函數。前者為核內設計,后者為核外設計。用戶服務要通過核外的應用程序才能設計,所以要使用套接字(socket) 來設計。3.2 客戶機 /服務器模式C/S 結構 ( Client/Server 結構) 是大家熟知的客戶機和服務器結構。它是軟件系統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到Client 端和 Server 端來實現,降低了系統的通訊開銷。目前大多數應用軟件系統都是Client/Server 形式的兩層結構,由于現在的軟件應用系統正在向分布式的 Web應用發展,We僑口 Client/Server 應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;
13、因此,內部的和外部的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。首先服務器方要啟動,并根據請求提供相應服務:( 1) 打開一通信通道并告知本地主機,它在某一公認地址端口上( 如 http為 80)接受客戶請求。( 2)等待客戶請求到達該端口。( 3)接收到重復服務請求,處理該請求并發送應答信號。接收并發服務請求,要激活一新進程來處理這個客戶請求。新進程處理此客戶請求,并不需要對其他請求做出應答。服務完成后,關閉此新進程與客戶的通信鏈路,并終止。( 4)返回第二步,等待另外的客戶請求( 5)關閉服務器。客戶方:( 1)打開一
14、通信通道,并連接到服務器所在主機的特定端口。( 2)向服務器發出服務請求報文,等待并接收應答;繼續提出請求。( 3)請求結束后關閉通信通道并終止。從上面的描述過程可知:( 1)客戶與服務器進程的作用是非對稱的。因此編碼不同。( 2)服務進程一般是先于客戶請求啟動的。只要系統運行,該進程一直存在, 直到正常終止或者強迫終止。在 TCP/IP 網絡中兩個進程間的相互作用的主機模式是客戶機/ 服務器模式(Client/Server model) 。該模式的建立基于以下兩點:1、非對等作用;2、通信完全是異步的。3.3 Socketsocket 之間的連接可以分為三種類型:客戶端連接,監聽連接以及服器
15、端連接。客戶端連接是指由客戶端的socket 提出連接請求,要連接的目標是服務器端的 socket 。為此,客戶端的socket 必須首先描述它要連接的服務器端socket( 主要是指服務器端 socket 的地址和端口號) ,然后再定位所要連接的服務器端socket ,找到以后,就向服務器端socket 請求連接。當然,服務器端的socket 此時未必正好處于準備好狀態,不過,服務器端的socket會自動維護客戶請求連接的隊列,然后在它認為合適的時候向客戶端socket發出 " 允許連接" (accept) 的信號,這時客戶端socket 與服務器端socket的連接就建
16、立了。監聽連接,服務器端socket 并不定位具體的客戶端socket ,而是處于等待連接的狀態。當服務器端socket 監聽到或者說接收到客戶端socket的連接請求,它就響應客戶端socket 的請求建立一個新的socket 句柄并與客戶 端連接,而服務器端socket 繼續處于監聽狀態,還可以接收其它客戶端 socket 的連接請求。服務器端連接,是指當服務器端 socket接收到客戶端socket的連接請求 后,就把服務器端socket的描述發給客戶端,一旦客戶端確認了此描述,連 接就建立了。在本文中的聊天程序用的就是監聽連接,即服務器設置連接個數后進行監聽,客戶端進行對服務器端的連接
17、,這樣就可以進行相互通信了。21第 4 章 系統設計4.1 開發語言及環境開發語言:c+開發環境:visual studio 20134.2 需求分析4.2.1 功能需求分析( 1)用戶端之間的信息發送,本程序需要實現的最基本的功能。用戶在界面上可以將自己需要發送的信息填入相應的對話框中,點擊發送按鈕后,可以將信息正常的發送給相應的其它用戶,這個過程中的客戶端與客戶端之間使用點對點發送信息,利用TCP/IP 協議中的UDP 協議。( 2)在線用戶主機IP 列表的維護。在用戶發送信息之前,需要選擇相應的目的地端IP,這也就需要客戶端擁有在線用戶主機的IP地址,這個在線主 機列表的維護是需要客戶端
18、定時自動向服務器端發送信息,服務器端收集并維護在線用戶列表,再發送回客戶端。需要在客戶端和服務器端都使用定時器來完成此功能。( 3)在 C/S 模式中,服務器與客戶端是相互依賴的。在客戶端啟用以后,需要查看服務器端是否在線,服務器在線才能正常使用客戶端,如果服務器不在線,則在檢測一定次數以后自動退出客戶端程序。在使用過程中,客戶端在指定時間內未向服務器端發送信息的,服務器認為客戶端下線;客戶端在一定時間內未收到服務器端信息的,認為服務器已經下線,則提示用戶并建議退出,在用戶一定時間后沒有退出的則自動關閉客戶端程序。4.2.2 數據需求分析( 1)客戶端之間聊天信息。在控件上顯示時格式化,更易于
19、用戶的查看自己發送或接收到的信息。( 2)在線用戶聊天信息。服務器端存放在適當的空間中,在發送給客戶端時,對信息列表進行格式化,便于客戶端提取信息。( 3)客戶端向服務器端發送的確認在線信息。包括客戶端剛剛啟動時的初始化信息和在使用過程中的確認在線信息。( 4)其它程序內部可能需要設計的數據結構體。4.2.3 性能需求分析( 1)可靠性高,能在由于系統問題或其它原因產生錯誤后,作出相對應處理,比如網絡初始化失敗、服務器不在線等,可以提示用戶安全退出本程序,在出現不可知的錯誤以后,可以盡量安全的退出程序。在程序的設計過程中,要求能盡可能多的設想到用戶使用過程中可能發生的事件,并能在判斷事件后做出
20、相應的處理,使程序具有較高的容錯性能。( 2)宜操作性,程序簡單易懂,容易上手使用。設計界面是,簡化界面的復雜性,模擬QQ 等現有即時通訊工具的界面,使用戶能很容易看懂并使用。( 3)開發文檔易理解,保證以后自己二次開發或他人接手開發時,能夠清晰的理解整個系統的設計思路和實現細節。( 4)模塊化設計此軟件的功能,不同的模塊實現不同的功能,使得軟件易于以后的維護與擴展,在以后可以更好的完善本軟件的功能,更方便于在工作中的應用。4.2.4 運行需求分析( 1)用戶界面程序較小,啟動速度快。可在網絡中使用。啟動后的應用界面要清爽,設計要簡單明了,要具有較高的易用性。( 2)故障處理在遇到可預知的故障
21、與情況時,能提示用戶;在遇到不可預知的故障時能安全退出。4.3 程序流程圖首先在服務器方,利用socket()函數建立流式套接字,返回套接字號s, 接著利用bind()函數將套接字s與本地地址綁定,緊接著利用listen(0 函 數通知TCP監聽客戶方,服務器準備接收連接,沒有連接的話,服務器方通 過closesocket()關閉套接字s,服務結束。有連接的話,在客戶方,通過 socket()函數建立流式套接字s,此時在服務器方,建立連接,通過accept() 返回,得到新的套接字ns,客戶方通過connect。將套接字s與遠程地址連接, 此時服務器方/客戶方在ns/s上讀/寫數據,直到交換完
22、成。交換完成后,服 務器方/客戶方關閉套接字ns/s,最后服務器方通過closesocket()關閉最初 套接字s,服務結束。具體設計過程如圖1-2所示。圖124.4 模塊設計4.4.1 服務器首先運行服務器,服務器偵聽端口消息,等待客戶端向其建立連接的中請,一旦接收到客戶端的連接請求,服務器將返回一個新的套接字描述符,通過該描述符調用數據傳輸函數即可與客戶端進行數據的收發。服務器若接收的是登陸信息,向該用戶發送在線用戶列表,并更新服務器的在線用戶列表;若收到的是發送信息,服務器解析信息,然后通過廣播消息,向其所有 線用戶列表發送消息。具體代碼如下:3Q1302 3。3 3M305305307
23、3。830931031131231331431531631131S319320321322323324Qvoid CDes_Chat_Server44 D9Dlg: OnBnClicIcedConnect / TODO; Add your control notification handler code here if (t 一BYTE fl,f2rf3jCString name;(CIPAddressCtrl * (GetDlgltem(1DC_SERVERIP |i )Address f 1fZf3);CString ip;ip. Fonrtat _Tid. Sdd").J霜;
24、e bclient - true;in_clientSocke t. Create ():if (m_clientSocket - Connect (ip f GetDlgltemlnt (IEC_P0RT)i ) m_clientSocfeet . Init (this;Se tDl g H temTe Kt (I EC 5HOWTEKT t T,客戶端已連接! "'); m binit = true;elsem clientsocket. close t);Af KMessageBox (_T *client eonneetion failed*1) ? m binit
25、= false;MJ Des Chdil_Server44CI® Microsoft Visudl Studio文件田蜥GD 項目的 生嘮面 WiW)團隊M IRE WG) 強葛姑的©行析赳)營口改)罌助IWQ 壯*匕產亨 卜拿地Wnd吁 調試a- Debug,理二國 上當 dient&cxketcpfDeJ.ChiLStrrtr+HMDlg.hDei_Chaft_5erv.-i_DiALOG - Di審益 D,jChiL5*r¥Er4*QflDlgiCpp +1 X- OnBnCIktcecilCannectG+ CD«_Chat_-Servw
26、444HDIg344 Bvoid CDes Chat Seever4 4:0 BDig: OnBnClickedButton!(>345 I / TODO: Add your control notification handler code here if (!m binit)AfsfflessageBox (_T (wnct connection to the server1") j return;)Cstring- in;CString str_naine; CMessg msg;GetDlgltemText(IDt_INPUTTEXT , in); GetDlgltem
27、Text工DC二rstr_name); if (in.GetLengthI<1 (return;)in.TrimRightt T("">>setDlgItemTextidc_ihputtext _T(H+,j); if (in.GetLengthI>2 (3tr_name +=網說:閏;E 3MsgXisX + str name ; lb += fW4.4.2 客戶端在運行服務器之后,運行客戶端。客戶端首先向服務器提出建立連接請求, 然后建立一個套接字描述符,通過該描述符調用數據傳輸函數即可與服務端 進行數據的收發。用戶登錄成功后,向服務器發送登陸消
28、息,并更新本地在 線用戶列表,然后通過服務器實現與其他客戶聊天;當客戶退出,向服務器 發送下線消息。具體代碼如下:es_ChaLCliE-n5L4420 Microsoft Visual Studio生向聞 兩皿 團隊Mi工艮卬 湃試圖 優茶嫡由© 野酢面 忘口幽 叫地革:電 Windows 調/S - DvbugDe-i_Ckat_IM.DdAJLOG - Dialer+ CClierrtSocfcrtDe、1cli #L_CK EM2Wlg,色叩牛 OriRecewefint nErraiCode-)CttrMSotkjSiipfS KCSocket:z OnRe ce ive(
29、nE rrorCMessg temp;-temp.Serializef*ra_aSeasionln) jtemp.m strText += "rnT,;m_dlg->m_3MsgLi st += temp. nti_s t rText;m_dlg->se tDl gl teir.Te st (I DC_s kqwtekt , m_dl9- >m_sMsgL i st);int linenum = £ (CEdit*) (cn_dlg«>GetDlgl t em (I DC_SHOWT'EXT) J) *>GetLineC-Di
30、uit ();(CEdit *) (in_dlg-X3etDlgltem ( idc-showtext) ->LineScroll (linenimi);if f!m dlg->jQ be 1 lent)for (POSITION pos = m_dlg->in_connectionList.GetHeadPosition () ;pos 1 =NULLi)CC1 ientSocket *t = (CC1 ientSocket *)m_iilg->jn_connectionLiit u<3etNext (pos if (t-:xn hsocketE =thi3-&
31、gt;m hsocket)t - >SendMe ssage (s.temp);)while (!m_a5essi.Qnln->lsBuf ferEmpty ();svoid CClientSocket : : Init (CDe s_Chat_C lient4 4 2 0Dig *dlg)4.4.3 加密模塊724 CString strlnPutj strKeyF strQutPut;72 Sni_dlnput. 'GetWindowText (strInput);m_dKe y,Ge i ndowTe x t(s t rKey);727 §"if
32、(atrKey = "123456")72 BP/730731732733734譽I73可73773S739740741742743744745?46729if (s t r In Put. Ge tLength () && strKey.GetLength (J)char pinPut max_path;strepyplnPutR (LPCTSTR)strinput);char 5XKeyMAX_PATH);strepy(szKeyf (LPCT3TR)strKey);char szoutEnctypt MMC_FATH);StrTaHeK(pinPut);strepy(szOutEnctyptt encrypt(pinPut szKeyn 1);s trOutFut . Farmat (_T¥ 3 "). 3 zC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年吉林省住宅裝修設計合同(示范文本)
- 2025版權許可協議合同范本
- 采購蔬菜監獄2023年大宗伙食物資政府采購項目
- 包頭市城鄉建設委員會李瑞教學課件
- 2025年度工程材料供應合同協議書樣本
- 2025年四川省資陽市雁江區中考一模歷史試題(含答案)
- 豬場養殖設備合同協議
- 白酒體驗店合同協議
- 電動車采購合同協議
- 特殊教育干預合同協議
- 2025-2030中國流量儀表市場產銷規模及企業經營發展分析研究報告
- 浙江省嘉興市2025屆高三下學期4月二模試題 地理 含解析
- 2025年杭州市高三英語4月二模質檢考試卷附答案解析
- 養老院安全知識培訓課件
- 基礎教育教學研究項目結項鑒定審批書
- 中小學生心理健康教育課件
- 2025年03月北京住房公積金管理中心(北京市住房資金管理中心)公開招聘8人筆試歷年參考題庫考點剖析附解題思路及答案詳解
- 預防觸電知識培訓
- 中藥煎藥室工作制度和流程
- 生產車間主管月度工作總結
- 京瓷哲學學習與應用課件
評論
0/150
提交評論