Coder Social home page Coder Social logo

sidh-c-reference's Introduction

SIDH C Reference

A reference implementation of the Supersingular Isogeny Key Exchange System in C.

Installation

You can clone this repo using

git clone https://github.com/sidh-crypto/sidh-c-reference.git

or download the zip file. You will also need a recent version of the GNU GMP.

Demo

In a terminal:

cd sidh/
make

and in the test directory you can do

./test_key_exchange 

This will run a key exchange demo for a 46bit prime. There are four sample parameter sets in the test directory called public_params_*. For example, to run the demo for a 521bit prime you can do

./test_key_exchange public_params_521

You can test your own parameter set, provided it is in the same format as the sample sets.

sidh-c-reference's People

Contributors

mancha1 avatar

Stargazers

m0d1 avatar Alexander Kasimir avatar  avatar Adam Ierymenko avatar Vu Quoc Huy avatar Kelby Ludwig avatar Aleksei Udovenko avatar Jack Lloyd avatar Aaron Zauner avatar Deirdre Connolly avatar  avatar Zaki Manian avatar

Watchers

Deirdre Connolly avatar James Cloos avatar Luca De Feo avatar  avatar Jake Doliskani avatar Geovandro Pereira avatar

sidh-c-reference's Issues

fix calculation of j-invariant

Hi.

Thank you for creating and publishing this reference C implementation.

While testing, I noticed discrepancies between the shared keys being generated and known-answers I had previously generated with Sage & MSFT's SIDH library.

I tracked the issue down to a small bug in sidh_elliptic_curve_compute_j_inv().

My pull request corrects formula to:

1728 * 4a3/(4a3 + 27b2)

Cheers!

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.