Mô tả Kỹ thuật & Vai trò

Với vai trò **Lập trình viên chính**, tôi chịu trách nhiệm nghiên cứu lý thuyết toán học và triển khai (implement) các giải thuật mã hóa từ đầu (from scratch) thay vì dùng thư viện có sẵn.

Dự án được chia làm hai phần:

  • Ứng dụng Desktop (Java & JavaFX): Xây dựng giao diện người dùng bằng JavaFX, cho phép người dùng:
    • Tự động tạo cặp Khóa Công khai (Public Key) và Khóa Bí mật (Private Key) cho RSA.
    • Nhập văn bản (plaintext) và Khóa Công khai để thực hiện Mã hóa (Encryption).
    • Nhập bản mã (ciphertext) và Khóa Bí mật để thực hiện Giải mã (Decryption).
    • Mô phỏng chi tiết các bước toán học bên trong (như tính $n$, $\phi(n)$, $e$, $d$).
  • Script Nghiên cứu (Python):
    • Triển khai giải thuật **RSA** bằng Python để kiểm chứng chéo kết quả với bản Java.
    • Triển khai giải thuật **ElGamal**, một hệ mã hóa dựa trên bài toán Logarit rời rạc, để so sánh và đối chiếu.

Qua dự án này, em đã hiểu sâu sắc về nền tảng toán học của mật mã học (Số nguyên tố, Đồng dư, Định lý Euler) và cách áp dụng chúng vào lập trình thực tế.