Bitsliced binary polynomial multipliers for ARM64
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
Makefile
README.md
bit.hpp
cmult32.cpp
cmult33.cpp
cmult64.cpp
cpucycles.cpp
cpucycles.h
dmult16.cpp
dmult32.cpp
dmult33.cpp
dmult4.cpp
dmult64.cpp
dmult8.cpp
karatmult16.cpp
karatmult32.cpp
karatmult64.cpp
karatmult8.cpp
measuremult.cpp
mult.hpp
mult16.py
mult32.py
mult33.py
mult4.py
mult64.py
mult8.py
test.cpp

README.md

AArch64 Binary Polynomial multipliers

This repository contains some highly optimised refined reduced Karatsuba multipliers for binary polynomials. These are generated from Python scripts, optimised for Cortex-A53.

Referencing

See https://thomwiggers.nl/publication/armcluster/

Thom Wiggers. Energy-efficient ARM64 Cluster with Cryptanalytic Applications: 80 cores that do not cost you an ARM and a leg. LATINCRYPT 2017 (to appear).

@inproceedings{Wiggers2017armcluster,
  author = "Thom Wiggers",
  title = "Energy-efficient ARM64 Cluster with Cryptanalytic Applications: 80 cores that do not cost you an ARM and a leg",
  date = "2017",
  editor = "Tanja Lange and Orr Dunkelman",
  booktitle = "Progress in Cryptology - LATINCRYPT~2017: 5th International Conference on Cryptology and Information Security in Latin America",
  eventdate = {2017-10-20/2017-10/22},
  pages = {to appear},
}

Included

  • Python scripts to generate assembly files
  • A test program to validate that they work correctly
  • A benchmarking program to compare speeds
  • Karatsuba implementations in C
  • C Implementations of multiplication from Dan Bernstein's site

Dependencies