PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie schwierig ist es einen AES-Key herauszufinden, wenn man die unverschlüsselten Dat


Gast
2009-05-04, 21:16:16
en kennt?


Nehmen wir mal eine schwarze Box mit integrierter Festplatte an.
Alles was in die Box hineinläuft wird auf dieser verschlüsselt und auf Festplatte verschlüsselt gespeichert.

Wenn man nun Daten, die man im Klartext kennt, in die Box hineinschickt
und dann die Festplatte der Box ausbaut und die verschlüsselten Daten gewinnt, kann man dann mit diesen beiden unterschieden den AES Key errrechnen?

Berni
2009-05-04, 21:43:13
Das ist im Grunde eine Known-Plaintext-Attacke bzw. sogar eine Chosen-Plaintext-Attacke, die du hier beschreibst. Möglich ist das schon aber nach derzeitigem Kenntnisstand nur mit einem unrealistischen Aufwand (dauert viel zu lang). Der Aufwand ist einfach viel zu hoch:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
A chosen-plaintext attack can break 8 rounds of 192- and 256-bit AES, and 7 rounds of 128-bit AES, although the workload is impractical at 2^128 - 2^119. (Ferguson et al, 2000).

Viel einfacher und effizienter wird es da sein, den Chip in dieser Box auszulesen (irgendwo muss das Passwort ja gespeichert sein). Oder die Daten einfach direkt von der Festplatte zu lesen anstatt zu schreiben ;)

Gast
2009-05-06, 13:05:36
Hallo,

wenn du steuern kannst, wo die Daten hinkommen, z.B. beim "reinkopieren mit dd", kannst du den Schlüssel innerhalb kürzester Zeit errechnen.

Wenn du nicht weißt, wo die Daten auf die HDD geschreiben werden (kopieren mit dem Windowsexplorer), kommt es darauf an ob du den alten Zustand kennst.

Ist dieser bekannt, kann über die geänderten Blöcke (und die Klartextdtaen) relativ einfach der Schlüssel errechnet werden ( < 1d).

mfg

Pinoccio
2009-05-06, 13:13:53
Möglich ist das schon aber nach derzeitigem Kenntnisstand nur mit einem unrealistischen Aufwand (dauert viel zu lang).Es ist nach heutigem Kenntnisstand nicht (http://en.wikipedia.org/wiki/Brute_force_attack#Theoretical_limits) möglich.

@Topic:
http://imgs.xkcd.com/comics/security.png

Social engineering (ggfs auch wie im Bild beschrieben), Side channel attacks (z. B. TEMPEST (http://en.wikipedia.org/wiki/TEMPEST) oder timing atacks (PDF) (http://cr.yp.to/antiforgery/cachetiming-20050414.pdf)) und Implementierungsfehler sind erfoögversprechende Angriffsszenarien, Brute force nicht.

wenn du steuern kannst, wo die Daten hinkommen, z.B. beim "reinkopieren mit dd", kannst du den Schlüssel innerhalb kürzester Zeit errechnen.

Wenn du nicht weißt, wo die Daten auf die HDD geschreiben werden (kopieren mit dem Windowsexplorer), kommt es darauf an ob du den alten Zustand kennst.

Ist dieser bekannt, kann über die geänderten Blöcke (und die Klartextdtaen) relativ einfach der Schlüssel errechnet werden ( < 1d).Was meinst du?

mfg

Gast
2009-05-06, 13:22:21
@Berni
Das gibts auch auf deutsch ;)
http://de.wikipedia.org/wiki/Advanced_Encryption_Standard
"Ein Angriff mit frei wählbarem Klartext kann 8 Runden bei einer Schlüssellänge von 192 Bit und 7 Runden bei einer Schlüssellänge von 128 Bit entschlüsseln."

Mehr Infos. Die Plaintext-Attacke von Fergusson war keine Chosen-Plaintext-Attacke. D.h. man muß schon den kompletten Inhalt bitgenau kennen. Dann darf man auch nicht vergeßen, daß eine Attacke imho als Erflogreich gilt, wenn man unter 2^64 kommt. Unter Kryptographen. 2^55 usw. ist immernoch ein gigantischer Aufwand.

Da AES aber als AES256 genauso wie als AES128 noch ausreichend Runden bietet, gilt: Geht nicht.

Gast
2009-05-06, 13:25:44
[quote]Wenn man nun Daten, die man im Klartext kennt, in die Box hineinschickt und dann die Festplatte der Box ausbaut und die verschlüsselten Daten gewinnt, kann man dann mit diesen beiden unterschieden den AES Key errrechnen?Du bist doch nicht der Meinung, daß so ein Algorithmus auch nur in die AES-Vorrunde schaffen könnte? :|

Coda
2009-05-06, 13:41:21
kann man dann mit diesen beiden unterschieden den AES Key errrechnen?
Nein.

mekakic
2009-05-06, 13:51:40
Da AES aber als AES256 genauso wie als AES128 noch ausreichend Runden bietet, gilt: Geht nicht.Was bedeutet bezogen auf Kryptographie der Begriff "Runde"?

Pinoccio
2009-05-06, 14:00:20
Was bedeutet bezogen auf Kryptographie der Begriff "Runde"?Wiki hilft (http://de.wikipedia.org/wiki/Feistelchiffre).

aus dem englischen Artikel (http://en.wikipedia.org/wiki/Feistel_cipher):
http://upload.wikimedia.org/wikipedia/en/d/d2/Feistel.png
Quelle (http://en.wikipedia.org/wiki/File:Feistel.png)

mfg

Pinoccio
2009-05-06, 14:15:47
FergussonGibt es dazu einen Link? Dann darf man auch nicht vergeßen, daß eine Attacke imho als Erflogreich gilt, wenn man unter 2^64 kommt. Unter Kryptographen.Erfolgreich heißt besser zu sein als Brute force. Bei einem Algorithmus mit 256 Bit Schlüssellänge wäre als ein Angriff mit einer Komplexität von 2^250 erfolgreich. Praktisch durchführbar ist der Angriff damit natürlich nicht.2^55 usw. ist immernoch ein gigantischer Aufwand.Nö, mittlerweile nicht mehr. (http://en.wikipedia.org/wiki/EFF_DES_cracker)

/edit: Ups, Doppelpost ....

mfg

Gast
2009-05-07, 06:04:26
Erfolgreich heißt besser zu sein als Brute force.Nein. Da gibt es einen "Regelsatz" für. Sprich: Interne Absprache unter den Wissenschaftlern =) mehr aber auch nicht. Ich kann diese Zahl nur nicht auftreiben. Habs mir nicht gemerkt :( Ich meine die 2^64 können doch falsch sein :(
Erfolgreiche Angriffe sind im "Regelsatz" definiert als so und so viel mal kürzer als mit Bruteforce.

Nö, mittlerweile nicht mehr.[/url]Das gilt nur für DES/3DES. Was das Zeug für AES brauchen würde steht nicht fest. Wenn es das überhaupt könnte. Auch Elcomsoft und CUDA nützen noch lange nichts.

Die beste Antwort hat diesmal aber Coda geliefert. "Nein" und fertig ;)

Gast
2009-05-07, 06:44:55
Wiki hilft (http://de.wikipedia.org/wiki/Feistelchiffre)Feistel? Was soll ihm das sagen? Serpent ist kein Feistel und hat gar 32 Runden :|

Rundumschlag @mekakic ;)
Bei der Frage geht es nicht um Feistel, sondern Block allgemein
http://de.wikipedia.org/wiki/Blockchiffre

Blöcke hätten wir also. Grob gesagt wird nun der Algorithmus auf diese Blöcke angewendet. Das kann pro Block mehrmals geschehen und wenn es das tut (das tut es übrigens immer), spricht man von Runden. Der Block kommt x-Male in die Rechenmühle mit jeweils einem s.g. Rundenschlüssel bis er als endgültig verschlüsselt gilt. Das sind diese ominösen Runden.

Die Blöcke können je nach Algo unterschiedlich groß (breit) sein, können dann noch zweigeteilt werden usw. usw. Prinzipiell tut das aber bei deiner Frage nichts zur Sache ;)

Je nach Stärke der verschlüsselnden Grundoperation, der Rechenalgorithmus selbst also, wählen die "Designer" eine ausreichende Rundenanzahl pro Block. Das sind alles aber nur Schätzungen und Empfehlungen.

Man hat zb. sehr an Rijandael gemeckert, weil die Rundenzahl sehr knapp ist. Daher kann er auch mit Geschwidigkeit brilieren was ihm größtenteils den Sieg beim AES-Contest bescherrte. Auf Kosten der (noch) theoretischen Sicherheit. AES128 mit 10 Runden ist mittlerweile hart an der Grenze. THEORETISCH.

Diesen trade off wollten zb. die Macher von Twofish aber nicht in dem Masse eingehen.
Eigentlich ist Twofish gar pro Runde sicherer als AES. Man mochte jedoch keine Empfehlung unter 16 Runden abgeben. Daher ist Twofish wegen oder auch trotz 16 Runden geringfügig langsamer.

Die Typen von Serpent haben dagegen direkt geklotzt. Daher kursiert in den Kreisen auch der Spruch, daß man mit genug Mitteln und Eonen von Zeit alles knacken kann, nur Serpent nicht ;) Es ist aber dementsprechend langsamer.

p.s.:
AES192 und AES256 werden von der NSA in der "Suite-B" als blockbasierte Verschlüsselungsmethode empfohlen. Was aber in der Suite-A steht weiß draußen niemand ;)

Pinoccio
2009-05-07, 09:02:42
Nein. Da gibt es einen "Regelsatz" für. Sprich: Interne Absprache unter den Wissenschaftlern =) mehr aber auch nicht. Ich kann diese Zahl nur nicht auftreiben. Habs mir nicht gemerkt :( Ich meine die 2^64 können doch falsch sein :(
Erfolgreiche Angriffe sind im "Regelsatz" definiert als so und so viel mal kürzer als mit Bruteforce.Quelle? Imho:
(tolle Idee: anders, aber nicht kürzer als vollständige Schlüsselsuche. Ein Kandidat hierfür ist möglicherweise XLS)
Theoretischer Angriff: kürzer als vollständige Schlüsselsuche
Praktikabler Angriff: kurz genug, um durchführbar zu sein.
Die Grenze dafür liegt heute irgendwo zwischen 2^55 (nachweislich machbar in 7 Tagen bei unter 10.000€ (http://www.copacobana.org/)) und etwa 2^90. Mit steigender Rechengeschwindigkeit und bei entsprechendem Geldeinsatz lässt diese Grenze sich (noch) hinausschieben.

Das gilt nur für DES/3DES. Was das Zeug für AES brauchen würde steht nicht fest. Wenn es das überhaupt könnte. Auch Elcomsoft und CUDA nützen noch lange nichts.Wie? AES ist vergleichbar schnell wie DES, wenn also 2^55 Schlüssel bei DES durchsuchbar sind, dann auch für AES.

Die beste Antwort hat diesmal aber Coda geliefert. "Nein" und fertig ;)Coda ist ja bekannt für seinen (zu-)treffenden, aber minimalistischen Antworten.
(Vermutlich wird er als Programmierer nach Zeilen bezahlt und darf in seiner Freizeit nur ein bestimmtes Pensum an Wörtern tippen ...)

Feistel? Was soll ihm das sagen? Serpent ist kein Feistel und hat gar 32 Runden :|Serpent ist wohl Feistel! (http://books.google.de/books?id=hyCqjODGntUC&pg=PA76&lpg=PA76&dq=serpent+feistel) (mehr: siehe unten)Rundumschlag @mekakic ;)
Bei der Frage geht es nicht um Feistel, sondern Block allgemein
http://de.wikipedia.org/wiki/Blockchiffre [...]Korrekt.

Meine Gleichsetzung von Feistel mit Runden war falsch. Es gibt durchaus rundenbasierte Algorithmen, die keine Feistelchiffren sind.
Mein Irrtum basiert auf dem schönen Bild der englischen Wikipedia.

mfg

HeldImZelt
2009-05-07, 19:39:02
Nehmen wir mal eine schwarze Box mit integrierter Festplatte an. Alles was in die Box hineinläuft wird auf dieser verschlüsselt und auf Festplatte verschlüsselt gespeichert.
Reden wir über Grundlagen oder der PS3?

Gast
2009-05-07, 20:15:00
Serpent ist wohl Feistel! (http://books.google.de/books?id=hyCqjODGntUC&pg=PA76&lpg=PA76&dq=serpent+feistel)Zweiter Fehler ;) Das ist imho falsch. Viele Netzwerke sind Feistel-ähnlich, aber Feistel ist Feistel und das gibts nur einmal ;) Serpent ist Substitutions-Permutations Netzwerk (SP-network).

Feistel ist Twofish, DES, Blowfish, MARS, Feal, CAST und so ein Zeug.
Imho ;) werden weder AES/Rijandael noch Serpent zu Feistel-basierten gezählt. Würde mich auch wundern, denn die beiden Mauscheln im SP-Netzwerk. Nix Feistel-Netzwerk.

Pinoccio
2009-05-07, 23:53:30
Zweiter Fehler ;) Das ist imho falsch. Viele Netzwerke sind Feistel-ähnlich, aber Feistel ist Feistel und das gibts nur einmal ;) Serpent ist Substitutions-Permutations Netzwerk (SP-network).

Feistel ist Twofish, DES, Blowfish, MARS, Feal, CAST und so ein Zeug.
Imho ;) werden weder AES/Rijandael noch Serpent zu Feistel-basierten gezählt. Würde mich auch wundern, denn die beiden Mauscheln im SP-Netzwerk. Nix Feistel-Netzwerk.Hm, möglicherweise schließen sich die Begriffe nicht aus oder sind ein wenig Unscharf definiert. Gibt ja schließlich sogar "Feistel Ciphers with SPN Round Function" ("http://ci.nii.ac.jp/naid/110003209074/).

mfg

Gast
2009-05-09, 16:06:44
Hm, möglicherweise schließen sich die Begriffe nicht ausNaja. Geht so ;)