Tuyển tập Báocáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
1
ỨNG DỤNGLẬPTRÌNHSOCKETVÀHỆMÃHÓACÔNGKHAIRSAĐỂ
XÂY DỰNG CHƯƠNG TRÌNHCHATTRÊNMẠNGLAN
APPLICATION SOCKET PROGRAMMING AND RSA PUBLIC ENCRYPTION
SYSTEM FOR BUILDING CHAT PROGRAMS
SVTH: Huỳnh Quang Hiếu
Lớp 09N, Khoa Công nghệ Thông tin, Trường CĐ Công nghệ Thông tin, Đại học Đà Nẵng
GVHD: Trần Thu Thủy
Khoa Công nghệ Thông tin, Trường CĐ Công nghệ Thông tin, Đại học Đà Nẵng
TÓM TẮT
Hiện nay, các chươngtrìnhChat đã trở thành một chươngtrình phổ biến của một đại bộ
phận người sử dụng Internet. Nó như một phương tiện hiệu quả để kết nối, giúp chia sẻ, trao đổi
thông tin giữa mọi người với nhau. Trong báocáo này, tôi xin trình bày những vấn đề cơ bản liên
quan phương thức kết nối và hoạt động của một chươngtrình Chat. Từ đó, vận dụng lý thuyết về
lập trìnhsocketvà thuật toán mãhóaRSAđể phân tích quá trình hoạt động của một chươngtrình
Chat cơ bản. Trên cơ sở đó, đề ra giải pháp đểxâydựng nên một chươngtrìnhChat đảm bảo các
tính năng cần thiết từ việc ứng dụnglậptrìnhsocketvà thuật toán mãhóa RSA.
Từ khóa: Chat; Internet; kết nối; chia sẻ; lậptrình Socket; thuật toán mãhóaRSA
ABSTRACT
Currently, the Chat programs has become popular programs of Internet users. It’s such an
effective means to connect, to help share and exchange information between people together. In
this report, I would like to present the basics issues related to method of connection and operation
of a Chat program. Since then, apply the theory of socket programming and RSA encryption
algorithms to analyze the operation of a basic Chat program. On that basics, a solution for building
Chat programs to ensure the essential functions from the application socket programming and RSA
encryption algorithm.
Key words: Chat; Internet; connect; share; Socket programing; RSA encryption algorithm
1. Đặt vấn đềTrên thực tế, Chat là một ứng dụngtrênmạng đã được phổ biến rộng rãi. Một số
ứng dụng về Chat phổ biến hiện nay như Yahoo, Skype, Zing Chat… Người ta sử dụng các
chương trìnhChat với mục đích trao đổi thông tin như trò chuyện, làm quen bạn bè, bàn
bạc công việc gián tiếp qua môi trường Internet - một cách đơn giản để kết nối mọi người
lại với nhau. Khi xâydựng một chương trìnhChat cần phải đảm bảo các yêu cầu về kết
nối, dữ liệu trong quá trình truyền đi phải đảm bảo toàn vẹn và an toàn.
Là một ứng dụngmạng nên các chươngtrìnhChat hoạt động dựa trên mô hình
Client – Server hoặc Point to Point và kết nối bằng một trong 2 giao thức TCP hoặc UDP.
Trên cơ sở đó, tôi đã xâydựngchươngtrìnhChat hoạt động theo mô hình Client – Server
và sử dụng giao thức kết nối TCP.
Khi xâydựng một chươngtrìnhChat một vấn đề cũng rất quan tâm đó là vấn đề
bảo mật thông tin truyền đi. Do đó mãhóa thông tin trước khi truyền đi là việc làm hoàn
toàn cần thiết. Ở đây, tôi đã chọn thuật toán RSAđểmãhóa dữ liệu trong quá trình truyền
tin.
Trong phạm vi đề tài này sẽ giới thiệu về phương thức hoạt động, ứng dụnglập
trình Socketđểxâydựng một chươngtrìnhChatvà giới thiệu về thuật toán mãhóaRSA
vào quá trìnhmãhóa dữ liệu trước khi dữ liệu được truyền đi.
2. Một số vấn đề về lậptrìnhSocketvà thuật toán mãhóaRSA
Tuyển tập Báocáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
2
2.1. Lậptrìnhsocket
Trong lậptrìnhmạngdùng Socket, chúng ta không trực tiếp truy cập vào các thiết
bị mạngđể gởi và nhận dữ liệu. Thay vào đó, một chươngtrình trung gian được tạo ra để
điều khiển việc gởi và nhận dữ liệu. Các chươngtrình mô tả dùngđể tham chiếu đến các
kết nối mạng được gọi là các Socket. Socker định nghĩa những đặt trưng sau.
Một kết nối mạng hay một đường ống dẩn để truyền tải dữ liệu
Một kiểu truyền thông như stream hay datagram
Một giao thức như TCP hay UDP.
Sau khi một Socket được tạo ra nó phải được gán vào một địa chỉ mạngvà một port
trên hệ thống cục bộ hay ở xa. Khi đó nó có thể được dùngđể gởi hay nhận dữ liệu trong
mạng
2.2. Thuật toán mãhóaRSA
Phương pháp sử dụng thuật toán mãhóacôngkhaiRSA (được đặt tên từ ba nhà
phát minh là Ron Rivest, Adi Shamir và Leonard Adleman), được sử dụng nhiều nhất,
thuật toán sử dụng biểu thức với hàm mũ đểmãhóa bản gốc thành các khối, mỗi khối có
một giá trị nhị phân nhỏ hơn n.
Giả sử khối bản gốc của người gửi là M và khối bản mã của người nhận là C, quá
trình mãhóavà giải mãRSA là: C = M
e
mod n và M = C
d
mod n
Cả người gửi và người nhận phải biết giá trị n. Người gửi biết giá trị e và chỉ người
nhận biết giá trị d. Đây là một thuật toán mãhóa khóa côngkhai với khóa côngkhai KU =
{e,n} và khóa riêng KR = {d,n}
Hình 1. Sơ đồ lậptrìnhsocket hướng kết nối
Tuyển tập Báocáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
3
3. Xâydựngchươngtrình
3.1. Xâydựng Server
Server đảm nhận vai trò tạo ra các kết nối trung gian giữa các client, quản lý các
Users kết nối đến, chuyển tiếp thông tin giữa các Users và đảm bảo rằng tất cả thông tin,
trạng thái của các Users phải được cập nhật đến các Users còn lại.
Tại Server các dữ liệu nhận được ở dưới dạng các request. Khi nhận được các
request Server sẽ phân tích để biết được đó là dạng request nào để đưa ra xử lý cần thiết.
Những request Server có thể nhận được là: CONNECT, CHAT, DISCONNECT,
REQUESTUSERS, BUZZ.
3.2. Xâydựng Client
Client là nơi người sử dụngđể trò chuyện, trao đổi thông tin với nhau. Dữ liệu
trước khi được truyền đi trên Client sẽ được mãhóađể đảm bảo tính mật và Client sẽ được
giải mã khi nhận được dữ liệu truyền đến. Với mỗi thao tác trên Client sẽ tương ứng với
Hình 2. Sơ đồ biểu diễn thuật toán RSA
Hình 3. Giao diện Server
Tuyển tập Báocáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
4
mỗi request được gởi đến Server, nhằm đảm bảo sự thống nhất và quản lý thông tin truyền
đi chính xác.
Những thao tác trên Client sẽ được Server nhận và xử lý và gởi lại tương ứng
những request. Khi nhận được các request từ Server, Client sẽ đưa ra xử lý tương ứng với
mỗi request đó. Tại Client có thể nhận được những request sau: JOIN, CHAT, LISTUSERS,
BROAD, DELETEUSER, BUZZ.
3.3. Đánh giá kết quả
Xâydựng mô phỏng thành công một chươngtrìnhChat với tính năng có thể trao
đổi tin nhắn giữa các Clients.
Tạo ra nhiều kết nối trong mạng Lan, nên có thể cùng lúc trò chuyện với nhiều
người.
Thao tác trên giao diện dể dàng, linh hoạt, đơn giản nên bất kì ai cũng có thể sử
dụng được.
Có thể mãhóa tin nhắn trước khi gởi đi nên đảm bảo được tính riêng tư trong các
cuộc trò chuyện.
Tuy nhiên chươngtrình còn nhiều hạn chế. Do dùng thuật toán mãhóaRSA nên
tốc độ truyền dữ liệu còn chậm, các ký tự đều chuyển về mã ASCII đểmãhóa nên không
hổ trợ chat bằng tiếng Việt, tại Client chưa quản lý được danh sách bạn bè. Chươngtrình
còn đơn giản chưa có nhiều chức năng của các chươngtrìnhChat hiện nay.
4. Kết luận
Với kết quả thu được trong quá trình thử nghiệm ta thấy chươngtrình hoạt động
khá ổn định, đã mô phỏng một cách tổng quát, cơ bản nhất hoạt động một chươngtrình
Chat từ kết nối, nhận - truyền dữ liệu và đảm bảo tính bảo mật dữ liệu truyền đi bằng mã
hóa.
Hình 4. Giao diện Client
Tuyển tập Báocáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
5
TÀI LIỆU THAM KHẢO
[1] Richard Blum (2003), C# Network Programming, SYBEX Inc.
[2] Fiach Reid (2004), Network Programming in.NET With C# and Visual Basic.Net,
Elsevier Inc.
[3] Nguyễn Ngọc Bình Phương, Thái Thanh Phong (2005), Các giải pháp lậptrình C#,
Nhà sách Đất Việt.
[4] Mai Lam (2010), Giáo trìnhlậptrình ứng dụng mạng, Trường CĐ Công nghệ thông
tin Đà Nẵng.
THÔNG TIN TÁC GIẢ
Họ và tên : Huỳnh Quang Hiếu
Địa chỉ : Tiên Thọ - Tiên Phước – Quảng Nam
Số điện thoại : 0906090598
Email : quanghieunt90@gmail.com
. tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
1
ỨNG DỤNG LẬP TRÌNH SOCKET VÀ HỆ MÃ HÓA CÔNG KHAI RSA ĐỂ
XÂY DỰNG.
lập trình socket và thuật toán mã hóa RSA để phân tích quá trình hoạt động của một chương trình
Chat cơ bản. Trên cơ sở đó, đề ra giải pháp để xây dựng