AVR-Crypto-Lib/en: Unterschied zwischen den Versionen
Aus LaborWiki
Keine Bearbeitungszusammenfassung |
|||
Zeile 89: | Zeile 89: | ||
| Noekeon||C||C|| ||0 (16)|| ||128||128|| || || || || || | | Noekeon||C||C|| ||0 (16)|| ||128||128|| || || || || || | ||
|- | |- | ||
| Noekeon||Asm||Asm|| | | Noekeon||Asm||Asm||850||0 (16)|| ||128||128||10566||10340||10895|| || || | ||
|- | |- | ||
| DES||C||C||2480||0|| ||56||64|| || || || || || | | DES||C||C||2480||0|| ||56||64|| || || || || || | ||
Zeile 162: | Zeile 162: | ||
| SHA-1 ||C ||C || ||28|| ||160||512|| || || || || || | | SHA-1 ||C ||C || ||28|| ||160||512|| || || || || || | ||
|- | |- | ||
| SHA-1 ||Asm||Asm|| | | SHA-1 ||Asm||Asm||1070||28|| ||160||512|| || || || || || | ||
|- | |- | ||
| MD5 ||C ||C ||2086||20|| ||128||512|| || || || || || | | MD5 ||C ||C ||2086||20|| ||128||512|| || || || || || |
Version vom 20. April 2008, 03:33 Uhr
Where can I find it?
SVN: [1]
via Track (also svn, but suitable for direct browsing):[2]
Short Facts
- small implementation of cryptographic algorithms in C (quite protable)
- even smaller implementations in assembly language (ATmega, gnu-avr-as)
- license: GPLv2 & GPLv3 (nearly everything)
About
Crypto-avr-lib is a set of implementations of different cryptographic primitives. Due to the special limitations of microcontrollers (very raw space, RAM and flash are ranging from a few bytes to a few KiB) reference or "normal" optimised implementations are not useable. Therefor we try to provide special implementations which respect the extrem limited resources of microcontroller applications.
What should be done
symmetric
block | aes | cast6 | twofish | idea | kasumi |
stream | seal | A5/1 | Turing | Rabbit | |
hashes | ripemd | whirlpool |
What we have
symmetric
block
- XTEA
- CAST5
- Camellia
- Skipjack
- Noekeon
- RC5
- RC6
- SEED
- DES
- TDES (aka EDE-DES, 3DES)
- SHABEA
- Serpent
- Present
stream
- ARCFOUR (RC4 kompatibel)
- Trivium
- Grain
hashes
- SHA-256
- SHA-1
- MD5
others
- HMAC-SHA256 (nach RFC 2104)
- PRNG
Facts
Blockchiffren
name | variant | language | size (flash) (bytes) | size (context) (bytes) | size (stack) (bytes) | keysize (bits) | blocksize (bits) | time (initalisation) | time (encrypt) | time (decrypt) | attacks | paper | license / patents |
Camellia | C | C | 32 | 128 | 128 | ||||||||
Camellia | C+Asm | C+Asm | 5803 | 32 | 128 | 128 | |||||||
Cast5 | C | C | 14108 | 75 | 0-128 | 64 | 13739 | 12550 | 13109 | ||||
RC5 | RC5-32/r/b | C | 1524 | 3+(8*#Runden+1) | 1 – 2040 | 64 | 79352 | 7827 | 7223 | ||||
RC6 | RC6-32/r/b | C | 2656 | 19+(8*#Runden) | 1 – 2040 | 128 | 139940 | 26600 | 25986 | ||||
Noekeon | C | C | 0 (16) | 128 | 128 | ||||||||
Noekeon | Asm | Asm | 850 | 0 (16) | 128 | 128 | 10566 | 10340 | 10895 | ||||
DES | C | C | 2480 | 0 | 56 | 64 | |||||||
TDES | C | C | 2480 | 0 | 168 | 64 | 0 | 852082 | 852107 | ||||
Serpent | Non-bitslice | C | 528 | 1 – 256 | 128 | ||||||||
Serpent | bitslice | C | 4498 | 528 | 1-256 | 128 | 102098 | 70827 | 70462 | ||||
Skipjack | C | C | 1244 | 0 | 80 | 64 | |||||||
Present | C | C | 1514 | 256 | 80 | 64 | 30395 | 105796 | 151624 | ||||
SEED | C | C | 16 | 128 | 128 | ||||||||
SEED | C+Asm | C+Asm | 4052 | 16 | 128 | 128 | |||||||
XTEA | C | C | 0 | 128 | 64 | ||||||||
XTEA | Asm | Asm | 504 | 0 | 128 | 64 | |||||||
Shabea | C | C | 2020 | 0 | 0 – infinit | 256 |
Stromchiffren
name | variant | language | size (flash) (bytes) | size (context) (bytes) | size (stack) (bytes) | keysize (bits) | output size (bits) | time (initialisation) | time (generation) | attacks | paper | license / patents |
ARCFOUR | C | C | 258 | 0 – 2040 | 8 | |||||||
ARCFOUR | Asm | Asm | 122 | 258 | 0 – 2040 | 8 | ||||||
Trivium | C | C | 424 | 36 | 80 | 1 | ||||||
Grain | C | C | 778 | 20 | 80 | 1 |
Hashes
name | variant | language | size (flash) (bytes) | size (context) (bytes) | size (stack) (bytes) | hashsize (bits) | blocksize (bits) | time (initialsation) | time (per block) | time (finalisation) | attacks | paper | license / patents |
SHA-256 | C | C | 40 | 256 | 512 | ||||||||
SHA-256 | Asm | Asm | 1600 | 40 | 256 | 512 | |||||||
SHA-1 | C | C | 28 | 160 | 512 | ||||||||
SHA-1 | Asm | Asm | 1070 | 28 | 160 | 512 | |||||||
MD5 | C | C | 2086 | 20 | 128 | 512 |
MACs
name | variant | language | size (flash) (bytes) | size (context) (bytes) | size (stack) (bytes) | keysize (bits) | blocksize (bits) | time (initialisation) | time (per block) | time (finalisation) | attacks | paper | license / patents |
HMAC-SHA256 | C | 2712 | 40 | any | 512 |
PRNGs
name | variant | language | size (flash) (bytes) | size (context) (bytes) | size (stack) (bytes) | blocksize (bits) | time (input) | time (output) | attacks | paper | license / patents |
Entropium | C | 2174 | 64 | 256 |