[JoGu]

Kryptologie

Zeichenhäufigkeiten in künstlichen Sprachen

a7Hzq .#5r<
kÜ\as TâÆK$
ûj(Ö2 ñw%h:
Úk{4R f~`z8
¤˜Æ+Ô „&¢Dø

MS-DOS-EXE

Byte Häufigkeit
00ca. 8%
8B
E8
ca. 3%
06
FF
20
74
ca. 1.8%
04
50
02
75
01
ca. 1.4%
03
46
65
B8
ca. 1.4%

Die Schwankungen sind ziemlich groß.

Die Häufigkeit der Bytes 65 (Buchstabe e) und 20 (Leerzeichen) hängt von dem Anteil eingebetteter Textteile ab.

Die Kryptoanalyse mit statistischen Methoden ist dadurch schwieriger als bei natürlichem Text.

Mustererkennungsmethoden sind unverzichtbar.


Pascal-Programme

Zeichen Häufigkeit
Leerzeichenca. 25%Autor, der viele Trennzeilen verwendet!
- (Bindestrich)ca. 6%
e LF CR ca. 3.5%
R N ; : E nca. 2-2.5%ebenfalls sehr vom Autor abhängig
O a T , I lca. 1.5-2%
u = ' ( ) D Sca. 1.2-1.4%

Die Häufigkeiten hängen sehr stark vom Stil des Programmierers ab. Im Beispiel:

Besonderheiten:

Die Kryptoanalyse mit statistischen Methoden ist schwieriger als bei natürlichem Text.

Mustererkennungsmethoden sind unverzichtbar.


MS-Word

Byte Häufigkeit
00 ca. 7-70%
01ca. 0.8-17%
20 = Leerzeichenca. 0.8-12%
65 = eca. 1-10%
FF ca. 1-10%

Beobachtungen:

Aus der letzten Bemerkung ergibt sich als effiziente Analyse-Methode bei XOR-Verschlüsselung mit periodisch wiederholtem Schlüssel: Blöcke paarweise addieren. Besteht der eine Block im Klartext im wesentlichen aus Nullen, entsteht als Summe lesbarer Klartext.

Klartext... a1 ... as... 0 ... 0...
Schlüssel... k1 ... ks... k1 ... ks...
Geheimtext... c1 ... cs... c1' ... cs'...

mit ci = ai + ki, ci' = 0 + ki für i = 1, ..., s.

Also ist ci + ci' = ai + ki + ki = ai - ein Klartextblock enthüllt -

und ki = ci' - der Schlüssel enthüllt.

Sollte bei der Addition zweier Geheimtextblöcke ein Nullblock herauskommen, ist die Wahrscheinlichkeit groß, dass beide Klartextblöcke nur aus Nullen bestanden. Auch dann ist der Schlüssel enthüllt.

[Bei allgemeinen Verschiebechiffren funktioniert das genauso, man muss nur an den entsprechenden Stellen die inverse Gruppenoperation anwenden.]


Autor: Klaus Pommerening, 18. Oktober 1999; letzte Änderung: 2. Mai 2002.