Skip to content

etsangsplk/amcl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Apache Milagro Cryptographic Library

Note that the AMCL currently comes in two versions, version 2.2 
and version 3.1

AMCL v2.2 is presented in what might be called a pre-library state.

In the various supported languages the source code is made available,
but it is not organised into rigid packages/crates/jars/whatever
It is expected that the consumer will themselves take this final step,
depending on the exact requirements of their project.

Note that version 2.2 is no longer supported.

AMCL v3.1 uses a standard Python 3 script to build libraries in all
supported languages. New users should use this version.

The main improvement is that AMCL v3 can optionally simultaneously support 
multiple elliptic curves and RSA key sizes within a single appliction.

Note that AMCL is largely configure at compile time. In version 3 this
configuration is handled by the Python script.

AMCL is available in 32-bit and 64-bit versions in most languages. Limited 
support for 16-bit processors is provided by the C version.

Now languages like to remain "standard" irrespective of the underlying 
hardware. However when it comes to optimal performance, it is impossible 
to remain architecture-agnostic. If a processor supports 64-bit 
instructions that operate on 64-bit registers, it will be a waste not to
use them. Therefore the 64-bit language versions should always be used
on 64-bit processors.

Version 3.1 is a major "under the hood" upgrade. Field arithmetic is 
performed using ideas from http://eprint.iacr.org/2017/437 to ensure 
that critical calculations are performed in constant time. This strongly 
mitigates against side-channel attacks. Exception-free formulae are 
now used for Weierstrass elliptic curves. A new standardised script 
builds for the same set of curves across all languages.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 18.9%
  • C++ 17.0%
  • Java 13.4%
  • Swift 12.4%
  • Rust 11.9%
  • Go 11.6%
  • Other 14.8%