a portable and fast pairing-based cryptography library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
MITSUNARI Shigeo 297fdb0dcc tripartie diffie-hellman sample 8 years ago
bin add .emptydir for empty directory 8 years ago
include/mcl comment out unused var 8 years ago
java add include header 8 years ago
lib add .emptydir for empty directory 8 years ago
misc rename fp_llvm to low_func_llvm 8 years ago
obj add .emptydir for empty directory 8 years ago
sample tripartie diffie-hellman sample 8 years ago
src add fp_shr1 by xbyak 8 years ago
test add SNARK curve parameter, but test does not pass 8 years ago
COPYRIGHT from mie 10 years ago
Makefile fix dependency 8 years ago
common.mk add detection of aarch64 8 years ago
common.props change include dir of cybozulib_ext 9 years ago
debug.props change /MD to /MT 9 years ago
mcl.sln add bn_test vc proj 9 years ago
mklib.bat add macro NOMINMAX for vc 8 years ago
readme.md add how to make on ARM64 linux 8 years ago
release.props change /MD to /MT 9 years ago

readme.md

mcl

A class library of finite field and elliptic curve.

Abstract

This is a library to make a protocol for elliptic curve cryptography. This library contains mie and Lifted-ElGamal.

Installation Requirements

Create a working directory (e.g., work) and clone the following repositories.

mkdir work
cd work
git clone git://github.com/herumi/xbyak.git
git clone git://github.com/herumi/cybozulib.git
git clone git://github.com/herumi/cybozulib_ext.git
  • Cybozulib_ext is a prerequisite for running OpenSSL and GMP on VC (Visual C++).
  • Xbyak is a prerequisite for optimizing the operations in the finite field on Intel CPUs.
  • OpenSSL and libgmp-dev are available via apt-get (or other similar commands) if using Linux.

Build and test

To make lib/libmcl.a and test, run

make test

To make sample programs, run

make sample

Build for 32-bit Linux

Build openssl and gmp for 32-bit mode and install

cd mcl
make ARCH=x86 CFLAGS_USER="-I <lib32>/include" LDFLAGS_USER="-L <lib32>/lib -Wl,-rpath,<lib32>/lib"

Build for 64-bit Windows

open mcl.sln and build or if you have msbuild.exe

msbuild /p:Configuration=Release

Build for ARM64 Linux

make MCL_USE_LLVM=1 LLVM_VER=-3.7 CPU=aarch64

Build with LLVM

require clang 3.8 or over.

make MCL_USE_LLVM=1 LLVM_VER=-3.8

License

modified new BSD License http://opensource.org/licenses/BSD-3-Clause

The original source of the followings are https://github.com/aistcrypt/Lifted-ElGamal . These files are licensed by BSD-3-Clause and are used for only tests.

include/mcl/elgamal.hpp
include/mcl/window_method.hpp
test/elgamal_test.cpp
test/window_method_test.cpp
sample/vote.cpp

References

Author

光成滋生 MITSUNARI Shigeo(herumi@nifty.com)