Đề tài: Ứng dụng bảo mật tin nhắn văn bản với mã hoá DES và xác thực RSA Mô tả Một hệ thống bảo mật cho ứng dụng nhắn tin văn bản, nơi nội dung tin nhắn được mã hóa bằng DES để đảm bảo bí mật, trong khi danh tính người gửi và người nhận được xác thực bằng RSA. Hệ thống sử dụng hàm băm SHA-256 để kiểm tra tính toàn vẹn của thông điệp, giúp ngăn chặn việc giả mạo hoặc thay đổi dữ liệu trong quá trình truyền tải. Yêu cầu • Mã hóa: DES (CFB mode) • Trao khóa & ký số: RSA 2048-bit (OAEP + SHA-256) • Kiểm tra tính toàn vẹn: SHA-256 Luồng xử lý
-
Handshake • Người gửi gửi "Hello!" • Người nhận trả lời "Ready!" • Hai bên trao đổi khóa công khai RSA qua kết nối P2P
-
Xác thực & Trao khóa • Người gửi ký ID bằng RSA/SHA-256 • Người gửi tạo khóa DES và mã hóa nó bằng RSA công khai của người nhận • Gửi: { "signed_info": "", "encrypted_des_key": "" }
-
Mã hóa & Kiểm tra toàn vẹn • Tin nhắn văn bản được mã hóa bằng DES • Tạo hash: SHA-256(ciphertext)
-
Phía Người nhận • Giải mã khóa DES bằng RSA • Kiểm tra tính toàn vẹn của ciphertext bằng SHA-256 • Xác thực chữ ký RSA • Nếu hợp lệ: – Giải mã nội dung tin nhắn bằng DES – Hiển thị tin nhắn văn bản – Gửi ACK xác nhận • Nếu không hợp lệ: – Gửi NACK với lý do: lỗi hash hoặc chữ ký
-
Luồng sự kiện tổng thể của hệ thống
Sơ đồ luồng sự kiện đăng ký
Sơ đồ luồng sự kiện đăng nhập
Sơ đồ luồng sự kiện trao đổi khóa (Handshake)
Sơ đồ luồng sự kiện gửi tin nhắn
Sơ đồ luồng sự kiện nhận tin nhắn
Giao diện đăng ký
Giao diện đăng nhập
Giao diện chat
- Mô phỏng truyền dữ liệu
Khi người dùng đăng nhập thành công hệ thống sẽ lấy thông tin của người dùng trong database.
- Người dùng A bấm vào người dùng B để nhắn tin hệ thống sẽ tạo mã DES key và gửi sang bên còn lại khi bên B nhấn vào bên A thì sẽ nhận được khóa DES key đã được mã hóa và public key của A đồng thời bên A cũng nhận đc public key của B.
- Khi 1 bên gửi tin nhắn hệ thống sẽ mã hóa và gửi đến bên còn lại.











