Git Product home page Git Product logo

miracle-core-fzz's Introduction

The MIRACL Core Cryptographic Library

Build Status

The original contribution to the Apache Milagro Cryptographic Library (AMCL) has now been extended and is being re-released as MIRACL Core.

MIRACL Core is a multi-lingual and architecturally agnostic cryptographic library that supports elliptic curve cryptography, pairing-friendly curve cryptography, RSA, AES symmetric encryption and hash functions. It is designed from the ground up with side-channel attack resistance in mind. Multiple curves can be supported in a single application..

All code is entirely in the supported high-level languages. No assembly language and no third party code is required - these libraries are completely self-contained. MIRACL Core is currently available in the C, C++, Go, Rust, Python, Java, Javascript and Swift programming languages. Via code translators it can be easily translated to other languages (like WebAssembly and C#). It is particularly suitable for smaller devices such as those supported by Arduino infrastructure.

MIRACL Core features several extensions over the stock Milagro Cryptographic Library.

  • Easy to use and flexible Threshold Secret Sharing module added (see share.c, share.cpp, SHARE.java etc.)

  • Example program to track test vectors from https://datatracker.ietf.org/doc/draft-irtf-cfrg-hash-to-curve/

  • Curves SM2, BN462, BLS48581, C13318, JUBJUB, X448, SECP160R1, C1174, BLS48286, TWEEDLEDUM, TWEEDLEDEE

  • Support for precomputation for pairings (see BLS API)

  • Performance and security improvements

  • New HMAC message authentication module (KDFs, HMAC, HKDF_Extract/Expand, XOF_Expand, XMD_Expand)

  • Improved side-channel resistance

  • Deterministic hashing to curve points map2point (Elligator, SVDW, SSWU)

  • Point compression in G2

  • Demonstrated support for low-powered IoT processor nodes (ARM Cortex-M0/M4, MIPS32, RISC-V, ESP32)

  • Emerging-standards-compliant implementation of BLS signature

  • Emerging-standards-compliant implementation of HPKE (Hybrid Public Key Encryption)

  • Emerging-standards-compliant implementation of deterministic Hash-To-Curve

Doxygen generated documentation for the C version of the library can be created by simply executing doxygen inside of the C directory. The C++ code is probably the best commented.

Install Python 3 and suitable compilers for each language of interest to you. Python 3 scripts are used to build the libraries from the command line for each of the supported languages. If using windows, set a command alias via

DOSKEY python3 = py $*

For a quick start, try out the Python version of the library, and run our sample programs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.