摘 要
随着计算机的不断普及和互联网技术在全球领域的高速发展。越来越多的人使用到了聊天程序。聊天程序给人们带来通信便利的同时也存在着一些安全隐患,传统的聊天程序以明文方式传送聊天内容,这样就给一些用心不良的人大开方便之门。本系统正是基于以上原因而设计的加密聊天程序。聊天程序采用服务器/客户端模式。在LINUX环境下采用socket套接口编程,服务器程序以创建线程池的方式为每一个客户服务。聊天内容由服务器转发。在聊天程序中加入了对称加密算法DES和非对称加密算法RSA。其基本实现是由服务器端生成RSA的公钥和私钥,由客户端生成DES对称密钥,服务器端传送公钥至客户端加密DES密钥之后回传服务器,服务器再用本地的私钥解密获得DES密钥。此后双方的通信由DES密钥加密后传送,这样既能高效的加密明文又能在信道上安全的传送密钥使得密钥间的共享成为现实。(毕业设计网 )
关键词:对称加密算法;非对称加密算法;会话密钥;聊天系统
The Design and implementation of encrypted chat system based on LINUX
Abstract
Along with Computer becoming more and more popular and Internet technology developing rapidly, a lot of People began to use the IM(chat program). Chat program brings people more convenience, but at the same time, security problem existed. The traditional chat program sends the message by plain text, which open the door for the bad man. This encrypted chat system is right based on the point. The system is in C/S architecture using socket based on LINUX. The server program serves each client in the way of establishing thread and is responsible to transfer message. The DES algorithm and RSA algorithm are used to encrypt in this program. The basic principle is that the server generates RSA public key and private key and client generates DES symmetrical secret key. Firstly, the server sends the public key to client, and then client sends it back after encrypting DES secret key. Secondly, the Server uses local private key to decode to obtain the DES private key. After then, the message is sent after encrypted by DES secret key. So the plain text can be encrypted effectively and sent in channel in security.
Key words: symmetry encrypting program; unsymmetrical encrypting program; conversation key; chat system
系统需求分析
聊天程序功能分析
1 注册功能
通常聊天程序需要用户名和密码才能使用,所以需要实现web注册功能,这样用户可以很方便的通过web网站注册自己的用户名并取得密码,还可以在服务器上存储个人相关信息以便他人查看。
2 登陆功能
用户在聊天之前需要输入用户名和密码进行登陆以便获取自身相关信息和好友相关信息,故登陆过程中服务器需对用户名和密码进行必要的核对。
3 聊天功能
这是聊天程序的主要功能。用户之间的相互通信必须及时快速的由服务器转发。(毕业设计网 )
加密算法
由于是加密聊天程序,故对聊天明文的加密算法应选取加密速度相对较快的对称加密算法(如:DES),又由于DES的加密密钥是不能公开的秘密密钥,故对DES的密钥应加密传送,所以应采用非对称的公钥加密算法(如RSA)用以分发DES密钥。
DES加密算法:
作为对称加密算法中的DES加密算法由于其加密过程是固定不变的,故应考虑其密钥的生成。由于弱密钥存在的可能性,还应该考虑如何避免生成弱密钥。因为差分分析法的提出可以快速的破解少于16轮迭代的DES算法,故应保证其迭代次数至少为16轮。
RSA加密算法:
由于RSA是基于大素数因子分解这一数学难题提出的,故RSA中公钥和私钥的产生应重点考虑。又由于RSA的运算强度较大,故还应考虑如何加速其运算速度。
目 录
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 1
2 所采用技术的先进性分析 1
2.1 DES算法 1
2.2 RSA算法 2
2.3 线程池 2
3 系统需求分析 3
3.1 聊天程序功能分析 3
3.2 加密算法 3
4 系统总体设计和模块划分 3
4.1 系统总体设计 3
4.2 模块划分 4
4.2.1 DES算法模块 4
4.2.2 RSA算法模块 6
4.2.3 聊天程序模块 7
5 系统实现 9
5.1 DES核心代码 9
5.2 RSA核心代码 12
5.3 WEB注册页面核心代码 15
(毕业设计网 )
5.4 服务器端核心代码 18
5.5 客户端核心代码 21
结 论 25
参考文献 25
致 谢 26
声 明 27
附 录 28
·站内提供的所有资源均是由网上搜集或网友上传,任何涉及商业盈利目的均不得使用,仅能作为学习研究目的使用,否则产生的一切后果将由您自己承担!请您于24小时内自觉将其删除并向著者购买使用许可证。 ·站内提供的所有资源均是由网上搜集,若侵犯了您的权益,敬请来信通知我们! |