Code Monkey home page Code Monkey logo

aez's Introduction

aez - AEZ (Duh)

Yawning Angel (yawning at schwanenlied dot me)

This is an implementation of AEZ, primarily based on the reference code. It appears to be correct and the output matches test vectors.

Features:

  • Constant time, always.
  • Will use AES-NI if available on AMD64.
  • Unlike the aesni code, supports a vector of AD, nbytes > 16, and tau > 16.

Benchmarks:

Version Message Size ns/op MB/s
aesni 1 2430 0.41
32 2161 14.80
512 2491 205.51
1024 2608 392.52
2048 2922 700.74
4096 3669 1116.12
8192 5096 1607.43
16384 7892 2075.93
32768 13214 2479.65
65536 24416 2684.11
1024768 381778 2684.20
ct64 (no-asm) 1 7185 0.14
32 9081 3.52
512 26117 19.60
1024 40259 25.43
2048 67867 30.18
4096 124411 32.92
8192 241456 33.93
16394 462033 35.46
32768 914127 35.85
65536 1804397 36.32
1024768 27380841 37.43
ct32 (no-asm) 1 6482 0.15
32 8673 3.69
512 26926 19.01
1024 45842 22.34
2048 83350 24.57
4096 159436 25.69
8192 322488 25.40
16394 618034 26.51
32768 1200462 27.30
65536 2366829 27.69
1024768 37128937 27.60

All numbers taken on an Intel i7-5600U with Turbo Boost disabled, running on linux/amd64. A 16 byte authenticator (tau) and no AD was used for each test. Even on systems without AES-NI certain operations are done using SSE2 (eg: XORs), but for the purposes of benchmarking this was disabled for the ct64/ct32 tests.

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.