Thema: Delphi DEC 5.1 wie benutzen?

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

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

Re: DEC 5.1 wie benutzen?

  Alt 4. Feb 2008, 14:37
hey, ich weiß wer du bist und demzufolge weiß ich auch wie du es gemeint hast, ich bin zu keiner Zeit davon ausgegangen das ich mich angegriffen fühlen müsste

Ja, man kann das oben noch einbauen, ginge sogar sehr einfach. Das Thema habe ich aber unter -> Es gibt Verbesserungen und hier in der DP schon als Source zu finden, abgehackt. Ich muß halt immer einen Kompromiß anstreben, zwischen dem was ich hier als Beispiele poste und noch verständlich ist und dem was alles möglich wäre. Kryptographie ist deshalb sicher weil man das bestehende Wissen auch begriffen hat, man weiß es also. Erkläre ich zuviel kann mir keiner mehr folgen und man wird auf gut Glauben das wiederkauen wa ich an Beispielen gepostet habe ohne es verstanden zu haben. Das ist dann keine Kryptographie mehr, leider.

denoch hier die Änderungen mal angedeutet:

Delphi-Quellcode:
procedure Encrypt(ASource, ADest: TStream; ...blabla); overload;
var
  ... blabla
  MAC: Binary;
begin
  with ... do
  try
    ...blabla Initialisierung hier

    EncodeStream(ASource, ADest, -1);

    MAC := CalcMAC(TFormat_COPY);
    ADest.WriteBuffer(MAC[1], Length(MAC));
  finally
    Free;
    ....bla
    ProtectBinary(MAC);
  end;
end;

procedure Decrypt(ASource, ADest: TStream; ...blabla); overload;
var
  ... blabla
  MAC: Binary;
begin
  with ... do
  try
    ...blabla Initialisierung hier

    DecodeStream(ASource, ADest, ASource.Size - ASource.Position - BufferSize);

    SetLengh(MAC, BufferSize);
    ASource.ReadBuffer(MAC[1], Length(MAC));
    if MAC <> CalcMAC(TFormat_COPY) then
      raise Exception.Create('invalid decryption data maybe modifyed or please verify your password');
  finally
    Free;
    ....bla
    ProtectBinary(MAC);
  end;
end;
ABER VORSICHT! Die Berechnung der CMAC hängt stark vom verwendeten Ciphermode ab. Im Grunde ist diese CMAC nur dann aussagekräftig wenn im cmCTS?/cmCFS? Modus gearbeitet wird. Im cmCBCx Modus kann man eine CMAC berechnen lassen nur wird diese auf Grund der Selbstsynchronisation des CBC Modus eben nicht aussagekräft sein.
Der cmCTS?/cmCFS? Modus enthält quasi einen Lawineneffekt. Ein falsches Bit lösste eine Lawine aus die alle nachfolgenden Bits verändert, bis zum Ende der Verschlüsselung und der Berechnung des CMAC. Die Selbstsynchrnisation ist zerstört dafür ergibt sich quasi sowas wie eine Prüfsumme über alle Datenbits. Dies trifft aber auf alle selbstsynchronisierenden Modis nicht zu.

So. Und wieder die Verständlichkeit dieses Threades verschlechtert

Gruß Hagen
  Mit Zitat antworten Zitat