github.com/mad-day/Yawning-crypto@v0.0.0-20190711051033-5a5f8cca32ec/aez/README.md (about) 1 ### aez - AEZ (Duh) 2 #### Yawning Angel (yawning at schwanenlied dot me) 3 4 This is an implementation of [AEZ](http://web.cs.ucdavis.edu/~rogaway/aez/), 5 primarily based on the reference code. It appears to be correct and the 6 output matches [test vectors](https://github.com/nmathewson/aez_test_vectors). 7 8 Features: 9 10 * Constant time, always. 11 * Will use AES-NI if available on AMD64. 12 * Unlike the `aesni` code, supports a vector of AD, nbytes > 16, and tau > 16. 13 14 Benchmarks: 15 16 | Version | Message Size | ns/op | MB/s | 17 | ------------- | :----------: | -------: | ------: | 18 | aesni | 1 | 2430 | 0.41 | 19 | | 32 | 2161 | 14.80 | 20 | | 512 | 2491 | 205.51 | 21 | | 1024 | 2608 | 392.52 | 22 | | 2048 | 2922 | 700.74 | 23 | | 4096 | 3669 | 1116.12 | 24 | | 8192 | 5096 | 1607.43 | 25 | | 16384 | 7892 | 2075.93 | 26 | | 32768 | 13214 | 2479.65 | 27 | | 65536 | 24416 | 2684.11 | 28 | | 1024768 | 381778 | 2684.20 | 29 | | | | | 30 | ct64 (no-asm) | 1 | 7185 | 0.14 | 31 | | 32 | 9081 | 3.52 | 32 | | 512 | 26117 | 19.60 | 33 | | 1024 | 40259 | 25.43 | 34 | | 2048 | 67867 | 30.18 | 35 | | 4096 | 124411 | 32.92 | 36 | | 8192 | 241456 | 33.93 | 37 | | 16394 | 462033 | 35.46 | 38 | | 32768 | 914127 | 35.85 | 39 | | 65536 | 1804397 | 36.32 | 40 | | 1024768 | 27380841 | 37.43 | 41 | | | | | 42 | ct32 (no-asm) | 1 | 6482 | 0.15 | 43 | | 32 | 8673 | 3.69 | 44 | | 512 | 26926 | 19.01 | 45 | | 1024 | 45842 | 22.34 | 46 | | 2048 | 83350 | 24.57 | 47 | | 4096 | 159436 | 25.69 | 48 | | 8192 | 322488 | 25.40 | 49 | | 16394 | 618034 | 26.51 | 50 | | 32768 | 1200462 | 27.30 | 51 | | 65536 | 2366829 | 27.69 | 52 | | 1024768 | 37128937 | 27.60 | 53 54 All numbers taken on an Intel i7-5600U with Turbo Boost disabled, running on 55 linux/amd64. A 16 byte authenticator (tau) and no AD was used for each test. 56 Even on systems without AES-NI certain operations are done using SSE2 57 (eg: XORs), but for the purposes of benchmarking this was disabled for the 58 `ct64`/`ct32` tests.