BÁO CÁO "ỨNG DỤNG LẬP TRÌNH SOCKET VÀ HỆ MÃ HÓA CÔNG KHAI RSA ĐỂ XÂY DỰNG CHƯƠNG TRÌNH CHAT TRÊN MẠNG LAN "
lượt xem 60
download
Tuyển 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 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ương trình Chat đã trở thành một chương trì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ả...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: BÁO CÁO "ỨNG DỤNG LẬP TRÌNH SOCKET VÀ HỆ MÃ HÓA CÔNG KHAI RSA ĐỂ XÂY DỰNG CHƯƠNG TRÌNH CHAT TRÊN MẠNG LAN "
- Tuyển 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 ỨNG DỤNG LẬP TRÌNH SOCKET VÀ HỆ MÃ HÓA CÔNG KHAI RSA ĐỂ XÂY DỰNG CHƯƠNG TRÌNH CHAT TRÊN MẠNG LAN 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ương trình Chat đã trở thành một chương trì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áo cá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ương trình Chat. Từ đó, vận dụng lý thuyế t về 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 nên một chương trình Chat đảm bảo các tính năng cần thiết từ việc ứng dụng lập trình socket và thuậ t toán mã hóa RSA. Từ khóa: Chat; Internet; kết nối; chia sẻ; lập trình Socket; thuật toán mã hóa RSA 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ụng trên mạ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ình Chat 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ây dựng một chương trình Chat 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ụng mạng nên các chương trình Chat 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ây dựng chương trình Chat hoạt động theo mô hình Client – Server và sử dụng giao thức kết nối TCP. Khi xây dựng một chương trình Chat 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ụng lập trình Socket để xây dựng một chương trình Chat và giới thiệu về thuật toán mã hóa RSA vào quá trình mã hóa dữ liệu trước khi dữ liệu được truyền đi. 2. Một số vấn đề về lập trình Socket và thuật toán mã hóa RSA 1
- Tuyển 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 2.1. Lập trình socket Trong lập trình mạng dù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ương trình trung gian được tạo ra để điều khiển việc gởi và nhận dữ liệu. Các chương trì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ạng và 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 Hình 1. Sơ đồ lập trình socket hướng kết nối 2.2. Thuật toán mã hóa RSA Phương pháp sử dụng thuật toán mã hóa công khai RSA (đượ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óa và giải mã RSA là: C = Me mod n và M = Cd 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ông khai với khóa công khai KU = {e,n} và khóa riêng KR = {d,n} 2
- Tuyển 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 3. Xây dựng chương trình Hình 2. Sơ đồ biểu diễn thuật toán RSA 3.1. Xây dự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. Hình 3. Giao diện Server 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ây dự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 3
- Tuyển 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 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. Hình 4. Giao diện Client 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ây dựng mô phỏng thành công một chương trình Chat 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ương trình còn nhiều hạn chế. Do dùng thuật toán mã hóa RSA 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ương trình còn đơn giản chưa có nhiều chức năng của các chương trình Chat 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ương trì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ương trì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. 4
- Tuyển 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 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. Nguyễn Ngọc Bình Phương, Thái Thanh Phong (2005), Các giải pháp lập trình C#, [3] Nhà sách Đất Việt. Mai Lam (2010), Giáo trình lập trình ứng dụng mạng, Trường CĐ Công nghệ thông [4] 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 5
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đồ án tốt nghiệp "Điều khiển lập trình bằng PLC"
105 p | 968 | 515
-
Báo cáo tốt nghiệp: Lập trình giao tiếp máy tính qua cổng RS232
78 p | 375 | 114
-
Báo cáo tốt nghiệp: Lập trình C cho họ vi điều khiển 8051
66 p | 353 | 112
-
Báo cáo thực hành lập trình hệ thống: Ngôi nhà thông minh
22 p | 492 | 82
-
Luận văn tốt nghiệp: Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet
169 p | 302 | 78
-
Báo cáo nghiên cứu khoa học: " LỰA CHỌN THIẾT BỊ BÙ CÔNG SUẤT PHẢN KHÁNG TỐI ƯU CHO LƯỚI ĐIỆN 500KV VIỆT NAM"
9 p | 246 | 73
-
Báo cáo môn học: Xây dựng ứng dụng game Fun Math trên android
35 p | 687 | 66
-
Báo cáo khoa học: "LậP TRìNH NHúNG VớI VI Xử Lý AVR"
5 p | 142 | 46
-
Báo cáo: Xây dựng chương trình quản lý thư viện trường đại học Sao Đỏ
56 p | 181 | 41
-
Báo cáo " Tìm hiểu công nghệ WCF( Windows Communication Foundation) và ứng dụng quản lý công ty DKT Nguyễn Xuân Kỳ "
3 p | 212 | 33
-
Báo cáo chuyên đề: Lập trình hỗ trợ học và kiểm tra kiến thức Luật Giao thông đường bộ trên Android
29 p | 138 | 29
-
Báo cáo nghiên cứu khoa học: " MỘT PHƯƠNG PHÁP THIẾT LẬP ĐƯỜNG CHẠY DAO GIA CÔNG CHO MÁY PHAY VẠN NĂNG CNC BA TRỤC - ỨNG DỤNG VÀO LẬP TRÌNH GIA CÔNG BỀ MẶT RĂNG THÂN KHAI CỦA BÁNH RĂNG NÓN RĂNG THẲNG"
7 p | 148 | 29
-
Đồ án tốt nghiệp: " Tiếp cận và xây dựng ứng dụng J2EE với Rational Rose và UML "
72 p | 146 | 25
-
Báo cáo khoa học: "ỨNG DỤNG KỸ THUẬT KIỂM THỬ ĐỘT BIẾN ĐỂ KIỂM THỬ CÁC CHƯƠNG TRÌNH C-SHARP"
8 p | 187 | 24
-
Báo cáo nghiên cứu khoa học: "TẦN SỐ DAO ĐỘNG RIÊNG CỦA KHUNG THÉP CÓ NÚT NỬA CỨNG"
6 p | 126 | 17
-
Báo cáo: Ứng dụng công nghệ thông tin để tính toán dự báo lượng phân bón cần thiết hàng năm cho một số loại cây trồng chính ở Đồng Nai
5 p | 113 | 9
-
Báo cáo nghiên cứu khoa học: "THIẾT LẬP MÔ HÌNH HỘI NHẬP CÔNG NGHỆ MỚI TẠI CÁC DOANH NGHIỆP VIỆT NAM (NGHIÊN CỨU ỨNG DỤNG ĐỐI VỚI LĨNH VỰC HỘI NHẬP INTERNET)"
7 p | 51 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn