The project in one paragraph#
The core demonstration shows how two participants establish a shared secret key using Diffie–Hellman in Java. Neither private key is ever transmitted. Both sides derive the same key from public values, then use it to encrypt and decrypt a message.
Project purpose#
This project was designed to:
- Apply modular arithmetic and discrete logarithm concepts in a practical setting.
- Implement Diffie–Hellman key exchange with clear parameter handling.
- Show how a shared secret can support encryption and decryption.
- Reinforce core public-key cryptography principles through reproducible examples.
Learning objectives#
- Apply discrete mathematics concepts used in public-key cryptography.
- Implement Diffie–Hellman key exchange in Java.
- Verify that both participants derive the same shared secret.
- Use the shared secret for encryption and decryption flow validation.
- Document architecture, code behavior, and test evidence in a reproducible format.
Educational scope
This implementation is an instructional proof-of-concept intended to bridge mathematical foundations and software execution.