# Sage ideal crypto toolbox

From YobiWiki

Back to SAGE & cryptology

This is a lengthy list but it's our Xmas list ;-) We aim to have a toolbox for research/education/playing not production optimizations required. So easy access, reconfigurability and clearness are more important!

## Contents |

### Block ciphers

#### Block cipher algorithms

Make sure the internals are accessible and reconfigurable, particularly the S-BOXes.

Try to make generic constructors such as Feistel cipher, etc

- Serpent
- Blowfish, Twofish
- Idea
- DES, 3DES 112, 168
- AES 128, 196, 256
- Present

#### Modes of operation

Make sure we can select independently the block cipher encryption/decryption mode and the chaining "encryption/decryption" mode

- Authentication modes
- CMAC
- XCBC
- CBC-MAC

- Authentication+encryption modes
- CCM
- GCM

- Encryption modes
- ECB
- CBC
- CTR

- Disk encryption modes
- LRW
- XTS

Non-keyed hashes

- MDC-2 (ISO 10118-2)

#### Paddings

- Bit padding (can be done at bit level, others are at byte level)

DD DD DD 80 00 00 00 00

- zeros

DD DD DD 00 00 00 00 00

- PKCS7

DD DD DD 05 05 05 05 05

- ISO 10126

DD DD DD 42 DB 8A 98 05

- ANSI X.923

DD DD DD 00 00 00 00 05

### Stream ciphers

Same thing, get the internals accessible and patchable

- RC4
- A5/1 A5/2
- SNOW2 SNOW3G
- SW candidates of eSTREAM:
- HC-128
- RABBIT
- Salsa 20/12
- SOSEMANUK

- HW candidates of eSTREAM:
- F-FCSR
- Grain
- MICKEY
- Trivium

- LFSR
- Shrinking generator
- Self-shrinking generator

### One-way functions

- MD5
- SHA family
- Whirlpool
- RipeMD
- MDC-2
- RadioGatĂșn

Ways to transform a block cipher into a hash

- Davies-Meyer
- Matyas-Meyer-Oseas
- Miyaguchi-Preneel

MACs based on hash functions

- HMAC
- NMAC

Key derivation functions

- KDF family
- PBKDF2

### Public-key cryptography

#### ECC

- all coordinate systems
- cf http://www.hyperelliptic.org/EFD/

#### Others

- RSA (encryption, signature, PKCS#1 v1.5 and v2.1, with and without CTR)
- DSA
- ElGamal
- DH
- XTR
- Paillier
- NTRUE

### Pseudo-random generators

- cf NIST
- Mersenne Twister

### Cryptanalysis tools

- boolean functions & S-Box
- algebraic degree
- algebraic immunity
- algebraic normal form (ANF)
- non linearity
- resiliency
- Walsh transforms
- cross-correlation

- ECC point counting
- complex multiplication?

- factorisation solver
- discrete log solver
- statistical tests (diehard, FIPS...)
- Field operations: addition, multiplication, inverses (normal and polynomial basis)