Thema: Delphi Rijndael und LockBox ...

Einzelnen Beitrag anzeigen

gammatester

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

Re: Rijndael und LockBox ...

  Alt 2. Mai 2008, 18:29
Zitat von merlin17:
Hallo,

ich kaue schon länger an einer Rijndael-Sache... Normalerweise nutze ich den 3DES, aber hier
bekomme ich Daten mit Rijndael und dieser Algo arbeitet schon etwas anders ....


folgende Info habe ich bekommen:

BlockSize ist 256
ECB
Rundenanzahl: 14
KeyLength 256
als PW wird folgendes genutzt: s5FWtiogrT.FGsj!ekj0hlk,;jwel-lZ

aus 1184794f04747896257d73a8264ba98e64541e1060223eafa8 c6701c7a087567 sollte hkrsys werden...nur mit meinen
LockBox-Komponenten (sowohl visuell als auch code-based) kann ich das Ergebnis nicht "entschlüsseln".
Hat LockBox evtl. hier mit Key256 ein Problem?
Ich will ungern auf LockBox verzichten und mit anderen Bibliotheken anfangen... habe schon die SuFu genutzt
aber nichts für mich brauchbares gefunden :-(



Danke für jeden Tipp!!



:-) thomas
Da wirst Du wohl nichts fertiges finden. Nicht Key256 ist ein Problem, sondern Lockbox unterstützt nur Blocksize=128 Bits

Delphi-Quellcode:
type
  TRDLBlock = array[0..15] of Byte; { Rijndael }
Ebenso haben alle mir bekannte Pascal/Delphi Rinjdael-Implementation 128-Bit Blcoksize, wie es von AES gefordert wurde, hier der entsprechende Code im DEC:

Delphi-Quellcode:
// .TCipher_Rijndael
const
{don't change this}
 Rijndael_Blocks = 4;
 Rijndael_Rounds = 14;
Im übrigen solltest Du Lockbox vergessen: Elendig langsam, nicht Standard für alles außer ECB, z.B. wird der IV via Random initialisiert, man hat also kein Möglichkeit selbst einen zu definieren.

Delphi-Quellcode:
procedure RDLEncryptStreamCBC(InStream, OutStream : TStream;
begin
  ...
  if Encrypt then begin
    {set up an initialization vector (IV)}
{$IFDEF MSWINDOWS}
    Block[0] := timeGetTime;
    Block[1] := timeGetTime;
{$ENDIF}
{$IFDEF LINUX}
    fd := fopen( '/dev/random', 'r' );
    fread( @Block[0], SizeOf( byte ), SizeOf( Block[0] ), fd );
    fread( @Block[1], SizeOf( byte ), SizeOf( Block[1] ), fd );
    fclose( fd );
{$ENDIF}
Gruß Gammatester
  Mit Zitat antworten Zitat