AVR-Crypto-Lib

Aus LaborWiki
Wechseln zu: Navigation, Suche


Wo finde ich das

SVN: [1]

via Track (auch svn, aber geeignet zum direkten Browsen):[2]

Short Facts

  • kleine Implementierungen von Kryptofunktionen in C (fast alle Mikrocontroller)
  • noch kleinere Implementierungen von Kryptofunktionen in Assembler (ATmega, gnu-avr-as)
  • Lizenz: GPLv2 & GPLv3 (nahezu alles)


About

Die crypto-avr-lib stellt ein reihe kryptographischer Funktionen für Atmels AVR Mikrocontroller zur Verfügung. Aufgrund der besonderen Begrenzungen in Mikrocontrollern (sehr wenig Speicher, sowohl RAM als auch Flash bewegen sich je nach Controller im Byte oder im unteren KiB Bereich), kann in der Regel nicht eine Standard oder Referenzimplementierung (in C) für den Mikrocontroller genutzt werden. Daher werden hier zum einen an die Anforderungen angepasste C Implementierungen zur Verfügung gestellt (die sich auch leicht auf andere Systeme portieren lassen) wie auch optimierte Assembler Implementierungen.


Was soll rein

Symmetrisch

Block

  • aes (davon gibt es eigentlich schon eine Menge)
  • cast6
  • twofish
  • idea
  • kasumi

Stream

  • seal
  • A5/1
  • Turing
  • Rabbit

Hashes

  • ripemd

Asymmetrisch

  • DH
  • RSA
  • ElGamal
  • EC
  • DSA

Was ist da

Symmetrisch

Block

  • XTEA
  • CAST5
  • Camellia
  • Skipjack
  • Noekeon
  • RC5
  • RC6
  • SEED
  • DES
  • TDES (aka EDE-DES, 3DES)
  • SHABEA
  • Serpent
  • Present

Stream

  • ARCFOUR (RC4 kompatibel)
  • Trivium
  • Grain

Asymmetrisch

Hashes

  • SHA-256
  • SHA-1
  • MD5

Sonstiges

  • HMAC-SHA256 (nach RFC 2104)
  • PRNG

Facts

Blockchiffren

Name Varianten Sprache Größe (Flash) Größe (Kontext) Größe (Stack) Schlüssellänge Blockgröße Zeit (Initialisierung) Zeit (Verschlüsselung) Zeit (Entschlüsselung) Angriffe Paper Lizenz / Patente
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 870 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 Varianten Sprache Größe (Flash) Größe (Kontext) Göße (Stack) Schlüssellänge Ausgabegröße Zeit (Initialisierung) Zeit (Generierung) Angriffe Paper Lizenz / Patente '
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 Varianten Sprache Größe (Flash) Größe (Kontext) Göße (Stack) Hashlänge Blockgröße Zeit (Initialisierung) Zeit (pro Block) Zeit (Finalisierung) Angriffe Paper Lizenz / Patente
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 1072 28 160 512
MD5 C C 2086 20 128 512

MACs

Name Varianten Sprache Größe (Flash) Größe (Kontext) Göße (Stack) Schlüssellänge Blockgröße Zeit (Initialisierung) Zeit (Verschlüsselung) Zeit (Entschlüsselung) Angriffe Paper Lizenz / Patente
HMAC-SHA256 C 2712 40 beliebig

PRNGs

Name Varianten Sprache Größe (Flash) Größe (Kontext) Göße (Stack) Blockgröße Zeit (Eingabe) Zeit (Ausgabe) Angriffe Paper Lizenz / Patente
Entropium C 2174 64 256