AGB  ·  Datenschutz  ·  Impressum  







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

AES OFB Entschlüsselung mit DEC

Ein Thema von WorstNightmare · begonnen am 28. Aug 2009 · letzter Beitrag vom 28. Aug 2009
Antwort Antwort
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#1

AES OFB Entschlüsselung mit DEC

  Alt 28. Aug 2009, 18:29
Hallo,

ich versuche gerade hinzubekommen, dass mein Programm einen Text, der mit AES-OFB verschlüsselt wurde entschlüsselt.

Delphi-Quellcode:
var
  Dest: TBytes;
begin
  FCipher := TCipher_Rijndael.Create;
  FCipher.Mode := cmOFBx;
  FCipher.Init(FKey[0], 32, FIV[0], 4);

  SetLength(Dest, Length(Data));
  FCipher.Decode(Data[0], Dest[0], Length(Data));
  Data := Dest;
end;
Das Ergebnis ist leider falsch

Ein funktionierendes C++ Programm macht es so (verwendet Crypto++):
Code:
void TextDecoder::decrypt(unsigned char *buffer, int32_t size) {
   CryptoPP::OFB_Mode<CryptoPP::AES>::Decryption ofbDecryption;

   ofbDecryption.SetKeyWithIV(AesKey, AesKeySize, TextIv);
   ofbDecryption.ProcessData(buffer, buffer, size);   
}
Arbeitet Crypto++ vielleicht anders als DEC, muss ich etwas besonderes beachten?
  Mit Zitat antworten Zitat
gammatester

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

Re: AES OFB Entschlüsselung mit DEC

  Alt 28. Aug 2009, 19:59
Ich nehme an, daß TextIv der IV ist. Den mußt Du natürlich auch beim entschlüsseln verwenden.
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#3

Re: AES OFB Entschlüsselung mit DEC

  Alt 28. Aug 2009, 20:12
Das wird gemacht. Ich verwende gerade eine andere Unit zum ver/entschlüsseln, wollte nun aber gerne auf DEC umsteigen (weil es glaube ich schneller ist).

Habe sie mal angehangen.

Der Aufruf sieht so aus (ist für Ver & Entschlüsseln gleich):
  DecryptOFB(Data[0], FIV, Length(Data));
Angehängte Dateien
Dateityp: pas aesencryption_767.pas (13,9 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
gammatester

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

Re: AES OFB Entschlüsselung mit DEC

  Alt 28. Aug 2009, 20:25
Ich denke, die Initialisierung ist falsch statt
FCipher.Init(FKey[0], 32, FIV[0], 4); solltest Du einen 128Bit=16Byte-IV verwenden:
FCipher.Init(FKey[0], 32, FIV[0], 16); Gammatester
  Mit Zitat antworten Zitat
gammatester

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

Re: AES OFB Entschlüsselung mit DEC

  Alt 28. Aug 2009, 20:36
Zitat von WorstNightmare:
Das wird gemacht. Ich verwende gerade eine andere Unit zum ver/entschlüsseln, wollte nun aber gerne auf DEC umsteigen (weil es glaube ich schneller ist).

Habe sie mal angehangen.

Der Aufruf sieht so aus (ist für Ver & Entschlüsseln gleich):
  DecryptOFB(Data[0], FIV, Length(Data));
Und die Unit funktioniert? Kann ich mir eigentlich nicht vorstellen, denn die IV-Erzeugung sieht doch ziemlich obskur aus.
Delphi-Quellcode:
procedure DecryptOFB(var Buffer; Vec: TBytes; BSize: Integer);
...
  SetLength(IV, 16);
  for i := 0 to 15 do
    IV[i] := Vec[i mod 4];
Wenn Du wirklich damit vernünftig entschlüsseln kannst, mußt Du das beim DEC natürlich analog machen.

Gammatester
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#6

Re: AES OFB Entschlüsselung mit DEC

  Alt 28. Aug 2009, 20:50
Jo, die Unit funktioniert wunderbar (hatte ich auch aus C übersetzt).

Der IV ist 4x der 4 Byte IV, ich dachte das hat mit dem OFB zu tun und wird deswegen automatisch gemacht
Naja, dann werde ich es mal auf die Art versuchen.

Edit:
Danke für die Hilfe

Es lag tatsächlich an dem IV, MultiplyBytes wandelt ihn jetzt ins richtige Format.
Delphi-Quellcode:
procedure TMapleAESOFB.AESDecrypt(var Data: TBytes);
var
  Dest, ExpIV: TBytes;
begin
  ExpIV := MultiplyBytes(FIV, 4, 4);
  FCipher.Init(FKey[0], 32, ExpIV[0], 16);

  try
    // xxx handle packets > 1460 Bytes
    FCipher.Decode(Data[0], Data[0], Length(Data));
  finally
    FCipher.Done;
    ExpIV := nil;
  end;

  NextIV;
end;
So funktioniert nun alles.
  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 04:43 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