LINUX环境下的密文聊天系统的设计与实现
摘 要
随着计算机的不断普及和互联网技术在全球领域的高速发展。越来越多的人使用到了聊天程序。聊天程序给人们带来通信便利的同时也存在着一些安全隐患,传统的聊天程序以明文方式传送聊天内容,这样就给一些用心不良的人大开方便之门。本系统正是基于以上原因而设计的加密聊天程序。聊天程序采用服务器/客户端模式。在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
目 录
论文总页数:30页
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 1
2 所采用技术的先进性分析 1http://www.16sheji8.cn/
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
结 论 25http://www.16sheji8.cn/
参考文献 25
致 谢 26
声 明 27
附 录 28
1 引言
1.1 课题背景
自从TCP/IP协议族成为计算机通信的主要网络协议,基于该协议族开发的网络应用程序数不胜数。聊天程序便是其中之一。聊天程序使人们可以通过互联网及时传送消息,让远在千里之外的人们畅所欲言。传统的聊天程序在给人们带来方便的同时也逐渐暴露出一些安全隐患。前不久网上登出了这样一则新闻:上海某银行的白领丽人,因为聊天程序受监控被同事知道了个人隐私,被迫辞去了月薪三万余元的工作。于是聊天程序的安全性受到了人们的广泛关注。
1.2 国内外研究现状
从国内外对聊天程序的加密情况看,大多数处理方式是在现有的聊天程序基础之上添加相应的加密插件来实现加密。比较典型的例子是Linux平台下的多集成聊天程序Gaim,其中集成了ICQ、MSN、QQ等现今主流国内外聊天程序。普遍的聊天程序没有经过加密而直接传输聊天明文。Gaim通过添加插件程序对未加密的聊天程序进行加密传输,通信双方需要只要同时安装加密插件就可以顺利的对聊天内容进行加密解密。这其中存在一个现而易见的问题:要是一方加入了加密插件而另一方却没有相应的解密程序显然双方不能正确通信。