Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a.

OTP als Standard- Verschlüsselungsverfahren für alles

Diskussion: OTP als Standard- Verschlüsselungsverfahren für alles im Forum Cryptography & Encryption, in der Kategorie Security Area; Anzeige Also, ich habe mich in letzter Zeit etwas mit Kryptologie beschäftigt. Es gibt ja unendlich viele undendlich komplizierte oder ...

Antwort
Alt 14.11.07, 00:24   #1 (permalink)
 
Registriert seit: 13.11.07
Pual Leistung: Facit NTK
Likes: 0
Standard OTP als Standard- Verschlüsselungsverfahren für alles

Anzeige

Also, ich habe mich in letzter Zeit etwas mit Kryptologie beschäftigt. Es gibt ja unendlich viele undendlich komplizierte oder auch weniger Komplizierte Verschlüsselungsverfahren.

Ein einfaches Beispiel ist die Vernamverschlüsselung bei Texten (ohne Sonderzeichen)
man hat den Text "originaltext" das Schlüsselwort "KEY" den Schlüssel bildet man aus dem Schlüsselwort + dem Text "KEYoriginaltext" wenn man nun einen Text verschlüsselt ist er ohne Schlüsselwort nicht entschlüsselbar.

Nun zu meiner Frage:
Warum benutzt man nicht das ebenso simple wie undecodierbare OTP für alles.



Beispiel für Vernam mit JAVA

Code:
private static final int A = (int) 'A';

private static final int ALPHABET_LEN = 26;

public static String encrypt(String originalText, String schluessel) {
String geheimText = "";
originalText = originalText.toUpperCase();

for (int h = 0; h < originalText.length(); h++) {
schluessel += originalText.charAt(h);
}
int key = 0;
for (int i = 0; i < originalText.length(); i++) {
geheimText += (char) ((originalText.charAt(i) - A + ((schluessel
.charAt(key) - A)))
% ALPHABET_LEN + A);
key++;

}

return geheimText;
}

public static String decrypt(String geheimText, String schluessel) {
String klarText = "";
geheimText = geheimText.toUpperCase();
int key = 0;
for (int i = 0; i < geheimText.length(); i++) {
klarText += (char) ((geheimText.charAt(i) + A - ((schluessel
.charAt(key) - A)))
% ALPHABET_LEN + A);
schluessel += klarText.charAt(i);
key++;
}

return klarText.toLowerCase();
}
}
Pual ist offline   Mit Zitat antworten
Alt 14.11.07, 00:33   #2 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard RE: OTP als Standard- Verschlüsselungsverfahren für alles

Zitat:
Original von Pual
Ein einfaches Beispiel ist die Vernamverschlüsselung bei Texten (ohne Sonderzeichen)
man hat den Text "originaltext" das Schlüsselwort "KEY" den Schlüssel bildet man aus dem Schlüsselwort + dem Text "KEYoriginaltext" wenn man nun einen Text verschlüsselt ist er ohne Schlüsselwort nicht entschlüsselbar.
Wer sagt das?
Selbstverständlich ist es wieder entschlüsselbar, wie fast alle kryptografischen Methoden.
Was OTP so unknackbar macht, ist die Tatsache, das jedes Bit (des Vernam-Keys) absolut zufällig ist und nur genau einmal benutzt wird.
In dem Augenblick, wo der Schlüssel aus mehr als purem Zufall erzeugt wird, also z.B. durch eine mathematische Funktion, oder ein Bit mehr als maximal einmal verwendet wird, geht die Unknackbarkeit flöten.

Resultat: Willst du OTP, so muss der Key mindestens so lange sein wie der Cyphertext und muss absolute zufällig erzeugt werden.
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 14.11.07, 13:56   #3 (permalink)
 
Registriert seit: 20.07.06
Darkslide Leistung: Facit NTK
Likes: 21
Standard RE: OTP als Standard- Verschlüsselungsverfahren für alles

Zitat:
Original von metax.
Resultat: Willst du OTP, so muss der Key mindestens so lange sein wie der Cyphertext und muss absolute zufällig erzeugt werden.
z.b. durch Messung des Strahlungs Hintergrund Rauschens.
Darkslide ist offline   Mit Zitat antworten
Alt 14.11.07, 21:58   #4 (permalink)
Themenstarter
 
Registriert seit: 13.11.07
Pual Leistung: Facit NTK
Likes: 0
Standard

vielen Dank, dass ist einleuchtend.
Pual ist offline   Mit Zitat antworten
Alt 14.11.07, 22:41   #5 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
solch einen Ciphertext kann man sehr leicht knacken.
Es ist nichts ungewöchnliches vom Geheimtext eine bestimmte Anzahl von Bytes/Zeichen zu kennen.
Speichert man in einer Word-Datei z.B. 'Hallo', verbraucht die Datei bis zu 20 kb Speicherplatz, bei 5 Byte Inhalt!
D.h., du hast 20 000 Bytes, die fest für den Header stehen und somit auch dem Angreifer bekannt sind.

Aber auch bei reinem Text ist bekannter Klartext nichts ungewöhnliches. Im 2. Weltkrieg konnte die Briten die Enigma nur knacken, weil sie erraten haben, wo im verschlüsselten Text bestimmte Passagen auftauchen, die eigentlich fast immer vorhanden sind, wie z.B. 'An xyz' oder 'Heil Hitler'.
Hätten sie das nicht gekonnt, hätten sie die Enigma nicht knacken können.

Zurück zum Thema:
Wenn der Schlüssel nun 'KEYorginaltext123' ist, und ich zufällig die ersten 3 Byte vom Orginaltext kenne (meine Posts fangen fast immer mit 'Hallo,' an), kann ich den KEY rekonstruieren und somit den gesamten Geheimtext entschlüsseln.

Ich kenn ja:
'KEYorg...'

Damit entschlüssel ich die ersten 6 Byte und erhalte:
'KEYorgtex...'
Damit kann ich die ersten 9 Byte entschlüsseln usw. bis ich den gesamten Klartext habe.

Es kommt noch schlimmer, angenommen ich kenn die ersten 3 Zeichen vom orginal Text nicht, aber die nächsten 3 Zeichen ('tex').

Damit kann ich die Buchstaben 3-6 vom Schlüssel rekonstruieren, also die Buchstaben 'org'.
Wenn ich weiß, dass der Text mit 'org' anfängt und der Geheimtext 'xyz' am Anfang hat, kann ich den Teil 'KEY' von deinem 'One Time Pad' knacken.
Also kann ich so wieder an den gesamten Klartext gelangen, ausschließlich wenn ich die Buchstaben 'tex' kenne.
(Man weiß auch, dass die Buchstaben 'tex' die Buchstaben 6 bis 9 vom Klartext verschlüsseln, also 't12'. Entschlüssel ich also Buchstaben 6 bis 9 vom Geheimtext mit 'tex' erhalte ich den Klartext an Stelle 6-9)

Es kommt noch schlimmer:
Es reichts aus, wenn ich 1 Buchstaben kenne! Dann kann ich den gesamten Geheimtext knacken.

Sollte ich keinen Buchstaben kennen, dann probiere ich an einer Position einfach alle 26 Buchstaben aus und schau mir die daraus resultierenden Klartext an. Ein logischer wird schon dabei sein, der dann der orginal Text ist.

Dein Code ist also noch unsicherer als eine Cäser-Verschiebung.
Bei dir reichts es aus, wenn man 1 Buchstaben kennt, wenn ich keinen kenne, setze ich an einer beliebigen Stelle einen der 26 Buchstaben (z.B. e) und schau mir den daraus resultierenden Klartext an).

PS: Finde es irgendwie süß, dass regelmäßig 'Neulinge' ankommen, die glauben, einen perfekten Algorithmus gefunden zu haben, mit der Sicherheit eines OTP (unknackbar) aber mit dem Komfort eines normalen Algorithmus.
Es gibt auf dem Gebiet der Kryptographie sehr kompetente Experten und um deren Arbeit zu verstehen empfiehlt sich ein abgeschlossenes Studium der Mathematik.
Glaubst du wirklich, dass wenn es so einfach wäre ein perfekten Algorithmus zu finden (unknackbar mit kurzem Key) ihn noch keiner Gefunden hätte?

Die Sicherheit vom OTP resultiert daher, dass es genauso viele Key-Kombinationen wie Klartext-Kombinationen gibt, damit kann jeder Geheimtext jedem Klartext zugewiesen werden, oder anders gesagt (sofern OTP zufällig gewählt), ein Geheimtext kann nicht einem bestimmten Klartext sicher zugeschrieben werden.
In den Geheimtext kann man alles reininterpretieren und alle Versionen des Klartextes haben auch noch die selbe Wahrscheinlichkeit (zumindes Mathematisch, aber Texte wie 'Morgen wird der Abschussbefehl für unsere Atomrakten auf Russland geben' und 'Meine Oma backt super leckeren Kuchen...' haben die gleiche Wahrscheinlichkeit).

Bitte nicht als negative Kritik auffassen, ist schön dass du dich für das Thema intressierst und dir auch darüber Gedanken machst.
Aber wenn man einen Algorithmus (oder Protokoll) entwickelt, ist der nächste Schritt immer wie kann ich diesen knacken.
Sollte man keinen Weg finden, zieht man andere Experten hinzu, die dieses beurteilen und sollten die auch nichts finden, dann ist der Algo./Protokoll evt. sicher.

Und bei offensichtlichen Sachen sollte einem schon auffallen, dass sie falsch sind
Elderan ist offline   Mit Zitat antworten
Alt 15.11.07, 00:19   #6 (permalink)
Themenstarter
 
Registriert seit: 13.11.07
Pual Leistung: Facit NTK
Likes: 0
Standard

Ok,ich sehe die Schwachstellen, nur eins ist mir nicht ganz klar: Wenn kein Buchstabe bekannt ist, wie braucht man doch die Schlüssellänge damit das mit dem ausprobieren klappt.Also wenn man den Original Text :
"diekryptologielaesstsich"
mit dem Schlüsselwort:
"KEY"
verschlüsselt, bekommt man den
geheimText:"NMCNZCZKMAHUTSRIIDSXKAVZ"


DIEKRYPTOLO
KRYPTOLOGIE





Wenn nun die Schluessellänge bekannt ist kann man ja wie folgt agieren:



NZCZKMAHUTS[...]
dKEY kKEYpKE[...] KEY = Schlüssellänge
kKEY pKEYlKE [...]
DIEKRYPTOLO
KRYPTOLOGIE


und kann so den Text dechiffrieren
Aber ohne die Schlüssellänge zu kennen kann man diese auch nur durch probieren ermitteln und dann kann ja wieder alles Mögliche rauskommen.
Ich sehe als Angriffsstelle zwar die zwingende übereinstimmung von Schlüsselteilen und Textteilen, ich weiß nicht wie hoch die Wahrscheinlichkeit einer Übereinstimmung in diesem Fall ist, wenn jedoch eine einigermaßen hohe existiert ist doch die "Sicherheit" wieder hergestellt. Wenn also ein Text nicht mehr als einmal verschlüsselt wird und solche dinge wie "An xyz" weggelassen wäre, wäre doch eine Sicherheit gewährleistet. Oder habe ich das mit dem probieren falsch verstanden ?

PS:Mir ist durchaus bewusst, dass dies nicht der perfekte Algorithmus ist. Ich habe auch nach Knack-Möglichkeiten gesucht jedoch nur die "Schlüssel-Text übereinstimmung gefunden" deshalb wollte ich mir Meinungen von erfahreneren "Kryptographen" einholen.Ich danke für die ausührliche Antwort. Gruesse Pual

Edith sagt, dass nu wieder alles in Ordnung ist.
Pual ist offline   Mit Zitat antworten
Alt 15.11.07, 19:05   #7 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
also wegen deinem edit warte ich erstmal.

Also:
Bei einer polyalphabetischen Substitution kann man die Schlüssellänge sehr leicht herrausfinden, indem man den Geheimext mit dem Geheimtext um eine bestimmte Position verschoben entschlüsselt.
Dies macht man z.B. für eine Verschiebung von 1, 2, 3... bis 100.
Danach schaut man sich den entstehenden Text an und betrachtet (mein ich) die Entropie.
Wenn man die richtige Schlüssellänge erraten hat, fällt dieses deutlich auf.

Es gibt (z.B. Cryptool) Programme, die eine polyalphabetischen Substitution im Bruchteil einer Sekunde knacken, ohne zu wissen wie lang der Key ist.
Cryptool zeigt auch das Diagramm an mit dem oben beschriebenen Verfahren.

Wenn der Key aber:

Dein Verfahren kann man ja auch mit Zahlen darstellen
Bsp:
Code:
  2 3 1 5 6 7 2  <= Klartext
+ 1 2 3 2 3 1 5 <= Key: 123 + Klartext
= 3 5 4 7 9 8 7 <= Geheimtext
So nun fang ich an zu Raten, und zwar (zufällig) richtig, dass das 1. Zeichen vom Key '1' ist:

Code:
 3 5 4 7 9 8 7
- 1 ? ?
= 2 ? ?

=>
  3 5 4 7 9 8 7
- 1 ? ? 2
= 2 ? ? 5
 
=>
  3 5 4 7 9 8 7
- 1 ? ? 2 ? ? 5
= 2 ? ? 5 ? ? 2
Ich kann mit der Buchstabenhäufigkeit gucken, ob ich richtig mit 1 geraten habe.

Bei der Schlüssellänge ist es ähnlich. Ich kann einfach alle ausprobieren.
Soviele unterschiedliche Schlüssellängen gibts nicht, aber wenn Schlüssellängen von 1 bis 100 möglich wären, muss ich max. 100*26 = 2600 entschlüsselte Texte erstellen.
Über die Buchstabenhäufigkeit finde ich den richtigen herraus.

Und 2600 Texte erstellet und überprüft ein Computer in 0,00...1 Sekunden.
Um einen Hashwert zu knacken, schaffen moderne CPUs bis zu 25 Millionen Werte pro Sekunde.
Der Hashwert ist deutlich aufwendiger zu berechnen, also kannst dir ja aussrechnen wie lange man braucht umd 2600 mögliche Klartexte zu bilden.

Wenn ich den 1. Key-Buchstaben + Key-Länge richtig berechnet habe, kann ich einfach die nächsten Key-Zeichen berechnen ohne großen Aufwand.

Pro Schlüssel-Zeichen bräuchte ich max. 26 Versuche.

Oder als Formel:
26*n+26*(n-1) = 676*n - 26

Bei einer Schlüssellänge von 100:
676*n - 26 = 67 574

Hört sich viel an, aber selbst die Enigma war mit rund 1 Millionen Schlüsseln deutlich schwerer zu knacken und sie wurde bereits im 2. Weltkrieg gebrochen.

Und durch weitere Optimierungen, z.B. folgt auf ein e oft ein n, kann man die Zahl der Rechenschritte drastisch reduzieren, was aber eigentlich nicht nötig ist.
67 574 Rechenschritte sind lachhaft und werden schneller durchgeführt als du zwinkern kannst
Elderan ist offline   Mit Zitat antworten
Alt 16.11.07, 18:18   #8 (permalink)
Themenstarter
 
Registriert seit: 13.11.07
Pual Leistung: Facit NTK
Likes: 0
Standard

In Ordnung,
aber kann bei probieren nicht irgendein Text herauskommen, der auch Sinn ergibt?

zb kann ja

POSIHJSFA mit
GEHEIMNIS oder auch mit
BUCHSTABE entschlüsselt werden

Pual
Pual ist offline   Mit Zitat antworten
Alt 16.11.07, 21:03   #9 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
natürlich kann das passieren, allerdings nimmt die Wahrscheinlichkeit dafür exponentiell mit der Textlänge ab.

Außerdem, was du dort gepostet hast, ist ein OTP (wobei der Key scheinbar nicht zufällig ist).
Versuch mal 'BUCHSTABE' mit einem 3 Buchstaben langen PW zu verschlüsseln.
Dann find einen anderen Key der Länge 3, der immer noch Sinn macht.

Man erhält dann sehr schnell komische Zeichenfolgen wie z.N. dqn etc., die einfach nicht vorkommen.

Wie gesagt, der Key ist i.d.R. deutlich kürzer als der Klartext, womit man nur 1 logische Lösung erhält.
Elderan ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » Cryptography & Encryption » OTP als Standard- Verschlüsselungsverfahren für alles
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Standard-Passwörter WG511 WLAN-Zone 5 25.09.05 21:02
per "Known plaintext" Verschlüsselungsverfahren ermitteln? korda Cryptography & Encryption 3 12.05.05 19:07
anderer Standard Berny Internet Allgemein 3 13.10.02 13:43
standard logins boon Linux/UNIX 3 18.12.01 18:55
Symetrische Verschlüsselungsverfahren Tec Cryptography & Encryption 5 15.11.01 11:45


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61