Allg. Links:

Kleine Implementierungen: http://www.afn.org/afn21533/rgdprogs.htm

Newsgroups

Glossar:

CRC als hash?

L. Carter and M. Wegman, "Universal classes of hash functions", Journal of Computer and System Sciences, 18 (1979), pp. 143-154.

M. Wegman and L. Carter, "New hash functions and their use in authentication and set equality", Journal of Computer and System Sciences, 22 (1981), pp. 265-279.

"2-universal hashing & message authentication"

"dense, primitive polynomials" gut?

http://www.certainkey.com/resources/ppsearch.php Primitive Polynomial search (no more available!?)

David Wagner in <8kdh5v$ok6$1@blowfish.isaac.cs.berkeley.edu>, mit Bezug auf Carter-Wegman:

Now, for each message you want to hash, you crank the stream cipher
to generate another 16 bits of output.  Fill a 16-bit shift register
with zeros.  Use the 16 bits of output from the stream cipher as your
feedback polynomial for the CRC.  CRC-hash the message (with random salt
prepended, and with a 1-bit followed by 16 0-bits appended).  Use the
result as your 16-bit MAC.

Terry Ritter: </verbatim> Even a random polynomial can detect errors. But the usual practice in CRC's is to choose a primitive mod-2 polynomial (perhaps multiplied by 11), because real errors are not distributed evenly. A well-designed CRC can detect error patterns involving just a few errors better than one might expect from a random polynomial. </verbatim>

andere Hashes:

Square Hash paper by Patel, Ramzan, and Sundaram (from Crypto 99)

MMH Paper by Shai Halevi and Hugo Krawczyk

TEA (Tiny Encryption Algorithm)

128 bit key, 64 bit blocks. Public Domain. Wirklich kurzer Algorithmus, braucht nur drei "long" Variablen und einen 8-Bit-Zähler. "Feistel-Netzwerk"

"Deutlich geringere Codegröße als AES". Langsamer?

Ich habe für "quick and dirty" XXTEA 360 Bytes benötigt...

Links:

AES (Rijndael)

Links:

128 Bit Blockgröße. Schlüssellänge 128, 192 und 256 bits. Public Domain. Beschreibung bei http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf, nennt für eine 68HC08-Implementierung 8390 Zyklen pro Block bei 128 Bit Schlüssel (524c/byte), 919 Bytes ROM und 36 Bytes RAM. 8051: 4065 Zyklen, 768 Bytes ROM. Ein HC12 sollte das noch kleiner und viel schneller können.

Entschlüsseln ist langsamer als verschlüsseln (etwa 30%)!

IDEA, TinyIDEA

RC4 (ARCFOUR) und das darauf basierende CipherSaber

Stromchiffre. Benötigt wenigstens ein 256 Byte großes "state array".

RC4 hat "weak keys", die man vermeiden sollte.

Die ersten 512 Bytes sollten verworfen werden, weil sie nicht unabhängig genug sind.

Fluhrer und McGrew? haben einen kleinen "bias" in den Daten entdeckt, der aber nur bei sehr großen Datenmengen ein Problem darstellt.

RSA hat Rechte an der Bezeichnung "RC4", aber nicht am Verfahren (?).

http://www.mozilla.org/projects/security/pki/nss/draft-kaukonen-cipher-arcfour-03.txt ist ein "kompatibler Algorithmus"?

Implemetierungen unter http://www.xs4all.nl/cg/ciphersaber/

Ciphersaber-2 micht den Schlüssel mehrfach, was aber riskant ist, weil vielleicht Schlüssel existieren, die das Array wieder entmischen.

GOST

Russische Entwicklung, 64 Bit Blockchiffre. Teilt Text in zwei 32-Bit-Wörter, diese in 8 Nibbles, die durch acht 4-Bit S-Boxen laufen. Danach <<<11.

Blowfish

Benutzt vier 32-Bit-S-Boxen mit je 256 Einträgen, das sind 4KBytes!

DES

RC5

patentiert von http://www.rsasecurity.com/ (US patent #5,724,428)!? in http://www.cs.berkeley.edu/nks/tinysec/ enthalten?

Treyfer

Skipjack

256 byte S-box (konstant). Sonst kompakt, gut für 8- oder 16-Bitter geeignet.

Besser untersucht als z.B. TEA.

Treyfer

Soll sehr kompakt sein, keine detaillierte Beschreibung online?

Transposition (permutation) ciphers

Angriffe:

In jedem Block eine neue Umsorierung verwenden.

Praktische Anwendung außer bei Terry Ritter?

John Savard 2001-01-19 in sci.crypt: "while transposition is a worthy encipherment method that is unjustly neglected, it should not be used completely alone; it is worthwhile to use it in combination with substitution."

LFSR-basierte Stromchiffren

Links:

Informationen:

John Savard zeigt unter Computer Era -> Stream ciphers -> Shift-Register Stream Ciphers wie man LFSRs nichtlinear verbindet.

Zufallszahlen:

Echte Zufallswerte:

http://stat.fsu.edu/pub/diehard/ Diehard von George Marsaglia

http://csrc.nist.gov/rng/ "Random Number Generation and Testing"

http://www.cs.berkeley.edu/daw/rnd/ David Wagner's Links dazu

Crypto-API in Windows - funktioniert das?

HCRYPTPROV hProvider = 0;
BYTE randomBytes[128];
CryptAcquireContext(&hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
CryptGenRandom(hProvider, sizeof(randomBytes), randomBytes);

Bücherliste

Wortlisten

Dateien auf Massenspeicher verschlüsseln:

1. Transparent:

2. On demand:

unsortiert: