Skip to content

This project demonstrates how to securely encrypt packets of messages using AES-256 encryption. Keys are securely exchanged using Kyber, a post-quantum cryptographic algorithm, and authenticated using Dilithium ensuring protection against both classical and quantum attacks.

License

Notifications You must be signed in to change notification settings

abhisekjha/NextGenSecureMessaging

Repository files navigation

Secure Messaging with Kyber, Dilithium, and AES-256

This project demonstrates how to securely encrypt packets of messages using AES-256 encryption. Keys are securely exchanged using Kyber, a post-quantum cryptographic algorithm, and authenticated using Dilithium ensuring protection against both classical and quantum attacks.

Check Out the Webpage to Learn More

Website

Steps to Run the Test

  1. Activate the environment

    source venv/bin/activate
  2. Git clone the pqc_aes_multipath repo:

https://github.com/abhisekjha/NextGenSecureMessaging.git
cd pqc_aes_multipath
  1. git clone Kyber based PYKY
https://github.com/asdfjkl/pyky.git
  1. Set and verify Pythonpath:
export PYTHONPATH=/path/to/pqc_aes_multipath:/path/to/pqc_aes_multipath/pyky:/path/to/pqc_aes_multipath/dilithium-java
echo $PYTHONPATH
  1. Set the JAVA_HOME to other version()
export JAVA_HOME=`/usr/libexec/java_home -v 11`
export PATH=$JAVA_HOME/bin:$PATH
  1. Build the dilithium project:
mvn clean install
  1. Set Java environment for JDK 8 and build with Gradle:
/usr/libexec/java_home -v 1.8
export BC_JDK8=/Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home
export JAVA_HOME=$BC_JDK8
export PATH=$JAVA_HOME/bin:$PATH

java -version
./gradlew clean
./gradlew build --refresh-dependencies
  1. Install requirements.txt
pip install -r requirements.txt
  1. Run test cases using make
make

Acknowledgements

I would like to thank the pyky repository and dilithium-py for providing the implementation of the Kyber cryptographic algorithm and Dilithium Implementation, which was used in this project.

About

This project demonstrates how to securely encrypt packets of messages using AES-256 encryption. Keys are securely exchanged using Kyber, a post-quantum cryptographic algorithm, and authenticated using Dilithium ensuring protection against both classical and quantum attacks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published