Skip to content

🧠 💡 📈 A project based in (Classical) Post-Quantum Cryptography, namely in Lattice-Based Cryptography. This project was built using Jupyter Notebook, SoS (Script of Script) Notebook, Java, Python, Bouncy Castle library, and TeX. The goal of the project was the study and analysis of the CRYSTALS public-key (asymmetric) cryptographic suite.

License

Notifications You must be signed in to change notification settings

rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRYSTALS (CRYptographic SuiTe for Algebraic LatticeS):
 • Kyber and Dilithium (Study and Analysis)

https://raw.githubusercontent.com/rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis/master/imgs/JPGs/banner-1.jpg

CRYSTALS (CRYptographic SuiTe for Algebraic LatticeS) - Banner #1

Current Status

contributor for this repository developed in current version

status of this version no. 1 status of this version no. 2 status of this version no. 3 status of this version no. 4

keyword of this version no. 1 keyword of this version no. 2 keyword of this version no. 3 keyword of this version no. 4

technology used no. 1 technology used no. 2 technology used no. 3 technology used no. 4 technology used no. 5 technology used no. 6

tags license issues price of this project downloads of this repository

stars watchers forks

Description

A 1st year's lab work (project) of the Ph.D. degree of Information Security made in Técnico Lisboa of University of Lisbon), in the subject of Advanced Topics in Information Security. This project was built using Jupyter Notebook, SoS (Script of Script) Notebook, Java, Python, Bouncy Castle library, and TeX. The goal of the project was the study and analysis of the CRYSTALS (CRYptographic SuiTe for Algebraic LatticeS) public-key (asymmetric) cryptographic suite from (Classical) Post-Quantum Cryptography, regarding Lattice-based Cryptography, namely in the form of LWE (Learning With Errors) Cryptography. Most specifically, CRYSTALS (CRYptographic SuiTe for Algebraic LatticeS) encompasses two crypotographic primitives, both based on the computational hardness from the mathematical problem of MLWE (Module-Learning With Errors):

  1. CRYSTALS-Kyber: Lattice-based KEM (Key Encapsulation Mechanism/Method) and Public-Key (Asymmetric) Encryption algorithm, which is secure (and has) IND-CCA2 (INDistinguishability under adaptive Chosen Ciphertext Attack);
  2. CRYSTALS-Dilithium: Lattice-based Digital Signature algorithm, which is strongly secure against CMA (Chosen-Message Attack).

Contents

Code Demonstration written in Jupyter Notebook, using SoS (Script of Script) (Java + Python) and Bouncy Castle (English version):

Report written in TeX (English version):


Screenshots

https://raw.githubusercontent.com/rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis/master/imgs/JPGs/screenshot-1.jpg

CRYSTALS (CRYptographic SuiTe for Algebraic LatticeS) - Screenshot #1

https://raw.githubusercontent.com/rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis/master/imgs/JPGs/screenshot-2.jpg

CRYSTALS (CRYptographic SuiTe for Algebraic LatticeS) - Screenshot #2

Getting Started

Prerequisites

To install and run this application, you will need:

The Git feature and/or a third-party Git Client based GUI, like:

Installation

To install this application, you will only need to download or clone this repository and run the application locally:

You can do it downloading the .zip file in download section of this repository.

Or instead, by cloning this repository by a Git Client based GUI, using HTTPS or SSH, by one of the following link:

https://github.com/rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis.git
[email protected]:rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis.git

Or even, by running one of the following commands in a Git Bash Console:

git clone https://github.com/rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis.git
git clone [email protected]:rubenandrebarreiro/crystals-kyber-and-dilithium-study-and-analysis.git

Built with

Contributors

Rúben André Barreiro

Contacts

Rúben André Barreiro

E-mails

Portfolios/Blogs and Git Hosting/Repository Services

Rúben André Barreiro

GitHub's Portfolio/Personal Blog

Hosting/Repository Services

Classifications/Final Approval Grades

Approval Grade of Lab Work

  • N/A

About

🧠 💡 📈 A project based in (Classical) Post-Quantum Cryptography, namely in Lattice-Based Cryptography. This project was built using Jupyter Notebook, SoS (Script of Script) Notebook, Java, Python, Bouncy Castle library, and TeX. The goal of the project was the study and analysis of the CRYSTALS public-key (asymmetric) cryptographic suite.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages