AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen .NET-Sprachen Verschlüsselung c# DES -> Delphi DEC DES

Verschlüsselung c# DES -> Delphi DEC DES

Ein Thema von WM_CLOSE · begonnen am 2. Mai 2011 · letzter Beitrag vom 4. Mai 2011
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von negaH
negaH

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

AW: Verschlüsselung c# DES -> Delphi DEC DES

  Alt 4. Mai 2011, 13:12
Ja das ist ja auch nicht falsch was die C# Bibliothek macht. Je nach Definition des Paddingverfahrens können noch viel mehr Daten angehangen werden.

In diesem Falle ist es so:
- wenn Nachricht Mehrfaches der Blockgröße ist dann hänge einen weiteren Block aus lauter 0'en hinten dran
- wenn Nachricht 1 Bytes länger ist als Blockgröße dann verschlüssele diese Block mit Zufall aufgefüllt und hänge einen weiteren Block mit 1'en aufgefüllt hinten dran
- wenn 2 bytes zu lang, dann im letzten Paddingblobk alles mit 2'en aufgefüllt

Es wird bei diesem Padding also immer minimal x Bytes der Blockgröße des Cipher angehangen.
An Hand der Bytewerte im Paddingblock kann bei der Entschlüsselung bestimmt werden wiviele Bytes vom letzten Datenblock real wichtig sind.

Nun, das Problem des Paddings entsteht durch die Entwicklung von Blockcipher mit > 1 Bytes Blockgröße. Und dies auf Computern/Programmiersystemen die 1 Byte als kleinste Recheneinheit addressieren können.
So hat man die Feedback-Modis eingeführt. Es gibt welche die aus einem Blockcipher mit zb. 8 bytes nativer Rechenblockgröße einen bauen mit 1 Bytes Blockgröße. Das bedeutet natürlich das diese Modis in diesem Fall zb. 8 mal langsammer sind. Aber die kryptographische Sicherheit eines 8 Bytes Blockciphers der zb. im CBC-8Bit (CBC mit 1 Byte Feedback) verschlüsselt wurde basiert einzigst auf der Sicherheit die dieser Cipher im 8 Bytes Feedback, also nativ, realisiert.
Man benutzt Modis wie CBC-8Bytes = Blockgröße des Ciphers, weil sie die höchste Performance aus dem Cipher rausholen können, also Datendurchsatz in Bytes/sec.

Statt nun logisch betrachtet in einem System das den letzten Block padden muß vom CBC-8Byte-Blockmodus in den CBC-1Bytes-Modus zu wechseln, hat man lange versucht eine irgendwie geartete Nachrichtenexpansion zu benutzen um auch bei den letzten 1-8 Bytes die Performance der einfachen Blockverschlüsselung zu erhalten. Die meisten Paddings sind also nicht aus kryptographischen Erwägungen entstanden sondern aus technischen Problemen heraus. Darunter zähle ich auch den Versuch auf Bit-Ebene Feebackmodis zu benutzen.

Nun, DEC in der aktuellen Version hat zu jedem Block-Cipher-Mode einen der mit x Bytes = Blockgröße Cipher arbeitet und einen der im 1 Bytes Feedback arbeitet. Wenn der Cipher im xBytes Blockmodus arbeitet und ein Datenblock mit < Blockgröße verschlüsseln soll dann wechselt der Cipher in den 1 Bytes Modus und verbleibt auch dort. Es wird eine Exception gerissen wenn man über die Länge des letzten Blockes hinaus verschlüsseln möchte. Kryptographisch ist das diejenige Lösung die von Hause aus bewiesen sicher ist da sie ausschlielich auf schon bewiesenen Komponenten (Cipher und Feedbackmode) zurückgreift und keine zusätzlichen auswertbaren Informationen in das Sytem einbaut wie bei vielen anderen Paddings (die deswegen wieder einiges an Hirnschmlaz benötigen damit nicht neue Angriffe möglich werden, man baut also eine weitere Variable in die Gesamt-Sicherheits-Formel mit ein, die eigentlich unnötig ist).

Gruß Hagen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz