AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit DCPcrypt

Ein Thema von DLX · begonnen am 24. Mai 2018 · letzter Beitrag vom 18. Jun 2018
 
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#33

AW: Probleme mit DCPcrypt

  Alt 28. Mai 2018, 12:52
Ein IV := 'DLX' könnte dann crashen.
Nee, aber ein Key := 'DLX', da braucht man die 16bytes. IV kann auch '' sein.
Sehe ich anders:
Bezüglich Schlüssel:
Delphi-Quellcode:
procedure TDCP_rijndael.InitKey(const Key; Size: longword);
var
  KC, ROUNDS, j, r, t, rconpointer: longword;
  tk: array[0..MAXKC-1,0..3] of byte;
begin
  Size:= Size div 8;

  FillChar(tk,Sizeof(tk),0);
  Move(Key,tk,Size);
  if Size<= 16 then
  begin
    KC:= 4;
    Rounds:= 10;
  end
  else if Size<= 24 then
  begin
    KC:= 6;
    Rounds:= 12;
  end
  else
  begin
    KC:= 8;
    Rounds:= 14;
  end;
und bei den IVs
Delphi-Quellcode:
procedure TDCP_blockcipher128.SetIV(const Value);
begin
  if not fInitialized then
    raise EDCP_blockcipher.Create('Cipher not initialized');
  Move(Value,IV,16);
  Reset;
end;
bzw
Delphi-Quellcode:
procedure TDCP_blockcipher128.Init(const Key; Size: longword; InitVector: pointer);
begin
  inherited Init(Key,Size,InitVector);
  InitKey(Key,Size);
  if InitVector= nil then
  begin
    FillChar(IV,16,{$IFDEF DCP1COMPAT}$FF{$ELSE}0{$ENDIF});
    EncryptECB(IV,IV);
    Reset;
  end
  else
  begin
    Move(InitVector^,IV,16);
    Reset;
  end;
end;
Du kannst also einen nil-pointer übergeben, es werden dann 16 Bytes 0 verwendet (DLX := '' ist wie nil-pointer), aber ansonsten werden mit dem move immer 16 Bytes benötigt. (Es muß aber nicht zum Crash kommen, je nach Speicherlage). Wenn's nicht crasht können durch Zufallsbelegungen unterschiedlich IVs entstehen, und das Ergebnis ist fehlerhaft.

Debugger für IV := '1';

Encrypt-IV: ( 49, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0)
Decrypt-IV: ( 49, 0, 0, 0, 4, 22, 70, 0, 216, 31, 186, 1, 224, 50, 0, 0)

Die 49 entsprechen '1' der Rest ist mehr oder weniger Zufall.
  Mit Zitat antworten Zitat
 

 

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