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.
-
Activate the environment
source venv/bin/activate
-
Git clone the
pqc_aes_multipath
repo:
https://github.com/abhisekjha/NextGenSecureMessaging.git
cd pqc_aes_multipath
- git clone
Kyber based PYKY
https://github.com/asdfjkl/pyky.git
- 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
- Set the JAVA_HOME to other version()
export JAVA_HOME=`/usr/libexec/java_home -v 11`
export PATH=$JAVA_HOME/bin:$PATH
- Build the dilithium project:
mvn clean install
- 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
- Install requirements.txt
pip install -r requirements.txt
- Run test cases using make
make
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.