Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#3

Re: Verständnisfrage: Verschlüsselung + Schutz vor Datenverl

  Alt 24. Sep 2009, 18:54
Das hängt ab von der verwendeten Verschlüsselung und den Prioritäten die der Nutzer und Designer an diese anlegt. Es läuft immer auf eine Kompromißsituation hinaus.

Angenommen du möchtst es sehr sehr sicher dann würde 1 falsches Bit an einer beliebigen Stelle im Ciphertext den kompletten Plaintext vernichten. Denn so wird eine gute Verschlüsselung reagieren wenn man bestimmte Angriffe abwehren muß.

Angenommen deine Priorität ist das die Daten auch bei Fehlern noch teilweise korrekt sind dann kann man zb. bei Blockverschlüsselungen sogenannte selbstsynchronisierende Ciphermodis benutzen. Zb. CBC ist ein solcher Modus. Die komplette Nachricht wird in Blöcken verschlüsselt (deswegen Blockverschlüsselung) und 1 falsches Ciphertextbit vernichtet den aktuellen Block und eventuell noch den nachfolgenden Block. Das Ratio liegt also bei 1Bit zu 16xBlockgröße in Bytes. Das sind sogenannte selbstsynchronisierende Ciphermodis.

Oder man wählt sogenannte Streaming-Ciphermodis bei denen der Cipher nur einen Schlüsselstrom erzeugt der mit den Daten XOR verknüpft wird. Also defakto ein billiger Streamcipher ohne Rückkopplungen des Datenstromes in die Cipherengine. Dann ist ein Datenblock quasi ein Byte oder sogar Bit je nach Cipher. Das Ratio beträgt dann 1Bit zu 1Byte oder 1Bit zu 1Bit je nach Cipher.

Aber von Oben nach Unten wird in den vorherigen Absätzen die Sicherheit immer weiter reduziert und immer mehr Angriffe werden möglich.
Man kann nun intern zwei wesentliche Arten von Fehlererkennungen/korrekturen anwenden. Einmal die sichere Erkennung von Fehler/Manipulationen durch kryptographische Primitive. Je nach Verfahren geht das von einfachen Prüfsummen, eingebetteen Cipher Message Authentification über zusätzlich zu implementierende Primitive wie HMACs (Hash Message Authentification Codes) bis eben zu "unfälschbaren" digitalen Signaturen wie DSA und Konsorten. Diese alle sind wieder kryptographisch aufsteigend immer sicherer und erkennen nur ob eine Manipulation oder ein Datenfehler vorliegt.
Die zweite Gruppe sind ECCs, Fehlerkorreturverfahren. Allerdings sollte man diese besser im äußeren Kontext der Datenübertragung benutzen, dh. auf den verschlüsselten Datenstrom statt auf die Plaintextnachricht und vor der Verschlüsselung. Denn je nach Cipher-/Mode wird bei einem Datenbitfehler ja eine ganze Menge an Datenblöcken zerstört. Wenn die ECC nicht exakt und explizit auf den Cipher abgestimmt wurde, also eine Standard-ECC ist so sollte dieser immer auf den Ciphertext Stream angewendet werden.

Um deine Frage also zu beantworten: grundsätzlich kann man wie bei normalen Datenübertragungen auch bei verschlüsselten Datenübertragungen die gleichen Verfahren benutzen um Fehler zu erkennen und korregieren zu können. Es ändert sich nur die Vorgehensweise da die Krypographie mit berücksichtigt werden muß und diese Fehler Erkennungen/Korrekturen nicht das krypto. System schwächen dürfen.

ECC's zb. basieren auf der Idee möglichst mit wenigen zusäzlichen Datenbits sehr viel redundante Aussagen über die Nutzbits zu kodieren die die Restauration fehlerhafter Nutzbits ermöglichen. Das steht oft im Widerspruch zu einer Verschlüsselungen die nach Möglichkeit eben keinerlei zusätzliche redundaten Informationen über den Plaintext nach AUßen dringen lassen möchte. Nutzt man die ECCs also auf dem Ciphertext (Außen) dann besteht nicht die Gefahr (im Gegensatz zur ECC auf dem Plaintext vor der Verschlüsselung, also Innen) das ein Angreifer die Eigenschaften der ECC ausnutzt um die Verschlüsselung zu brechen.
Gleiches gilt auch für die MACs, Digitalen Signaturen. Werden sie auf dem Plaintext angewendet so müssen sie immer dem Random Oracle Model entsprechen, also vollständig randomisiert arbeiten. Ansonsten kann ein Angreifer diese ausnutzen um das System zu brechen.

Gruß Hagen
  Mit Zitat antworten Zitat