AVR-Crypto-Lib: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
K (+ sha[1,256]_c speed)
Zeile 13: Zeile 13:
*noch kleinere Implementierungen von Kryptofunktionen in Assembler (ATmega, gnu-avr-as)
*noch kleinere Implementierungen von Kryptofunktionen in Assembler (ATmega, gnu-avr-as)
*alle Funktionen sind '''reentrant''' (außer den Funktionen des Zufallsgenerators "Entropium")
*alle Funktionen sind '''reentrant''' (außer den Funktionen des Zufallsgenerators "Entropium")
*Lizenz: GPLv3 (nahezu alles)
*Lizenz: GPLv3 (nahezu alles) (andere Lizenz auf Anfrage beim Autor)
 


==About==
==About==

Version vom 26. Juli 2008, 00:00 Uhr

UC-Crypto-logo.png

for an english version of this site go to Crypto-avr-lib/en.

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)
  • alle Funktionen sind reentrant (außer den Funktionen des Zufallsgenerators "Entropium")
  • Lizenz: GPLv3 (nahezu alles) (andere Lizenz auf Anfrage beim Autor)

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* cast6 twofish
idea kasumi misty-1
shacal-2 E2 mars

*=(davon gibt es eigentlich schon eine Menge)

Stream

seal Turing Rabbit
mickey-128

Hashes

  • ripemd
  • whirlpool

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) (Bytes) Größe (Kontext) (Bytes) Größe (Stack) (Bytes) Schlüssellänge (Bits) Blockgröße (Bits) 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 14128 75 0 – 128 64 13742 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 1438 0 (16) 128 128 26037 25798 26396
Noekeon Asm Asm 850 0 (16) 128 128 10566 10340 10895
DES C C 2480 0 56 64 284952 284977
TDES C C 2480 0 168 64 852082 852107
Serpent Non-bitslice C 2862 528 1 – 256 128 537021 492884 493004
Serpent bitslice C 4498 528 1 – 256 128 102098 70827 70462
Skipjack C C 1244 0 80 64 38109 38450
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 129 50086 49808
XTEA C C 754 0 128 64 9912 9789
XTEA Asm Asm 504 0 128 64 7687 7688
Shabea C C 2020 0 0 – infinit 256
Name Varianten Sprache Größe (Flash) (Bytes) Größe (Kontext) (Bytes) Größe (Stack) (Bytes) Schlüssellänge (Bits) Blockgröße (Bits) Zeit (Initialisierung) Zeit (Verschlüsselung) Zeit (Entschlüsselung) Angriffe Paper Lizenz / Patente

Stromchiffren

Name Varianten Sprache Größe (Flash) (Bytes) Größe (Kontext) (Bytes) Göße (Stack) (Bytes) Schlüssellänge (Bits) Ausgabegröße (Bits) Zeit (Initialisierung) Zeit (Generierung) Angriffe Paper Lizenz / Patente
ARCFOUR C C 230 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) (Bytes) Größe (Kontext) (Bytes) Göße (Stack) (Bytes) Hashlänge (Bits) Blockgröße (Bits) Zeit (Initialisierung) Zeit (pro Block) Zeit (Finalisierung) Angriffe Paper Lizenz / Patente
SHA-256 C C 3428 40 256 512 257 179184 183576
SHA-256 Asm Asm 1600 40 256 512 314 53386 53791
SHA-1 C C 2774 28 160 512 91 81344 85736
SHA-1 Asm Asm 1070 28 160 512 218 40330 40735
MD5 C C 2086 20 128 512 71 41786 42358

MACs

Name Varianten Sprache Größe (Flash) (Bytes) Größe (Kontext) (Bytes) Göße (Stack) (Bytes) Schlüssellänge (Bits) Blockgröße (Bits) Zeit (Initialisierung) Zeit (pro Block) Zeit (Finalisierung) Angriffe Paper Lizenz / Patente
HMAC-SHA256 C 2712 40 beliebig 512
HMAC-SHA1 C 2182 28 beliebig 512

PRNGs

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