AVR-Crypto-Lib

Aus LaborWiki
Wechseln zu: Navigation, Suche
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 unteren KiB-Bereich) kann in der Regel keine Standard- oder Referenzimplementierung (in C) für den Mikrocontroller genutzt werden. Daher werden hier sowohl 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

Blockchiffren

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

Stromchiffren

  • ARCFOUR (RC4 kompatibel)
  • Trivium
  • Grain

Hashes

  • SHA-256
  • SHA-1
  • MD5

Sonstiges

  • HMAC-SHA256 (nach RFC 2104)
  • PRNG

Facts

Blockchiffren

 |name_n=Name
 |variant_n=Variante
 |lang_n=Sprache
 |size_n=Größe
 |keysize_n=Schlüssellänge
 |blocksize_n=Blockgröße
 |flash_n=Flash
 |context_n=Kontext
 |stack_n=Stack
 |init_n=Initialisierung
 |enc_n=Verschlüsselung
 |dec_n=Entschlüsselung
 |cycles_n=Taktzyklen
 |attacs_n=Angriffe
 |paper_n=Paper
 |license_n=Lizenz / Patente
 |rounds_n=Runden

}}

Stromchiffren

Name Variante Sprache Größe (Flash) (Bytes) Größe (Kontext) (Bytes) Größe (Stack) (Bytes) Schlüssellänge (Bits) Ausgabegröße (Bits) Taktzyklen (Initialisierung) Taktzyklen (Generierung) Angriffe Paper Lizenz / Patente
ARCFOUR C C 230 258 8 – 2040 8 64086 56
ARCFOUR Asm Asm 112 258 8 – 2040 8 6689 42
Trivium C C 424 36 80 1 775726 665
Grain C C 778 20 80 1 107366 617
MUGI C C 3500 152 128 64 113886 4105


Hashes

Name Variante Sprache Größe (Flash) (Bytes) Größe (Kontext) (Bytes) Größe (Stack) (Bytes) Länge des Hash-Wertes (Bits) Blockgröße (Bits) Taktzyklen (Initialisierung) Taktzyklen (pro Block) Taktzyklen (per byte) Taktzyklen (Finalisierung) Angriffe Paper Lizenz / Patente
Blake-28 C C 3508 53 192 224 512 343 71340 1114.69 71907
Blake-32 C C 6684 53 192 256 512 344 71340 1114.69 71975
Blake-48 C C 3508 101 376 384 1024 884 510637 3989.35 518644
Blake-64 C C 6684 101 376 512 1024 885 510637 3989.35 521119
BlueMidnightWish-224 size C 4478 68 288 224 512 404 109548 1711.69 220709
BlueMidnightWish-224 C C 6721 68 470 224 512 404 88759 1386.86 179107
BlueMidnightWish-224 seperate asm 1536 68 246 224 512 509 52979 827.80 106634
BlueMidnightWish-224 tiny asm 1590 68 246 224 512 509 52979 827.80 106640
BlueMidnightWish-224 asm asm 3274 68 250 224 512 229 31421 490.95 63422
BlueMidnightWish-256 size C 4478 68 288 256 512 404 109548 1711.69 220737
BlueMidnightWish-256 C C 6721 68 470 256 512 404 88759 1386.86 179131
BlueMidnightWish-256 seperate asm 1536 68 246 256 512 513 52979 827.80 106659
BlueMidnightWish-256 tiny asm 1590 68 246 256 512 515 52979 827.80 106659
BlueMidnightWish-256 asm asm 3274 68 250 256 512 231 31421 490.95 63455
BlueMidnightWish-384 size C 17729 132 914 384 1024 2004 382079 2984.99 767017
BlueMidnightWish-384 C C 17729 132 914 384 1024 2004 382079 2984.99 767017
BlueMidnightWish-512 size C 17729 132 914 512 1024 2005 382079 2984.99 767125
BlueMidnightWish-512 C C 17729 132 914 512 1024 2005 382079 2984.99 767125
CubeHash-224 C C 1502 130 76 224 256 635986 64027 2000.84 700639
CubeHash-256 C C 1502 130 76 256 256 635986 64027 2000.84 700664
CubeHash-384 C C 1502 130 76 384 256 635986 64027 2000.84 700802
CubeHash-512 C C 1502 130 76 512 256 635986 64027 2000.84 700934
ECHO-224 C C 4324 90 585 224 1536 450 222446 1158.57 223610
ECHO-256 C C 4324 90 585 256 1536 454 222446 1158.57 223635
ECHO-384 C C 4324 154 521 384 1024 841 275324 2150.97 276329
ECHO-512 C C 4324 154 521 512 1024 828 275324 2150.97 276441
Groestl-224 C C 2234 68 250 224 512 323 522120 8158.12 783256
Groestl-256 C C 2234 68 250 256 512 323 522120 8158.12 783289
Groestl-384 C C 2330 132 450 384 1024 662 1459656 11403.56 2189646
Groestl-512 C C 2330 132 450 512 1024 661 1459656 11403.56 2189774
Keccak-224 C C 2889 206 412 224 1152 1049 642795 4463.85 643979
Keccak-256 C C 2889 206 404 256 1088 1049 642707 4725.79 643875
Keccak-384 C C 2889 206 372 384 832 1049 642355 6176.49 643456
Keccak-512 C C 2889 206 340 512 576 1049 642003 8916.71 643043
MD5 C C 2506 20 172 128 512 32 42642 666.28 43057
MD5 asm asm 1686 20 117 128 512 32 18258 285.28 18556
SHA-1 C C 2526 28 225 160 512 52 75766 1183.84 76762
SHA-1 asm asm 1022 28 170 160 512 181 37030 578.59 37275
SHA-256 C C 3240 40 405 256 512 225 177455 2772.73 181789
SHA-256 asm asm 1598 40 376 256 512 298 50125 783.20 50479
Shabal-192 C C 2312 188 106 192 512 1549 59423 928.48 231621
Shabal-192 asm asm 1580 188 90 192 512 1047 13689 213.89 50762
Shabal-224 C C 2312 188 106 224 512 1549 59423 928.48 231650
Shabal-224 asm asm 1580 188 90 224 512 1047 13689 213.89 50793
Shabal-256 C C 2312 188 106 256 512 1549 59423 928.48 231699
Shabal-256 asm asm 1580 188 90 256 512 1047 13689 213.89 50825
Shabal-384 C C 2312 188 106 384 512 1549 59423 928.48 231824
Shabal-384 asm asm 1580 188 90 384 512 1047 13689 213.89 50930
Shabal-512 C C 2312 188 106 512 512 1549 59423 928.48 231952
Shabal-512 asm asm 1578 188 90 512 512 1047 13689 213.89 51050
Skein-1024-1024 C C 7130 146 643 1024 1024 1124414 1122133 8766.66 2245416
Skein-1024-1024 asm asm 2486 146 487 1024 1024 222141 220067 1719.27 441455
Skein-1024-128 C C 7130 146 643 128 1024 1124414 1122133 8766.66 2244520
Skein-1024-128 asm asm 2486 146 487 128 1024 222141 220067 1719.27 440669
Skein-1024-160 C C 7130 146 643 160 1024 1124414 1122133 8766.66 2244552
Skein-1024-160 asm asm 2486 146 487 160 1024 222141 220067 1719.27 440697
Skein-1024-224 C C 7130 146 643 224 1024 1124414 1122133 8766.66 2244616
Skein-1024-224 asm asm 2486 146 487 224 1024 222141 220067 1719.27 440753
Skein-1024-256 C C 7130 146 643 256 1024 1124414 1122133 8766.66 2244648
Skein-1024-256 asm asm 2486 146 487 256 1024 222141 220067 1719.27 440781
Skein-1024-384 C C 7130 146 643 384 1024 1124414 1122133 8766.66 2244776
Skein-1024-384 asm asm 2486 146 487 384 1024 222141 220067 1719.27 440893
Skein-1024-512 C C 7130 146 643 512 1024 1124414 1122133 8766.66 2244904
Skein-1024-512 asm asm 2486 146 487 512 1024 222141 220067 1719.27 441005
Skein-256-128 C C 4986 50 281 128 256 233990 232285 7258.91 465291
Skein-256-128 asm asm 2052 50 194 128 256 39911 38606 1206.44 77830
Skein-256-160 C C 4986 50 281 160 256 233990 232285 7258.91 465323
Skein-256-160 asm asm 2052 50 194 160 256 39911 38606 1206.44 77858
Skein-256-224 C C 4986 50 281 224 256 233990 232285 7258.91 465387
Skein-256-224 asm asm 2052 50 194 224 256 39911 38606 1206.44 77914
Skein-256-256 C C 4986 50 281 256 256 233990 232285 7258.91 465419
Skein-256-256 asm asm 2052 50 194 256 256 39911 38606 1206.44 77944
Skein-256-384 C C 4986 50 281 384 256 233990 232285 7258.91 698164
Skein-256-384 asm asm 2052 50 194 384 256 39911 38606 1206.44 116992
Skein-256-512 C C 4986 50 281 512 256 233990 232285 7258.91 698292
Skein-256-512 asm asm 2052 50 194 512 256 39911 38606 1206.44 117103
Skein-512-1024 C C 5466 82 399 1024 512 487951 486054 7594.59 1460518
Skein-512-1024 asm asm 2154 82 291 1024 512 93984 92429 1444.20 279124
Skein-512-128 C C 5466 82 399 128 512 487951 486054 7594.59 972682
Skein-512-128 asm asm 2154 82 291 128 512 93984 92429 1444.20 185447
Skein-512-160 C C 5466 82 399 160 512 487951 486054 7594.59 972714
Skein-512-160 asm asm 2154 82 291 160 512 93984 92429 1444.20 185475
Skein-512-224 C C 5466 82 399 224 512 487951 486054 7594.59 972778
Skein-512-224 asm asm 2154 82 291 224 512 93984 92429 1444.20 185531
Skein-512-256 C C 5466 82 399 256 512 487951 486054 7594.59 972810
Skein-512-256 asm asm 2154 82 291 256 512 93984 92429 1444.20 185559
Skein-512-384 C C 5466 82 399 384 512 487951 486054 7594.59 972938
Skein-512-384 asm asm 2154 82 291 384 512 93984 92429 1444.20 185671
Skein-512-512 C C 5466 82 399 512 512 487951 486054 7594.59 973066
Skein-512-512 asm asm 2154 82 291 512 512 93984 92429 1444.20 185785
Twister-224 C C 3248 80 250 224 512 398 240983 3765.36 509259
Twister-224 asm asm 1614 80 2566 224 512 517 164208 2565.75 347203
Twister-256 C C 3248 80 250 256 512 398 240983 3765.36 509395
Twister-256 asm asm 1614 80 228 256 512 395 164208 2565.75 347264
Twister-384 C C 3822 144 252 384 512 715 269537 4211.52 860078
Twister-384 asm asm 2156 144 228 384 512 722 183008 2859.50 585820
Twister-512 C C 3822 144 252 512 512 715 269537 4211.52 967704
Twister-512 asm asm 2156 144 228 512 512 723 183008 2859.50 659311


MACs

Name Variante Sprache Größe (Flash) (Bytes) Größe (Kontext) (Bytes) Größe (Stack) (Bytes) Schlüssellänge (Bits) Blockgröße (Bits) Taktzyklen (Initialisierung) Taktzyklen (pro Block) Taktzyklen (Finalisierung) Angriffe Paper Lizenz / Patente
HMAC-SHA256 C 2712 (incl. SHA256) 40 beliebig 512
HMAC-SHA1 C 2182 (incl. SHA1) 28 beliebig 512
OMAC-Noekeon Asm 1184 (incl. Noekeon) 16 128 128 95 10533 21474
OMAC-Noekeon C 1284 (incl. Noekeon) 16 128 128 95 10589 21741


PRNGs

Name Variante Sprache Größe (Flash) (Bytes) Größe (Kontext) (Bytes) Größe (Stack) (Bytes) Blockgröße (Bits) Taktzyklen (Eingabes) Taktzyklen (Ausgabe) Angriffe Paper Lizenz / Patente
Entropium C 2174 64 256