Giter Site home page Giter Site logo

kste / sphincs Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 4.0 178 KB

Optimized implementations for cryptographic hash functions for the use in hash-based signature schemes.

License: MIT License

Makefile 0.07% C 31.67% C++ 1.09% Assembly 67.13% PHP 0.02% SourcePawn 0.02%

sphincs's Introduction

Putting Wings on SPHINCS

SPHINCS is a recently proposed stateless hash-based signature scheme and promising candidate for a post-quantum secure digital signature scheme. This repository contains optimized implementations of the cryptographic hash functions for both ARM and x86 which are used to instantiate SPHINCS with (for more details see the paper):

  • ChaCha12: The original proposal for SPHINCS.
  • Haraka: An AES-based short-input hash function.
  • Keccak: Using the 800-bit permutation and 12 rounds.
  • SHA256: The SHA256 standard.
  • Simpira: An AES-based permutation.

All implementations utilize the available crypto extensions on the current AMD, ARM and Intel platforms.

The number of cycles to generate one signature are

Primitive Intel Haswell Intel Skylake AMD Ryzen ARM Cortex A57 ARM Cortex A72
ChaCha12 52.249.518 43.495.454 63.427.980 193.512.960 199.582.208
Haraka 33.640.796 20.782.894 15.545.370 47.100.928 45.261.312
Keccak[b=800, r=12] 122.517.136 108.629.952 189.986.970 376.908.288 392.445.952
SHA256 157.270.152 142.063.840 53.332.380 92.088.832 92.767.744
Simpira 33.210.104 28.408.658 20.439.600 63.489.536 62.707.712

The ARM code can be used to cross-compile binaries which run the SPHINCS benchmarks, while the x86 code can be directly used with SUPERCOP.

Note that this code should NOT be used in production and its sole purpose is to evaluate the performance of instantiating SPHINCS with different cryptographic hash functions.

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.