# Botan

# Reading List

These are papers, articles and books that are interesting or useful from the perspective of crypto implementation.

## Papers

### Implementation Techniques

- “Randomizing the Montgomery Powering Ladder” Le, Tan, Tunstall https://eprint.iacr.org/2015/657 A variant of Algorithm 7 is used for GF(p) point multiplications when BOTAN_POINTGFP_BLINDED_MULTIPLY_USE_MONTGOMERY_LADDER is set

- “Accelerating AES with vector permute instructions” Mike Hamburg https://shiftleft.org/papers/vector_aes/ His public domain assembly code was rewritten into SSS3 intrinsics for aes_ssse3.

- “Elliptic curves and their implementation” Langley http://www.imperialviolet.org/2010/12/04/ecc.html Describes sparse representations for ECC math

### Random Number Generation

- “On Extract-then-Expand Key Derivation Functions and an HMAC-based KDF” Hugo Krawczyk http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.8254 RNG design underlying HMAC_RNG

### AES Side Channels

- “Software mitigations to hedge AES against cache-based software side channel vulnerabilities” https://eprint.iacr.org/2006/052.pdf

- “Cache Games - Bringing Access-Based Cache Attacks on AES to Practice” http://www.ieee-security.org/TC/SP2011/PAPERS/2011/paper031.pdf

- “Cache-Collision Timing Attacks Against AES” Bonneau, Mironov http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.88.4753

### Public Key Side Channels

- “Fast Elliptic Curve Multiplications Resistant against Side Channel Attacks” http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.98.1028&rep=rep1&type=pdf

- “Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems” Coron http://www.jscoron.fr/publications/dpaecc.pdf

- “Further Results and Considerations on Side Channel Attacks on RSA” Klima, Rosa https://eprint.iacr.org/2002/071 Side channel attacks on RSA-KEM and MGF1-SHA1

- “Side-Channel Attacks on the McEliece and Niederreiter Public-Key Cryptosystems” Avanzi, Hoerder, Page, and Tunstall https://eprint.iacr.org/2010/479

- “Minimum Requirements for Evaluating Side-Channel Attack Resistance of Elliptic Curve Implementations” BSI https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretationen/AIS_46_ECCGuide_e_pdf.pdf

## Books

- “Handbook of Elliptic and Hyperelliptic Curve Cryptography” Cohen and Frey https://www.hyperelliptic.org/HEHCC/ An excellent reference for ECC math, algorithms, and side channels

- “Post-Quantum Cryptography” Bernstein, Buchmann, Dahmen Covers code, lattice, and hash based cryptography

## Standards

- IEEE 1363 http://grouper.ieee.org/groups/1363/ Very influential early in the library lifetime, so a lot of terminology used in the public key (such as “EME” for message encoding) code comes from here.

- ISO/IEC 18033-2 http://www.shoup.net/iso/std4.pdf RSA-KEM, PSEC-KEM

- NIST SP 800-108 http://csrc.nist.gov/publications/nistpubs/800-108/sp800-108.pdf KDF schemes

- NIST SP 800-90A http://csrc.nist.gov/publications/nistpubs/800-90A/SP800-90A.pdf HMAC_DRBG, Hash_DRBG, CTR_DRBG, maybe one other thing?