AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

3DES mit DEC (Delphi Encryption Compendium)

Ein Thema von Dano · begonnen am 20. Aug 2011 · letzter Beitrag vom 8. Mär 2012
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.352 Beiträge
 
Delphi 12 Athens
 
#1

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 20. Aug 2011, 22:46
Zitat:
aber da scheint es unterschiede zwischen DEC 5.1 und 5.2 zu geben
Jupp, von den schnittstellen her, hätte die 5.2 wohl eher 6.0 heißen sollen.

Nja, falls hier wirklich keiner mehr eine Lösung findet, dann nur nicht aufgeben und Ruhe bewahren.
Der Schöpfer vom DEC ließt hier öfters mal mit und wenn man etwas wartet, kommt da bestimmt nochmal eine Antwort.


So, blos daß wir jetzt nichts falsch verstehn:
Also das Ver-/Entschlüsseln innerhalb des DEC geht
und nur das Ver-/Entschlüsseln zwischen DEC und diesem Crypttool will nicht so richtig?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 00:02
Hmmm.... Das erste Byte eines String ist doch das Längenbyte, oder? kann das damit zusammenhängen?
Delphi programming
  Mit Zitat antworten Zitat
Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#3

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 00:33
ja, ich bin immer ruhig... nur gerade aufgewühlt^^

also das string[0] die längenangabe sein kann weiß ich, ist aber nicht relevant da ich selber keine stringumwandlungen mache.... der DEC bekommt ganz einfache strings übergeben... also schließe ich das mal aus

ich habe meine aufgabe mittlerweile gelöst... habe einfach die ersten 8 zeichen ignoriert und erst mit string[9] angefangen zu analysieren... also ob da text ist... aufgabe war ein BruteForce Angriff auf 3DES mit eingeschränktem schlüsselraum... bzw es waren 10 zeichen vom schlüssel bekannt

nur leider kamm dann das andere problem zum vorschein... ab ca. $100 im text kam auch nur müll, also nach 256byte

dann kommt immer die selbe 8Byte wiederholung bei dem was entschlüsselt werden sollte
ohne grund... er hat ja die blöcke davor auch sauber entschlüsselt( abgesehen von den ersten 8byte)
Zitat:
Cologne, Germany, April 3–4êïDÃ4Ô‘#ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò 3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3 Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â \ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\Í ØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØ Ôò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔ ò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò 3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3Â\ÍØÔò3 Â\ÍØÔò3Â\ÍØÔò3Â\ÍØ
das ist der übergang bei 0x100(256Byte)... warum das so ist, ist unbekannt

den oder die gefundenen schlüssel habe ich dann ich cryptool benutzt
sie waren richtig und cryptool hat mir dann auch den ganzen text korrekt entschlüsselt...

kann jetzt nicht alles poste da dies eine öffentliche aufgabe von mysterytwister ist und wäre uncool wenn man ne lvl2 chalange hier per googel gelöst bekommt

aber irgendwas muß verkehrt an 3DES mit CBC sein im DEC 5.2... ich gehe auch nicht dafon aus das ich irgendwo einen bufferüberlauf habe der dann in andere bereiche reinschreibt/überschreibt

hagen wird mich bestimmt gleich in der luft zerreisen weil er eigentlich keine support-sorgen haben möchte mit den Bibliotheken die er uns freundlicher weiße überlassen hat

aber ungelöste/unlogische probleme mag ich auch nicht

mfg Dano

Geändert von Dano (21. Aug 2011 um 00:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#4

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 00:36
So, blos daß wir jetzt nichts falsch verstehn:
Also das Ver-/Entschlüsseln innerhalb des DEC geht
und nur das Ver-/Entschlüsseln zwischen DEC und diesem Crypttool will nicht so richtig?
ist richtig

und ich gehe davon aus das außer padding beide nach RFC arbeiten sollten, habe auch beim debuggen nix bemerkt in DEC das da ein fehler sein könnte

bin eher ratlos, bin zwar fertig mit der arbeit, aber würde das doch gerne noch plausiebel auflösen, falls ich mal wieder auf DEC und 3DES zurückgreifen muß

mfg Dano
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 00:43
Du sollst CBC nehmen nimmst aber cmCBCx als Modus.

Vielleicht gibt es damit Probleme
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (21. Aug 2011 um 00:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#6

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 00:54
ich habe nur folgende möglichkeiten
Zitat:
cmCTSx = double CBC, with CFS8 padding of truncated final block
cmCBCx = Cipher Block Chainung, with CFB8 padding of truncated final block
cmCFB8 = 8bit Cipher Feedback mode
cmCFBx = CFB on Blocksize of Cipher
cmOFB8 = 8bit Output Feedback mode
cmOFBx = OFB on Blocksize bytes
cmCFS8 = 8Bit CFS, double CFB
cmCFSx = CFS on Blocksize bytes
cmECBx = Electronic Code Book
und wie gesagt, das mit dem padding wenn der letzte block nicht voll ist habe ich auch gelöst

aber der algorythmus macht 8byte müll, dann 248byte alles super, und dann wieder periodischen unsinn

kann sein das es an meinem programm liegt, aber ich habe nix auffälliges gemacht mit zeiger verbiegen oder sonstiges

mfg Dano
  Mit Zitat antworten Zitat
Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#7

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 01:08
ok, asche über mein haupt *duck*... hab ein fehler gefunden, der input-buffer war nur 256byte... und das einlesen der datei war damit corrupt


aber die ersten 8 byte sind immernoch unlogisch

mfg Dano
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.352 Beiträge
 
Delphi 12 Athens
 
#8

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 07:29
Eventuell wird an der Stelle die Länge oder ein Hash mit eincodiert?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#9

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 17:42
habs gefunden^^

es gibt einen "Initialization vector"

und der wird irgendwie randomm gefüllt wenn ich den nicht mit angebe
habe den jetzt extra auf #0#0#0#0#0#0#0#0 gesetzt und jetzt ist auch der erste block lesbar

Delphi-Quellcode:
implementation

uses DECUtil, DECCipher, DECFmt;

{$R *.dfm}

// CrypTool padding bei CBC mit der anzahl der padding's...
// also z.b. #4#4#4#4 wenn 4 aufgefüllt werden
// Bei CBC wird bei Blockgröße auf/um 8 erweitert...
// input=15byte, output=16... padding #1
// input=16, output=24... padding #8#8#8#8#8#8#8#8
// IV mit 8mal 0 initialisieren, sonst ist erster block müll #0#0#0#0#0#0#0#0
procedure TForm1.Button1Click(Sender: TObject);
var
  DefCipherClass: TCipher_2DES;
  Temp: String;
begin
  DefCipherClass:=TCipher_2DES.Create;
  DefCipherClass.Mode:=cmCBCx;

  Temp:='AAAAAAAAAAAAAAAA';
  DefCipherClass.Init(Temp,#0#0#0#0#0#0#0#0); // passwort und IV setzen
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  // unsere nachricht + padding damit wir auf blockgröße 8 kommen
  Temp:='123456789012345'+#1;
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  Temp:=DefCipherClass.EncodeBinary(Temp); // verschlüsseln
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  DefCipherClass.Done; // aufräumen

  Temp:=DefCipherClass.DecodeBinary(Temp); // entschlüsseln
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  // jetzt müßte noch das padding entfernt werden

  DefCipherClass.Free;
end;
bin jetzt selber überrascht wie einfach das mit DEC ging^^
war am anfang schnell überfordert weil in den beispielen soooo viel drin stand und ich nur schwer das für mich benötigte rausfiltern konnt
aber wenn man einmal den durchblick hat, ist das DEC einfach nur genial

und wenn man noch die ganzen Memo1.Lines.Add weglässt ist es ein 10 zeilen code um mit 3DES zu verschlüsseln und gleich wieder zu entschlüsseln
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  DefCipherClass: TCipher_2DES;
  Temp: String;
begin
  DefCipherClass:=TCipher_2DES.Create;
  DefCipherClass.Mode:=cmCBCx;
  DefCipherClass.Init('AAAAAAAAAAAAAAAA',#0#0#0#0#0#0#0#0); // passwort und IV setzen

  Temp:='123456789012345'+#1; // text+ padding
  Temp:=DefCipherClass.EncodeBinary(Temp); // verschlüsseln
  DefCipherClass.Done; // aufräumen
  Temp:=DefCipherClass.DecodeBinary(Temp); // entschlüsseln
  // jetzt müßte noch das padding entfernt werden
  DefCipherClass.Free;
end;
das ist jetzt zu 100% kompatibel zu CrypTool

danke euch für die hilfe
mfg Dano

Geändert von Dano (21. Aug 2011 um 17:51 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz