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
Seite 2 von 3     12 3      
Benutzerbild von Dano
Dano

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

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
 
#12

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
 
#13

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
 
#14

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
43.115 Beiträge
 
Delphi 12 Athens
 
#15

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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Dano
Dano

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

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
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#17

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 19:47
Ich hab mich mit DEC und DES jetzt nicht größer auseinander gesetzt, aber es ist AFAIK wichtig, dass ein Initialization Vector (pseudo-)zufällig ist. Genau das war IIRC eines der Probleme von WEP. WEP verwendet intern RC4, das prinzipiell OK ist, aber der IV war in den meisten Implementierungen vorhersehbar (in inkrementierter Counter). Und auf einmal hatte man einen wunderbare Known-Plaintext-Angriff...

BTW: try..finally solltest du einbauen...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Dano
Dano

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

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 19:57
mit try...finaly hast du ja recht,
aber das ist jetzt auch kein programm das ich anderen gebe, und selbst bei mir sind es oft nur paar versuche die es läuft das ich sogar das free fast immer weglasse^^ speicher gibt ja in hülle und fülle
also für einen versuchsaufbau ist das ok, und jeder fehler der auftritt behandel ich selber im debugger

bei ner schleife mit 10000 kommt das free natürlich mit rein, wenn ein fehler auftritt ist es belanglos für mich ob ein finaly block existiert... strg+f2 und fehler suchen
ist kein ablauf der die fehler fremder benutzer auffangen muß/soll

das mit dem IV ist natürlich schon wichig um den ersten block zu schützen, aber in der sache mußte ich mich an das system anpassen welches die referenz darstelt... also IV=00000000

mfg Dano

Geändert von Dano (21. Aug 2011 um 20:07 Uhr)
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#19

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 21:30
Ich würde dir trotzdem raten, try..finally zu verwenden. Und wenn es nur ist, um das zur Gewohnheit zu machen, damit dus dann, wenns wichtig ist, nicht vergisst. Das tut nicht weh, aber es hilft.

Das ist wie mit dem Autofahren. Da gibts auch Leute, die sich sagen "Da ist doch eh keiner hinter mir, da muss ich nicht blinken, wenn ich abbiege." Und das sind dann auch die, die das Blinken mal vergessen, wenns wichtig wäre. Die paar Kalorien, die man aufwenden muss, um den Blinker anzumachen, kann man schonmal investieren. Das sind noch nichtmal Erdnüsse...


mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#20

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 22. Aug 2011, 06:22
Wenn man Speicher anfordert, hat man den auch wieder freizugeben. Also muss hier zwingend ein "try..finally Block" hin.
Gruß
Cookie
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:55 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