最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【山西警察學(xué)院畢業(yè)論文模板】基于AES算法的仿微信實時通信系統(tǒng)的設(shè)計與實現(xiàn)

2023-08-10 11:58 作者:趣畢業(yè)  | 我要投稿


基于AES算法的仿微信實時通信系統(tǒng)的設(shè)計與實現(xiàn)

?

摘  要:近些年來,由于通信隱私與信息安全問題的日益關(guān)注,實時通信加密已經(jīng)成為互聯(lián)網(wǎng)通信發(fā)展中不可避免的趨勢。本課題以AES算法為核心,以增強(qiáng)通信安全性及用戶體驗為目標(biāo),實現(xiàn)仿微信的實時通信系統(tǒng)。

系統(tǒng)即時通、好友管理、聊天記錄查詢等功能,利用TCP協(xié)議實現(xiàn)消息的傳輸,利用AES算法實現(xiàn)消息的加密解密,實現(xiàn)了消息內(nèi)容的保密和信息安全性。同時該系統(tǒng)還有好友管理、聊天記錄歸檔等功能,可以給用戶帶來好的體驗。該系統(tǒng)用Java語言和MYSQL數(shù)據(jù)庫進(jìn)行開發(fā)設(shè)計,利用WebSocket實現(xiàn)即時通功能。

未來,將繼續(xù)完善該系統(tǒng)的功能和性能,強(qiáng)化系統(tǒng)的安全措施,增強(qiáng)用戶使用安全和隱私的保護(hù)。我們也將繼續(xù)優(yōu)化通信協(xié)議,以提高系統(tǒng)的穩(wěn)定性和有效性。我們的最終目標(biāo)是為用戶提供一個快速、安全且高效的交流平臺

關(guān)鍵詞仿微信聊天系統(tǒng);AES;MYSQL數(shù)據(jù)庫

?

Design and implementation of Real-time Communication system imitating Wechat based on AES algorithm

?

Abstact:In recent years, with people's increasing attention to communication privacy and information security, real-time communication encryption has become a necessary trend of Internet communication. This paper realizes a real-time communication system like WeChat based on AES algorithm, aiming to improve the communication security and user experience.

The system has the functions of instant messaging, friend management, chat record query and so on. It uses TCP protocol for message transmission, and AES algorithm for message encryption and decryption. Further explained, the system realizes the data transmission and processing through the application layer and transmission layer protocol, and uses a separate AES algorithm to encrypt and decrypt the message to ensure the security of communication. At the same time, the system also has friends management and chat records archiving and other functions, can provide users with a better experience. This system is written in Java language and realizes instant messaging function using WebSocket. In the process of encryption and decryption, the AES algorithm realizes the encryption and decryption of the message, which realizes the confidentiality and information security of the message content.

In the future, it will continue to improve the functionality and the performance of the system, adding more security measures and encryption algorithms to improve user security and privacy protection. We will also continue to optimize the design of the communication protocol to improve the stability and effectiveness of the system. Our ultimate goal is to provide users with a fast, safe and efficient communication platform, so that users can communicate more smoothly and happily.

Keywords:?imitation WeChat chat system; AES;MYSQL DATABASE


目錄

目錄

1 概述

1.1 研究背景及意義

1.1.1 研究背景

1.1.2 研究意義

1.2 國內(nèi)外研究現(xiàn)狀

1.3本章小結(jié)

2 開發(fā)平臺及工具的選擇

2.1 AES加密簡介

2.2 Java語言簡介

2.3網(wǎng)站所使用的數(shù)據(jù)庫

2.5本章小結(jié)

3 系統(tǒng)分析

3.1 系統(tǒng)功能分析

3.2 可行性分析

3.2.1 經(jīng)濟(jì)上的可行性分析

3.2.2 技術(shù)上的可行性分析

3.3 需求分析

3.3.1 市場需求分析

3.3.2 系統(tǒng)功能需求分析

3.4 AES理論基礎(chǔ)

3.5 AES算法結(jié)構(gòu)

4?系統(tǒng)分析

4.1 系統(tǒng)功能設(shè)計

4.2 架構(gòu)設(shè)計

4.3 消息設(shè)計

4.4 數(shù)據(jù)加密的實現(xiàn)

4.5 頁面設(shè)計

4.5.1 后臺登錄

4.5.2 首頁功能

4.5.3聊天記錄查看功能

4.5.4表情選擇功能

4.5.5好友列表功能

5?系統(tǒng)測試

5.1 系統(tǒng)測試

5.2 測試結(jié)論

6 總結(jié)

????

參考文獻(xiàn)

?


1 概述

1.1 研究背景及意義

1.1.1 研究背景

隨著社會技術(shù)的迅速發(fā)展,傳統(tǒng)的通信方式已經(jīng)不能完全滿足現(xiàn)代社會人們的要求。隨著網(wǎng)絡(luò)的推廣與普及,網(wǎng)絡(luò)的通信方式開始興起,網(wǎng)絡(luò)聊天越來越受到各種網(wǎng)民的歡迎。網(wǎng)絡(luò)通信方式與傳統(tǒng)的通信方式相比,具有通信花費(fèi)較少、可以實時通信、相互交流方式多樣等很多優(yōu)點。正是因為網(wǎng)絡(luò)通信技術(shù)的這些優(yōu)點,才得以讓它飛快的被廣大用戶所認(rèn)可。隨著網(wǎng)絡(luò)交流的不斷的發(fā)展,網(wǎng)絡(luò)交流已經(jīng)成為了人們生活之中不可或缺的一部分。

網(wǎng)絡(luò)是一個虛擬的、開放的世界,這是網(wǎng)絡(luò)的魅力所在,但同時也是不安全的。早期的網(wǎng)絡(luò)中的信息人都是可見的,用戶的信息安全得到保障。目前,網(wǎng)絡(luò)安全問題已經(jīng)成為萬眾關(guān)注的階段問題,是一個世界級的問題。在網(wǎng)絡(luò)安全問題中很重要的一個環(huán)節(jié)就是通信安全問題,當(dāng)下大部分非常流行的網(wǎng)絡(luò)聊天程序?qū)τ脩舻耐?/span>安全沒有相應(yīng)的保障,用戶的信息在傳輸過程中可能會被盜取或修改。

1.1.2 研究意義

AES算法是一種高強(qiáng)度加密算法,采用該算法能夠有效地加強(qiáng)通信系統(tǒng)的安全性,防止敏感信息被黑客竊取或篡改。仿微信實時通信系統(tǒng)需要考慮到多方面的問題,例如如何保證消息的可靠傳輸、如何實現(xiàn)好友關(guān)系管理以及如何處理用戶在線狀態(tài)等問題。通過研究這些問題并嘗試設(shè)計解決方案,可以拓展實時通信系統(tǒng)的技術(shù)應(yīng)用領(lǐng)域。在當(dāng)前信息化社會背景下,網(wǎng)絡(luò)安全和數(shù)據(jù)隱私保護(hù)已成為社會各界關(guān)注的焦點。通過基于AES算法的仿微信實時通信系統(tǒng)的研究,不僅可以提高通信系統(tǒng)的安全性,還能夠推動相關(guān)技術(shù)的發(fā)展和應(yīng)用,進(jìn)一步提升網(wǎng)絡(luò)安全和數(shù)據(jù)隱私保護(hù)的水平。因此,基于AES算法的仿微信實時通信系統(tǒng)的研究具有重要的意義和價值。

1.2 國內(nèi)外研究現(xiàn)狀

國內(nèi)外對聊天程序的加密情況看,目前主要采用現(xiàn)有基礎(chǔ)之上添加特定的加密插件的方式來處理。比較典型的例子是Linux 平臺下,Gaim是一款多集成聊天程序,其中集成了ICQ、MSN、QQ等現(xiàn)今主流國內(nèi)外聊天程序。普遍的聊天程序沒有經(jīng)過加密而直接傳輸聊天明文。Gaim 通過添加插件程序?qū)ξ醇用艿牧奶斐绦蜻M(jìn)行加密傳輸,通信雙方需要只要同時安裝加密插件就可以順利的對聊天內(nèi)容進(jìn)行加密解密。這其中存在一個現(xiàn)而易見的問題:要是一方加入了加密插件而另一方卻沒有相應(yīng)的解密程序顯然雙方不能正確通信。加密技術(shù)有著很長的發(fā)展歷史,早期的密碼變換鄙是由手工或機(jī)械完成的,20世紀(jì)70年代起計算機(jī)技術(shù)的出現(xiàn)推動了密碼學(xué)的發(fā)展,密碼學(xué)也逐漸形成了一門新的科學(xué)"。1949 年C.E.Shannon 發(fā)表的“The Communication Theory ofSerecy Systems”一文,奠定了密碼學(xué)的理論基礎(chǔ)|。Shannon在文中提出了“混亂性”和“擴(kuò)散性”兩大準(zhǔn)則,這也是當(dāng)今密碼設(shè)計所遵循的基本準(zhǔn)則之一。1976年W.Diffie和M.Hellman發(fā)表了“New Directions in Cryplography”--文,提出了適用于網(wǎng)絡(luò)保密通信的公鑰密碼思想,開辟了公鑰密碼學(xué)的新領(lǐng)城。1977 年,美國國家標(biāo)準(zhǔn)局將IBM公司提出的Lucifer算法作為數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryption Standard,簡寫為DES)予以公布,宣布了近代密碼學(xué)的開端。

近代密碼學(xué)中有兩類加密體制:對稱加密體制和非對稱加密體制。對稱加密方法中比較著名的有DES算法和AES(Advanced Encryption Standard,簡稱AES)算法,非對稱加密方法中比較著名的有RSA、ECC算法等。兩種加密體制都是由明文、密鑰、加密方式、解密方式和密文組成。在密碼體制中,加密密鑰和解密密鑰一致,稱作對稱加密算法加密密鑰和解密密鑰不一致,即非對稱加密算法,此時加密密鑰是公鑰,解密密鑰稱為私鑰。

隨著密碼破解技術(shù)的發(fā)展,1997 年6月17日美國的數(shù)據(jù)加密標(biāo)準(zhǔn)DES(56bit)被攻破,同年美國開始采用新一代數(shù)據(jù)加密標(biāo)準(zhǔn)(AES)。2001年比利時密碼學(xué)家設(shè)計的Rijndael算法取代DES算法被選為AES加密算法的標(biāo)準(zhǔn)方案,AES一次可以加密128位字符,有三種加密方法對應(yīng)的密鑰長度分別為128bit、 192bit 和256bit. Rijndael 算法具有安全性、加密效率、實現(xiàn)簡單、高度靈活等優(yōu)點。在抗密碼分析方面,算法可以計算出最佳差分特征的概率,有效的抵抗差分密碼分析和線性密碼分析等。由于AES算法擁有出色的安全性,它在各種加密領(lǐng)域得到了廣泛應(yīng)用,而手機(jī)中采用的加密軟件有很大一部分都是采用的AES加密算法。

1.3本章小結(jié)

本章主要是對仿微信聊天系統(tǒng)的開發(fā)背景,以及國內(nèi)外現(xiàn)狀的一個大概的描述,同時也介紹了該網(wǎng)站所需要的開發(fā)環(huán)境和技術(shù),并對全文進(jìn)行了簡單的概括,讓讀者第一時間能了解到該論文的一個大概的內(nèi)容

2 開發(fā)平臺及工具的選擇

2.1?AES加密簡介

AES加密,它的完整名字叫做“高級加密標(biāo)準(zhǔn)”,是一種非常強(qiáng)大的加密算法,它是由美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST) 在2001年發(fā)布的,它被認(rèn)為是目前世界上最安全、最先進(jìn)的加密算法之一。

AES加密有著很多用途,它可以用來加密數(shù)據(jù),以防止未經(jīng)授權(quán)的訪問和更改,也可以用來加密電子郵件,保護(hù)個人隱私。它還可以用來加密網(wǎng)絡(luò)傳輸,保護(hù)網(wǎng)絡(luò)數(shù)據(jù)免受未經(jīng)授權(quán)的訪問,也可以用來保護(hù)Wi-Fi網(wǎng)絡(luò)的安全性。

AES加密算法的安全性非常高,它是一種塊加密算法,它使用128位、192位或256位的密鑰,可以提供非常強(qiáng)大的安全性。它的安全性可以抵抗各種類型的攻擊,包括密碼窮舉攻擊、密碼分析攻擊和密碼拓展攻擊。

AES加密算法的安全性可以通過它的密鑰長度來衡量,密鑰越長,安全性就越高,128位的密鑰可以抵抗大多數(shù)的攻擊,而192位和256位的密鑰可以抵抗所有的攻擊,所以AES加密算法可以提供非常高的安全性。

AES加密的基本原理是: 將明文按照一定的規(guī)則進(jìn)行分組,然后使用密鑰對每組數(shù)據(jù)進(jìn)行加密。AES加密算法有三種模式: ECB(電子密碼本)、CBC(密碼塊鏈) 和CFB(密碼反饋)

ECB模式是最常用的模式,它將明文分割成固定大小的塊,然后使用密鑰對每個塊進(jìn)行加密。但是,它存在一個問題: 如果明文中有兩個相同的塊,那么它們也會被加密成相同的密文。

基于AES算法的通信信息加密傳輸方案具有以下四個特性:

(1)安全性:由于該方案所采用的數(shù)據(jù)加密算法是AES算法,而該算法是已經(jīng)被多方分析且廣為全世界所使用的、加密強(qiáng)度極高的算法;而且在該方案中對信息的加/解密處理過程是在網(wǎng)絡(luò)傳輸之前/后進(jìn)行的。這就決定了該方案具有很高的安全性。

(2)低耗性:在信息處理上同原方案相比多了加密處理模塊,但新方案所采用的加密算法是運(yùn)算效率極高的AES算法;因此,新方案能以較低的資源消耗為代價來提高通信信息的安全性。

(3)易用性:為了提供較高的安全性,該方案使用兩層加密處理過程,但用戶僅需設(shè)定少數(shù)的幾個參數(shù),所以在方案的實施上對用戶來說是極其方便的。

(4)擴(kuò)展性:從該方案對信息的處理過程可知,其可對任意類型的通信信息進(jìn)行處理;因此該方案具有很高的擴(kuò)展性,能夠較好地適應(yīng)當(dāng)前及未來的網(wǎng)絡(luò)應(yīng)用。

2.2 Java語言簡介

Java是一種廣泛使用的計算機(jī)編程語言,由Sun Microsystems公司發(fā)明并于1995年推出。Java是以C++語言為基礎(chǔ),但更加簡單易用、跨平臺性強(qiáng),語法精簡、無指針、自動內(nèi)存管理。Java語言在應(yīng)用領(lǐng)域廣泛,特別是在大規(guī)模企業(yè)應(yīng)用、Web應(yīng)用、移動應(yīng)用、游戲開發(fā)等方面具有較高的市場份額。

Java語言具有以下幾個特點:

1. 面向?qū)ο螅篔ava是面向?qū)ο蟮恼Z言,具備抽象、封裝、繼承、多態(tài)等面向?qū)ο蟮奶匦?,使得編寫代碼更加簡潔易讀,更易于維護(hù)和重用。這些特性也讓Java在軟件開發(fā)中更加容易實現(xiàn)可擴(kuò)展和可維護(hù)的軟件。

2. 跨平臺性:Java語言充分體現(xiàn)了“Write Once, Run Anywhere”的哲學(xué),也就是一次編寫,隨處運(yùn)行。使用Java編寫的程序可以在不同的操作系統(tǒng)和硬件平臺上運(yùn)行,并且性能表現(xiàn)穩(wěn)定。

3. 簡單易學(xué):Java語言的語法較為簡單,相對于C++語言來說,去掉了冗余及危險的特性,比如指針和內(nèi)存管理等。Java也提供了廣泛且易于理解的開發(fā)文檔和范例,使得初學(xué)者能夠快速學(xué)習(xí)Java。

4. 強(qiáng)類型:Java是一種強(qiáng)類型語言,意味著編譯器會在編譯期間檢查變量類型,防止類型錯誤,并避免許多程序錯誤。

5. 自動內(nèi)存管理:Java通過垃圾收集器實現(xiàn)了自動的內(nèi)存管理,自動回收程序中不再使用的內(nèi)存,避免了內(nèi)存泄漏等安全問題,使得程序更加穩(wěn)定可靠。

Java語言具有廣泛的應(yīng)用,幾乎可以涵蓋計算機(jī)軟件開發(fā)的各個領(lǐng)域,包括大型企業(yè)應(yīng)用、移動應(yīng)用、Web應(yīng)用、物聯(lián)網(wǎng)、游戲開發(fā)等。Java語言的電商軟件、金融軟件、大數(shù)據(jù)軟件等在市場應(yīng)用中深受歡迎。

2.3網(wǎng)站所使用的數(shù)據(jù)庫

MySQL數(shù)據(jù)庫是目前而言,比較流行的一個關(guān)系型數(shù)據(jù)庫系統(tǒng),它目前屬于甲骨文公司旗下,是一個速度快的同時,體積也相對較小的數(shù)據(jù)庫系統(tǒng),而且它的擁有成本也相對較低,特別是它還開放源碼,因此很多系統(tǒng)的開發(fā),都會選擇mysql作為系統(tǒng)的數(shù)據(jù)庫。MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它使用SQL語言進(jìn)行數(shù)據(jù)管理和查詢。MySQL最初由瑞典的MySQL AB公司開發(fā),現(xiàn)在屬于Oracle公司。

MySQL支持多種操作系統(tǒng),包括Windows、Linux、Unix等,同時也支持多種編程語言,如C、C++、Java、Python等。它具有以下特點:MySQL是開源軟件,用戶可以自由地修改、分發(fā)和使用MySQL;MySQL可以處理大量的數(shù)據(jù),支持多個數(shù)據(jù)表、索引和復(fù)雜查詢;MySQL采用了多線程、異步I/O等技術(shù),能夠快速地處理大量的數(shù)據(jù)請求;MySQL提供了高可用性和數(shù)據(jù)安全機(jī)制,包括數(shù)據(jù)備份、恢復(fù)和事務(wù)處理等功能。除此之外,MySQL還支持存儲過程、觸發(fā)器、視圖等高級特性,可以讓用戶更方便地管理和查詢數(shù)據(jù)。MySQL的應(yīng)用非常廣泛,包括網(wǎng)站、企業(yè)應(yīng)用、移動應(yīng)用等各個領(lǐng)域。

2.5本章小結(jié)

這個部分講述了網(wǎng)站所用到的一些技術(shù)支撐,對這些技術(shù)從自己理解的層面結(jié)合網(wǎng)上官方的回答向讀到這篇論文的學(xué)者呈現(xiàn)出來,從而讓讀到該項目論文的讀者可以自己品味出來其中的韻味,同時最后也大概的描述了網(wǎng)站的主要內(nèi)容。

3 系統(tǒng)分析

3.1 系統(tǒng)功能分析

本系統(tǒng)是仿微信聊天系統(tǒng),系統(tǒng)中用戶進(jìn)行瀏覽中需要進(jìn)行登錄才可以進(jìn)行訪問以及進(jìn)行聊天,用戶功能如下:

1、首頁,查看首頁信以及消息通知

2、顏色字體選擇:發(fā)消息可以查看選擇字體信息

3、發(fā)送表情:可以選擇合適的表情進(jìn)行發(fā)送。

4、好友列表查看:查看還有列表以及未讀信息提醒。

3.2 可行性分析

3.2.1 經(jīng)濟(jì)上的可行性分析

基于AES算法的仿微信實時通信系統(tǒng)的開發(fā)具有較高的經(jīng)濟(jì)可行性和市場前景。當(dāng)前,社交軟件的需求超過了市場對其的供應(yīng)量,仿微信實時通信系統(tǒng)則能夠滿足用戶的高質(zhì)量體驗和隱私保護(hù)的需求。且隨著人們對數(shù)據(jù)保護(hù)重視程度的提高和隱私性的關(guān)注度不斷加大,AES算法的數(shù)據(jù)加密方式使得此類應(yīng)用程序更加安全。在過去的幾年中,社交和通訊類應(yīng)用已經(jīng)成為移動互聯(lián)網(wǎng)市場的主要推手之一。因此,本系統(tǒng)在技術(shù)可行的前提下,具有良好的經(jīng)濟(jì)可行性和發(fā)展前景。

3.2.2 技術(shù)上的可行性分析

在進(jìn)行基于AES算法的仿微信實時通信系統(tǒng)開發(fā)之前,需要進(jìn)行技術(shù)上的可行性分析,以確定系統(tǒng)能否成功開發(fā)實現(xiàn)。下面分別從技術(shù)架構(gòu)、數(shù)據(jù)存儲和系統(tǒng)性能三個方面進(jìn)行可行性分析。

1. 技術(shù)架構(gòu):基于AES算法的仿微信實時通信系統(tǒng)采用的技術(shù)架構(gòu)需要滿足高效、安全、實時等特點。例如,選擇一種高可靠、可分布式部署的系統(tǒng)架構(gòu)可以在一定程度上保證系統(tǒng)的可靠性、可擴(kuò)展性,同時也需要滿足實時性,例如選擇TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸,以保證數(shù)據(jù)的高效傳輸。

2. 數(shù)據(jù)存儲:仿微信實時通信系統(tǒng)需要對用戶個人信息、聊天記錄等數(shù)據(jù)進(jìn)行存儲,因此在進(jìn)行系統(tǒng)開發(fā)時需要考慮數(shù)據(jù)存儲的可行性。例如,可以選擇云存儲技術(shù),實現(xiàn)數(shù)據(jù)同步、備份和恢復(fù)等功能,以保證數(shù)據(jù)的安全性和完整性,同時也需要對用戶隱私信息進(jìn)行保密處理。

3. 系統(tǒng)性能:仿微信實時通信系統(tǒng)需要實現(xiàn)實時消息的傳輸和處理,因此在系統(tǒng)性能方面需要充分考慮。例如,可以使用多線程技術(shù)來提高系統(tǒng)的并發(fā)處理能力和響應(yīng)速度,采用負(fù)載均衡技術(shù)和分布式架構(gòu)來提高系統(tǒng)的可擴(kuò)展性和容錯性。

3.3 需求分析

需求分析是是指對要解決的問題進(jìn)行深度解析,是開發(fā)過程中必不可少的環(huán)節(jié)。本階段針對仿微信聊天系統(tǒng)的使用情況進(jìn)行調(diào)研,確認(rèn)開發(fā)目的,為達(dá)到改目標(biāo)進(jìn)行分析,從而得出用戶需求。

3.3.1 市場需求分析

該網(wǎng)站的設(shè)計是在目前所需要的功能為目標(biāo)的基礎(chǔ)上進(jìn)行設(shè)計研發(fā)的,為了適應(yīng)未來實際的需求的變化,給未來的功能提供更便捷的擴(kuò)展和維護(hù),我們必須去考慮到網(wǎng)站的擴(kuò)展問題,在現(xiàn)有的基礎(chǔ)上去增加功能時,網(wǎng)站原本的框架和功能點不會被太大的影響。?

3.3.2 系統(tǒng)功能需求分析

(1)用戶

1、首頁,查看首頁信以及消息通知

2、顏色字體選擇:發(fā)消息可以查看選擇字體信息

3、發(fā)送表情:可以選擇合適的表情進(jìn)行發(fā)送。

4、好友列表查看:查看還有列表以及未讀信息提醒。

3.4 AES理論基礎(chǔ)

AES,即高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard),是一種對稱密鑰加密算法,用于對數(shù)據(jù)進(jìn)行加密操作。AES算法的理論基礎(chǔ)主要包括以下內(nèi)容:

1. 數(shù)據(jù)塊大小

AES算法對待加密的數(shù)據(jù)進(jìn)行分組,每組稱為一個“數(shù)據(jù)塊”,其大小可以是128比特(16字節(jié))、192比特(24字節(jié))或256比特(32字節(jié))中任意一種。在實際應(yīng)用中,128比特的數(shù)據(jù)塊大小常見,因為其安全性、速度和效率均表現(xiàn)良好。

2. 加密過程

AES算法采用迭代結(jié)構(gòu)(Iteration),即將每一個數(shù)據(jù)塊進(jìn)行重復(fù)多次的變換,最終得到密文。具體來說,該算法主要分為四個步驟:字節(jié)替代、行移位、列混淆和輪密鑰加,其中輪密鑰加是當(dāng)所有輪變換完成后的最后一步,用于添加最后一個密鑰。【2】

3. 密鑰擴(kuò)展

在AES算法中,密鑰擴(kuò)展是一個很重要的步驟。該步驟將輸入的密鑰擴(kuò)展為不同的輪密鑰,以用于加密算法的迭代變換中。密鑰擴(kuò)展采用的是基于置換的密碼學(xué)算法,具有高度的安全性和有效性。

3.5 AES算法結(jié)構(gòu)

?

分組密碼是一種加密方式,它是將明文分組后進(jìn)行加密,通常得到的密文長度與明文長度相等。而AES算法則是分組密碼算法中的代表之一。AES算法中數(shù)據(jù)分組的長度只能是128位,而密鑰長度可以是128位、192位或者256位。在AES加密算法中,采用的是對輪函數(shù)實施迭代的結(jié)構(gòu),即輪函數(shù)結(jié)構(gòu),它采用的是SP結(jié)構(gòu)。

需要注意的是,加密算法的強(qiáng)度以及密鑰長度對加密結(jié)果有著至關(guān)重要的影響。在使用AES算法進(jìn)行加密時,要選擇合適的密鑰長度以及密鑰強(qiáng)度,以確保數(shù)據(jù)的安全性。

AES加密算法的輪函數(shù)包括以下三個層次的結(jié)構(gòu)組成:

(1) 非線性層:該層主要進(jìn)行非線性操作,采用S盒,將輸入的明文進(jìn)行S盒替換,用于使得明文在加密過程中難以預(yù)測,從而提高AES算法的安全性。

(2) 線性混合層:該層主要進(jìn)行高度擴(kuò)散,對明文進(jìn)行4x4仿射變換,其中涉及到行移位和列混淆得到一個新的狀態(tài)矩陣,進(jìn)一步加大每個明文字符的影響,增強(qiáng)加密的混淆性,從而進(jìn)一步提高AES算法的安全性。

(3) 密鑰加層:該層主要用于實現(xiàn)密鑰的加密控制作用,將每一個狀態(tài)矩陣加上對應(yīng)的輪密鑰,從而進(jìn)一步加密數(shù)據(jù),同時控制了密鑰的加密過程,提高AES算法的安全性。在AES高級加密算法中,每一組需要進(jìn)行加密操作的明文或是每組需要進(jìn)行解密操作的密文需要經(jīng)過多次數(shù)據(jù)轉(zhuǎn)換,每一次轉(zhuǎn)換產(chǎn)生一個中間結(jié)果,這個中間結(jié)果稱為狀態(tài)(State)。狀態(tài)可以表示為二維字節(jié)數(shù)組,稱為狀態(tài)矩陣。【7】

在標(biāo)準(zhǔn)的AES中,狀態(tài)矩陣有四行,Nb列,因此當(dāng)Nb等于4時,狀態(tài)矩陣為4x4的矩陣。另外,初始密鑰也可以表示為一個二維字節(jié)數(shù)組,其中四行,Nk列。當(dāng)Nk等于4時,初始密鑰矩陣也為4x4的矩陣。以下是Nb=4,Nk=4時狀態(tài)、初始密鑰的對應(yīng)矩陣:

AES算法是一種流行的對稱密鑰加密算法,其加密過程分為四個主要步驟:密鑰擴(kuò)展、輪密鑰、Nr-1輪輪變換和最后一輪輪變換。密鑰擴(kuò)展步驟用來生成每一輪所需的輪密鑰。在該步驟中,AES算法使用密鑰調(diào)度算法將原始密鑰擴(kuò)展成一個每輪所需的密鑰數(shù)組。輪密鑰步驟將每輪的輪密鑰與明文進(jìn)行異或操作。這個步驟是保障加密過程不可逆性的關(guān)鍵。

在Nr-1輪輪變換中,AES算法重復(fù)執(zhí)行4個步驟:字節(jié)代換、行移位、列混淆和輪密鑰加。這些步驟將明文的字節(jié)轉(zhuǎn)換為復(fù)雜的、難以反推的狀態(tài),并在加密過程中增加了強(qiáng)度。其中,字節(jié)代換將每個字節(jié)替換為一個預(yù)定義的值,行移位則將每一行移動一定數(shù)量的位數(shù)以生成一個新狀態(tài)。列混淆和輪密鑰的目的是進(jìn)一步混淆狀態(tài)并增加強(qiáng)度。最后一輪輪變換處理時,與Nr-1輪輪變換步驟類似,但是列混淆會被省略。在最后一輪,字節(jié)代換和行移位執(zhí)行后,再與最終的輪密鑰一起執(zhí)行輪密鑰加。

AES算法的解密過程與加密過程大致相同。唯一的區(qū)別在于解密過程中,列混淆、行移位和字節(jié)代換等操作是逆向進(jìn)行的,而輪密鑰的擴(kuò)展順序與加密過程相反。這樣才能將密文轉(zhuǎn)換回明文。

圖3-3 AES加密解密完整結(jié)構(gòu)圖

4?系統(tǒng)分析

4.1 系統(tǒng)功能設(shè)計

在基于AES算法的仿微信實時通信系統(tǒng)的設(shè)計部分,需要包括以下方面的內(nèi)容:

1. 系統(tǒng)需求分析:描述仿微信實時通信系統(tǒng)的基本功能和業(yè)務(wù)需求,包括用戶注冊、登錄、好友添加、聊天記錄存儲、消息推送等等。

2. 架構(gòu)設(shè)計:包括系統(tǒng)的總體框架、功能模塊劃分、模塊之間的關(guān)系等。

3. 后端技術(shù)的選擇與實現(xiàn):包括后端框架選擇、數(shù)據(jù)庫的選擇以及對應(yīng)的處理方式等。

4. 前端界面設(shè)計與實現(xiàn):主頁、聊天頁面等界面設(shè)計與實現(xiàn)。

5. 消息傳輸協(xié)議的設(shè)計:根據(jù)仿微信實時通信系統(tǒng)的功能需求,使用AES算法進(jìn)行數(shù)據(jù)加密,同時設(shè)計實時通信協(xié)議,以保障數(shù)據(jù)加密的安全性。

6. 數(shù)據(jù)加密的實現(xiàn):描述AES加密算法的實現(xiàn)流程,包括加解密算法的實現(xiàn)過程以及具體的加密步驟。

7. 系統(tǒng)功能的實現(xiàn):依據(jù)系統(tǒng)需求分析,具體實現(xiàn)包括用戶注冊、登錄、好友添加、聊天記錄存儲、消息推送等功能。

4.2 架構(gòu)設(shè)計

在基于AES算法的仿微信實時通信系統(tǒng)的設(shè)計中是非常重要的一步。不僅要確定系統(tǒng)整體框架,還要根據(jù)需求劃分出合理的功能模塊,并詳細(xì)描述模塊之間的關(guān)系。具體步驟如下:

1. 確定系統(tǒng)總體框架

首先需要確定仿微信實時通信系統(tǒng)的總體框架,也就是確定后端和前端架構(gòu)設(shè)計。系統(tǒng)的后端主要包括數(shù)據(jù)庫、功能模塊和服務(wù),前端主要包括界面設(shè)計和用戶交互功能。

2. 劃分功能模塊

根據(jù)系統(tǒng)需求,確定劃分功能模塊,一般包括用戶管理模塊、好友管理模塊、聊天管理模塊、消息推送模塊等。每個功能模塊包括具體的功能需求和技術(shù)實現(xiàn)。

3. 描述模塊之間的關(guān)系

在確定功能模塊后,需要描述模塊之間的關(guān)系,比如用戶管理模塊需與好友管理模塊、聊天管理模塊和消息推送模塊進(jìn)行交互,并需要與數(shù)據(jù)庫通信進(jìn)行數(shù)據(jù)的讀寫操作。

4. 系統(tǒng)的整體架構(gòu)設(shè)計

根據(jù)以上步驟,細(xì)化系統(tǒng)的整體架構(gòu)設(shè)計,包括后端和前端架構(gòu)設(shè)計,功能模塊劃分以及模塊之間的關(guān)系描述。確定系統(tǒng)實現(xiàn)所需要的技術(shù)和技術(shù)方案,以及服務(wù)的部署和維護(hù)等。

基于AES算法的仿微信實時通信系統(tǒng),可以采用前后端分離的架構(gòu),后端技術(shù)可以使用Java語言開發(fā),作為服務(wù)端,負(fù)責(zé)鏈接客戶端、執(zhí)行業(yè)務(wù)邏輯、提供頁面數(shù)據(jù)接口、支持?jǐn)?shù)據(jù)庫交互等,還需實現(xiàn)消息推送機(jī)制。前端界面可以使用HTML、CSS、JavaScript等。具體的功能模塊劃分需求進(jìn)行細(xì)化,包括好友管理模塊、聊天管理模塊和消息推送模塊等。其中好友管理模塊需要實現(xiàn)用戶注冊、登錄、找回密碼、添加好友、刪除好友、更新個人資料等功能;聊天管理模塊需要實現(xiàn)私聊、群聊、消息記錄、文件傳輸?shù)裙δ?;消息推送模塊則需要對用戶之間的消息進(jìn)行實時推送。將以上模塊進(jìn)行整合,實現(xiàn)細(xì)網(wǎng)絡(luò)服務(wù)調(diào)用的方式構(gòu)成仿微信實時通信系統(tǒng)。

圖4-1 總體架構(gòu)圖

4.3 消息設(shè)計

在消息傳輸協(xié)議的設(shè)計中,使用AES算法進(jìn)行數(shù)據(jù)加密,以及設(shè)計實時通信協(xié)議,保障數(shù)據(jù)加密的安全性。具體步驟如下:

1. 根據(jù)功能需求,確定協(xié)議的傳輸方式、數(shù)據(jù)格式和加密方式等。在本文中,采用TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)格式為JSON格式,采用AES算法進(jìn)行加密處理。

2. 參照AES算法加密規(guī)范,設(shè)計加密程序和解密程序的處理流程,并通過程序代碼實現(xiàn)。該部分可以使用偽代碼或者實際編程語言進(jìn)行說明。例如,對于AES算法的加密流程,可以使用以下偽代碼描述:

AES加密偽代碼

1. 初始化AES密鑰,指定加密模式和填充方式。

2. 分塊處理明文數(shù)據(jù),加入填充數(shù)據(jù),最后形成完整的塊。

3. 將每個塊分別與密鑰進(jìn)行異或運(yùn)算,然后依次進(jìn)行替換、移位和混淆的操作,得到加密后的密文塊。

4. 將加密后的密文塊拼接在一起,形成完整的密文數(shù)據(jù)。

5. 發(fā)送加密后的密文數(shù)據(jù)至通信協(xié)議中。

圖4-2 實時通信協(xié)議的流程圖

4.4 數(shù)據(jù)加密的實現(xiàn)

AES算法是對稱加密體制中的一種加密算法,其安全性和有效性已被廣泛證明。下面是關(guān)于AES加密算法的實現(xiàn)流程:

?

AES加密算法的實現(xiàn)過程包含以下兩個過程:

?

1. 初始化密鑰調(diào)度表:在此過程中,要使用密鑰對128位進(jìn)行擴(kuò)展和調(diào)度,生成11個128位密鑰。具體流程如下:

密鑰擴(kuò)展:將128位輸入密鑰拆分成4x4的矩陣,然后擴(kuò)展為44個4x4的矩陣。

輪常數(shù):定義一個數(shù)組Rcon,其中Rcon[1] = {01},Rcon[i] = 2 * Rcon[i-1]在GF(2^8)中的結(jié)果。然后生成10輪加密所需的10個常數(shù)輪密鑰。

2. 加密/解密操作:在此過程中,要對明文進(jìn)行128位分塊,并對每個分塊進(jìn)行加密操作。

AddRoundKey:將明文塊與輪密鑰進(jìn)行異或操作。

SubBytes:使用S盒,替換每個字節(jié)。

ShiftRows:對每行逐個字節(jié)進(jìn)行循環(huán)移位,第1行不變,第2行整體向左移動1個字節(jié),第3行整體向左移動2個字節(jié),第4行整體向左移動3個字節(jié)。

MixColumns:對每列逐個字節(jié)進(jìn)行混淆。

重復(fù)步驟2中的步驟1~4(不包括MixColumns)9次,最后進(jìn)行第10輪操作時,省略MixColumns。

AES的解密流程和加密流程類似,只不過需要用逆變換代替加密變換,而輪密鑰是按反向順序使用。

圖4-3 AES加密算法實現(xiàn)流程圖

4.5 頁面設(shè)計

4.5.1 后臺登錄

當(dāng)管理員需要進(jìn)行后臺界面的時候,需要首先填寫正確的信息進(jìn)行登錄,才能進(jìn)入,實現(xiàn)用戶登錄,管理員登錄功能如圖4-4所示:

圖4-4后臺管理登陸功能

4.5.2?首頁功能

仿微信聊天系統(tǒng)首頁界面功能包括:可以查看首頁信息等。該仿微信聊天系統(tǒng)的首頁界面如圖4-5所示:

圖4-5首頁功能

4.5.3聊天記錄查看功能

仿微信聊天系統(tǒng)的聊天記錄查看界面功能包括:可以查看聊天記錄查看信息等。該仿微信聊天系統(tǒng)的聊天記錄查看界面如圖4-6所示:

圖4-6聊天記錄查看功能

4.5.4表情選擇功能

仿微信聊天系統(tǒng)的表情選擇界面功能包括:可以查看表情選擇以及發(fā)送表情等。該仿微信聊天系統(tǒng)的表情選擇界面如圖4-7所示:

圖4-7表情選擇功能

4.5.5好友列表功能

仿微信聊天系統(tǒng)好友列表功能包括:可以查看好友列表信息等。該仿微信聊天系統(tǒng)的好友列表界面如圖4-8所示:

圖4-8好友列表功能

5?系統(tǒng)測試

5.1 系統(tǒng)測試

在系統(tǒng)開發(fā)完成后,需要對現(xiàn)有開發(fā)功能進(jìn)行功能型測試,確認(rèn)用戶在使用的途中不會出現(xiàn)意外情況,導(dǎo)致系統(tǒng)崩潰,同時完善用戶體驗下。測試的過程如下所示

網(wǎng)站的測試用例將以網(wǎng)站的核心功能展開詳細(xì)闡述,一個核心功能點衍生一條測試用例。在執(zhí)行測試用例過程中,需要測試人員嚴(yán)格遵守用例要求。接下來將對測試用例和測試結(jié)果進(jìn)行詳細(xì)闡述。

進(jìn)入展示界面點擊添加下拉框,分別錄入符合網(wǎng)站提示要求和不符合網(wǎng)站提示要求的信息,最后點擊保存,完成信息的添加測試。添加信息測試結(jié)果如表5-1所示。

進(jìn)入用戶展示界面點擊待刪除信息右側(cè)刪除按鈕,根據(jù)網(wǎng)站提示,我們需要根據(jù)給出的提示主觀的做出我們自己的選擇進(jìn)行點擊刪除和關(guān)掉的按鈕,然后這樣就完場了該網(wǎng)站的一個刪除用戶信息操作的測試。進(jìn)行上述操作的結(jié)果如表5-2所示。

修改用戶信息測試用例,測試人員登錄管理員賬戶,點擊用戶管理中的用戶展示功能,這樣點擊之后我們會來到一個用戶展示的界面,來到這個界面后會出現(xiàn)一個按鈕,這個按鈕是用戶信息的右側(cè)的一個進(jìn)行修改的標(biāo)識,我們可以根據(jù)系統(tǒng)給出的一系列提示,把符合和不符合網(wǎng)站預(yù)先設(shè)定規(guī)則的一些信息進(jìn)行一個改變的操作,進(jìn)行點擊修改,就會完成對仿微信聊天系統(tǒng)一些信息的修改動作。完成這些操作產(chǎn)生的結(jié)果如下:

查詢用戶信息測試用例,測試人員登錄管理員賬戶,點擊用戶管理中的用戶展示功能,進(jìn)入用戶展示界面點擊查詢下拉框,輸入用戶名稱或者其他多個用戶信息值,單擊查詢選項,就可在數(shù)據(jù)庫之中模糊查詢與之匹配的用戶信息,進(jìn)而完成用戶信息查詢測試。查詢用戶信息測試結(jié)果如表5-4所示。

5.2 測試結(jié)論

通過上述測試,對系統(tǒng)的各個測試用例,進(jìn)行測試,得出仿微信聊天系統(tǒng)已經(jīng)基本上完全沒有功能性錯誤,系統(tǒng)穩(wěn)定,可以維持用戶使用,達(dá)到了上述需求分析要求,可以用于實際使用,圖5-1數(shù)據(jù)流程圖來說明。

圖5-1 數(shù)據(jù)流程圖

基于以上一系列的操作,仿微信聊天系統(tǒng)的要求基本達(dá)到標(biāo)準(zhǔn),該系統(tǒng)具備基本的軟件功能,簡約舒適的用戶界面,并能夠正確處理錯誤,總體上軟件達(dá)到上線標(biāo)準(zhǔn)。

6 總結(jié)

本文主要寫在網(wǎng)站設(shè)計的幾個步驟中。首先,必須簡要介紹網(wǎng)站開發(fā)的背景、意義和開發(fā)方法。然后簡要介紹了開發(fā)環(huán)境和開發(fā)網(wǎng)站所需的幾種技術(shù)。技術(shù)支持對于開發(fā)小型網(wǎng)站至關(guān)重要,因此本章更為重要。在技術(shù)引進(jìn)之后,我們需要進(jìn)行一些必要的分析,主要包括可行性分析、數(shù)據(jù)分析、需求分析和小方案的維護(hù)分析。在制作網(wǎng)站時,合理的分析和計劃是必不可少的,所以我們應(yīng)該列出各種分析的簡單清單。分析之后,是網(wǎng)站的設(shè)計。在他們自己的設(shè)計中,應(yīng)該能夠體現(xiàn)出他們對于網(wǎng)站開始想要提供的一些功能,并且應(yīng)該給出是如何實現(xiàn)這些功能的以及使用這些功能的手段。本文重點介紹了網(wǎng)站的設(shè)計原理、工作原理、功能操作過程和數(shù)據(jù)庫設(shè)計。在第四章中,通過對于本網(wǎng)站用到的數(shù)據(jù)庫進(jìn)行了描述,其次就是對于網(wǎng)站的結(jié)構(gòu),從而可以清晰的給讀這篇論文的人一個清晰的畫面感。第五章的話,重點介紹了關(guān)于網(wǎng)站的一些功能是如何表現(xiàn)出來的,在這個過程中可以讓看這篇論文的人在本章中對網(wǎng)站的實現(xiàn)頁面有一個切身的體會。設(shè)計完成后,對網(wǎng)站進(jìn)行了測試。測試是軟件生產(chǎn)后必不可少的過程,它可以使網(wǎng)站在未來的運(yùn)行中更加穩(wěn)定。


????

時間總是飛逝,眨眼間的答辯結(jié)束意味著我的大學(xué)生涯已經(jīng)畫上了句號。但這只是我人生旅途遠(yuǎn)行的一小段路程。在此,我想首先感謝我的論文指導(dǎo)老師。他為我們論文的選題、大綱、格式等等提出了一系列嚴(yán)謹(jǐn)?shù)囊螅⑦\(yùn)用他專業(yè)的知識和標(biāo)準(zhǔn)來指導(dǎo)我們的論文寫作。在此過程中,從他的精心指導(dǎo)中我收益良多。

我也要感激所有傳授我知識的各位老師。是你們?nèi)找共恍傅男燎趧趧?,讓我能夠充分理解并掌握專業(yè)知識與技能,不斷提高自我素質(zhì)。在這段人生經(jīng)歷中,我也要感謝一路陪伴我的同學(xué)們。感謝你們的陪伴,我們一起度過了這段寶貴而美好的時光,祝福我們的友誼天長地久。

最后,我要感恩自己的父母。感謝他們?yōu)槲业某砷L提供了溫暖的成長環(huán)境,在生活上給予我最大程度的支持與關(guān)愛。對于我的個人發(fā)展和未來,他們總是默默地支持著我,讓我有足夠的勇氣和信心去面對未來。

在此,我對這段美好時光充滿了美好的回憶與感激,希望在未來的生活中,我能夠用自己的力量回報這一切。

?

?

?


參考文獻(xiàn)

【1】?劉威. AES算法在通信信息無損加密傳輸中的應(yīng)用[J]. 信息與電腦(理論版),2022,34(17):80-82.

【2】?李溫晗華,楊凱. 基于AES加密優(yōu)化算法的組合加密方法[J]. 信息與電腦(理論版),2022,34(15):232-234.

【3】?谷天苓. 基于AES算法的電子通信加密認(rèn)證系統(tǒng)設(shè)計[J]. 信息與電腦(理論版),2022,34(15):218-220.

【4】?葉翰文. 基于區(qū)塊鏈的供應(yīng)鏈溯源管理關(guān)鍵技術(shù)研究[D].揚(yáng)州大學(xué),2022.

【5】?周立. 光纖保密通信系統(tǒng)的設(shè)計、實現(xiàn)及性能分析[D].南京郵電大學(xué),2021.

【6】?李一. 汽車CAN總線中的信息安全與通信協(xié)議研究[D].華東師范大學(xué),2022.

【7】?牛鵬偉. 基于AES算法的通信數(shù)據(jù)加密傳輸系統(tǒng)設(shè)計[J]. 長江信息通信,2021,34(11):61-63+66.

【8】?劉曉玥. AES算法的電力通信數(shù)據(jù)加密傳輸方法[J]. 電子世界,2021,(20):176-177.

【9】?魏嘉鑫. 基于LoRa的光伏電站數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實現(xiàn)[D].西安理工大學(xué),2021.

【10】?閆富朝. 基于北斗空時唯一性的空天地安全通信方法與實現(xiàn)[D].哈爾濱工業(yè)大學(xué),2021.

【11】?梁曉雪. 基于AES算法的加密UART IP核設(shè)計與實現(xiàn)[D].西安電子科技大學(xué),2021.

【12】?朱嘉樺. 基于AES算法的CAN總線加密認(rèn)證通信IP核設(shè)計與實現(xiàn)[D].西安電子科技大學(xué),2021.

【13】?邵檢江. AES算法在艦船通信數(shù)據(jù)加密技術(shù)中的應(yīng)用[J]. 艦船科學(xué)技術(shù),2020,42(12):127-129.

【14】?江治國. AES算法在智能家居通信安全系統(tǒng)中的應(yīng)用[J]. 吉首大學(xué)學(xué)報(自然科學(xué)版),2018,39(03):25-30.

【15】?龍輝. 基于ECC-AES混合加密的智能配電網(wǎng)安全通信方案設(shè)計[D].湘潭大學(xué),2021.

【16】?佟銘. 基于FPGA的AES算法在語音加密通信中的實現(xiàn)[D].長春理工大學(xué),2021.

【17】?魏嘉銀,呂虹,秦永彬. 一種基于AES算法的通信信息加密傳輸方案[J]. 計算機(jī)與數(shù)字工程,2021,39(10):121-124.

【18】?張建. AES算法在端到端通信加密模塊中的實現(xiàn)及應(yīng)用設(shè)計[D].北京郵電大學(xué),2021.








【山西警察學(xué)院畢業(yè)論文模板】基于AES算法的仿微信實時通信系統(tǒng)的設(shè)計與實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
彝良县| 文登市| 宜兰县| 深圳市| 朝阳市| 平利县| 谢通门县| 鄂托克旗| 平遥县| 项城市| 凉城县| 吉安市| 象州县| 密云县| 内丘县| 沾益县| 双峰县| 长沙县| 乌鲁木齐县| 阳东县| 佳木斯市| 宁远县| 武义县| 德清县| 乃东县| 赤城县| 青河县| 威远县| 玉屏| 满城县| 江山市| 峨眉山市| 项城市| 四子王旗| 永靖县| 抚顺县| 东乌| 隆子县| 瑞安市| 康保县| 海门市|