Siegenthaler bound verständlich erklärt
Bei Streamciphers in der Kryptographie ist es sehr wichtig, einen Keystream zu erstellen, der möglichst wenige Rückschlüsse auf den verschlüsselten Plaintext zulässt. Da eine Streamcipher eine Erweiterung der Vernam-Cipher ist, wird dabei der Plaintext einfach mit dem Ciphertext addiert (modulo 2):
Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle CT = PT \xor KS}
Damit die Cipher sicher ist, soll der Keystream KS ein paar nette Eigenschaften haben:
- Der Keystream soll wie Rauschen aussehen, das bedeutet die Autokorrelationsfunktion soll sehr niedrig sein
- Die lineare Komplexität der Folge soll möglichst hoch sein, damit die Folge eine möglichst hohe Periode hat
- Die Periode soll nach Möglichkeit von nicht-linearen Funktionen erzeugt werden (d.h. von keinem LFSR) oder zumindest von einer Kombination aus nichtlinearen Funktionen, da für jede nichtlineare Kombination aus LFSR mit Berlekamp-Massey in eine alternative Darstellung als LFSR gefunden werden kann.
Siegenthaler hat gezeigt dass diese Anforderungen zum Teil im Widerspruch stehen. Da ich nach langem Suchen keine schöne Erklärung zum Siegenthaler bound, der correlation immunity und dem nonlinear order gefunden habe, versuche ich hier selbst eine verständliche Erklärung.