Quick Stream Cipher
# Quick Stream Cipher

Quick Stream Cipher (QUISCI) ist eine für Software optimierte symmetrische Stromchiffre, die 2001 von Stefan Müller (FGAN-FHR) entwickelt wurde.

## Merkmale

Der Algorithmus ist sehr kompakt und schneller als die bekannten Stromchiffrierer RC4 oder SEAL. Er kann sowohl in einem klartextunabhängigen Modus wie auch ein einem klartextabhängigen Modus betrieben werden. Ein Opteron-Prozessor braucht z. B. im klartextunabhängigen Modus 1 Taktzyklus, um ein Byte zu verschlüsseln. Die Chiffrierleistung des Verfahrens wächst linear mit der Bitbreite des Prozessors. Im Gegensatz zum SEAL-Algorithmus erfordert die Initialisierung wenig Zeit. Die Schlüssellänge ist variabel.

## Kern des Algorithmus

Es seien i, j, k ganze Zahlen und S[ ] ein Feld von ganzen Zahlen, das in Abhängigkeit eines Schlüssels gefüllt wurde. Dann wird ein vorliegendes Codesegment C in folgenden Schritten chiffriert bzw. dechiffriert:

| Schritt | Berechnung | |
| - | - | - |
| 1. | i := i + S[ j ] | |
| 2. | wenn i gleich 0 | sonst |
| 3. | i := not( S[ j ] ) | k := i xor S[ j ] |
| 4. | S[ j ] := k | S[ j ] := i |
| 5. | | j := i |
| 6. | C := C xor i | C := C xor k |

Je nach Größe des Feldes S[ ] wird die Indizierung durch eine Rechtsverschiebung angepasst.

## Sicherheit

Um die notwendige Qualität des Pseudozufallszahlengenerator (PRNG) für eine sichere Verschlüsselung zu erreichen, muss das Schlüsselfeld S[ ] mindestens 2048 Byte lang und die ganzen Zahlen mindestens 11 Bit breit sein. Somit kann der PRNG mindestens 2^16406 Zustände annehmen. Eine vollständige Kryptoanalyse des Verfahrens liegt zwar noch nicht vor, doch wurden Implementationen, die bis jetzt im Internet veröffentlicht wurden, auf Schwachstellen untersucht.

* Im Februar 2006 stellte Paul Crowley bei einer Beispielimplementation des Verfahrens eine miserable Gleichverteilung des PRNG fest. Grund für dieses Ergebnis war die zu klein gewählte Feldlänge von 128 Byte.
* Nils Reimers nahm im März 2009 die Initialisierung einer neueren Implementierung ins Visier, die zu dieser Zeit im Internet veröffentlicht wurde. Durch eine schwache Schlüsselexpansion konnte man mit wenigen bekannten Klartextblöcken am Anfang der Verschlüsselung den Schlüssel rekonstruieren.
