Allg. Links:
http://www.cs.berkeley.edu/daw/ David Wagner viele Informationen, Links
http://people.qualcomm.com/ggr/ Greg (Gregory) Rose
http://cr.yp.to/ Daniel (Dan) Bernstein
http://dmoz.org/Science/Math/Applications/Communication_Theory/Cryptography/Algorithms/Ciphers/
http://members.aol.com/jpeschel/ Joe Peschel
http://www.helsbreth.org/random/
http://home.t-online.de/home/mok-kong.shen/ Mok-Kong Shen (München), z.B. "On Mixture of Stream and Block Encoding" und WEAK1/WEAK2 "poor man's data encryption algorithm"
http://www.ciphersbyritter.com/ Terry Ritter sehr umfangreiches "glossary", Informationen zu Permutation, Hardware-Zufallsgeneratoren (noise sources) etc.
http://home.ecn.ab.ca/jsavard/crypto/jscrypt.htm "A Cryptographic Compendium" (John Savard)
http://www.faqs.org/faqs/cryptography-faq/
http://www.mindspring.com/schlafly/crypto/faq.htm (smaller but newer than above)
http://www.tcs.hut.fi/helger/crypto/
http://theory.lcs.mit.edu/rivest/crypto-security.html Ron Rivest's Links
http://www.heise.de/ct/04/19/138/ c't-Artikel zu digitalen Signaturen, viele Links
http://cryptoshop.com/ dort "knowledge base"
http://www.phaedsys.demon.co.uk/chris/cipher/ciphers.htm
http://jsnerd.googlepages.com/index.htm und
http://edipermadi.wordpress.com/ viele Informationen, insbesondere mit Bzug zu Hardware, Mocrocontrollern, von Edi Permadi
Kleine Implementierungen:
http://www.afn.org/afn21533/rgdprogs.htm
Newsgroups
Glossar:
- CSPRNG: Cryptographically secure pseudo-random number generator
- "S-box": substitution
Block cipher operating modes:
- ECB: Electronic Codebook (immer gleiche Umwandlung für einen gegebenen Schlüssel)
- CBC: Cipher Block Chaining (fortgesetztes XOR aufeinanderfolgender Blocks)
- CFB, OFB: Ciphertext(Output FeedBack? (ein verschlüsseltes Byte wird wieder in den Block geschoben)
- nonce:
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:
http://www.simonshepherd.supanet.com/tea.htm und
http://www.cl.cam.ac.uk/ftp/users/djw3/tea.ps- XTE unter
http://www.cl.cam.ac.uk/ftp/users/djw3/xtea.ps
http://en.wikipedia.org/wiki/TEA
http://en.wikipedia.org/wiki/XTEA
http://www-users.cs.york.ac.uk/matthew/TEA/ (schöne Beschreibung und Diskussion)
AES (Rijndael)
Links:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
http://csrc.nist.gov/CryptoToolkit/aes/rijndael/
http://rijndael.info/
http://www.esat.kuleuven.ac.be/rijmen/rijndael/ leitet auf
http://www.iaik.tu-graz.ac.at/research/krypto/AES/ weiter, alte Seite
http://www.iaik.tu-graz.ac.at/research/krypto/AES/old/%7Erijmen/rijndael/ enthält Links zu Implementierungen.
http://jsnerd.googlepages.com/index01a.htm sehr schöner Simulator
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
- Außer einer 16x16->32 bit Multiplikation sehr geringe Ressourcen erforderlich?
- Patentiert,
http://home.ecn.ab.ca/jsavard/crypto/co040302.htm
http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
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:
- "chosen plaintext" oder differential
- Falls ganze "Buchstaben" umsortiert werden, kann man versuchen, sinnvolle Substrings zu erraten.
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:
ftp://helsbreth.org/pub/helsbret/random/ Programm zur Ermittlung von maximum length LFSR von Scott Nelson
http://www.netzwelt.de/lexikon/A5_(Algorithmus).html im GSM verwendete Verschlüsselung
http://th.informatik.uni-mannheim.de/info/kryptotag04/stegemann/ Verweis auf Krause:- M. Krause: "BDD-based cryptanalysis of keystream generators." In EUROCRYPT 2002, Band 2332 der Reihe Lecture Notes in Computer Science, Seiten 222-237. Springer Verlag, Heidelberg, 2002.
Informationen:
- Grundproblem ist, daß das LFSR einen absolut "linearen" Datenstrom liefert, damit umkehrbar und "unsicher".
- 2n bits "known plaintext" reichen aus, um den Schlüssel zu berechnen (Berlekamp-Massey).
- 2^0.694n Operationen, um das Polynom zu berechnen!?
- The sequence produced by an XOR of two LFSRs of size M and N can be equivalently produced by a LFSR of size M+N
- "the output of an length N LFSR, sampled once every M outputs, is identical to the output of another length N LFSR with possibly different taps"
- "The number of primitive polynomials for an n-bit LFSR is roughly 2^n/2n"
- "Some of the state spaces of non-primitive polynomials are as large as 99% of the state space of primitive polynomials" (aber es ist schwierig, passende Ausgangswerte sicherzustellen).
John Savard zeigt unter Computer Era -> Stream ciphers -> Shift-Register Stream Ciphers wie man LFSRs nichtlinear verbindet.
Zufallszahlen:
Echte Zufallswerte:
http://www.fourmilab.ch/hotbits/ aus radioaktivem Zerfall
http://www.random.org/
http://random.hd.org/ EntropyPool
http://www.randomnumbers.info/ (benutzt
http://www.idquantique.com/products/quantis.htm ?)
http://random.irb.hr/
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
- Liste mit Beschreibungen:
http://www.youdzone.com/cryptobooks.html - Bruce Schneier "Applied Cryptography"
- Menezes, van Oorschot Vanstone: "Handbook of Applied Cryptography", Download von
http://www.cacr.math.uwaterloo.ca/hac/ - Ross Anderson: "Security Engineering"?
- David Kahn: "The Codebreakers"?
Wortlisten
ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/4.11-RELEASE/dict/
http://www.cryptogram.org/cdb/words/words.html
http://www.und.nodak.edu/org/crypto/crypto/words/
http://www.outpost9.com/files/WordLists.html
Dateien auf Massenspeicher verschlüsseln:
1. Transparent:
http://www.truecrypt.org/
http://www.scherrer.cc/crypt/ CrossCrypt
http://www.freeotfe.org/- PGPdisk
2. On demand:
http://www.gnupg.org/ GPG- PGP
unsortiert:
http://www.informatik.tu-darmstadt.de/KP/theses/diplomarbeiten.html u.A. Kai Wirt bietet eine Diplomarbeit an über Attacken auf LFSR-Chiffren
http://gaos.org/stamer/ Heiko Stamer

news:sci.crypt