1 /** \mainpage Documentation for AVR-Crypto-Lib
2 \section Algorithms Available algorithms
3 \subsection Stream-ciphers Stream ciphers
4 A stream cipher generates a keystream which is normaly XORed with the
5 plaintext to produce the the ciphertext. Stream ciphers therfore have a
6 state which is automaticaly updated to produce the next element of the
7 keystream. Most Streamciphers produce a fixed length of keytream per
8 iteration which may be a byte, a bit or any other data unit.
10 Implemented stream ciphers:
12 - ARCFOUR (RC4 compatible) (arcfour.h)
16 \subsection Block-ciphers Block ciphers
17 Block cipher encrypt/decrypt fixed length blocks (mostly 64 bits or 128 bits)
18 with a key. Most block ciphers iterate a round function which uses a so-called
19 round key. The round keys are generated on the fly or with a special init
20 function (this is cipher specific). Round keys are stored in a context which
21 is not modifyed by the encryption or decryption function. Also the same
22 context can be used for encryption and decryption and depends only on the key
25 Implemented block ciphers:
26 - Camellia (camellia.h)
27 - CAST5 (a.k.a CAST-128) (cast5.h)
28 - CAST6 (a.k.a CAST-256) (cast6.h)
29 - DES & Tripple-DES (EDE) (des.h)
36 - SHACAL-1 (encryption only) (shacal1_enc.h)
37 - SHACAL-2 (encryption only) (shacal2_enc.h)
38 - Skipjack (skipjack.h)
41 \subsection Hashes Hashes
42 A Hash function produces a fixed length output (called hash value or message
43 digest) from a variable length message input. Most hash algorithms have a
44 state which is updated by the hash core function from a block of fixed size
45 from the message. A "lastBlock" function is used to add the last block which
46 is not required to have the fixed length. An addition function is then used
47 to transform the state into the final hash value.
49 Implemented hash functions:
54 \subsection MACs Message-Authentification-Codes (MACs)
55 Message-Authentification-Codes work like hash function but take an additional
56 key. The produced output is also called MAC and is highly dependant on the
57 key. They can be thought of symmetric signatures.
59 Implemented MAC functions:
60 - HMAC-SHA-1 (hmac-sha1.h)
61 - HMAC-SHA-256 (hmac-sha256.h)
63 \subsection PRNGs Pseudo-Random-Number-Generators (PRNGs)
64 PRNGs produce pseudo random output determinated by the input. They aim to
65 produce an arbitrary length of good cryptographically secure random if the
66 input has enough entropy. PRNGs differ in the way they accept input. Some
67 are seeded only once, other (like the implemented) maintain an entropy pool
68 to which input can be added at virtually any time.
71 - Entropium (entropium.h)