CLAASP – an acronym for a Cryptographic Library for the Automated Analysis of Symmetric Primitives – is the first of its kind, designed to be modular, extendable, easy to use, generic, efficient and fully automated. Built upon the computer algebraic system SageMath and the powerful Python3 programming language, CLAASP took over four years to develop. It is an extensive toolbox gathering state-of-the-art cryptanalytic techniques aimed at simplifying the manual tasks of symmetric encryption algorithm designers and analysts.


The world’s first open-source software library entirely dedicated to estimating the security of Post-Quantum Cryptography (PQC) schemes, including key exchange methods, public key encryption and signatures.

 The project aims at setting the necessary basis to establish the CryptographicEstimators library as world-wide collaborative project. The library fosters consensus, collaboration, high-quality software design, and accessibility, including a user-friendly web application.


A novel generic Secure Multiparty Computation (MPC) Framework capable of offering active security for privacy-preserving Machine Learning (PPML) as a Service (PPMLaaS) operations. Based on the now deprecated SCALE-MAMBA, we propose FANNG-MPC (Framework for Artificial Neural Networks and General MPC) a new data-oriented fork and a novel set of libraries and instructions capable of carrying out several ML related tasks. FANNG offers: i) a novel database support; ii) new instructions for Garbling and storing Gabled Circuits offline; iii) support for convolutional and matrix triples; iv) and a whole new set of ML functionalities. Our aim is to facilitate integration with TAAS services, allowing users to decouple, as much as possible, the offline phase from the online phase. In terms of performance FANNG achieves similar performance as other tailored protocols but provides the flexibility and dynamism of a general purpose MPC framework.

FHE Parameter Estimator

The security of most of the FHE schemes is based on the presumed intractability of distinguishing equations perturbed by small noise from random tuples. The problem arising from this construction is the noise growth, it increases as long as operations are carried on, hence limiting the number of homomorphic operations. To increase the number of supported operations, we can fine-tune the FHE scheme parameters. However, parameter selection poses a trade-off between security (small ciphertext modulus) and error margin (large ciphertext modulus), which illustrates the difficulty of finding an optimal set of parameters for a specific FHE scheme. Choosing parameters requires expert knowledge specific to each FHE scheme. We provide an automated tool that eases the parameter generation process across all steps for BGV and BFV schemes. Our parameter generator is intended for researchers and practitioners interested in using BGV/BFV for secure computation and does not require a high level of understanding of the underlying construction of FHE schemes.

TLS 1.3 TIIger

TLS, or Transport Layer Security, is a cryptographic protocol that uses encryption to deliver on its security guarantees. 

TiigerTLS is a standards-compliant implementation of (the latest) version 1.3 of the TLS protocol. It is written in Rust (server and client) and C++ (client only). 

The architecture has been structured to keep the cryptography, trust management and protocol state machine separate. This is to accommodate flexibility in the face of an imminent movement to post-quantum cryptography, alternate approaches to trust management other than the standard PKI model, and changes to the state machine that might arise in future developments of the TLS standard.

Generate KAT Core

A library allowing to use underlying cryptographic libraries to generate Known-Answer Test (KAT) test vectors. These test vectors will be used to verify that two primitives are equivalent in behavior.

 These test vectors ensure that the different implementations are all equivalent and comply with the standard. This library helps with defining a standard exchange language for the test vectors.

The library can be found here


Supersingular Isogeny-Based Cryptographic Construction (SIBC) Python library

SIBC is a joint work with Gora Adj, Jorge Chávez-Saab and Jesús Chi-Domínguez and Francisco Rodríguez-Henríquez. 

SIBC is a Python library that offers a user-friendly interface permitting the calculation of several isogeny-based cryptographic primitives and protocols. The current version of the SIBC library supports the isogeny-based key exchange CSIDH protocol using traditional and Velusqrt isogeny formulas and Montgomery curve x-only projective coordinates. Additionally, the cryptographic primitives are implemented in constant-time concerning the number of field operations, where a constant-time procedure refers to its running time does not depend on the input.

TLS Attacker Framework

A large framework to automatically test TLS implementations for various security vulnerabilities and RFC compliance. TLS is by far the most popular and well-studied cryptographic protocol. This framework is a suite of tools that combines various techniques, such as fuzzing, combinatorial testing, and statistical analysis for testing and assessing the quality and security of a TLS implementation. In addition, in its test, it embodies a large body of knowledge from numerous research papers, known attacks, and common developer pitfalls.