Technical Description & Role

As the **Main Developer**, I was responsible for researching the mathematical theory and implementing the encryption algorithms from scratch, rather than using built-in libraries.

The project was divided into two parts:

  • Desktop Application (Java & JavaFX): Built a UI using JavaFX, allowing the user to:
    • Automatically generate a Public/Private Key pair for RSA.
    • Input plaintext and a Public Key to perform Encryption.
    • Input ciphertext and a Private Key to perform Decryption.
    • Simulate the detailed mathematical steps (like calculating $n$, $\phi(n)$, $e$, $d$).
  • Research Script (Python):
    • Implemented the **RSA** algorithm in Python to cross-validate the results from the Java version.
    • Implemented the **ElGamal** algorithm, a cryptosystem based on the Discrete Logarithm problem, for comparison.

Through this project, I gained a deep understanding of the mathematical foundations of cryptography (Prime Numbers, Modulo Arithmetic, Euler's Theorem) and how to apply them in practical programming.